Whenever we bootup our board, such IOs turn on relay coils, making, for example, 220V engines connected move! After boot, our firmware sets such IOs as output and pulls them low, turning off motors.
Note that connecting motors to NC instead of NO (or viceversa) dosn’t solve the problem, since de-powering control device turns on motors again!
Any hints?
P.S. I know that IO pins should boot in input (high impedance) mode, but it seems that this is not enough to keep colis unenergized. Please note that unconnecting IOs from relay board, relay colis turn off (so high impedance and unconnected scenarios don’t show same behavior)
Eric Im not hardware guy but does this additional resistor use some mA on output? If yes will not this be dangerous for MCU for example if we connect 32-48 or more relays?
[quote]This would compel us to design a custom “passing” expansion board for FEZ-Cobra just to put on 4-8 resistors…quite expensive, isn’t it?
[/quote]
In prototyping state adding a pull down resistor array to a DIL ULN2803 is easy and takes 1 minute to solder, see picture.
The pins do initialize as input, but with the internal pullup enabled. I don’t know if this is the default for the underlying microcontroller, or whether it’s a conscious choice by GHI.
You need to add an external pulldown that will overcome this internal pulldown. Yes, it will draw power all the time, but not a ton. As Eric said, a 10K pulldown will consume only 0.3mA.