完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用dsPIC33EP256MU806,DCI模块配置为I2S主机。当dsPIC从睡眠中被唤醒时,I2S时钟(配置为输出)立即输出时钟信号——我如何阻止这种情况的发生?我的项目是电池供电的,所以在不使用时,DSPIC处于休眠模式。我有一个四级上电顺序(以避免意外的开关),其中电源开关必须连续按4次,否则dsPIC会重新进入休眠状态。电源开关连接到外部中断管脚以唤醒dsPIC。问题是,I2S时钟连接到蓝牙模块上的管脚,并且该管脚可以保持高电平,这取决于dsPIC何时进入休眠状态,即它保持在时钟所处的电平,所以50%的可能性低D 50%几率高。如果I2S时钟管脚高,那么来自dsPIC的电压通过蓝牙模块中的箝位二极管反馈(它也处于休眠模式),这是我需要避免的。他“外围模块禁用寄存器”(PDM)。在.()命令之前,我将bitPMD1bit.DCIMD设置为禁用DCI模块,然后清除bitPMD1bit.DCIMD在四级上电序列之后。但是现在我发现它也会引起SPI2的问题(SPI2用于读取存储在外部闪存设备中的PCM音频)。像DCI一样,我尝试调用函数来重新配置SPI2模块,但这次它没有解决问题。因此,外围模块禁用寄存器首先打破了DCI模块(我修复了),也打破了SPI2模块(我不能修复)。如果我不使用PDM寄存器,那么一切都可以正常工作,除了I2S时钟有时在从睡眠中唤醒时输出。在尝试PDM寄存器之前,我也尝试过使用DCICON1bit.DCIEN禁用和启用DCI模块,但是I2S时钟输出仍然出现。当禁用DCI模块时(DCICON1bit.DCIEN=0;)。我甚至尝试使用LAT寄存器强制I2S时钟输出管脚变低,以及使用TRIS寄存器将I2S时钟输出设置为输入,但是这些都不起作用。我没有帮助。在唤醒序列而不是PDM中,还有其他方法可以阻止I2S时钟输出吗?
|
|
相关推荐
1个回答
|
|
OMG。听起来好像你现在要睡觉,而不考虑I2S RESP。SPI传输是Actudiead:从当前传输完成的等待开始。这应该可以解决主要的时钟问题。因此在串行接口完成当前操作之前不要进入休眠状态。可能需要禁用I2S resp。SPI函数-重新配置RESP。引脚作为输入,三态。(不确定你是否需要一些上拉或下拉电阻…)这是否有助于重新考虑你的策略?
|
|
|
|
只有小组成员才能发言,加入小组>>
5248 浏览 9 评论
2036 浏览 8 评论
1956 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3217 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2264 浏览 5 评论
786浏览 1评论
677浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
603浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
684浏览 0评论
581浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 04:39 , Processed in 1.090611 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号