RS-485 (MAX487 / MAX485) - On-chip fail-safe feature

Discussion in 'The Projects Forum' started by esm., May 12, 2012.

  1. esm.

    Thread Starter Member

    Jan 20, 2012
    30
    0
    Hello all.

    I have a good knowledge on RS-485 buses. I have some doubts about the internal fail-safe feature of MAX487.

    I know how to do a fail-safe biasing using external pull-up and pull-down resistors, but my doubt is just about the internal fail-safe feature of these transceivers.

    Currently I can't do tests in practice with my ICs (MAX487). I won't use a MAX485 because I could need more than 32 nodes attached to the RS485 bus (MAX487 supports up to 128 nodes).

    When receiving at the RS485 bus, I know that:
    VA-VB >= 200mV ---> RO pin is level '1'
    VA-VB <= 200mV ---> RO pin is level '0'
    VA-VB > 200mV && < 200mV ---> RO pin has undeterminated logic state


    MAX487 / MAX485 datasheet says: The receiver input has a fail-safe feature that guarantees a logic-high output if the input is open circuit.


    Considering the following condition:

    1) Supply voltage = 5V
    2) DE and RE pins at level '0' constantly (that means transmit is disabled and receive is enabled)
    3) A and B pins left floating (No termination resistor and no fail-safe biasing external resistors connected). Nothing connected to both pins A and B

    Questions

    1) Does these RS485 tranceivers have an internal pull-up from pin A to VCC and a internal pull-down from pin B do GND? (with higher values?)

    2) In this condition, what should be the voltage between A and B (5V)? (Considering a very high input impedance meter)

    3) At question 2, the logic level at RO pin is '1', right?

    4) Now, if I put just a termination resistor (120 Ohms) between A and B, the logic level at RO will be 'undeterminated', right? I think if the internal resistors are present, they will have a high value and the voltage between A and B will be near to 0V due to the low resistance of the termination.


    I really have these doubts a long time.
    Someone can help?
     
  2. MrChips

    Moderator

    Oct 2, 2009
    12,451
    3,370
    RS485 transceivers do not provide internal biasing. You should provide external pull-up and pull-down.
     
    esm. likes this.
  3. esm.

    Thread Starter Member

    Jan 20, 2012
    30
    0
    Hi.
    Thanks for the help.

    The datasheet say: The receiver input has a fail-safe feature that guarantees a logic-high output if the input is open circuit.

    So, how they do that? How they guarantee a logic level '1' at the RO pin when the A and B pins are floating? (connected to nothing, nothing) Any idea? The datasheets does not explain nothing about the internal fail-safe!
     
  4. ifixit

    Distinguished Member

    Nov 20, 2008
    639
    108
    The MAX485 garantees RO=1 if the A & B inputs are open (refer to table 2). This bad wording IMO, inputs are always "open". What they mean is drivers are connected, but not enabled so nothing is driving the receiver inputs (zero volts). The receivers are designed so that a differential voltage of 0 Volts garantees an RO output of logic 1.

    The MAX485 A & B inputs have an internal 12KΩ load resistor between them (bottom of page 8). This ensures the differental voltage between them is zero when nothing is driving them externally. The more receivers in parallel means a lower impedance. 32 recievers in parallel is equivelent to a 375Ω resistor across A & B, which is why the 32 device limit specified.

    Having an external differential load resistor only helps the situation and terminates the transmission line when an output is driving it.

    Regards,
    Ifixit
     
    esm. likes this.
  5. esm.

    Thread Starter Member

    Jan 20, 2012
    30
    0
    Understood.

    MAX485's datasheet specifies:

    Receiver Input Resistance = 12K MIN
    Differential Driver Output (with load of 54 Ohms) = 5V MAX

    Considering a RS485 bus with 32 nodes (12K / 32 = 375 OHMS) + two terminations (120R // 120R = 60 Ohms).

    375R // 60R = 51,72 Ohms (Total load of the bus)

    In terms of current consumption, the worst case occurs when the tranceiver output 5V on the bus and all the nodes have the minimum of 12K input impedance. The electrical current drawn (from Vcc) by the transmiter would be 5V / 51,72R = 97mA.

    It this correct?
     
  6. ifixit

    Distinguished Member

    Nov 20, 2008
    639
    108
    The driver will never be able to drive a 54Ω load to 5V, especially with a Vcc of 5V. It will be more like 3 to 3.5 volts. The 2 charts at the top of page 6 show that the output drive current is limited to around ±60mA regardless of the supply voltage.

    Regards,
    Ifixit
     
    esm. likes this.
  7. esm.

    Thread Starter Member

    Jan 20, 2012
    30
    0
    Here is my current schematic, attached in PDF and PNG.

    I would like to design this schematic for use in RS-485 buses with a maximum of around 64 nodes.

    I have some doubts about this schematic yet:

    1) For R3 and R8 (fail-safe biasing), I am using 560 Ohms. Somebody know which are the most commom values used for fail-safe biasing?

    2) Also for R3 and R8. I am using through hole resistors (250mW / CR25 body). Could I change them to 560 Ohms SMD 1206??? (because I am already this SMD value). That would be great!

    3) Would be more suitable connect the fail-safe resistors directly to EIA485_A and EIA485_B nets, instead of connecting them to A and B nets ???

    4) Maybe would be better to change the values of resistors R5 and R7 (inrush protection) ???

    5) The differential voltage between A and B lines of an RS-485 bus is +- 5V, according to MAX487's datasheet. Is it recommended to place a 5V TVS diode between A and B nets? Like a SM05 TVS diode, for example? For differential protection?

    Some recommendations for this schematic? Change components values?
     
    • SCH.pdf
      File size:
      89.8 KB
      Views:
      177
    • SCH.png
      SCH.png
      File size:
      125.6 KB
      Views:
      351
  8. ifixit

    Distinguished Member

    Nov 20, 2008
    639
    108
    1) Modern version of the 487 have failsafe built in, but you can still do it yourself if you want to get more noise margin. The pull up/down resistors will ensure a "one" input is received by all receivers when nothing is driving the bus in a noisy enviroment. Assuming one 120Ω terminator and one 560Ω pull-up and one 560Ω pull-down then that should bias the input with 480mV, which is 280mV more than the minimum 200mV required to garentee RO=1. Good noise margin, but 64 recievers in parallel will reduce the margin some. How much do you need?

    The termination impedance is effected by this arrangement since the 2 560s are essentially in parallel with the 120. This equals an impedance of 560ll560ll120=84Ω. Using a 150Ω terminator improves this to 98Ω. This may not be to critical if the bus speed is low. It's a designers choice.

    2) You can use SMD 1206.

    3) Leave them where they are.

    4) Remove D3. Check out this appnote:
    http://www.analog.com/static/imported-files/application_notes/AN-960.pdf

    5) No piont in protecting the differential.

    Regards,
    Ifixit
     
    esm. likes this.
  9. esm.

    Thread Starter Member

    Jan 20, 2012
    30
    0
    Hi.
    Why do you think I should remove D3?
    Using D3 as the schematic shows, I think I have more protection than just using one TVS diode.
    Maybe, I can do the PCB layout with both, and choose to assembly D3 or not on PCB during assembling.



    And about R5 and R7 (both 3.3 are Ohms, SMD 1206), the protective resistors against current inrush and over-voltage at pins A and B of MAX487 (receiving circuit). Maybe I could increase them, to increase the protection. The disadvantage of increasing this resistors is that they will cause a voltage loss when the MAX487 is driving the bus (transmitting), right ???



    For termination, I'm using a through hole, 120R, 1W, metal film resistor. I think I can replace it with two 56 Ohms, SMD 1206, 250mW in series. What do you think?
     
    Last edited: May 15, 2012
  10. ifixit

    Distinguished Member

    Nov 20, 2008
    639
    108
    The TVS next to the device inputs won't conduct before the internal ESD protection diodes do and IMO the second TVS doesn't add any value. They also add another 75pF to the line load and cost to the board.

    It would be better to increase the series resistor values to 10Ω, which helps limit the pulse current the internal ESD diodes need to handle during a transient pulse event.

    These resistors also reduce the signal voltage at the inputs. Using ohms law and considering; bus line length, wire gage, number of nodes, termination resistor value and pull up/down resistor values, you can calculate whether this is an issue or not.

    The termination resistors can be 2 times 56Ω 1206 SMD in series, but 1 120Ω 1206 SMD should work as well (5V^2 / 120Ω = 208mW).

    Regards,
    Ifixit
     
    esm. likes this.
  11. esm.

    Thread Starter Member

    Jan 20, 2012
    30
    0
    Ok. Understand. I am going to remove it from the schematic.


    I will change them to 10 Ohms, because I have a reel of this value in 1206 size


    About using only one 120 Ohms 1206, my fear is that they are rated to 250mW.
    By the way, the bus is idle 50% of time .
     
    Last edited: May 16, 2012
Loading...