I can’t ever seem to get the flow control lines right. The current prototype only works with flow control disabled.
The N2 Platform docs says that the Serial3 signals are”ModemNotCTS” and “ModemNotRTS”. The WiReach docs also use inverted signals “nCTS” and “nRTS”. So I connected them up to each other thinking that they’re all using the same signaling logic.
But I was wrong, and I think the n2 docs are too. It seems that the Newton’s CTS line is not inverted. This can be verified with a loopback. When RX-TX are connected and RTS-CTS are connected, you will not get an echo when hardware flow control is enabled.
Similarly, if you connect CTS to GND, you won’t get an echo. If you connect CTS to 3v, you get the echo.
So this tells me that CTS is not inverted. Per this site:
RTS and CTS are normally held high (TTL 1). When high, no request (RTS) has been made, and no permission (CTS) has been granted. When the PC is ready to send data, it brings TTL RTS low. The MCU sees this. When the MCU is ready to receive data, it brings TTL CTS low. The PC sends data as long as TTL CTS is low, and stops when the MCU takes TTL CTS high.
The opposite seems to be happening no the Serial3 signal.
So what next? Well the board works fine without hardware flow control… but I’m going to try and “dead bug” a 1 gate inverter onto the board on the RTS line coming from the WiReach. It won’t be pretty, but it should work.