查看“第五课--MicroWRT I2C 使用”的源代码
←
第五课--MicroWRT I2C 使用
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | 本片教程主要介绍如何添加I2C驱动,在linux系统中,I2C设备的驱动从硬件上可以通过两种方式来实现,一是通过2个GPIO口来模拟I2C总线, 这也是GPIO引脚复用的结果。另外一种是通过I2C控制器来操作I2C设备。这两种驱动的方式也不尽相同。第一种方式的特点是,应用层程序员 要熟悉相关的硬件,在用户层程序中封装I2C消息结构,并完成时序的控制。第二中方式可以充分利用linux i2c子系统的功能,用户不需要知道太多 的硬件信息,通过API来完成对设备的访问。本教程主要介绍第一种方式,来添加I2C驱动。并且分别介绍在kernel和openwrt中配置,添加I2C驱动。 ==在kernel 中添加I2C 驱动== 1.本教程中使用MZK-750DHP.dts,打开文件并添加如下代码。 $vim MZK-750DHP.dts palmbus@10000000 { ... ... i2c@900 { compatible = "ralink,mt7620n-i2c", "ralink,rt2880-i2c"; reg = <0x900 0x100>; resets = <&rstctrl 16>; reset-names = "i2c"; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&i2c_pins>; status = "okay"; }; ... ... }; 2.下面代码是将i2c引脚释放为gpio,因此要将里i2c从ralink,group里去掉。 修改之后的代码如下: pinctrl { state_default: pinctrl0 { gpio { ralink,group = "spi refclk", "rgmii1","wled"; ralink,function = "gpio"; }; }; i2c_pins: i2c { i2c { ralink,group = "i2c"; ralink,function = "i2c"; }; }; }; 3.在kernel里配置I2C $make kernel_menuconfig [[File:i2c-1.jpg|800px|thumb|center|I2C Configuration]] [[File:i2c-2.jpg|800px|thumb|center|I2C Configuration]] [[File:i2c-3.jpg|800px|thumb|center|I2C Configuration]] [[File:i2c-4.jpg|800px|thumb|center|I2C Configuration]] 4:编译: $make 5:刷新固件 将新固件重新烧写到microWRT上,在microWRT上执行以下操作 $cd /dev $ls 可以看到i2c-0 [[File:i2c-5.jpg|800px|thumb|center|I2C Configuration]] $ls -all i2c-0 [[File:i2c-6.jpg|800px|thumb|center|I2C Configuration]] 添加i2c 驱动成功。 ==在openWRT里添加I2C== 1. 在trunk 目录下运行如下命令 $make menuconfig [[File:i2c-7.jpg|800px|thumb|center|I2C Configuration]] [[File:i2c-8.jpg|800px|thumb|center|I2C Configuration]] [[File:i2c-9.jpg|800px|thumb|center|I2C Configuration]] 编译完成后,会生成i2c-dev.ko,用如下命令加载驱动并查看。 $insmod i2c-dev.ko $cd /dev $ls [[File:i2c-5.jpg|800px|thumb|center|I2C Configuration]] dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。 它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。 |}
返回至
第五课--MicroWRT I2C 使用
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息