0
edits
Changes
From IGEP - ISEE Wiki
no edit summary
= Overview=<brsection begin=overview /> =This How-To is meant to be a starting point for people to learn use UART for IGEP devices as quickly and easily as possible. In this How-To, we use [http://labs.isee.biz/index.php/Pre-installed_software_on_IGEP_Processor_Boards IGEP Firmware] and a program that use UART peripherals. This How-To was tested in: *[[IGEP firmware Yocto|IGEP firmware Yocto]] and [[Linux_Kernel_2.6.37.y|Kernel 2.6.37.y]] with IGEPv2.
=== Configure UART1 and UART3 in IGEP with RS232 levels on J960 connector ===
=== Check UARTs devices ===
<pre>dmesg | grep tty</pre>
The result will be similar at that:
<pre>root@localhostigep00x0:~/PROGRAM# dmesg | grep tty
[ 0.000000] console [tty0] enabled
[ 0.598999485198] serial8250omap_uart.0: ttyS0 ttyO0 at MMIO 0x4806a000 (irq = 72) is a ST16654OMAP UART0[ 0.784057485565] serial8250omap_uart.1: ttyS1 ttyO1 at MMIO 0x4806c000 (irq = 73) is a ST16654OMAP UART1[ 0.969085485931] serial8250omap_uart.2: ttyS2 ttyO2 at MMIO 0x49020000 (irq = 74) is a ST16654OMAP UART2[ 10.153503486267] serial8250omap_uart.3: ttyS3 ttyO3 at MMIO 0x49042000 (irq = 80) is a ST16654OMAP UART3root@localhostigep00x0:~/PROGRAM# </pre> Get information about UARTs, type: <pre>setserial -g /dev/ttyS[0123]</pre> The result will be similar at that: <pre>root@localhost:~/PROGRAM# setserial -g /dev/ttyS*/dev/ttyS0, UART: 16654, Port: 0x0000, IRQ: 72/dev/ttyS1, UART: 16654, Port: 0x0000, IRQ: 73/dev/ttyS2, UART: 16654, Port: 0x0000, IRQ: 74/dev/ttyS3, UART: 16654, Port: 0x0000, IRQ: 80root@localhost:~/PROGRAM# </pre> If you don't have setserial installed type: <pre>apt-get install setserial</pre> NOTE: Starting from Kernel 2.6.37.y, ttySx are named ttyOx. You need to edit source program.
=== Connect peripherals ===
=== Send some data ===
Use minicom microcom to prove it, open two terminals via SSH and log with root user:
Terminal 1:
<pre>minicom -D microcom /dev/ttyS0ttyO0</pre>
Terminal 2:
<pre>minicom -D microcom /dev/ttyS2 ttyO2 </pre> Type something in one terminal. {| cellspacing="1" cellpadding="1" width="200" border="1" align="center"|-| style="text-align: left;" | [[Image:Minicom screenshot.png|640x400px]]|}
= Schematics =
= Compile and run program =
Download [http://labs.isee.biz/images/e/eeindex.php/File:Uart-test-beta22-beta1.tar.bz2 program source]and extract it. As explained above, Before compiling the program uses GPIO for debug option via oscilloscope, it is necessary install user-gpio-drv.ko driver inside Linux Kernel, more information [[How to use GPIOs|here]] . There there are some interesting things to configure, before compiling the program. Open it, program and seek next lines:
<pre>//Define Array char size
#define SIZE 30
//Define Debug mode:0==Disable
#define DEBUG 0
//Set GPIO Debugger port
//Be sure that mux is correctly configured and GPIOs are not used
#define GPIO1 136158#define GPIO2 137 162</pre> Constant SIZE: it determines the max number of char than chars sended. Constant DEBUG: it can be sent<br> break program infinite loop part, useful to debug errors: 0 (infinite loop) or positive number determines loop max entrances.
Constant DEBUGWAIT: it can break program infinite loop part, it can be useful to debug some errors, 0 (infinite loop) or positive number determine loop configures select max entrances time in seconds.
= Testing UART =