新手上路
- 积分
- 30
- 金钱
- 30
- 注册时间
- 2015-12-30
- 在线时间
- 7 小时
|
1金钱
大家好 小弟最近在用战舰板,想用SPI控制24位的AD芯片,他的片子上有一个40MHZ的时钟,分下来AD芯片的时钟就是20Mhz。SPI2最大的时钟是18M, SPI1用SPB2可以达到36MHZ。但是。。。怎么分才能有一个20M的波特率呢。。
现在时钟这个问题,困扰我很久了。。。难道要把AD板子上的晶振换成36Mhz的才可以么?
我看到有一个帖子是怎么说的:
(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开发板手册)
可是这样子的话,还是得不到一个标准的20MHz的时钟信号。要蒙了。。。。求助求助
谢谢各位
|
|