Uart problems with Jetson Orin Nx

Hi

We used jetson xavier and nano using 2 uarts at 115200 8N1. All works fine.

Now we upgrade to Orin Nx with Jetpack 6.1 and linux L4T 36.4.7

We use ttyS0 and ttyHS1 at 115200. 8N1.

We encounter two issue:

  1. on ttyHS1 - we have stm32 mcu send 114 bytes every 25 ms toward the jetson uart . We have good data but while collecting rx bytes we ask read of 114 bytes and got just 64 bytes each read,while we send 114 bytes back to back each 25 ms.The same code works good on xavier , and we got 114 bytes as expected per each read (we use VTIME=1 and VMIN=114 .What can cause such behavioure.We have same application code except update the /dev/ttyXXX.
  2. On ttyS0 - we have a problem that we got the byes as in former description BUT all data are zero!! if we sent 10 bytes we got 10 zeros and so on….it means that the start and stop detected well but data us all zero although in scope all seems well.Further more, if we set xavier instead Orin all data is collected well, no zeros.I saw in the internet that it is known issue but not get solution.What can be the source fir this behaviour? We have 1.8 volt at jetson lines.

Regards

Yehuda

Hi yehudaamar1965,

Are you using the devkit or custom board for Orin NX?

Do you mean /dev/ttyTHS1?
Please remove dma related properties in device tree to check if it could help for your case.

Hi

We are using custom board.

I meant ttyTHS1.

Your answer is too short andnot help us…so, i want to ask abd clarify more and give more data:

Does remove dma will assist with 64 byte issue.

We already removed the dma and same behavioure!!

Can you direct how and where to remove the dma or on devkit device tree to verify we did it well?

Is it the cause? In xavier we did not expirience such priblem as i noted.

What about ttyS0 all zero?

+++ We made a test of use jetpack 5.1.5 on same jetson orin module and it works fine againt iur board uart, except that read up to 64 byte at each read() from uart(on xavier we used 114 each read and also up to 230). It seems there is limit at uart driver or hardware.

We work with ttyTHS0+ ttyTHS1.

On jetpack 6.1 we have no ttyTHS0 and nvidia directed us to use ttyS0 that got al bytes but al are zero bytes (scope shiws good data) and ttyTHS1 works with max read() of 64 bytes even if we ask more.

What can cause such behavioure and difference between jetpak 5.1.5 and 6.1 on same jetson orin module and same of our uart board ???

Maybe you can refer to https://elinux.org/Jetson/L4T/peripheral/#Mapping_3 for the UART mapping on Orin NX/Nano with JP5.x(r35.x) and JP6.x(r36.x) first.

For JP6.x, ttyTHS1 is from 3100000.serial. Is it the UART interface you are using?

Please share the full device tree and dmesg in both JP5.1.5 and JP6.1 for further check.