你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 8584|回复: 0

关于STM32的I2C问题集锦

[复制链接]

21

主题

30

回帖

0

蝴蝶豆

初级会员

最后登录
1970-1-1
发表于 2012-5-8 11:03:12 | 显示全部楼层 |阅读模式
1、I2C上电过程故障,复位后即正常,有可能是什么原因?
问:如题:I2C1总线上挂有一片24C02(Addr:0xA0)和另一个I2C总线器件(Addr:0xAC),上电后配置完毕I2C1(库操作,100K)后既执行24C02的读写,完毕后,执行另一I2C器件的读写。
现象1:每次断电、再重新上电后,程序一直停在24C02的写过程中,另一片I2C芯片也不响应;
现象2:如果是直接按复位键,则程序可以顺利执行,并且两片I2C器件均可正常访问和读取。
请问:有可能是什么原因造成这样的问题,SCK速度100K,示波器显示SCK50%占空比。

答:这个问题是,由于上次写E2的时候导致I2C总线错误,而E2这个时候并不能正确的接收数据。解决方法,断电的时候或者操作完毕以后将I2C总线停止,或者断电的时候将E2断电。

答:你的電路啟動的RESET的時間可能不夠。因為你提到按下RESET按鍵之後就都可以正常動作。哪表示你的POWER ON Reset 有問題。
 
2、STM32的I2S问题
问: 最近有个项目,想用STM32录播音频,不知道STM32的I2S接口能不能和CODEC的I2S接口,同时录音、播放,就是通过CODEC的AD进来的数据同时发送到CODEC的DA输出。有没有相关的参考设计?
答: 这个是可以的!我用了wm8974!用两个i2s口实现!stm32f4是全双工的!只用一个就行了!
3、STM32的I2S问题
问:
最近有个项目,想用STM32录播音频,不知道STM32的I2S接口能不能和CODEC的I2S接口,同时录音、播放,
就是通过CODEC的AD进来的数据同时发送到CODEC的DA输出。有没有相关的参考设计?答: 这个是可以的!我用了wm8974!用两个i2s口实现!stm32f4是全双工的!只用一个就行了!很好用有问题可以liufeng5@sohu.com咨询  
 
4、I2C上电过程故障,复位后即正常,有可能是什么原因?
问:I2C1总线上挂有一片24C02(Addr:0xA0)和另一个I2C总线器件(Addr:0xAC),上电后配置完毕I2C1(库操作,100K)后既执行24C02的读写,完毕后,执行另一I2C器件的读写。 
现象1:每次断电、再重新上电后,程序一直停在24C02的写过程中,另一片I2C芯片也不响应; 
现象2:如果是直接按复位键,则程序可以顺利执行,并且两片I2C器件均可正常访问和读取。 
请问:有可能是什么原因造成这样的问题,SCK速度100K,示波器显示SCK为50%占空比。
答:这个问题是,由于上次写E2的时候导致I2C总线错误,而E2这个时候并不能正确的接收数据。解决方法,断电的时候或者操作完毕以后将I2C总线停止,或者断电的时候将E2断电。
 
5、STM32的I2C奇怪现象
问:如果先把I2C的相关I/O口配置成通用输入接口,然后在配置成I2C的接口,测试I2C功能正常;但是如果把I/O口先配置成通用输出接口,再配置成I2C接口,测试I2C功能就不正确。
答:I2C的IO口必须要配置成对应的功能,也就是输入,这个时候才能工作。这个是I2C模块必须要配置的,就像串口的IO口,也要配置成对应的传输方向。 
 
6、STMF103 I2S 时钟调整方案
 
问:通常音频的采样速率均为44.1K/S,若有72M的时钟,同时需要MCLK输出,这样根据手册FS只能为46.875这样速率精确度太差,误差达到6.29%,是否可以考虑将时钟将为56M,这样可以将FS调整到43.75,误差为0.8%
答:不知道你用的是16位的还是32位的,根据表的值,你选择16位的,44117.65这个值的误差比较小0.04%。 如果选择22.050K/S,22058.822,16位和32位的误差是0.04%。
 
7、I2S使用的注意事项
 
问:I2S使用时需要注意什么?I2S2_WS,I2S2_CK,I2S2_SD,I2S2_MCK如何设置MCK是不是只支持256FS, 对于无法进行编程的I2S解码器,如何设置中断。
最佳答案:
1、小容量和中容量的STM32不支持I2S音频协议。 
2、I2S与SPI共用3个引脚: 
● SD:串行数据(映射至MOSI引脚),用来发送和接收2路时分复用通道的数据; 
● WS:字选(映射至NSS引脚),主模式下作为数据控制信号输出,从模式下作为输入; 
● CK:串行时钟(映射至SCK引脚),主模式下作为时钟信号输出,从模式下作为输入。 
MCK:主时钟(独立映射),在I2S配置为主模式,寄存器SPI_I2SPR的MCKOE位为’1’时,作为输出额外的时钟信号引脚使用。输出时钟信号的频率预先设置为256 × Fs,其中Fs是音频信号的采样频率。 
3、I2S接口与SPI接口使用大致相同的引脚、标志和中断。
回复

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版