5078|29

19

帖子

0

资源

一粒金砂(中级)

STM8S003F3P6,需两路IIC,如何做

STM8S003F3P6,如果需要两路I2C的话,一路用硬件IIC,一路用GPIO口软件模拟可以吗?
具体如何做?请给点参考资料或案例。
两路可以同时工作么?我是为了提高效率,如果不能同时处理数据,那就没用了。是不是需要在RAM各分一块地儿
此帖出自stm32/stm8论坛

回复

1万

帖子

13

资源

版主

硬件I2C可以用中断方式,软件i2C只能用查询方式,软件I2C的效率不会特别高。

回复

19

帖子

0

资源

一粒金砂(中级)

dcexpert 发表于 2015-10-30 10:40
硬件I2C可以用中断方式,软件i2C只能用查询方式,软件I2C的效率不会特别高。

中断方式和查询方式是什么意思?软件I2C不是可以自己设置速率么?STM8S003F3P6的硬件IIC只能支持100k,而我的从机可以支持到400k,那么我可以在STM8上用两个GPIO口软件模拟到400k的主机模式,从而解决这个问题?

回复

453

帖子

0

资源

纯净的硅(中级)

我从来都是用软件模拟的,另外,IIC是总线,按理说一个IIC接多个没问题,可以复用啊,什么情况下得用两路?

回复

19

帖子

0

资源

一粒金砂(中级)

Aragorn 发表于 2015-10-30 10:59
我从来都是用软件模拟的,另外,IIC是总线,按理说一个IIC接多个没问题,可以复用啊,什么情况下得用两路?

因为对速率有要求,我希望用两路,将丛机分为两批,提高扫描速率。
但也有人说:CPU只有一个,处理这边处理不了那一边。
那么就是说最后实现起来还是一路IIC?
STM8S003F3P6的硬件IIC只能支持100k,而我的从机可以支持到400k,那么我可以在STM8上用两个GPIO口软件模拟到400k的主机模式,从而解决这个问题?
模拟的话,是可以随便设置速率的吧?

点评

“但也有人说:CPU只有一个,处理这边处理不了那一边。”,这个也不尽然,如果有一路用的是硬件IIC,那至少通信过程中CPU资源会得到很大的解放,通信可以并行进行,只是通信结果只能分开处理而已。 至于你说用两  详情 回复 发表于 2015-10-30 11:29

回复

453

帖子

0

资源

纯净的硅(中级)

kenhgt 发表于 2015-10-30 11:05
因为对速率有要求,我希望用两路,将丛机分为两批,提高扫描速率。
但也有人说:CPU只有一个,处理这边 ...

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

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

用软件模拟,速率随便设置,不过会受限于CPU和IO的速率限制。

回复

19

帖子

0

资源

一粒金砂(中级)

Aragorn 发表于 2015-10-30 11:29
“但也有人说:CPU只有一个,处理这边处理不了那一边。”,这个也不尽然,如果有一路用的是硬件IIC,那至 ...

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

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

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

点评

CPU和IO速率很简单啊,你让CPU跑成100K的情况下,你能做到IO 400K?  详情 回复 发表于 2015-10-30 12:34

回复

3294

帖子

1

资源

版主

一路用硬件IIC,一路用GPIO口软件模拟可以

点评

要考虑MCU的处理能力吧?不然跟只是一路IIC效果一样? 而且两路的话,我的MCU最高只能100k,而从机支持400k,是不是倒不如只是一路GPIO口软件模拟400K速率的。  详情 回复 发表于 2015-10-30 11:48

回复

19

帖子

0

资源

一粒金砂(中级)

damiaa 发表于 2015-10-30 11:46
一路用硬件IIC,一路用GPIO口软件模拟可以

要考虑MCU的处理能力吧?不然跟只是一路IIC效果一样?

而且两路的话,我的MCU最高只能100k,而从机支持400k,是不是倒不如只是一路GPIO口软件模拟400K速率的。

点评

CPU跑那么慢?那你还I2C 400K。  详情 回复 发表于 2015-10-30 14:22

回复

453

帖子

0

资源

纯净的硅(中级)

kenhgt 发表于 2015-10-30 11:36
由于是个扩展设计,将原来的从设备数量增加一倍,担心按原来的扫描速度会不符合IEEE协议,因此关心扫描速 ...

CPU和IO速率很简单啊,你让CPU跑成100K的情况下,你能做到IO 400K?

点评

能用硬件的I2C口来软件模拟,从而提高速率到400k么?  详情 回复 发表于 2015-10-30 13:55

回复

19

帖子

0

资源

一粒金砂(中级)

本帖最后由 kenhgt 于 2015-10-30 14:00 编辑
Aragorn 发表于 2015-10-30 12:34
CPU和IO速率很简单啊,你让CPU跑成100K的情况下,你能做到IO 400K?

能直接用MCU的I2C口来软件模拟,从而提高速率到400k么?

点评

这个,有些异想天开了,硬件口得配置才能使用,一旦配置了,就只能按照他们的走,无法在他的运行过程中用软件对其作出修改……  详情 回复 发表于 2015-10-30 15:31

回复

3294

帖子

1

资源

版主

本帖最后由 damiaa 于 2015-10-30 14:49 编辑
kenhgt 发表于 2015-10-30 11:48
要考虑MCU的处理能力吧?不然跟只是一路IIC效果一样?

而且两路的话,我的MCU最高只能100k,而从机支 ...

CPU跑那么慢?那还I2C 400K。  

点评

是MCU只支持100k的I2C,我的从机可以支持400k的I2C。请看清楚  详情 回复 发表于 2015-10-30 14:30

回复

19

帖子

0

资源

一粒金砂(中级)

damiaa 发表于 2015-10-30 14:22
CPU跑那么慢?那你还I2C 400K。  1M 是1000K啊。

是MCU只支持100k的I2C,我的从机可以支持400k的I2C。请看清楚

回复

3294

帖子

1

资源

版主

本帖最后由 damiaa 于 2015-10-30 14:37 编辑

哦,理解意思错了。你说的CPU的 I2C只能是100K。从机可以支持400k的I2C 可以降低的。如果是设备,比如EEPROM之类的。直接用100K速度访问没问题。 如果是两个都是CPU,可以都降到100K。如果你CPU速度可以。那模拟400K I2C也是可以做到。

点评

你又错了 我现在有速率要求,想将MCU提到400k,所以才希望在GPIO口或者原来的I2C口,用软件模拟400K的I2C。  详情 回复 发表于 2015-10-30 14:38

回复

19

帖子

0

资源

一粒金砂(中级)

damiaa 发表于 2015-10-30 14:34
哦,理解意思错了。你说的CPU的 I2C只能是100K。从机可以支持400k的I2C 可以降低的。如果是设备,比如EEPRO ...

你又错了

我现在有速率要求,想将MCU提到400k,所以才希望在GPIO口或者原来的I2C口,用软件模拟400K的I2C。

回复

3294

帖子

1

资源

版主

本帖最后由 damiaa 于 2015-10-30 14:46 编辑

想将MCU提到400k,所以才希望在GPIO口或者原来的I2C口,用软件模拟400K的I2C?
如果你CPU速度可以。那模拟400K I2C也是可以做到。这话也能错?

应该是想将CPU的I2C口速度提升到400K吧。不是CPU速度。CPU当然要快点跑啊。

把几个速度混一块说了就出问题。

点评

STM8S003F3P6的硬件IIC只能支持100k,而我的从机可以支持到400k,那么我可以在STM8上用两个GPIO口软件模拟到400k的主机模式,从而解决这个问题  详情 回复 发表于 2015-10-30 14:42

回复

19

帖子

0

资源

一粒金砂(中级)

damiaa 发表于 2015-10-30 14:39
想将MCU提到400k,所以才希望在GPIO口或者原来的I2C口,用软件模拟400K的I2C?
如果你CPU速度可以。那模拟 ...

STM8S003F3P6的硬件IIC只能支持100k,而我的从机可以支持到400k,那么我可以在STM8上用两个GPIO口软件模拟到400k的主机模式,从而解决这个问题

回复

3294

帖子

1

资源

版主

好。理解了。就一个字。能。

点评

那能直接将MCU自带的I2C口,直接软件模拟到400k吗?  详情 回复 发表于 2015-10-30 14:48

回复

19

帖子

0

资源

一粒金砂(中级)

damiaa 发表于 2015-10-30 14:45
好。理解了。就一个字。能。

那能直接将MCU自带的I2C口,直接软件模拟到400k吗?

回复

3294

帖子

1

资源

版主

那是一样。你把它处初始化为GPIO就可以了。只当GPIO使用。

点评

就是MCU所有的GPIO口在初始化后都是等价的,都可以只当GPIO使用?那么芯片手册里的default alternate function和alternate function after remap又是什么?  详情 回复 发表于 2015-10-30 14:56

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

关闭
站长推荐上一条 1/5 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表