Source-lib第三弹: i2c使用。
因为TQIMX6UL有两个 i2c,一个 i2c1空闲,一个i2c2用于电容屏触摸,rtc,声卡。
原理图如下:
在板子ls /dev/i2c* 发现只有一个i2c1,没有我们板子上这个驱动,查看设备树发现也没有。
自己移植吧.
在设备树中添加代码:
然后重新编译dtb。用命令make dtbs
然后把新的dtb更新到板子上。
再从新看下设备:
移植成功。
用i2c工具查看下:
因为TQIMX6UL有两个 i2c,一个 i2c1空闲,一个i2c2用于电容屏触摸,rtc,声卡。
原理图如下:
在板子ls /dev/i2c* 发现只有一个i2c1,没有我们板子上这个驱动,查看设备树发现也没有。
自己移植吧.
在设备树中添加代码:
/* add by Sourcelink */
&i2c1 {
clock_frequency = <100000>;//ckk
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>;
status = "okay";
};
/* add by Sourcelink */
pinctrl_i2c1: i2c1grp {
fsl,pins = <
MX6UL_PAD_CSI_MCLK__I2C1_SDA 0x4001b8b0
MX6UL_PAD_CSI_PIXCLK__I2C1_SCL 0x4001b8b0
>;
};
然后把新的dtb更新到板子上。
再从新看下设备:
移植成功。
用i2c工具查看下:

本文介绍了在imx6ul板子上移植i2c驱动,以支持MPU6050传感器。通过修改设备树、编译DTB和更新设备,成功挂载i2c设备。接着展示了如何使用i2c工具检测设备,并给出MPU6050的初始化、数据读取和转换的C代码实现。在实际应用中遇到与UART6冲突的问题,最后通过修改设备树解决了这个问题。
最低0.47元/天 解锁文章
1003

被折叠的 条评论
为什么被折叠?



