Difference between revisions of "Serial ports usage on Linux"
From ArmadeusWiki
(→Generalities) |
(→Console port) |
||
Line 12: | Line 12: | ||
==Console port== | ==Console port== | ||
* Console port is the default serial port on which you can interact with the board (U-Boot and Linux): | * Console port is the default serial port on which you can interact with the board (U-Boot and Linux): | ||
− | ** it is serial port 0 (-> ''/dev/ttySMX0'' or ''/dev/ttymxc0) on [[APF9328]] | + | ** it is serial port 0 (-> ''/dev/ttySMX0'' or ''/dev/ttymxc0) on [[APF9328]], [[APF27]] & [[OPOS6UL]] |
** it is serial port 2 (-> ''/dev/ttymxc2'') on [[APF51]] | ** it is serial port 2 (-> ''/dev/ttymxc2'') on [[APF51]] | ||
** it is debug serial port 0 (-> ''/dev/ttyAM0'' (2.6.35 kernel) or ''/dev/ttyAMA0'' (3.x kernels)) on [[APF28]] | ** it is debug serial port 0 (-> ''/dev/ttyAM0'' (2.6.35 kernel) or ''/dev/ttyAMA0'' (3.x kernels)) on [[APF28]] | ||
* So, without software modifications, this port is not available to connect a MODEM or any other RS-232 device. If you want to use it as a normal serial port on Linux then: | * So, without software modifications, this port is not available to connect a MODEM or any other RS-232 device. If you want to use it as a normal serial port on Linux then: | ||
** be sure that your device won't send data back in response of U-Boot boot's sequence | ** be sure that your device won't send data back in response of U-Boot boot's sequence | ||
− | ** change U-Boot consoledev envt variable, to tell Linux to display console on the LCD (for example): | + | ** change U-Boot ''consoledev'' envt variable, to tell Linux to display console on the LCD (for example): <pre class="apf> BIOS> setenv consoledev tty0</pre> |
==Changing port parameters== | ==Changing port parameters== |
Revision as of 22:45, 20 July 2017
How to use the APF's serial ports on Linux.
Contents
[hide]Generalities
On Linux, all serial ports are driven the same way. Only their device nodes are changing to reflect the port type:
- i.MX processor internal ports:
- /dev/ttyUSBN for USB <-> serial converters
- /dev/ttySnN for 16550 compatible FPGA's IP
Console port
- Console port is the default serial port on which you can interact with the board (U-Boot and Linux):
- So, without software modifications, this port is not available to connect a MODEM or any other RS-232 device. If you want to use it as a normal serial port on Linux then:
- be sure that your device won't send data back in response of U-Boot boot's sequence
- change U-Boot consoledev envt variable, to tell Linux to display console on the LCD (for example):
BIOS> setenv consoledev tty0
Changing port parameters
- To get current parameters (change serial port device name depending on your board, here ttySMX0):
# stty -F /dev/ttySMX0 speed 115200 baud; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ^J; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -brkint ixoff -imaxbel -iexten -echoctl
- To only get actual speed:
# stty -F /dev/ttySMX0 speed 115200
- By default serial ports are configured as terminal emulator. If you want to use them as "raw" serial port you will have to do first (example for port 1):
# stty -F /dev/ttySMX1 raw # stty -F /dev/ttySMX1 -echo -echoe -echok
- To change baudrate of port 2 to 115200 :
# stty -F /dev/ttySMX2 115200
Sending/Receiving data
- It is simple as opening the device as a file and writing data to it:
# echo "HELLO" > /dev/ttySMX0
- To receive data (ASCII in that case):
# cat /dev/ttySMX0