OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8962|回复: 6

SPI master的时钟频率应该怎么算?

[复制链接]

27

主题

91

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2014-8-11
在线时间
3 小时
发表于 2015-6-24 12:37:23 | 显示全部楼层 |阅读模式
5金钱
原子的MINI V2板子测试SPI flash读写中:

用了SPI1,
    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;        //定义波特率预分频的值:波特率预分频值为256

SPI1位于PB2下面,系统时钟是72M:

#define SYSCLK_FREQ_72MHz  72000000
SetSysClockTo72();

    /* HCLK = SYSCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
      
    /* PCLK2 = HCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;
    
    /* PCLK1 = HCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2;



PB2的时钟是72M, SPI1的预分频是256
SPI的时钟线SPI_SCK的频率=72M/256=7200 0000/256=72000 K/256=281.25 KHz

1秒的频率是281250次,那么每次的周期是 1000000 us/281250次=3.556 us/次

但是我用逻辑分析仪得到的波形周期却是3.56 us,频率是280.9K




这个基本正确,但是我在STM32F205RG上却设置的SPI时钟频率是15M:

    spi_init.SPI_BaudRatePrescaler  = SPI_BaudRatePrescaler_2;     
    // lwf SPI2 on APB1,    APB1 clock = AHB clock/4=30M,    SPI2 CLOCK=15M        wave: 6.667us

用逻辑分析仪抓波却是一宽一窄有规律的波形:






各位大师:请指点下,我这个算法对么? SPI的时钟误差怎么大?




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-6-24 22:51:49 | 显示全部楼层
你这个逻辑分析仪,准不准?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

27

主题

91

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2014-8-11
在线时间
3 小时
 楼主| 发表于 2015-6-25 00:21:33 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
准的,200MHZ采样, 1G的存储深度。平时用的都是好好的。我发现SPI在低速时时钟很准,速度上去后误差比较大啊。
回复

使用道具 举报

2

主题

239

帖子

0

精华

高级会员

Rank: 4

积分
545
金钱
545
注册时间
2015-6-5
在线时间
110 小时
发表于 2015-6-25 09:26:53 | 显示全部楼层
我发现SPI在低速时时钟很准,速度上去后误差比较大啊。

IC大廠 VS 不知哪的邏輯分析儀
我比較相信IC大廠是準的= =
回复

使用道具 举报

27

主题

91

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2014-8-11
在线时间
3 小时
 楼主| 发表于 2015-6-25 12:42:22 | 显示全部楼层
回复【4楼】Rocks:
---------------------------------
不能迷信IC大厂, STM32的IIC不是做的很鸡么?还有TI的达芬奇什么的,一样的很垃圾。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-6-25 23:12:30 | 显示全部楼层
回复【3楼】xinshou:
---------------------------------
建议用示波器看看吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-9-27
在线时间
1 小时
发表于 2017-9-27 13:30:07 | 显示全部楼层
遇到同样的问题,STM32F103RE,原子哥的SPI例程,用公司的Saleae16逻辑分析仪抓SPI,CLK的脉宽宽宽窄窄
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 20:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表