完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我试图产生一些随机SPI信号在各种SPI时钟速率。我使用的PIC是PIC16LF1618。当MCU运行在16 MHz时,SPI模块可以在4 MHz产生时钟。然而,当使用锁相环(X4)以32 MHz运行MCU时,SPI时钟消失。我期待的SPI模块产生时钟在8兆赫(OFSC / 4),但它一直保持低。在参考了几个论坛之后,调整特定销的斜率控制应有助于产生最大总线速度。然而,调整SLRCONB寄存器也不起作用。你能帮助我解决这个问题吗?我还想动态地改变SPI数据输出引脚到数字输出的功能,然后返回SPI数据输出。然而,在PPS锁定之后,我无法改变引脚到数字输出。我只能使用它作为一个数字输出或SPI数据输出引脚,而不是在主程序内。是否可能通过关闭SPI模块并使用与普通数字输出引脚相同的方式然后将SPI切换回ON,来动态地改变?下面是我在代码中使用的PPS代码位初始化,稍后在主程序中,我将通过添加SSP1CON1bits来切换OFF SPI。请让我知道,如果有什么,我在代码中缺少。谢谢。
|
|
相关推荐
8个回答
|
|
你确定你的照片正在运行吗?如果您设置时钟错误,它可能根本不运行。
|
|
|
|
诺斯盖伊:PIC在32 MHz下运行良好,串行数据输出引脚产生8位数据。然而,串行时钟输出引脚似乎不产生时钟。然而,当MCU运行在16 MHz(SPI在4 MHz)时,我可以看到时钟。
|
|
|
|
在16MHz和32 MHz的FoSC中使用的BRG值是多少?
|
|
|
|
我认为你只是在做不同的事情。无论在16MHz工作,也应工作在32 MHz。所以,这只是一个问题,发现在32兆赫设置不同于16MHz的设置。
|
|
|
|
@ MatthewM:如果你指的是SSP1Advices寄存器,那么它被设置为0x00。这是相同的值,我用16MHz和32兆赫。因此,SPI时钟将分别是Fosc/4、4MHz和8MHz。而且,没有PMD(外围模块禁用)寄存器可用于我正在使用的MCU。禁用/启用的唯一选项是使用SSP1CON1BITSSPEN位。我甚至在没有锁定PPSLOK的情况下尝试了代码。然而,它并没有起作用。下面是我试过的代码:
|
|
|
|
NorthGuy:你是对的。我在1.8V下运行单片机。说明书上说32MHz的Vddmin是+2.5V。但是,当我稍微增加到1.85V时,我能够看到8MHz下产生的SCLK。至少有一个问题是多余的。谢谢微笑:
|
|
|
|
不知道它如何影响这个特定的芯片,但PPS可以提供一个比直接驱动引脚慢的输出信号的时钟速度上限。如果你的PPS寄存器锁定有问题,那么:1)根本不接触锁定方面。PPS锁定位的POR值为0,这意味着寄存器没有被锁定以启动。在开发周期的很晚的时候才解锁它们,这没有什么不对的,因为您知道您已经拥有了所有的寄存器映射sorted2)清除PPS1WAY配置位,这意味着您可以像Susan一样频繁地锁定和解锁PPS寄存器
|
|
|
|
澳洲人苏珊:谢谢你的回复。我能够纠正这个问题。我并没有将SDO的PPS值回复到LAT,以便将其用作数字输出。有一次,我的ADDRB7PPS= 0x00到代码的顶部,所有的工作都很好。谢谢所有的帮助。
|
|
|
|
只有小组成员才能发言,加入小组>>
5284 浏览 9 评论
2056 浏览 8 评论
1968 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3231 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2277 浏览 5 评论
820浏览 1评论
709浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
654浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
710浏览 0评论
607浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 16:55 , Processed in 1.177135 second(s), Total 61, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号