raspberry pi cm3+的i2c使用的问题调试
本文是在树莓派上面使用i2c时候,运行时间太长就会随机出现错误:bcm2835 3f205000.i2c: Got unexpected interrupt (from firmware?) 调试解决方法。
之前有介绍到cm3的i2c:https://blog.csdn.net/u010299133/article/details/107006090?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160120761119195246624773%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=160120761119195246624773&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_blog_default-3-107006090.pc_v2_rank_blog_default&utm_term=i2c&spm=1018.2118.3001.4187
从raspberrypi pi cm3+的官方datasheet中发现,有两个i2c的外设soc。但是datasheet但是datasheet中并没有说是哪几个引脚对应到这两个i2c上面。
从官方的文档可以看出,cm3+启动的时候是GPU先启动,然后才是CPU启动。
所以先从GPU的设备树源文件dt-blob.dts开始着手查看。i2c0的引脚在这个dts文件中是被设置为sda0-pin0 scl0-pin1。并且注释也可以看出,这个i2c0也是mipi csi的i2c引脚。
并且从下面的dts文件中可发现,链接mipi dsi的lcd的i2c接口也是这个i2c:
从上述的分析可以发现,默认情况下,cm3+的mipi csi和mipi dsi使用的是同一个i2c0,并且他们的引脚在这个dts中配置的默认的引脚是pin0和pin1。在默认状态下i2c0只是链接一个camera和lcd的话,应该没有问题。那么如果要在这个i2c接口上再接一个i2c设备的话。需要在/boot/config.txt文件中添加dtparam=i2c_vc=on然后从起。就是在CPU端使用这个i2c0控制器。参考:https://blog.csdn.net/u010299133/article/details/107006090?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160015680219725254050991%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=160015680219725254050991&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v1~rank_blog_v1-3-107006090.pc_v1_rank_blog_v1&utm_term=i2c&spm=1018.2118.3001.4187
但是在/boot/config.txt中加入dtparam=i2c_vc=on后确实是可以用,但是会运行时间长了就会随机报出错误:Sep 10 15:16:51 raspberrypi kernel: [ 1407.804010] i2c-bcm2835 3f205000.i2c: Got unexpected interrupt (from firmware?)
解决的方法:在/boot/config.txt中注释掉:dtparam=i2c_vc=on。然后在/boot/config.txt中加入:dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=2,i2c_gpio_sda=0,i2c_gpio_scl=1
也就是在CPU端将这两个引脚模拟为i2c3,这时重启后在终端使用sudo i2cdetect -l可以查看到i2c-3,/dev/目录下也有i2c-3设备节点。
在操作新添加的i2c设备的时候,直接操作i2c-3就可以了。
raspberry pi cm3+的i2c使用的问题调试相关推荐
- 树莓派出微控制器了!Raspberry Pi Pico 只需 4 美元
整理 | 郑丽媛 来源 | CSDN(ID:CSDNnews) 昨天,树莓派搞了个大动作:推出了首款微控制器开发板 Raspberry Pi Pico!该开发板基于树莓派开发的全新芯片--RP2040 ...
- RASPBERRY PI PICO 树莓派PICO开发板双核高性能低功耗RP2040芯片
▌01 RASPBERRY PICO 1.简介 RaspBerry Pi Pico是一款低价格.高性能的微控制器电路板,具有丰富灵活的数字接口,主要特点包括有: RP2040 microcontrol ...
- Arduino vs Raspberry Pi vs BeagleBone
软硬件整合是今年一再被提及的话题,如今我们也可以看到不少硬件创业的成功案例,比如Jawbone Up.Pebble手表等可穿戴设备,它们可与用户的手机同步,实现软件与硬件的结合.通过硬件创新与软件整合 ...
- Raspberry Pi 3 计算模块,CPU性能提高了十倍
树莓派(Raspberry Pi)正式推出全新一代计算模块(Compute Module 3,以下简称CM3),与树莓派3采用的是同款处理器. Raspberry Pi 3 计算模块与树莓派3一样搭载 ...
- raspberry pi_使用Raspberry Pi配置业余无线电网关
raspberry pi APRS( 自动数据包报告系统 )是一个用于业余无线电的全球数字通信网络,提供了一个单一的国家频道,人们可以在其中监视周围地区的情况. APRS使用分组无线电(AX.25), ...
- raspberry pi_您应该为项目选择哪种Raspberry Pi?
raspberry pi Raspberry Pi计算机有许多不同的型号和版本. 但是哪一个最适合您的项目? 以下是可用主要模型的摘要: raspi.tv的Alex Eames 摄 . 经许可使用. ...
- 树莓派竟出微控制器了!Raspberry Pi Pico 只需 4 美元!
[CSDN 编者按]树莓派进军微控制器市场了!而这场改革的开始只需 4 美元? 整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 昨天,树莓派搞了个大动作:推出了首款微控制器开发板 Ra ...
- 构建Raspberry Pi,脉冲传感器和LCD的心跳计数器
我们的心率或脉搏是您的心跳每分钟的次数.正常心率因人而异.了解您的信息可以成为重要的心脏健康指标. 在本教程中,我们制作了一个心跳计数器,使用Raspberry Pi Zero在LCD上显示每分钟的心 ...
- 使用Raspberry Pi,DHT-22和OLED显示屏的ESP32 MicroPython MQTT教程
本教程演示了如何将DHT22温湿度传感器连接到运行MicroPython的ESP32.传感器数据使用MQTT协议无线传输到Raspberry Pi,结果显示在I2C OLED显示屏上. MQTT是一种 ...
最新文章
- linux剧集nfo生成器,精彩LINUX软件推荐
- CONVERSION_EXIT_SDATE_OUTPUT
- kibana安装与Kibana server is not ready yet
- 从飞机上看下雨是这样子,太震撼了!
- (29)FPGA原语设计(差分时钟转单端时钟)
- 内建函数(builtins)和functools
- dhcp snooping华为_使用DHCP snooping 功能防止DHCP Server仿冒者攻击(华为交换机)
- Halcon教程五:简单的条码识别案例
- 华为2019届校招笔试题
- 【服务器数据恢复】服务器raid5磁盘阵列分区丢失的数据恢复案例
- Android合理的使用闪屏
- nuxt启动报错: Error: getaddrinfo ENOTFOUND 0
- C语言 五种基本的算术运算符
- PCA针对TE过程(田纳西伊斯曼过程)数据的故障监测处理
- MYSQL8.0修改密码(仅限于修改密码)
- 沈阳大学生招聘2020计算机,2020—毕业生必备的各大就业信息网站汇总
- 很好的在线端口扫描网站
- appium 1.9.0下载地址
- 川轻化c语言实验答案,计算机二级c语言第4套笔试模拟试卷.doc
- 什么是中文域名,注册中文域名的好处有哪些?