3784|8

34

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

四轴,各模块和STM32的通讯方式? [复制链接]

在四轴中,各模块采集的信息是怎么传递给STM32,优先采用I2C还是SPI?个人觉得采用I2C,和多个芯片通讯,采用I2C更方便,各位大牛怎么看?

最新回复

其实这种高频率控制中,之所以说IIC慢,是说的它减弱实效性,相当于增加了滞后环节,不利于控制。 如果没听明白,这么解释吧,我实测过400K的IIC在6轴MEMS器件中读取数据也就耗时1ms左右,2M的SPI大约200微妙的样子,而通常四旋翼的控制周期是5ms或者2.5ms,节省的这几百毫秒对于单片机的性能来说并没有什么影响,但是对于控制来说确实致命的,在自动控制原理中我们知道给一个稳定的控制加一个延时会严重影响系统的稳定性。因为IIC的慢速度,读到的加速度计陀螺仪的值已经是1ms以前的了,用以前的值来控制现在的状态,想想都知道后果会怎么样了。这点我在理论上和实际中都是验证过的,四旋翼还好,由于四旋翼四个旋翼具有陀螺效应,本身就具有一定的自稳特性,控制延时长一点没什么关系,若是像平衡车这样的,一点点延时影响都是巨大的。  详情 回复 发表于 2016-10-15 00:48
点赞 关注
 

回复
举报

1059

帖子

1

TA的资源

版主

沙发
 
SPI,I2C太慢了
 
 

回复

732

帖子

2

TA的资源

纯净的硅(中级)

板凳
 
使用IIC。IIC的地址寻芯片的机制可以保证两根线和多个芯片通信,虽然SPI也可以使用片选信号来实现一个总线上挂载多个设备的功能,但是还是要为每个芯片增加一根片选线,并且四轴用的加速度和陀螺仪还有磁场和气压传感器的数据更新速率较低,使用IIC已经完全满足采样速度。

点评

有人说,STM32的I2C功能有缺陷,都是采用GPIO来模拟的,这样可行吗?  详情 回复 发表于 2016-10-14 15:29

赞赏

1

查看全部赞赏

个人签名亚里士缺德
 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

4
 
汤权 发表于 2016-10-14 14:21
使用IIC。IIC的地址寻芯片的机制可以保证两根线和多个芯片通信,虽然SPI也可以使用片选信号来实现一个总线 ...

有人说,STM32的I2C功能有缺陷,都是采用GPIO来模拟的,这样可行吗?

点评

具体我不知道stm32的硬件IIC是不是真的有bug,但是很难用那是真的!我的四轴和其他使用加速度计和陀螺仪的项目上都使用的STM32的软件模拟IIC的,使用延时控制好IIC频率还是非常稳定的。  详情 回复 发表于 2016-10-14 15:52
 
 
 

回复

4177

帖子

9

TA的资源

五彩晶圆(高级)

5
 
iic 你是采用软件模拟还是使用32本身的硬件iic呢?iic也可以的,我觉得,只不过你要把那个WP引脚使用了哦。这个是写保护,防止误操作的哦。

点评

我准备使用软件上的GPIO来模拟I2C,就是不知道会不会产生什么不好的影响?  详情 回复 发表于 2016-10-14 15:43
 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

6
 
huaiqiao 发表于 2016-10-14 15:36
iic 你是采用软件模拟还是使用32本身的硬件iic呢?iic也可以的,我觉得,只不过你要把那个WP引脚使用了哦。 ...

我准备使用软件上的GPIO来模拟I2C,就是不知道会不会产生什么不好的影响?

点评

我觉得这个要看你用iic来通讯的模块的数量,如果比较多的话,还是考虑使用硬件iic,毕竟调度硬件自身的iic可能会更好一些。当然模拟iic也未尝不可,这个确实没有比较多两者的差异。  详情 回复 发表于 2016-10-14 15:51
 
 
 

回复

4177

帖子

9

TA的资源

五彩晶圆(高级)

7
 
╰◆◇敷衍╯ 发表于 2016-10-14 15:43
我准备使用软件上的GPIO来模拟I2C,就是不知道会不会产生什么不好的影响?

我觉得这个要看你用iic来通讯的模块的数量,如果比较多的话,还是考虑使用硬件iic,毕竟调度硬件自身的iic可能会更好一些。当然模拟iic也未尝不可,这个确实没有比较多两者的差异。
 
 
 

回复

732

帖子

2

TA的资源

纯净的硅(中级)

8
 
╰◆◇敷衍╯ 发表于 2016-10-14 15:29
有人说,STM32的I2C功能有缺陷,都是采用GPIO来模拟的,这样可行吗?

具体我不知道stm32的硬件IIC是不是真的有bug,但是很难用那是真的!我的四轴和其他使用加速度计和陀螺仪的项目上都使用的STM32的软件模拟IIC的,使用延时控制好IIC频率还是非常稳定的。
个人签名亚里士缺德
 
 
 

回复

655

帖子

29

TA的资源

版主

9
 
其实这种高频率控制中,之所以说IIC慢,是说的它减弱实效性,相当于增加了滞后环节,不利于控制。
如果没听明白,这么解释吧,我实测过400K的IIC在6轴MEMS器件中读取数据也就耗时1ms左右,2M的SPI大约200微妙的样子,而通常四旋翼的控制周期是5ms或者2.5ms,节省的这几百毫秒对于单片机的性能来说并没有什么影响,但是对于控制来说确实致命的,在自动控制原理中我们知道给一个稳定的控制加一个延时会严重影响系统的稳定性。因为IIC的慢速度,读到的加速度计陀螺仪的值已经是1ms以前的了,用以前的值来控制现在的状态,想想都知道后果会怎么样了。这点我在理论上和实际中都是验证过的,四旋翼还好,由于四旋翼四个旋翼具有陀螺效应,本身就具有一定的自稳特性,控制延时长一点没什么关系,若是像平衡车这样的,一点点延时影响都是巨大的。
个人签名QQ:252669569
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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