硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6505|回复: 8
收起左侧

[有问必答] 硬件IIC和硬件SPI存在被中断打断的风险吗?

[复制链接]

20

主题

114

回帖

174

积分

初级会员

积分
174
发表于 2020-7-16 23:11:16 | 显示全部楼层 |阅读模式
软件模拟IIC和SPI存在中断打断的风险,造成读写错误的问题。但是硬件IIC和硬件SPI呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106875
QQ
发表于 2020-7-17 09:07:09 | 显示全部楼层
都有,关键还是看所操作设备的是电平敏感还是边沿敏感,如果是边沿敏感,基本没有影响。

像I2C那种低速设备,只要中断不是时间太长,再配置每次应答容错,基本都没有问题。
回复

使用道具 举报

334

主题

2033

回帖

3040

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3040
发表于 2020-7-17 13:47:59 | 显示全部楼层
硬件SPI可以配置成DMA发送,就不会被中断打断了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106875
QQ
发表于 2020-7-17 14:43:41 | 显示全部楼层
一楼的回复不全面,一楼是针对软件SPI和软件I2C说的。

而硬件SPI,硬件I2C,基本随便使用,随便被打断。因为用户写入的bit之间是不会被打断的,只是不同字节(半字或者字)之间的数据有被打断的问题,这个完全不用担心。

因为外接的设备,基本不限制各个字节什么时候发过来。
回复

使用道具 举报

20

主题

114

回帖

174

积分

初级会员

积分
174
 楼主| 发表于 2020-7-17 15:34:58 | 显示全部楼层
eric2013 发表于 2020-7-17 14:43
一楼的回复不全面,一楼是针对软件SPI和软件I2C说的。

而硬件SPI,硬件I2C,基本随便使用,随便被打断。 ...

对,其实就是写或读每个bit时,时序是否会被打断?软件的是存在这样的风险的,所有应该关闭中断。但是硬件的按理应该是没有关系的。是否正确?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106875
QQ
发表于 2020-7-17 15:46:01 | 显示全部楼层
magicoctoier 发表于 2020-7-17 15:34
对,其实就是写或读每个bit时,时序是否会被打断?软件的是存在这样的风险的,所有应该关闭中断。但是硬 ...

对,是这样的。

关于软件模拟还是我1楼的那个观点。

回复

使用道具 举报

210

主题

1044

回帖

1684

积分

至尊会员

More we do, more we can do.

积分
1684
发表于 2020-7-19 13:54:51 | 显示全部楼层
如果SPI或I2C的做主机,没有时序问题,这两个种接口都是同步通信。做从机的话,外设收发字节是硬件实现,数据处理要确保及时性就可以,不是不能被中断。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-7-20 11:19:41 | 显示全部楼层
打断也没关系 ,只要时间不要太长, 数据还是会通过时钟 一个一个打过来, 除非你发送的数据被 刷新了  或者被改变了。iic 是时钟的高电平 采用,所以SCL 几十个ms都没事的, spi 也是通过scl 边沿来采样的,打断没关系,要发送的数据不要被刷新改变就行
回复

使用道具 举报

3

主题

66

回帖

75

积分

初级会员

积分
75
发表于 2020-7-24 07:56:34 | 显示全部楼层
不管软件还是硬件 被中断又有什么关系呢 只要管脚电平不变 随便中断
如果管脚复用做其他事情 被中断就完犊子了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-8 12:27 , Processed in 0.170933 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表