• Linux embedded and direction control of RS485 transceiver

    From A.P.Richelieu@21:1/5 to All on Sun May 9 13:24:21 2021
    Den 2021-03-24 kl. 00:06, skrev pozz:
    I have an half-duplex RS485 bus with 10-20 different nodes. Some of them
    are 8-bit MCU based, one of them could be Linux embedded.

    It's half-duplex, so it's important for the transmitter node to disable
    the driver as soon as the last transmitted bit is shifted out.

    Many small low-cost MCU has interrupt on transmission complete, so the
    delay of disabling the driver is usually on the order of microseconds.

    Some new Cortex-M MCUs have an automatic control of external RS485 transceiver, so the delay is really zero.

    What happens in Linux embedded systems? Many of them are based on NXP
    i.MX CPUs and it seems they aren't able to control the RS485 direction
    in hardware, but some code is needed. This approach could increase the
    delay of disabling the driver in the order of milliseconds.

    Is it possible that a powerful CPU isn't able to control RS485 driver in hardware?

    Atmel (now Microchip) ARM products has a serial port which supports
    handling the RS-485 direction in hardware. It also has an interrupt
    which is triggered after a programmable delay has occured without any
    receied characters.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Uwe Bonnes@21:1/5 to A.P.Richelieu on Sun May 9 12:01:02 2021
    A.P.Richelieu <aprichelieu@gmail.com> wrote:

    Atmel (now Microchip) ARM products has a serial port which supports
    handling the RS-485 direction in hardware. It also has an interrupt
    which is triggered after a programmable delay has occured without any
    receied characters.

    Similar for recent STM32 U(s)arts.
    --
    Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de

    Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
    --------- Tel. 06151 1623569 ------- Fax. 06151 1623305 ---------
    (Phone also available during "mobile work")

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From pozz@21:1/5 to All on Mon May 10 09:46:15 2021
    Il 09/05/2021 13:24, A.P.Richelieu ha scritto:
    Den 2021-03-24 kl. 00:06, skrev pozz:
    I have an half-duplex RS485 bus with 10-20 different nodes. Some of
    them are 8-bit MCU based, one of them could be Linux embedded.

    It's half-duplex, so it's important for the transmitter node to
    disable the driver as soon as the last transmitted bit is shifted out.

    Many small low-cost MCU has interrupt on transmission complete, so the
    delay of disabling the driver is usually on the order of microseconds.

    Some new Cortex-M MCUs have an automatic control of external RS485
    transceiver, so the delay is really zero.

    What happens in Linux embedded systems? Many of them are based on NXP
    i.MX CPUs and it seems they aren't able to control the RS485 direction
    in hardware, but some code is needed. This approach could increase the
    delay of disabling the driver in the order of milliseconds.

    Is it possible that a powerful CPU isn't able to control RS485 driver
    in hardware?

    Atmel (now Microchip) ARM products has a serial port which supports
    handling the RS-485 direction in hardware. It also has an interrupt
    which is triggered after a programmable delay has occured without any
    receied characters.

    I know SAM D family MCUs has a nice SERCOM peripheral with RS485
    direction in hardware.

    But my discussion was for Linux embedded, so MPUs (Cortex-A).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)