天嵌 ARM开发社区

 找回密码
 注册
查看: 3288|回复: 1

I.MX6Q学习笔记——新版BSP之UART移植

[复制链接]
freewing 发表于 2015-5-22 09:45:25 | 显示全部楼层 |阅读模式
  本文由博主girlkoo编写,关于E9与TQIMX6Q开发平台UART移植的文章。
  我们在内核启动时候已经配置系统了UART,但是tqimx6q这块开发板上引出了imx6q的5路TTL接口,其中,uart1和uart2转成232接口,本文将配置这5路Uart接口。

  DTS配置

  由于内核中已经有imx6q的uart控制器驱动,因此,我们只需要配置各端口的pinctrl即可。根据tqimx6q的原理图,我们对我们的DTS作如下修改:

  1. ...  
  2.   
  3. &uart1 {  
  4.     pinctrl-names = "default";  
  5.     pinctrl-0 = <&pinctrl_uart1_2>;  
  6.     status = "okay";  
  7. };  
  8.   
  9. &uart2 {  
  10.     pinctrl-names = "default";  
  11.     pinctrl-0 = <&pinctrl_uart2_3>;  
  12.     status = "okay";  
  13. };  
  14.   
  15. &uart3 {  
  16.     pinctrl-names = "default";  
  17.     pinctrl-0 = <&pinctrl_uart3_2>;  
  18.     status = "okay";  
  19. };  
  20.   
  21. &uart4 {  
  22.     pinctrl-names = "default";  
  23.     pinctrl-0 = <&pinctrl_uart4_1>;  
  24.     status = "okay";  
  25. };  
  26.   
  27. &uart5 {  
  28.     pintctrl-names = "default";  
  29.     pinctrl-0 = <&pinctrl_uart5_1>;  
  30.     status = "okay";  
  31. };  
  32.   
  33. ...  
  34.   
  35. &iomuxc {  
  36.     pinctrl-names = "default";  
  37.   
  38.     uart1 {  
  39.         pinctrl_uart1_2: uart1grp-2 {  
  40.             fsl,pins = <  
  41.                 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1  
  42.                 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1  
  43.                 MX6QDL_PAD_EIM_D20__UART1_RTS_B 0x1b0b1  
  44.                 MX6QDL_PAD_EIM_D19__UART1_CTS_B 0x1b0b1  
  45.             >;  
  46.         };  
  47.     };  
  48.   
  49.     uart2 {  
  50.         pinctrl_uart2_3: uart2grp-3 {  
  51.             fsl,pins = <  
  52.                 MX6QDL_PAD_EIM_D26__UART2_TX_DATA   0x1b0b1  
  53.                 MX6QDL_PAD_EIM_D27__UART2_RX_DATA   0x1b0b1  
  54.                 MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x1b0b1  
  55.                 MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x1b0b1  
  56.             >;  
  57.         };  
  58.     };  
  59.   
  60.     uart3 {  
  61.         pinctrl_uart3_2: uart3grp-2 {  
  62.             fsl,pins = <  
  63.                 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1  
  64.                 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1  
  65.             >;  
  66.         };  
  67.     };  
  68.   
  69.     uart5 {  
  70.         pinctrl_uart5_1: uart5grp-1 {  
  71.             fsl,pins = <  
  72.                 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1  
  73.                 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1  
  74.             >;  
  75.         };  
  76.     };  
  77. };  
复制代码


  修改之后重新编译并烧写DTB,新的DTB可以正常启动内核。

  测试方法

  测试串口的方式有很多,可以编写专门的测试程序来测试,这方面的资料网上可以找到很多,我这里就不举例了。本文使用了偷懒的方式,在uboot中将bootargs临时修改为如下内容:
  1. setenv bootargs 'noinitrd console=ttymxc1,115200 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/linuxrc'  
复制代码


  然后执行boot指令,这时,连接到uart2的串口终端就可以看到内核的启动log了,当然也可以正常的进入linux控制台。其它三个串口都是TTL方式的,我手头上没有这种电平转换模块,就不测试了。

  至此,tqimx6q的全部串口都移植好了。有任何疑问可以留言讨论。



bagelzb` 发表于 2017-1-19 10:40:38 | 显示全部楼层
怎样测试串口
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-18 22:42 , Processed in 1.046875 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表