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:
- Ubuntu 16.04 LTS
- Ubuntu Mate 16.04 LTS
- Ubuntu Mate 16.10
[ 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: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
/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?
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.
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.
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.
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.