What could cause the A and B outputs of the ADM3065E to drive high simultaneously when asserting DE?
I have a RS485 bus with five custom boards connected and all using the ADM3065E transceiver. The bus is physically made up from 120 Ohm TE Cheminax twinax cable terminated on both ends with 120 ohm resistors. Each board transmits on the bus in sequence based on their pre-configured address starting with address 0. Each transmission consists of 128 bits at a rate of 31.25 Mbps. We have implemented a TDMA sequence, so a 'missing' board cause the bus to remain idle for that time slot. In this example, we have boards with address 0, 2, 5, 6, and 7. So there are breaks between 0 and 2, and 2 and 5.
We are seeing a strange behavior when three boards attempt to access the bus consecutively. In this example, we are seeing the behavior with board #7 since it is the third in a consecutive sequence. The actual address of the boards does not matter, only that it is three consecutive transmissions. If we stagger the addresses such that there is never three transmissions consecutively, we see no errors.
As seen in the screen shot below, the blue trace is the A line, and the yellow trace is the B line. The logic levels of the ADM3065E DE, D, and R are shown as well. As can be seen, #6 finishes it's transmission with no errors. The bus voltage levels are as expected. Once #6 de-asserts it's driver, #7 asserts it's driver ~130nS later. Once asserted, both A and B lines drive high even though it's D input is a logic high (A should be greater than B). #7 D is driven low around 30nS after asserting DE, but there is no bus state change (A and B both remain high). This condition remains for about 220nS until the B line returns to its proper level for the logic level being driven to #7's D input (logic high). Later data bits from #7 (not seen in this screen capture) are transmitted correctly. This behavior at the beginning of #6's transmission is not observed.
We tried the following to rule out software or hardware issues:
- Replaced all five boards with new boards.
- Moved the boards to different physical positions on the bus.
- Disabled the transmission on board #0 and board #2.
- Removed board #0 and #2 thinking maybe there was too much load on the bus.
- Assigned other address sequences (i.e. 4, 5, 6). Problem still occurred on the third board.
- Monitored DE on all five boards simultaneously to make sure only one board (#7) was attempting to transmit at the time of this error.
So the question is...what could cause the ADM3065E B output to drive high along with the A output when in reality it should drive low?