Hi,
I have a setup with multiple Teensy 4.1's connected together using various serial busses, including the use of CTS + RTS pins on every connection. All of the CTS pins are using XBAR pins, and I am using low/high inverters on the RTS->CTS paths to counteract the known IMXRT1062 hardware CTS reverse polarity issue as confirmed in this thread.
Most of these connections work beautifully, with the CTS pins causing TX to pause until the receiver is ready for more bits.
HOWEVER, after chasing my tail for many hours it appears that three of the XBAR pins don't work as CTS. I have only been able to test the XBAR pins up to 37 (higher pins are not soldered on my boards), but here are my test results:
I got my list of XBAR pins from the PJRC page about Teensy Serial. I see in HardwareSerial.cpp that the three failing CTS pins have something in common - in the section starting from line #720 const pin_to_xbar_info_t PROGMEM pin_to_xbar_info[] they specify nullptr on the select_input_register field.
Interestingly I notice that pin 1 also uses nullptr in the same field but does work as a CTS pin. That's about the point where I reach the end of my understanding, as I'm not well across the lower level IMXRT stuff.
Any ideas would be much appreciated!
Cheers,
Josh
I have a setup with multiple Teensy 4.1's connected together using various serial busses, including the use of CTS + RTS pins on every connection. All of the CTS pins are using XBAR pins, and I am using low/high inverters on the RTS->CTS paths to counteract the known IMXRT1062 hardware CTS reverse polarity issue as confirmed in this thread.
Most of these connections work beautifully, with the CTS pins causing TX to pause until the receiver is ready for more bits.
HOWEVER, after chasing my tail for many hours it appears that three of the XBAR pins don't work as CTS. I have only been able to test the XBAR pins up to 37 (higher pins are not soldered on my boards), but here are my test results:
Code:
Pin 0: ok (ALT XBAR)
Pin 1: ok (XBAR)
Pin 2: ok (XBAR)
Pin 3: ok (XBAR)
Pin 4: ok (XBAR)
Pin 5: ok (XBAR)
Pin 7: FAILED (XBAR)
Pin 8: FAILED (XBAR)
Pin 30: ok (XBAR)
Pin 31: ok (XBAR)
Pin 32: ok (XBAR)
Pin 33: ok (XBAR)
Pin 36: FAILED (ALT XBAR)
Pin 37: ok (ALT XBAR)
I got my list of XBAR pins from the PJRC page about Teensy Serial. I see in HardwareSerial.cpp that the three failing CTS pins have something in common - in the section starting from line #720 const pin_to_xbar_info_t PROGMEM pin_to_xbar_info[] they specify nullptr on the select_input_register field.
Interestingly I notice that pin 1 also uses nullptr in the same field but does work as a CTS pin. That's about the point where I reach the end of my understanding, as I'm not well across the lower level IMXRT stuff.
Any ideas would be much appreciated!
Cheers,
Josh
Last edited: