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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版