Hi @kerryzhou,
I am actually running the tests on the MIMXRT1170-EVK board at the moment. I (heavily) modified the board to run our p.o.c., but I can provide you a sample project (attached) for testing. SAI1 is set up for TDM8 mode on two TX/RX lines - that is, TXD[0]/RXD[0] and TXD[1]/RXD[1]. Then the transfer is started and runs indefinitely, outputting short data bursts on TXD[0] and RXD[0]. By shorting TXD[1] (or TXD[0]) line to RXD[1], you can observe the degradation of the signal. For our specific application, SAI1 is set up with TX sync to RX, so you can monitor the following signals on J9:
- J9.1: SAI1_RX_BCLK
- J9.5: SAI1_RX_SYNC
- J9.7: SAI1_RXD[0]
- J9.9: SAI1_TXD[0]
I additionally routed SAI1_RXD[1] and SAI1_TXD[1] as follows, for ease of observation:
GPIO_DISP_B2_02 as SAI1_TXD[1] (out)
On EVK: ENET_TXD0 / TRACE_D0 / BT_CFG[8] - no conflict (ENET_TXD0 is an input of U7) Remove R1919, route R1919.2 to R334.2 to have it on J9.13
GPIO_DISP_B2_00 as SAI1_RXD[1] (in)
On EVK: BT_CFG[6] - no conflict Remove R1920, route R1920.2 to R340.2 to have it on J9.11
With this setup and using the sample project, when I short TXD[0] or TXD[1] to RXD[1], I can successfully acquire the data in the receive buffer, but I observe a severe degradation of the signal. The following scope shots are taken on TXD[1].
This is the signal on TXD[1] with the pin floating - full swing, no degradation:
TX[1] floating, not shorted to RX[1].png
This is the signal on TXD[1] when shorted to RXD[1] with default pad settings (as in the project):
TX[1] shorted to RX[1] - default pad settings.png
Setting "normal drive strength" for GPIO_DISP_B2_00 pad (receiver):
TX[1] shorted to RX[1] - normal drive strength.png
Setting "fast slew rate" for GPIO_DISP_B2_00 pad (on top of "normal drive strength"):
TX[1] shorted to RX[1] - normal drive strength plus fast slew rate.png
With the latest settings we are almost there, it looks like on rt117x it is not actually possible to completely disable the driver on any I/O pin - including GPIO_DISP_B2_00, when used as SAI1_RXD[1]. Hence, I still have some concerns:
- Signal integrity and EMI effects: we need to connect multiple devices on the same bus, so there will be more than one rt117x receiving on SAI1_RXD[1] (GPIO_DISP_B2_00). This means having several "stuck at zero" drivers in parallel. Not sure, but a buffer might be required to guarantee signal integrity, with further side effects on radiation.
- Potential electrical issues at driver's level. For this, we require a written statement from NXP engineers that guarantees that there is no electrical issue (i.e., silicon damage) when connecting GPIO_DISP_B2_00 as SAI1_RXD[1] to a low impedance signal source (i.e., a transmitter, maybe buffered), when configured for normal drive strength and fast slew rate.
Thank you for your support.
Best regards,
Stefano