| 245 | | || Newport || GW630x / GW640x || RTS || [https://www.exar.com/ds/sp335e.pdf SP335E] || software selectable via [wiki:newport/bootloader#serialconfig hwconfig] || included || TIOCSRS485 support || |
| 246 | | || Ventana || GW52xx '''(optional)''' || gpio193 || [http://dev.gateworks.com/datasheets/MAX14840E-MAX14841E.pdf MAX14840] || optional || optional || TIOCSRS485 support || |
| 247 | | || || GW53xx '''(optional)''' || gpio193 || [http://dev.gateworks.com/datasheets/MAX14840E-MAX14841E.pdf MAX14840] || optional || optional || TIOCSRS485 support || |
| 248 | | || || GW54xx '''(optional)''' || gpio193 || [http://dev.gateworks.com/datasheets/MAX14840E-MAX14841E.pdf MAX14840] || optional || optional || TIOCSRS485 support || |
| 249 | | || || GW551x+GW16111 || gpio19 || [http://dev.gateworks.com/datasheets/MAX14840E-MAX14841E.pdf MAX14840] || optional || 4.75k pull up/down || see [#ventana-rs485 ventana RS485 below] || |
| 250 | | || || GW5904 / GW5909 || RTS || [http://dev.gateworks.com/datasheets/MAX14840E-MAX14841E.pdf MAX14840] || software selectable via 'rs485_term' gpio || included || TIOCSRS485 support || |
| 298 | | [=#newport-rs485] |
| 299 | | === Newport |
| 300 | | The GW630x / GW640x have 2 CN80XX UART's (UART2/UART3: /dev/ttyAMA2 and /dev/ttyAMA3) going to a [https://www.exar.com/ds/sp335e.pdf SP335E] transceiver which allows selecting a variety of RS232/RS485 configurations: |
| 301 | | * 2x RS232 w/o flow control |
| 302 | | * 1x RS232 w/ flow control |
| 303 | | * 1x RS485 half duplex |
| 304 | | * 1x RS485 full duplex |
| 305 | | |
| 306 | | RS485 modes feature: |
| 307 | | * optional half-duplex, multi-drop RS485: |
| 308 | | * CN80XX UART2 (/dev/ttyAMA2) |
| 309 | | * optional on-board termination (enabled by gpio16) |
| 310 | | * in-chip fail-safe protection to default idle inputs to logic-high (no external bias resistors required) |
| 311 | | * TXEN connected to CN80XX UART2 RTS |
| 312 | | |
| 313 | | The pl011 Linux driver supporting the CN80XX serial ports (SERIAL_AMBA_PL011 drivers/tty/serial/amba-pl011.c) supports RS485 via the TIOCSRS485 ioctl as of Linux 5.15 and this support has been backported to the Gateworks 5.10 kernel. |
| 314 | | |
| 315 | | Software must enable RS485 at boot via device-tree or use the TIOCSRS485 ioctl to configure TXEN - see [#TIOCSRS485 below]). |
| 316 | | |
| 317 | | |
| 318 | | [=#ventana-rs485] |
| 319 | | === Ventana |
| 320 | | The GW52xx/GW53xx/GW54xx support optional half-duplex, multi-drop RS485: |
| 321 | | * IMX6 UART1 (/dev/ttymxc0) |
| 322 | | * MAX14840 transceiver |
| 323 | | * TXEN connected to gpio193 |
| 324 | | * '''optional on-board termination resistor''' |
| 325 | | * '''optional on-board fail-safe resistors (D+ pull-up and D- pull-down)''' |
| 326 | | |
| 327 | | By 'optional' this means the baseboard design supports this, but it is not loaded on standard product therefore would be a Gateworks Special. Contact sales@gateworks.com if interested to see if a configuration already exists. |
| 328 | | |
| 329 | | Software must enable RS485 at boot via device-tree or use the TIOCSRS485 ioctl to configure TXEN - see [#TIOCSRS485 below]). |
| 330 | | |
| 331 | | The GW551x + GW16111 breakout module support half-duplex, multi-drop RS485: |
| 332 | | * IMX6 UART2 (/dev/ttymxc1) |
| 333 | | - Note that a jumper must be placed on '''J10:2-3''' to enable RS485 RX (routes UART2 RX to RS485 vs RS232 transceiver) |
| 334 | | - Note that a jumper must be placed on '''J10:1-2''' to enable RS232 (routes UART2 to RS232 transceiver) |
| 335 | | * MAX14840 transceiver |
| 336 | | * TXEN connected to gpio19, or always enabled, or enable on transmit (selected via J10 jumper) |
| 337 | | - '''always drive mode''' - jumpers placed on '''J10:2-3''' and '''J10:4-5''' will cause the transceiver to always have its transmit enabled. This is useful for fast signal switching (fast/large bus) if you are using a single master and one or more receivers. |
| 338 | | - '''TXD drive mode''' - jumpers placed on '''J10:2-3''' and '''J10:7-8''' will cause the transceiver to be enabled only when TX is asserted. Because there are 4.75k pull's on D+/D- the bus is never 'idle'. This is useful for multi-master scenarios but could pose issues with fast/large busses if the 4.75pull's are not strong enough to switch the signals quick enough. |
| 339 | | - '''DIO-drive mode''' - jumpers placed on '''J10:2-3''' and '''J10:7-8''' will cause the transceiver to be enabled only when IMX_DIO1 (gpio19) is asserted high. This is useful for fast/large busses where the TXD drive mode doesn't provide fast enough switching. If using this mode you either need to manage the assertion/de-assertion of gpio19 in usersapce or modify the GW551x device-tree to configure rs485-txen for TIOCSRS485 support by adding '''fsl,rs485-gpio-txen = <&gpio1 19 GPIO_ACTIVE_HIGH>;''' to the uart2 device-tree node in arch/arm/boot/dts/imx6qdl-gw551x.dtsi |
| 340 | | * 121ohm termination (R38) is loaded and can be enabled by placing a jumper on '''J10:9-10''' |
| 341 | | * 4.75k pull-up on D+, 4.75k pull-down on D- fail-safe bias resistors are loaded (R37/R40) (bus defaults to logic 1 - never idle) |
| | 293 | |
| | 294 | |