STM32/STM8技术william hill官网
直播中

张辉

7年用户 1319经验值
私信 关注
[问答]

请问STM32 SPI时钟只能从PCLK的几个分频选择吗?

  SPI的时钟只能从PCLK的2、4、8、16、32、64、128、256分频(CR1寄存器BR[2:0])中选择吗?PCLK为72M,因还有使用APB2的其它外设,PCLK的频率不可减慢,而SPI接口的外设又要求时钟2.4M,该如何设置呀?

回帖(6)

周玮

2018-8-29 09:55:49
你是使用库函数的方式操作,还是使用寄存器的方式操作。。。
PLCK的频率不会跟你的外设使用多少有关,他是72M就是72M,如果你设置是72M,它不会变成其它的频率。
举报

张辉

2018-8-29 10:02:07
我的问题是,SPI的时钟是否是仅由SPI-CR1寄存器中的BR[2:0]三个位来分频的?在PCLK = 72M情况下,如何通过分频得到2.4M的SPI时钟
举报

孙婷婷

2018-8-29 10:10:47
首先确定你的参考时钟,然后在这个参考时钟上进行分频.
举报

张辉

2018-8-29 10:22:02
参考时钟?SPI1时钟不就是从APB2时钟分频而来吗?我想要了解的就只是,APB2时钟为72M情况下,是否只能选择2、4、8、16、32、64、128、256这几个分频系数?如果不是,请各位高手详细说下该如何设置,才能使SPI1时钟为2.4M?
举报

向可嘉

2018-8-29 10:35:04
主模式和从模式的快速通信:最大SPI速度达到18MHz.如果你APB2一定不能改的话,有时候那个你需要的SPI时钟你很难设定的刚刚好的。
举报

李培珠

2018-8-29 10:45:59
APB1的最高频率是36MHz,APB2的最高频率是72MHz,而PCLK1和PCLK2一般也默认配置为其最高工作频率36M和72M,如下表所示:

SPI1时钟由APB2时钟分频而来,可以选择2、4、8、16、32、64、128、256这几个分频系数。而手册规定STM32的SPI时钟最快是18MHz。对于STM32F103的SPI1接口时钟,由72M的PCLK2分频得到,所以分配系数大于等于4(72M/4 = 18M)。对于STM32F103的SPI2/3接口时钟,由36M的PCLK1分频得到,所以分配系数大于等于2(36M/2 = 18M)。
如果配置SPI1时选择了fPCLK/2的二分频选项,那么理论上SPI1的时钟将为36MHz,经过我们实际测量也确实为36MHz。但是这个频率大于手册中最快18Mhz的要求。如果大家追求高速率使用36MHz,建议大家一定要加强测试环节,同时不建议大家在工控产品等高可靠性的场合使用。
                             --摘自神舟STM32开发板手册
举报

更多回帖

发帖
×
20
完善资料,
赚取积分