I’m currenty working on out custom made carrier board powered by Verdin iMX8MP.
I use Torizon OS 6.x as operation system.
I try to use two RS485 (uart1 & uart2). As mentioned im Hardware Design Guide, I connected uart1 RTS (pin 133) / uart2 RTS (pin 141) via inverters to dedicated rs485 transceiver DE / nRE pins.
My code is working with uart1. RTS goes low (inverter set DE = high) while sending data and after that, my RS485 slave responses. Great!
But uart2 is not working. RTS goes low and stays low until I close the file pointer.
Same code, only fd is different (/dev/ttymxc0 vs /dev/ttymxc1).
I checked kernel sources (git “linux-toradex”), I looks like uart1 and uart2 are identically configurated.
I also tried a short test:
- cold boot of carrier board
- cat /dev/ttymxc0 => UART1 RTS stays low
- cat /dev/ttymxc1 => UART2 RTS goes high
I’m confused. Do you have any idea, why it not working with uart2?
I found my mistake.
After downloading DTB file from board and decopling it, I could see that uart1 was configurated with rs485, uart2 not.
After changing uart2 in device tree, everything works.
Why is the DTS file inside TorizionOS different compared with “linux-toradex” source files?
(TorizonOS6 has no dt checkout…)
Hi @tvietzke !
Welcome to Toradex Community!
Please fell free to browse around
Thanks for sharing what was the solution for you
Could you please share more details here? Which specific difference(s) are you talking about?
Also, what does this mean? Are you saying that there is no Torizon OS 6 branch?
Or maybe you are talking about TorizonCore Builder’s
dt checkout command? If this is the case, the device tree workflow on TorizonCore Builder is being reviewed and indeed the
dt checkout command is currently deprecated for version 6 of the OS. You can see this information in our documentation in the Device Tree section on the article TorizonCore Builder Tool - Customizing Torizon OS Images | Toradex Developer Center