1. 程式人生 > >瑞芯微rk3128串列埠(uart)配置

瑞芯微rk3128串列埠(uart)配置

*****************************************************************

注:文章版權、論點歸創視微-王建忠所有,轉載請註明

*****************************************************************

畫了一個給智慧家居的用tvbox的板子,用到串列埠數傳。所以需要配置串列埠。

rk3128上有3組串列埠。

uart2用於debug。

uart1用於藍芽

uart0,給外部串列埠資料傳輸用。有點少了。不過畢竟3128是tvbox版本的晶片,價格便宜總不能要求和3288一樣多。

廢話少說,開始正題。

瑞芯微肯定已經把串列埠驅動都整合進去了。具體的串列埠流程我就不講了,不懂的自己搜尋linux串列埠開發。我這裡就直接講uart0如何配置就好了。

開啟3128/kernel/arch/arm/boot/dts/rk312x.dtsi

找到

	uart0: [email protected] {
		compatible = "rockchip,serial";
		reg = <0x20060000 0x100>;
		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
		clock-frequency = <24000000>;
		clocks = <&clk_uart0>, <&clk_gates8 0>;
		clock-names = "sclk_uart", "pclk_uart";
		reg-shift = <2>;
		reg-io-width = <4>;
		dmas = <&pdma 2>, <&pdma 3>;
		#dma-cells = <2>;
		pinctrl-names = "default";
		pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
		status = "disabled";
	};

將status = “disabled”;修改成status = “okay”;

然後編譯kernel。

由於rk3128是不開放root。所以,要再許可權文件裡,加上chmod 777 /dev/ttyS0

然後在windows電腦上,用串列埠除錯助手在測試:

傳送資料

echo csw uart0 test... > /dev/ttyS0(在adb shell視窗)

這時候,串列埠除錯助手應該接收“csw uart0 test...”

接收資料
cat /dev/ttyS0(在adb shell視窗)

用串列埠除錯助手傳送資料。

這時候,執行adb shell的命令視窗會列印資料。