sterben

sterben

0个粉丝

3

问答

0

专栏

0

资料

sterben  发布于  2022-11-11 13:53:51
采纳率 0%
3个问答
967

海思平台 i2c读写过多后挂死

通过i2c-dev来调用I2C接口的。然后我的程序是一个死循环通过i2c来不断读写外置芯片的寄存器地址来控制外置芯片的。但是循环到一定的时候I2C总线就会卡死,报错Open /dev/i2c-11 error!,SDA和SCL管脚都是高电平卡死,请问这个问题怎么解决?

我来回答
回答8个
时间排序
认可量排序

sterben

0个粉丝

3

问答

0

专栏

0

资料

sterben 2022-11-11 14:28:57
认可0

换了其他的I2C总线试了一下 都是一样的 我加了个计数器测试了一下 每次读写1020次以后都会卡死

冰糖炖雪梨

2个粉丝

0

问答

2

专栏

7

资料

冰糖炖雪梨 2022-11-11 17:31:32
认可0

需要使用示波器检测一下I2C的波形,看看波形是否遵循I2C协议,很有可能I2C Mastar是没有遵循I2C协议波形,信号线被slave拉死就出现这个情况。

刘兵

6个粉丝

3

问答

3

专栏

6

资料

刘兵 2022-11-14 18:37:54
认可1

我们试过一个I2C总线上面挂载了多片CVBS转BT656的芯片、挂载了AD采样芯片、挂载了时钟芯片,没出现这种情况。
CVBS转BT656的芯片在设置时初始化使用I2C,其他时候没有使用。大约每天会用0~100次,每次每片芯片操作大约操作读写上百次;
时钟芯片在上电时、时间偏差太大时操作一次,每次操作读写10来次;
AD采样芯片是低速AD,每秒钟操作5次。
你的应用,要着重检查:

  1. 要确保I2C总线的竞争,多片slave芯片要注意临界区;
  2. 多个程序同时读写一个芯片时要注意临界区;
  3. 从系统上排查是否有其他进程在操作I2C(可以用示波器,关掉你的软件时,是否还有波形出来)。
    临界区要从操作之前开始,一直到操作完毕再释放锁,操作期间应循环检查是否操作完毕,并在循环里面让出一个时间片,否则会占用CPU过大。

刘兵

6个粉丝

3

问答

3

专栏

6

资料

刘兵 2022-11-14 18:39:49
认可1

备注:我用的是HI3520DV300,LINUX3.10版本的核心,多个芯片的底层操作使用的是ko格式的内核级驱动,应用程序里面采用标准的open/read/write/close函数对驱动进行操作。

UncleRoderick

28个粉丝

14

问答

1

专栏

14

资料

UncleRoderick 2022-12-31 10:07:37
认可0

报错是打开设备节点失败,同时是1020次以后报错,Linux默认最大文件描述符数为1024,显然,这个报错是因为你打开设备节点之后没有关闭,重复打开设备节点,导致文件描述符用完了造成的

在学了在学了!

3个粉丝

36

问答

104

专栏

162

资料

在学了在学了! 2023-01-03 08:40:35
认可0

感觉楼上的怀疑很合理,可以排查一下这个

杨大大

0个粉丝

0

问答

7

专栏

12

资料

杨大大 2023-01-03 09:22:53
认可0

排查下打开设备节点的设置

柒号华仔

1个粉丝

0

问答

3

专栏

25

资料

柒号华仔 2023-01-08 23:58:26
认可0

I2C中断服务程序被意外屏蔽,或者多点操作

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区