博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
i2c, i2c-gpio
阅读量:4181 次
发布时间:2019-05-26

本文共 765 字,大约阅读时间需要 2 分钟。

1:gpio可以配成多个function ,本质上是因为这些function在soc里面已经存在,但是为了不让soc有太多的pin脚,所以只用一个pin脚来复用。选function的过程,其实就是有个开关,选哪个function,就把开关打到哪个function上。

2:i2c controller 在soc内部就相当于一个function。 如果这个function 和 gpio 复用在一个pin上了,那么用的时候就需要指定 function 为 i2c(例如 func1)

3:gpio 模拟 i2c有什么怎么回事儿呢。

      这跟 gpio 和i2c 复用一个pin完全没关系, 这时候这个pin上没有i2c的function共选择。

      有些情况下,比如很早期,i2ccontroller很少, 但是用到的设备却很多; 又比如,有些设备对i2c传输的要求很特殊,比如hdmi对i2c clck的要求只是10k,特别的低,很有可能有些i2c controller 满足不了。这些时候,就可以用gpio来模拟。 所以,首先要保证,这2个pin的设置为gpio。

      由于gpio本身之后拉高拉低的功能,但是i2c又是需要协议的,所以要完成gpio 模拟成i2c的功能需要 以下几个主要文件:

      1:  I2c-gpio.c (y:\kernel\drivers\i2c\busses)      对gpio进行高低,和clck的基本操作。

      2:     I2c-algo-bit.c (y:\kernel\drivers\i2c\algos)     i2c 协议的操作。

4:对于非gpio模拟的i2c,就不需要格外的 driver,只需要 正常的 i2c_register_board_info  ,或者 platform_device_register即可使用。

  

转载地址:http://hvhai.baihongyu.com/

你可能感兴趣的文章
linux 查看ip
查看>>
go中map与xml互转
查看>>
java进程占用CPU过高
查看>>
CSDN-markdown编辑器
查看>>
拷贝整个目录到另一台服务器并排除log目录
查看>>
拜托,面试别再问我跳表了!
查看>>
android ArrayList<String> 转 String[]
查看>>
RecyclerView baseadapter
查看>>
Android中应用程序如何获得系统签名权限
查看>>
Recycler表格(excelPanel)
查看>>
android一行代码实现沉浸式布局效果
查看>>
json, recyclerView问题
查看>>
cmake处理多源文件目录的方法
查看>>
Service Intent must be explicit
查看>>
android studio SDK开发
查看>>
studio 统计代码的行数
查看>>
字符数组和16进制互换
查看>>
PHP项目中出现致命错误: Class 'Redis' not found
查看>>
There is no tracking information for the current branch.
查看>>
fatal: refusing to merge unrelated histories
查看>>