Firefly-RK3288 Quad-Core Cortex-A17 Platform Buy

Quad-Core Cortex-A17 open source board, with Mali-T760 MP4 Graphics Processing, supports Android and Linux systems, has rich external extension interfaces.

UART

Update time:2018-04-13 Views:753

1 On Board Resource

There are 5 uarts on Firefly-RK3288 development board, which are uart0, uart1, uart2, uart3 and uart4.

  • uart0 is uart_bt, used for Bluetooth data transmission.

  • uart2 is uart_dbg, used for debugging.

  • uart1, uart3 and uart4 are used for external uart data communication. You can connect them via J10. Note that uart4 and SPI0 use the same pins.

  • All uarts have 64 bytes FIFO respectively, and support 5 bit, 6 bit,7 bit,8 bit serial data communication, in DMA-based or interrupt-based operation mode.

2 Configuration Steps

Here we use uart3 as an example.

2.1 Create DTS Node

The DTS node have already been created in file kernel/arch/arm/boot/dts/rk3288.dtsi, shown as following:

uart_gps: serial@ff1b0000 {
	compatible = "rockchip,serial";
	reg = <0xff1b0000 0x100>;
	interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
	clock-frequency = <24000000>;
	clocks = <&clk_uart3>, <&clk_gates6 11>;
	clock-names = "sclk_uart", "pclk_uart";
	current-speed = <115200>;
	reg-shift = <2>;
	reg-io-width = <4>;
	dmas = <&pdma1 7>, <&pdma1 8>;
	#dma-cells = <2>;
	pinctrl-names = "default";
	pinctrl-0 = <&uart3_xfer &uart3_cts &uart3_rts>;
	status = "disabled";
};

Note: uart_gps is defined in "aliases" node as: serial3 = &uart_gps;

The only thing you need to do is adding following code in file kernel/arch/arm/boot/dts/firefly-rk3288.dts:

&uart_gps {
    status = "okay";
    dma-names = "!tx", "!rx";pinctrl-0 = <&uart3_xfer &uart3_cts>;
    };

2.2 Compile and Flash Kernel

Turn on CONFIG_SERIAL_ROCKCHIP in kernel configuration, which will add corresponding  drivers/tty/serial/rk_serial.c to kernel. Then compile the kernel as followed:

make firefly-rk3288.img

After successful compilation, flash kernel.img and resource.img under kernel directory to the development board.

2.3 Data Commuincation

You can now communicate with the uart3 via a USB-to-serial adapter in your host PC. Follow the steps below:

(1) Connect the uart port.

将开发板 uart3 的 TX、RX、GND 引脚分别和主机串口适配器的 RX、TX、GND 引脚相连。

Connect the TX, RX, GND pins of uart3 to the serial adapter's RX, TX, GND pins respectively.

(2) Open a serial terminal in host PC.

Run kermit in a shell window, and set baud rate:

$ sudo kermit
C-Kermit> set line /dev/ttyUSB0
C-Kermit> set speed 115200
C-Kermit> set flow-control none
C-Kermit> connect
  • /dev/ttyUSB0 is the device file of USB-to-serial adapter.

  • baud is the "current-speed" attribute in the DTS node.

(3) Transmit data.

The device file for uart3 is /dev/ttyS3. Run the following command in device:

echo firefly uart3 test... > /dev/ttyS3

The serial terminal in the host PC will receive string "firefly uart3 test...".

(4) Receive data.

First, run the following command in device:

cat /dev/ttyS3

Then input string "Firefly uart3 test..." in the serial terminal. You can see the same string received in the device.