STM8S003F3P6,需两路IIC,如何做

2019-03-23 16:54发布

STM8S003F3P6,如果需要两路I2C的话,一路用硬件IIC,一路用GPIO口软件模拟可以吗?
具体如何做?请给点参考资料或案例。
两路可以同时工作么?我是为了提高效率,如果不能同时处理数据,那就没用了。是不是需要在RAM各分一块地儿
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
dcexpert
1楼-- · 2019-03-24 03:20
 精彩回答 2  元偷偷看……
kenhgt
2楼-- · 2019-03-24 03:50
dcexpert 发表于 2015-10-30 10:40
硬件I2C可以用中断方式,软件i2C只能用查询方式,软件I2C的效率不会特别高。

中断方式和查询方式是什么意思?软件I2C不是可以自己设置速率么?STM8S003F3P6的硬件IIC只能支持100k,而我的从机可以支持到400k,那么我可以在STM8上用两个GPIO口软件模拟到400k的主机模式,从而解决这个问题?
Aragorn
3楼-- · 2019-03-24 06:31
我从来都是用软件模拟的,另外,IIC是总线,按理说一个IIC接多个没问题,可以复用啊,什么情况下得用两路?
kenhgt
4楼-- · 2019-03-24 11:04
 精彩回答 2  元偷偷看……
Aragorn
5楼-- · 2019-03-24 15:51
kenhgt 发表于 2015-10-30 11:05
因为对速率有要求,我希望用两路,将丛机分为两批,提高扫描速率。
但也有人说:CPU只有一个,处理这边 ...

“但也有人说:CPU只有一个,处理这边处理不了那一边。”,这个也不尽然,如果有一路用的是硬件IIC,那至少通信过程中CPU资源会得到很大的解放,通信可以并行进行,只是通信结果只能分开处理而已。

至于你说用两路提高扫描速率,这个原由可以理解,但也要看应用场合。如果应用场合本身没有高要求,速度慢点也没关系。比如如果只是读温度传感器的温度值,其实速度根本不要求有多高。不知道你什么应用场合?

用软件模拟,速率随便设置,不过会受限于CPU和IO的速率限制。
kenhgt
6楼-- · 2019-03-24 21:26
Aragorn 发表于 2015-10-30 11:29
“但也有人说:CPU只有一个,处理这边处理不了那一边。”,这个也不尽然,如果有一路用的是硬件IIC,那至 ...

由于是个扩展设计,将原来的从设备数量增加一倍,担心按原来的扫描速度会不符合IEEE协议,因此关心扫描速度,希望这次保证没问题。

我就是担心即使并行传输,但是到了MCU的处理能力还是跟一路IIC相同,那这样的设计就没有意义了。

CPU和IO的速率限制可以再解释清楚一点?

一周热门 更多>