查看: 2178|回复: 5

[评测分享] 【ALINX AXU2CGB试用】BOSCH BMP280 气压传感器驱动适配调试 + 视频

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 597 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2021-7-26 22:49:45 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 robe.zhang 于 2021-7-26 22:54 编辑

    【ALINX AXU2CGB试用】BOSCHBMP280 气压传感器驱动适配调试 + 视频

    BOSCH BMP280 气压传感器模块:
    1.png
    2.png
    接入黑金开发板:
    3.png
    电路设计
    4.png
    控制器驱动配置如下:
    5.png
    客户端驱动配置如下
    6.png
    设备树配置如下:
    7.png
    重新编译:
    8.png
    重启,I2c-2 是本文使用的总线
    9.png
    自己写应用程序,获取气压和温度数据,本系列文章聚焦在 linux 驱动,不说应用程序
    获取气压和温度数据视频:
    https://v.youku.com/v_show/id_XNTE4NjI3MTc2NA==.html






    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-1-31 23:05
  • 签到天数: 144 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2021-7-27 09:35:59 | 显示全部楼层
    把驱动写到内核里面了
    会不会对I2C总线造成占用啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 597 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2021-7-27 13:00:06 | 显示全部楼层
    jobszheng5 发表于 2021-7-27 09:35
    把驱动写到内核里面了
    会不会对I2C总线造成占用啊

    了解一下i2c协议,用才占用,不用不占
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-1-31 23:05
  • 签到天数: 144 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2021-7-28 14:13:39 | 显示全部楼层
    关键就在这个“用才占用”:
    是我打开这个fd才算占用,还是write,read等op的时候才算占用?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 597 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2021-7-28 15:33:35 | 显示全部楼层
    本帖最后由 robe.zhang 于 2021-7-28 15:50 编辑
    jobszheng5 发表于 2021-7-28 14:13
    关键就在这个“用才占用”:
    是我打开这个fd才算占用,还是write,read等op的时候才算占用? ...

    怎么样都不能保证算占用,也不能保证算不占用。

    首选 打开 fd ,read ,write,这一波操作是 linux 系统之上的操作,linux 本身是操作系统,是代替用户来管理硬件的,用户无法直接操作硬件,即使打开 fd,read,write,仅仅是操作文件,是否传递到驱动上,是否占用 iic 总线,都不可知,也不可控,未知

    iic 驱动中还有 regmap,即使有读写操作也不一定就立马占用 iic 总线,立马读写器件,而是有个 cache 机制,先把要传输的数据放进 cache 中,稍后再传输,稍后什么时候传输,linux 系统也不知,也不可控,更何况于用户,使用 linux 来传输数据,用户就更不可知也不可控。

    只要你读写了 iic 对应的文件,linux 系统很快会把你的数据传输到器件上,但是什么时刻开始传,你不知不可控。传完,iic 总线就是空闲的,什么时刻传完,你仍不知不可控。iic 总线的闲忙状态,你不知不可控。

    linux 系统之上,你只管操作文件,操作完了,就认为完成了就行。linux 系统什么时候占用 iic 总线,什么时候把你的数据传输给器件,那是 linux 的事情,和你没关,不是你操心的,你未知也不可控。这个延迟很短,但是有多短,不知道。

    不要用单片机直接操作硬件的思维,来套用 linux 系统
    你读写文件的时间,并不对应 linux 读写 iic 器件占用 iic 总线的时间。

    这也是为什么往 u 盘拷贝数据完了,点一下弹出 u 盘,才放心拔的原因。弹出 u 盘才能保证,操作系统把你认为已经拷贝完的数据,实际还没有拷贝完的数据,拷贝到 u 盘。

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-1-31 23:05
  • 签到天数: 144 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2021-7-28 16:40:24 | 显示全部楼层
    谢谢
    把我不明白的地方讲清楚了,也把我混淆的地方指出来了。

    厉害!
    膜拜一下
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-23 09:36 , Processed in 0.168651 second(s), 27 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.