imx6ull 下 UART5问题
最近调试IMX6ULL新项目,配置了UART1~UART6(arm下映射成ttymxc0~ttymxc5),短接了RX和TX用minicom测试了UART1~ttymxc6,发现UART5只能发,不能收。后来配置成GPIO的方式调试,确认UART5的RX和TX的硬件连接没有问题。最后结合datasheet和imx6ull-pinfunc.h,发现是freescale官方配置管脚寄存器的值有错误。
下面记录一下:
管脚配置:
pinctrl_uart5: uart5grp {fsl,pins = <MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x1b0b1MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX 0x1b0b1>;};
......
&uart5 {pinctrl-names = "default";pinctrl-0 = <&pinctrl_uart5>;status = "okay";
};
imx6ull.dtsi 下包含了imx6ull-pinfunc.h 管脚寄存配置头文件
/** Copyright 2015-2016 Freescale Semiconductor, Inc.** This program is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License version 2 as* published by the Free Software Foundation.*/#include <dt-bindings/clock/imx6ul-clock.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include "imx6ull-pinfunc.h"
#include "imx6ull-pinfunc-snvs.h"
#include "skeleton.dtsi"/ {aliases {can0 = &flexcan1;can1 = &flexcan2;ethernet0 = &fec1;ethernet1 = &fec2;
打开imx6ull-pinfunc.h 发现,里面的内容就只有ENET2,LCD,CSI的一些管脚配置,其他部分跟IMX6UL的管脚配置头文件(imx6ul-pinfunc.h)共用
/*2 * Copyright (C) 2016 Freescale Semiconductor, Inc.3 *4 * This program is free software; you can redistribute it and/or modify5 * it under the terms of the GNU General Public License version 2 as6 * published by the Free Software Foundation.7 */89 #ifndef __DTS_IMX6ULL_PINFUNC_H10 #define __DTS_IMX6ULL_PINFUNC_H1112 #include "imx6ul-pinfunc.h"13 /*14 * The pin function ID is a tuple of15 * <mux_reg conf_reg input_reg mux_mode input_val>16 */17 #define MX6UL_PAD_ENET2_RX_DATA0__EPDC_SDDO08 0x00E4 0x0370 0x0000 0x9 0x018 #define MX6UL_PAD_ENET2_RX_DATA1__EPDC_SDDO09 0x00E8 0x0374 0x0000 0x9 0x019 #define MX6UL_PAD_ENET2_RX_EN__EPDC_SDDO10 0x00EC 0x0378 0x0000 0x9 0x020 #define MX6UL_PAD_ENET2_TX_DATA0__EPDC_SDDO11 0x00F0 0x037C 0x0000 0x9 0x021 #define MX6UL_PAD_ENET2_TX_DATA1__EPDC_SDDO12 0x00F4 0x0380 0x0000 0x9 0x022 #define MX6UL_PAD_ENET2_TX_EN__EPDC_SDDO13 0x00F8 0x0384 0x0000 0x9 0x023 #define MX6UL_PAD_ENET2_TX_CLK__EPDC_SDDO14 0x00FC 0x0388 0x0000 0x9 0x024 #define MX6UL_PAD_ENET2_RX_ER__EPDC_SDDO15 0x0100 0x038C 0x0000 0x9 0x025 #define MX6UL_PAD_LCD_CLK__EPDC_SDCLK 0x0104 0x0390 0x0000 0x9 0x026 #define MX6UL_PAD_LCD_ENABLE__EPDC_SDLE 0x0108 0x0394 0x0000 0x9 0x027 #define MX6UL_PAD_LCD_HSYNC__EPDC_SDOE 0x010C 0x0398 0x0000 0x9 0x028 #define MX6UL_PAD_LCD_VSYNC__EPDC_SDCE0 0x0110 0x039C 0x0000 0x9 0x029 #define MX6UL_PAD_LCD_RESET__EPDC_GDOE 0x0114 0x03A0 0x0000 0x9 0x030 #define MX6UL_PAD_LCD_DATA00__EPDC_SDDO00 0x0118 0x03A4 0x0000 0x9 0x031 #define MX6UL_PAD_LCD_DATA01__EPDC_SDDO01 0x011C 0x03A8 0x0000 0x9 0x032 #define MX6UL_PAD_LCD_DATA02__EPDC_SDDO02 0x0120 0x03AC 0x0000 0x9 0x033 #define MX6UL_PAD_LCD_DATA03__EPDC_SDDO03 0x0124 0x03B0 0x0000 0x9 0x034 #define MX6UL_PAD_LCD_DATA04__EPDC_SDDO04 0x0128 0x03B4 0x0000 0x9 0x035 #define MX6UL_PAD_LCD_DATA05__EPDC_SDDO05 0x012C 0x03B8 0x0000 0x9 0x036 #define MX6UL_PAD_LCD_DATA06__EPDC_SDDO06 0x0130 0x03BC 0x0000 0x9 0x037 #define MX6UL_PAD_LCD_DATA07__EPDC_SDDO07 0x0134 0x03C0 0x0000 0x9 0x038 #define MX6UL_PAD_LCD_DATA14__EPDC_SDSHR 0x0150 0x03DC 0x0000 0x9 0x039 #define MX6UL_PAD_LCD_DATA15__EPDC_GDRL 0x0154 0x03E0 0x0000 0x9 0x040 #define MX6UL_PAD_LCD_DATA16__EPDC_GDCLK 0x0158 0x03E4 0x0000 0x9 0x041 #define MX6UL_PAD_LCD_DATA17__EPDC_GDSP 0x015C 0x03E8 0x0000 0x9 0x042 #define MX6UL_PAD_LCD_DATA21__EPDC_SDCE1 0x016C 0x03F8 0x0000 0x9 0x04344 #define MX6UL_PAD_CSI_MCLK__ESAI_TX3_RX2 0x01D4 0x0460 0x0000 0x9 0x045 #define MX6UL_PAD_CSI_PIXCLK__ESAI_TX2_RX3 0x01D8 0x0464 0x0000 0x9 0x046 #define MX6UL_PAD_CSI_VSYNC__ESAI_TX4_RX1 0x01DC 0x0468 0x0000 0x9 0x047 #define MX6UL_PAD_CSI_HSYNC__ESAI_TX1 0x01E0 0x046C 0x0000 0x9 0x048 #define MX6UL_PAD_CSI_DATA00__ESAI_TX_HF_CLK 0x01E4 0x0470 0x0000 0x9 0x049 #define MX6UL_PAD_CSI_DATA01__ESAI_RX_HF_CLK 0x01E8 0x0474 0x0000 0x9 0x050 #define MX6UL_PAD_CSI_DATA02__ESAI_RX_FS 0x01EC 0x0478 0x0000 0x9 0x051 #define MX6UL_PAD_CSI_DATA03__ESAI_RX_CLK 0x01F0 0x047C 0x0000 0x9 0x052 #define MX6UL_PAD_CSI_DATA04__ESAI_TX_FS 0x01F4 0x0480 0x0000 0x9 0x053 #define MX6UL_PAD_CSI_DATA05__ESAI_TX_CLK 0x01F8 0x0484 0x0000 0x9 0x054 #define MX6UL_PAD_CSI_DATA06__ESAI_TX5_RX0 0x01FC 0x0488 0x0000 0x9 0x055 #define MX6UL_PAD_CSI_DATA07__ESAI_T0 0x0200 0x048C 0x0000 0x9 0x05657 #endif /* __DTS_IMX6ULL_PINFUNC_H */
对比datasheet发现,IMX6UL 和IMX6ULL关于UART5_RX的功能选择有些差异:
IMX6UL:(<mux_reg conf_reg input_reg mux_mode input_val>)
#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x00C0 0x034C 0x0644 0x0 0x5
IMX6ULL:(<mux_reg conf_reg input_reg mux_mode input_val>)
所以总得来说,解决IMX6ULL UART5无法接受数据的的问题,需要imx6ul-pinfunc.h下的
#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x00C0 0x034C 0x0644 0x0 0x5
改为:
#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x00C0 0x034C 0x0644 0x0 0x7
问题解决。
imx6ull 下 UART5问题相关推荐
- 数据库(DataBase)
MySQL 简介 数据库 数据库:DataBase,简称 DB,存储和管理数据的仓库 数据库的优势: 可以持久化存储数据 方便存储和管理数据 使用了统一的方式操作数据库 SQL 数据库.数据表.数据的 ...
- IMX6ULL UART5配置错误imx6ul-pinfunc.h
最近调试IMX6ULL新项目,配置了UART1UART6(arm下映射成ttymxc0ttymxc5),短接了RX和TX用minicom测试了UART1~ttymxc6,发现UART5只能发,不能收. ...
- 迅为linux下串口,迅为IMX6ULL开发板Linux RS232/485驱动实验(上)
在 arm 设备中串口是很常用的一个外设,不仅可以用来打印信息,还可以用于外接设备和其他传感器通信.根据不同的电平,串口分为 TTL 和 RS232,但是在Linux内核中的驱动程序是一样的,在串口上 ...
- 韦东山 IMX6ULL和正点原子_「正点原子Linux连载」第四十四章设备树下的LED驱动实验...
1)实验平台:正点原子Linux开发板 2)摘自<正点原子I.MX6U嵌入式Linux驱动开发指南> 关注官方微信号公众号,获取更多资料:正点原子 上一章我们详细的讲解了设备树语法以及在驱 ...
- <WIN10+Ubuntu18.04+IMX6ULL开发板------在手机热点下联网>链接过程整理
@TOC<WIN10+Ubuntu18.04+IMX6ULL开发板>链接过程整理 Ping----开发板/windows10/Ubuntu18.04 遇到的问题 1)Windows与Ubu ...
- Linux 设备树下的 platform 驱动实验基于正点原子IMX6ULL开发板
1 设备树下的 platform 驱动简介 platform 驱动框架分为总线.设备和驱动,其中总线不需要我们这些驱动程序员去管理,这个是 Linux 内核提供的,我们在编写驱动的时候只要关注于设备和 ...
- IMX6ULL 串口5修改
最近调试IMX6ULL新项目,配置了UART1UART6(arm下映射成ttymxc0ttymxc5),短接了RX和TX用minicom测试了UART1~ttymxc6,发现UART5只能发,不能收. ...
- 迅为IMX6ULL开发板Linux学习教程
1800+页使用手册(持续更新)+入门视频教程+实战视频教程 关注VX公众号:迅为电子 , 回复 :终结者,免费获取产品资料 让教程更细致,终结入门难! 所有教程由迅为原创,是迅为工作多年的工程师 ...
- linux下使用串口调试设备,Linux串口调试详解
测试平台 宿主机平台:Ubuntu 16.04.6 目标机:iMX6ULL 目标机内核:Linux 4.1.15 目标机添加串口设备 一般嵌入式主板的默认镜像可能只配置了调试串口,并用于 consol ...
最新文章
- maven(一 基本操作 命令 标签)
- js markdown chart flow
- P1616 疯狂的采药(洛谷,动态规划递推,完全背包)
- 自定义ListView中的分割线
- centos环境访问php显示源码,CentOS 6.8 搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展...
- 汇编语言第三章检测题
- hnu暑期实训之数塔 巧妙地设定一个偏移量
- 架构师成长之旅_第一篇:插件与框架是什么?
- java数组排序函数
- java腾讯云通信生成userSig
- 微信官方:刚刚拆散一桩19万元的姻缘
- 免费SSL证书申请和部署
- 【C++】实现一个日期计算器
- cyusb3014 设备插入 westbridge未识别问题220514
- 常见短信平台发送的号码有哪些?95开头、106开头短信发送号码区别说明
- 优思学院|六西格玛DMAIC,傻傻搞不清?
- jmeter非GUI输出性能测试报告报WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x
- PHP字符串计算函数
- 输出汉诺塔的移动步骤
- AC日记——蓬莱山辉夜 codevs 2830