UART Problem (bootload console) on Colibri T20 (1.1 C) on Iris (1.1 A)

Currently, I’m evaluating the Colibri T20 (1.1 C) on Iris (1.1 A) base board, and I’m facing some problems with the UART-A (X13).

I tried to connect to the target board from my linux (arch) host system over UART, to flash new system images (Colibri_T20_LinuxImageV2.6) into the on-board flash, after executing u-boot with the provided USB flasher (tegrarcm / with “sudo ./update.sh -r 512 -v V1_1 -b nand -d”).

In recovery mode (jumper JP1 set) I can load and run u-boot as it seems, but when I try to connect to the serial console, I only can see “garbage characters” coming in on the console.

I’ve tried this with 5V Sparkfun FTDI breakout board, by connecting only RX/TX, and in a second test, also with all “null modem” wires hooked up. I’ve assumed 115200/8-N-1 (“picocom --baud 115200 /dev/ttyUSB0”), but tested it with other settings as well, but with no luck yet.

The behavior is this: I can see an infinite stream of scrabled characters after power cycling the board. With all null modem lines connected, it stops after loading u-boot (assumingly). Sending keystrokes has no effect… either my USB-to-serial hardware is broken (unlikely, it works in other situations), the connections are wrong or the there’s problem on the Iris/Colibri board. No idea yet…

Any suggestions would be appreciated a lot. :slight_smile:

EDIT: The board itself works, before trying to update the OS, it ran an older version of Windows CE without any problems whatsoever.

Hi

Before we go deeper into this one common mistake is to use an adapter which uses CMOS signal levels, i.e. 0V is space and 3.3V is mark.

The Iris board has a RS232 transceiver which provides +3…+15V for space and -3V…-15V for mark.
So you would need an adapter which on top of the USB to UART chip also has a RS232 transceiver to be electrical compatible.

Additonally you need an adapter to the pinheader X22 as specified here.

The settings 115200 8N1 are correct

Max

Hi Max

Thank you for the fast answer, it seems to be in fact a problem the TTL voltage levels.

Additonally you need an adapter to the pinheader X22 as specified here.

The X13 (UART-A) pinheader, right? That’s where I hooked up the jumper wires to the FTDI breakout right now, because we don’t have a proper RS232 to USB device here.

So, it would be possible to use a MAX232 or similar IC to shift the voltage levels from TTL to RS232. That’s something I could possibly try today, otherwise I have to order new hardware.

Out of curiosity, since I’m more a software person:

  • Would it be possible to “bypass” the RS232 transceiver on your board (IC4A pin 13 (TxD) / pin 16 (RxD), found right before in the Iris schematics), and solder “temporary patch cables” right in front of it? – I have not yet looked into the details about this yet, but assume 3.3V TTL levels coming from the Colibri module…

  • Is it enough to connect just the RxD/TxD/GND line? - RTS/CTS (Flow control) and DTR/DSR can be left unconnected?

I’d really like to try out the linux images on the Colibri T20 to see if I can handle the environment for a planned project, but as it seems there is now way around using the bootloader console to update the OS images right, there’s no direct boot from SD card? - Which is fine, since we need to have a debug console anyway…

The X13 (UART-A) pinheader, right?

Sorry about that, I meant X13. (The X22 comes from the Ixora board)

Would it be possible to “bypass” the RS232 transceiver on your board.

Yes. Actually you can switch IC4 off with the FORCEOFF# pin connected to SODIMM_102.
The UART signals on 3.3V TTL levels can be accessed on connector X16.

Is it enough to connect just the RxD/TxD/GND line?

In U-Boot yes.

In Linux probably yes. HW handshaking is switched on here, so the CTS input could inhibit sending but at least with the IC4 active the CTS input defaults to allow sending when left open.

but as it seems there is now way around using the bootloader console to update the OS images

That is correct.
(You could make a custom U-Boot which does stuff differently should your project require that for production code.)

Max

Thank you Max for all the help.

Out of curiosity I’ve removed IC4 (SN65C3243 / RS232 transceiver) completely, and put wire bridges to all the UART-A lines going to the original X13 pin header. This was a mistake! All the TTL levels are also accessible on the large Extension Connector (X16), like you said… oh well. - The RS232 interface was of no use in our case, so it’s not really a problem.

Now it is possible to read from the UART-A! But somehow not write to it. Keystrokes are not echoed back in the U-Boot console, but I can see the TX line moving, so I suspect that there’s still something wrong with my hardware setup. - I’ve connected CTS/RTS as well (crossed), just to be sure that it has nothing to do with the HW handshaking. - That’s what I see after boot / using the update.sh script, in recovery mode:

U-Boot SPL 2015.04 (Mar 31 2016 - 01:36:10)

U-Boot 2015.04 (Mar 31 2016 - 01:36:10)

TEGRA20
DRAM:  512 MiB
NAND:  1024 MiB
MMC:   Tegra SD/MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   lcd
Err:   lcd
Missing Toradex config block
Model: Toradex Colibri T20 512MB V1.1C
USB recovery mode, disabled autoboot
Net:   Net Initialization Skipped
No ethernet found.
Colibri T20 # 

Any ideas would be appreciated, I’m a bit lost on this one.

This does not sound familiar.

Could you double check the wiring, e.g. can you see the keystrokes reaching the RX line at X16-28?

It finally works now! :slight_smile: My FTDI breakout must have been damaged while experimenting with the board (TX led still blinking, but TxD line voltage actually not changing), and I had to replace it.

Thank you for the help!

Hi!
How can I do that:

switch IC4 off with the FORCEOFF# pin connected to SODIMM_102

SODIMM_102 isn’t populated on iris board am I right?

Hi

Please have a look at the data sheet (i.e. chapter 3.9.3) and schematics.

Max