原创 linux下i2c驱动要点

2009-4-29 09:36 2305 10 10 分类: MCU/ 嵌入式

数据结构i2c_msg包含的只是一个方向上的数据,比如要向i2c总线发送的或者要从i2c总线接收的。


一次transfer是从一个START开始到一个STOP结束的过程(可以有多个START,但只能有一个STOP)。一次transfer可包含多个msg。


对于组合式读写,一般是从i2c设备读数据的情况,首先需要一个msg将地址(片内偏移地址或者还包含设备地址,如果i2c控制器没有设置设备地址的寄存器的话)发到i2c上,然后换下一个msg保存从指定i2c设备读取的数据。切换msg,重发START信号(除非i2c控制器支持NO START模式)


简单读写和组合读写的区别是简单读写依靠i2c设备内部的地址指针进行偏移,无需发送内部偏移地址到总线上,故无法指定从何处读写。而组合读写则是带地址下去的,能够直接从指定地址读写。


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条