Community
cancel
Showing results for 
Search instead for 
Did you mean: 
RKarm1
Beginner
1,843 Views

UARTs working among each other but not externally

Hi,

I have a strange issue with the UARTs. First of all they all work (FTDI shared, UART 0 and UART 1). Any connection between them work fine as well as connections from a Joule to another Joule. But I can't use any other devices, I tried an external GPS and a serial connection to a Windows machine (which work well together).

The symptoms are: I can't send anything from the Joule and only receive garbage (e.g. 'enter' translates to a 'y'). The baud rate and the other settings match. Same issues with minicom and puTTY.

I tried three linux flavours and they all behave the same:

- ostro-xt-image-swupd-intel-corei7-64-2016-11-17_21-15-13-build-194

- Ubuntu 16.04 LTS

- Ubuntu Mate 16.04 LTS

- Ubuntu Mate 16.10

BIOS: Joule-Firmware-2017-02-19-193-Public

dmesg:

[ 31.415297] dw-apb-uart.8: ttyS4 at MMIO 0x92430000 (irq = 4, base_baud = 460800) is a 16550A

[ 31.523237] dw-apb-uart.9: ttyS5 at MMIO 0x92432000 (irq = 5, base_baud = 460800) is a 16550A

[ 31.631224] dw-apb-uart.10: ttyS6 at MMIO 0x92434000 (irq = 6, base_baud = 460800) is a 16550A

[ 31.743270] dw-apb-uart.11: ttyS7 at MMIO 0x92436000 (irq = 7, base_baud = 460800) is a 16550A

serinfo:

serinfo:1.0 driver revision:

0: uart:unknown port:000003F8 irq:4

1: uart:unknown port:000002F8 irq:3

2: uart:unknown port:000003E8 irq:4

3: uart:unknown port:000002E8 irq:3

4: uart:16550A mmio:0x92430000 irq:4 tx:16 rx:528 brk:528

5: uart:16550A mmio:0x92432000 irq:5 tx:0 rx:0

6: uart:16550A mmio:0x92434000 irq:6 tx:0 rx:0

7: uart:16550A mmio:0x92436000 irq:7 tx:0 rx:0

8: uart:unknown port:00000000 irq:0

9: uart:unknown port:00000000 irq:0

setserial:

/dev/ttyS0, UART: unknown, Port: 0x03f8, IRQ: 4

/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3

/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4

/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3

/dev/ttyS4, UART: 16550A, Port: 0x0000, IRQ: 4

/dev/ttyS5, UART: 16550A, Port: 0x0000, IRQ: 5

/dev/ttyS6, UART: 16550A, Port: 0x0000, IRQ: 6

/dev/ttyS7, UART: 16550A, Port: 0x0000, IRQ: 7

/dev/ttyS8, UART: unknown, Port: 0x0000, IRQ: 0

/dev/ttyS9, UART: unknown, Port: 0x0000, IRQ: 0

It's interesting that the UARTs map to ttyS4+:

UART 0 : ttyS4

UART 1 : ttyS5

UART/FTDI : ttyS6

Could it be a problem that the ttyS0 - ttyS3 (which don't work at all) get a Port assigned but the ttyS4+ don't? That seems strange to me.

Any ideas why they work among each other but not with external devices? What can I try?

Cheers, Rob

0 Kudos
7 Replies
idata
Community Manager
54 Views

Hello Rob,

 

 

Thank you for interest in the Intel® Joule board.

 

 

I understand you can't send data from the Joule to a device, and that you only receive "garbage" from any device, even though, you are able to communicate two Joule modules via UART.

 

 

You mentioned you connected various devices. Could you please provide a more detailed description of one of the setups you have tried (maybe with the external GPS)?

 

 

I'm interested in gaining a deeper understanding of the steps you are following in order to try and reproduce the issue you are experiencing.

 

 

I'll be waiting for your response.

 

 

Regards,

 

Andres V.
RKarm1
Beginner
54 Views

Hi Andres,

Thank you for your reply. The simplest non-working setup I tried is the following:

Joule UART0 --- null modem --- serial to usb converter --- windows machine

Joule UART 0 is:

- J12/7 : TX

- J13/28 : RX

- GND from FTDI (I used the same ground for all serial interfaces)

Joule minicom settings:

- /dev/ttyS4 (UART 0)

- 9600 8N1

- no software flow control

- no hardware flow control

The serial to usb converter on the windows machine is a MOXA UPort 1250 which I've been running for years without issues.

Windows PuTTY settings:

- COM10 (Port 1 of the MOXA)

- 9600 8N1

- no flow control

- Whatever I type into PuTTY on Windows is received by the Joule but it's not what I type in. 'h' translates to a 'tab', 'Enter' translates to a 'y', most chars are not printable.

- Nothing is transmitted in the opposite direction.

- Same problems whether I use minicom or PuTTY with the Joule.

Cheers, Rob

idata
Community Manager
54 Views

Hello Rob,

 

 

Thank you for sharing the information requested.

 

 

I will now proceed to try to reproduce the issue you are experiencing.

 

 

As soon as I find something that you may find relevant, I'll post it here.

 

 

Have a nice day.

 

 

Regards,

 

Andres V.
RKarm1
Beginner
54 Views

Great, thanks, I'll check back.

Cheers, Rob

RKarm1
Beginner
54 Views

It's embarrassing. I just need a level shifter.

As a side note:

- UART 0 / UART 1 : rx/tx: 1.8 V

- UART FTDI: tx: 3.0 V, rx: 1.8 V (?)

idata
Community Manager
54 Views

Hello Rob,

 

 

I'm glad to hear that you found a solution to the issue you were experiencing.

 

 

Regarding your side note, in the Intel® Joule™ Module – Datasheet ( http://www.intel.com/content/dam/support/us/en/documents/joule-products/intel-joule-module-datasheet...) you can see the following statement:

 

 

All I/O signals are 1.8V with the exception of USB and PCIe which adhere to their respective standards.

 

 

Also, if you check the Intel® Joule™ Expansion Board – Design Guide ( http://www.intel.com/content/dam/support/us/en/documents/joule-products/intel-joule-expansion-board-...) you can see the following information that confirms the previous statement:

 

 

Unless otherwise noted, all I/O signals operate at 1.8 VDC (with the exception of industry standard buses and protocols) each which must operate within their defining specifications parameters.   All module GPIO lines function at 1.8 V levels. Intel® Joule™ expansion board provides appropriate level transition, signal conditioning, and protection for devices on-or devices connected to-the expansion board.

 

 

What I infer from the previous documentation is that all I/O signals from the compute module are 1.8 V (with the exception of USB and PCIe). On the other hand, all I/O signals from the expansion board are 3.3 V (and 5 V tolerant), thanks to the level transition, signal conditioning, and protection for devices.

 

 

I hope you find the previous information useful.

 

 

Regards,

 

Andres V.
RKarm1
Beginner
54 Views

Hello Andres,

Yes, thank you, that helps. I'll probably use a MAX3386E on UART 0 and 1.

Cheers, Rob

Reply