ovc2a Hardware Documentation
UARTs and other TX2 peripherals
There are several UARTs provided by the TX2:
- TX2 UART0 (TX0, RX0) is the Linux root console. You can use it to catch the bootloader, fix network issues if DHCP isn't working, enter WiFi credentials, etc.
- TX2 UART1 is internally connected to the IMU and appears in userland as
- TX2 UART2 (TX2, RX2) is available for userland use
- TX2 UART3 (TX3, RX3) is available for userland use
Those UARTs are all buffered to 3.3v, but should still be treated as
static-sensitive since they do not have ESD clamp diodes. Although there are
device nodes for the "classic" names such as
/dev/ttyS2, etc., it's much
better to use the DMA-accelerated device nodes instead, which have
them, such as
/dev/ttyTHS2, to avoid unnecessary kernel switches for things
as silly as feeding the next character to the UART.
TX2 UART2 and UART3 should be mapped to
/dev/ttyTHS nodes, but I can't
remember which ones right now; it's usually a process of trial and error. It's
possible that one (or both) of them will require a device tree modification,
but I can't be sure at the moment.
Unfortunately we assumed the Ethernet PHY on the TX2 was capable of swapping pairs and polarity as needed to make the PCB layout more convenient, so the high-speed routing could fit on a single PCB layer. Sadly this is not the case, so ovc2a requires a non-standard Ethernet pinout to "unswap" the pairs we swapped; otherwise the ovc2a will not connect when you plug it into a network switch.
Here is the required non-standard Ethernet connector pinout:
Cables in the lab with this pinout are labeled on both ends of the cable as "ovc2a custom"