2
\$\begingroup\$

I'm controlling a trigger system through fiber links. The optical transceiver for triggering the pulse that activate the channel is commanded by a port expander IC to which I send commands through I2C to write its registers.

The problem is that once I connect the system and I feed the board where the port expander and the transceiver are, the indeterminate states of the IO pins of the port expander give 1.6V until I write the registers with 0.

This 1.6V is enough to activate the LED of the transmitter, having a logical high state in the other side, although the system is 0V-5V.

I don't want to write specifically 0 in the registers to have 0V at the output, and a pull-down resistor makes no sense because I have 1.6V at the output of the port expander.

What could I do to assure that I have 0V at the IO outputs although the board is fed and I haven't written the registers yet to have 0V at the output ?

https://www.ti.com/lit/ds/symlink/tca9535.pdf?ts=1635761395944&ref_url=https%3A%2F%2Fwww.google.com%2F

On the other hand at the receiver where I use this scheme:

1635763092980.png

I get RXVCC (5V) in RXD when there is no light in the fiber, and 0.325V when there is light. I want to get the opposite, 0V or 0.325V (low state) when there is no light and 5V when there is light in the fiber.

I based my design on this:

https://docs.broadcom.com/doc/AV02-2656EN

https://docs.broadcom.com/doc/AV02-0176EN

Thanks in advance

Jesus

\$\endgroup\$
1
  • 1
    \$\begingroup\$ You have an undefined state at power on, so why is a pull-down resistor a bad idea. Try it! \$\endgroup\$ Commented Nov 2, 2021 at 9:50

1 Answer 1

3
\$\begingroup\$

The problem is that once I connect the system and I feed the board where the port expander and the transceiver are, the indeterminate states of the IO pins of the port expander give 1.6V until I write the registers with 0.

Well, the datasheet says that all the P-ports are configured as logic inputs at power up (Pin Functions table at p.3). Looking at the internal structure of a pin shown at p.16, it's possible so say that the top FET (Q1) and the bottom FET (Q2) are probably off at power on, so the pin is floating at power on and remains floating until configured. And it's possible to measure a non-zero voltage here as the leakage currents (e.g. through Q1 and Q2 while they are off) find a path when you place your DMM. And even worse, these leakages might be enough to turn the LED on.

... and a pull-down resistor makes no sense because I have 1.6V at the output of the port expander.

You should still pull the pin down through a relatively low (1k-ish) resistor because the pin is floating. And that's what the datasheet suggests at footnote (1) at the end of p.3.

I get RXVCC (5V) in RXD when there is no light in the fiber, and 0.325V when there is light. I want to get the opposite, 0V or 0.325V (low state) when there is no light and 5V when there is light in the fiber.

This is normally a different question, so I'd prefer answer this separately. Anyway... What you need is a transistor inverter. A hi-speed transistor with relatively low load resistance could do the job.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.