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

SPI通讯,请问除了在SPI设置中更改分频系数来更新SCK外,还有其它方法设置吗。

[复制链接]
zhengfucool 提问时间:2022-7-16 11:31 / 未解决
【背景】
使用STM32F103ZET6的片子。
基于STM32F10x_StdPeriph_Lib_V3.5.0的标准库样例程序,目前已经可以使用SPI,和TI的ADS8688进行配合工作了,使用的SCK是9M。

但后续因为采用率的要求,需要将SCK提高到16M等(TI ADS8688的最高工作频率是17M)。

虽然可以通过修改SPI配置中的分频系数,来提高SCK到18M,但这样就超过ADS8688的最高工作频率了,会使得数据不对。

【问题】
(1) 请问除了通过SPI设置中的分频系数,还有其它办法来更改SCK吗?(如果能更改为16M甚好);
(2) 目前了解下来,通过SPI设置中的分频系数,只能得到少数几种可能的SCK。是否有其它思路和办法,可以获得更多种SCK频率?

谢谢


目前程序中时钟,和SPI的设置如下:(晶振8M)
---------------------------------------------------------------------------------------------------

void RCC_Configuration(void)
{        
  /* PCLK2 = HCLK/2 */
  RCC_PCLK2Config(RCC_HCLK_Div2);

  /* Enable SPI Master peripheral clocks --------------------------------------------------*/
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1, ENABLE);
}

/* SPI_MASTER configuration ------------------------------------------------*/
  SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;;
  SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
  SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
  SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
  SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
  SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
  SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;
  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
  SPI_InitStructure.SPI_CRCPolynomial = 7;
  SPI_Init(SPI1, &SPI_InitStructure);   

收藏 评论5 发布时间:2022-7-16 11:31

举报

5个回答
geowhy 回答时间:2022-7-16 22:56:34
更换晶振,改变芯片的工作频率
zhengfucool 回答时间:2022-7-17 08:48:34
谢谢回复,这个在下一版电路中会平衡进去。进一步确认一下,更换晶振、通过不同的分频/倍频、和PLL设置等一顿操作后,STM32F103ZET6的工作主频,也是不能超过72M的吧?

更换晶振,主要目的是可以将主频更改、比如改到64M,然后就可以在SPI中进一步设置SCK为16M了吧?(如果是的话,这样主频降到64M,也会到导致代码执行变慢的吧?)

谢谢,

geowhy 回答时间:2022-7-17 11:36:19
zhengfucool 发表于 2022-7-17 08:48
谢谢回复,这个在下一版电路中会平衡进去。进一步确认一下,更换晶振、通过不同的分频/倍频、和PLL设置等一 ...

那是一定的,看影响有多大了
xmshao 回答时间:2022-7-17 20:37:19
SPI时钟可以基于PCLK进行分频而来,PCLK又可以基于HCLK进行APB分频得到,所以你可以调整下前端的APB分频系数,具体你看看那个时钟树。可能的话,尽可能使用CubeMx来配置。
zhengfucool 回答时间:2022-7-22 11:28:50
xmshao 发表于 2022-7-17 20:37
SPI时钟可以基于PCLK进行分频而来,PCLK又可以基于HCLK进行APB分频得到,所以你可以调整下前端的APB分频系 ...

好的,感谢提示了。前面直接用标准库试了下,感觉还是不太好弄。看来后面还是要去学学CubeMx。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版