Hello,
I created a relay driving circuit using an IO extender (PCF8574) and darlington transistors (MMBTA13). I was originally not aware that the IO extender can only source 100uA of current for an output... knowing that now I would probably design this quite differently. This is why I am currently trying the darlington.
However, I have some boards that I am hoping I can get to work by swapping out components, but I am currently stuck.
Here is my schematic and a description of what is going on:
The relay can activate on and off no problem, that all works.
The problem is that on initial power up (before the IO expander has been configured), the GPIOs default to an INPUT with an internal 100uA pullup (which I assume to be 33K?). This is enough to activate the darlington transistor. Because of this, the relays activate for this short period of time (3 to 10 seconds, or even longer), until the IO expanders GPIOs are configured as OUTPUTs.
I was experimenting with R24, I thought that if I reduced the ohm value enough that it would overpower the 33K internal pull up. 15K resistor is not enough and the relay activates on power up. 12K resistor is too much and the relay will never activate no matter what.
What do you think I should try to get this thing working, I am stumped. Thanks and any help or advice is greatly appreciated.
And again, if I was to redesign this, I think I would instead run the GPIOs into an Inverter and then into ULN2803A, but for now I am sort of stuck with this for the time being.
Datasheets:
Darlington Transistor:
https://www.fairchildsemi.com/datasheets/MM/MMBTA13.pdf
IO Expander:
https://www.nxp.com/docs/en/data-sheet/PCF8574_PCF8574A.pdf
I created a relay driving circuit using an IO extender (PCF8574) and darlington transistors (MMBTA13). I was originally not aware that the IO extender can only source 100uA of current for an output... knowing that now I would probably design this quite differently. This is why I am currently trying the darlington.
However, I have some boards that I am hoping I can get to work by swapping out components, but I am currently stuck.
Here is my schematic and a description of what is going on:
The relay can activate on and off no problem, that all works.
The problem is that on initial power up (before the IO expander has been configured), the GPIOs default to an INPUT with an internal 100uA pullup (which I assume to be 33K?). This is enough to activate the darlington transistor. Because of this, the relays activate for this short period of time (3 to 10 seconds, or even longer), until the IO expanders GPIOs are configured as OUTPUTs.
I was experimenting with R24, I thought that if I reduced the ohm value enough that it would overpower the 33K internal pull up. 15K resistor is not enough and the relay activates on power up. 12K resistor is too much and the relay will never activate no matter what.
What do you think I should try to get this thing working, I am stumped. Thanks and any help or advice is greatly appreciated.
And again, if I was to redesign this, I think I would instead run the GPIOs into an Inverter and then into ULN2803A, but for now I am sort of stuck with this for the time being.
Datasheets:
Darlington Transistor:
https://www.fairchildsemi.com/datasheets/MM/MMBTA13.pdf
IO Expander:
https://www.nxp.com/docs/en/data-sheet/PCF8574_PCF8574A.pdf