问题:时延2s 精准时延
需要:搞明白STM32时钟系统
作业:音符——>频率值数组——>节拍数组——>嵌入式播放音乐
1.时钟是什么?
1 ------ ------
0 ------ ------
f:HZ频率 单位时间内(电平)完成周期性变化的次数 100HZ
T:时钟周期 (单位是时间单位) 最小重复的信号单元的时间长度 0.01s
关系:T*f=1
占空比:在一个脉冲循环内,通电时间(高电平)相对于总时间所占的比例
以下所用到的:f=168MHZ,T=1/168us,占空比=50%
2.为什么需要时钟?
因为大部分时序逻辑电路都需要时钟信号同步,原理图如下:
与门、异或门、D触发器(锁存器),A信号一直是高,B信号先高后低再高
D触发器工作原理:高电平有效,低电平无效
规定每个元器件时延为△tpd
时钟设计的方案是什么?T f怎么设 ?
解决方案
(1)△t<T/2 宽度够(△t为电路单元中最大时延,T为clock信号的周期,50%)
(2) 输入信号只能在时钟无效(低电平)时改变,在高电平时保持稳定
3.怎么产生时钟信号?
“晶振”:产生周期性的信号 。
一般情况下频率很低只有 8MHZ 但是CPU需要的频率远远高于它。怎么办?
倍频电路:把频率翻倍增加
分频电路:把频率成倍减少 168MHZ---->42MHZ (四分频)
PLL:锁相环技术 8MHZ—>168MHZ(今天要完成对应参数设定)
4.STM324xx时钟树(时钟系统)
AHB:分频电路
在STM32F4xx中有5个重要的时钟源,后三个是最主要的时钟源:
LSI:低速内部时钟
LSE:低速外部时钟
HSI:高速内部时钟
HSE: 高速外部时钟
PLLCLK:锁相环技术产生的时钟(168MHZ):分为主PLL和专用PLL
在GECM4开发板上 HSE_VALUE=8M
分频器分频系数PLL_M=8;倍频器倍频系数PLL_N=336;分频器分频系数PLL_P=2;
PLL=HSE_VALUEPLL_N/(PLL_MPLL_P)=168MHZ
练习:
设定以上参数
在哪?在文件stm32f4xx.h 找到HSE_VALUE L144
STM32F40_41xxx 系列
修改:HSE_VALUE=8MHZ
在文件system_stm32f4xx.c STM32F40_41xxx 系列
修改: PLL_M=8 L371
PLL_N=336 L401
PLL_P=2 L403
用户可以通过多个预分频器配置AHB总线、高速APB2总线和低速APB1总线的频率
AHB域的最大频率是168MHZ,AHB prescaler=1
M4 clock=AHB BUS clock=168MHZ
低速APB1域的最大频率是42MHZ,APB1 prescaler=4
AP