1.什么是寄存器?
给有特定功能的内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。
STM32最小系统硬件组成详解
0组成: 电源 复位 时钟 调试接口 启动
1、电源 : 一般3.3V LDO供电 加多个0.01uf去耦电容
2、复位:有三种复位方式:上电复位、手动复位、程序自动复位
通常低电平复位:(51单片机高电平复位,电容电阻位置调换)
上电复位,在上电瞬间,电容充电,RESET出现短暂的低电平,该低电平持续时间由电阻和电容共同决定,计算方式如下:t = 1.1RC(固定计算公式) 1.1*10K*0.0.1uF=1.1S
需求的复位信号持续时间约在1ms左右。
手动复位:按键按下时,RESET和地导通,从而产生一个低电平,实现复位。
3、时钟 : 晶振+起振电容 +(反馈电阻MΩ级)
如使用内部时钟:
对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。
2)对于少于100脚的产品,有2种接法:
i)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性。
32.768KHZ:
可选择只接高速外部时钟8MHZ或 既多接一个32.768MHZ的外部低速时钟。
32.768KHZ时钟作用: 用于精准计时电路 万年历
通常会选择32.768KHz的晶振,原因在于32768=2^15,而嵌入式芯片分频设置寄存器通常是2的次幂的形式,这样经过15次分频后,就很容易的1HZ的频率。实现精准定时。用于精准计时电路 万年历
晶振:一般选择8MHZ 方便倍频
有源:更稳定 成本更高 需要接电源供电 不需要外围电路 3脚单线输出
无源:精度基本够 方便灵活 便宜 最大区别:是否需要单独供电 无源晶振需要外接起振电容:晶振的两侧有两个电容
有源晶振
作用:
1、使晶振两端的等效电容等于或接近于负载电容;
2、起到一定的滤波的作用,滤除晶振波形中的高频杂波;
该起振电容的大小一般选择10~40pF,当然根据不同的单片机使用手册可以具体查阅,如果手册上没有说明,一般选择20pF、30pF即可,这是个经验值。
调整电容可微调振荡频率:
一般情况下,增大电容会使振荡频率下降,而减小电容会使振荡频率升高,
反馈电阻: 1M 负反馈 同时也是限流
1、连接晶振的芯片端内部是一个线性运算放大器,将输入进行反向180度输出,晶振处的负载电容电阻组成的网络提供另外180度的相移; 整个环路的相移360度,满足振荡的相位条件,
2、 晶振输入输出连接的电阻作用是产生负反馈,保证放大器工作在高增益的线性区,一般在M欧级;
3、 限流的作用,防止反向器输出对晶振过驱动,损坏晶振,有的晶振不需要是因为把这个电阻已经集成到了晶振里面。
4、启动: 用户使用通常都设置成Boot0 Boot1均为0即均为低电平
M3核的器件有3种启动方式,M4的有4种。通过BOOT0,BOOT1的电平进行选择。
STM32三种启动模式对应的存储介质均是芯片内置的,它们是:
1)用户闪存 = 芯片内置的Flash。
2)SRAM = 芯片内置的RAM区,就是内存啦。
3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区,它是使用USART1作为通信口。
M4在上述基础上又增加了可在FSMC的BANK1区域启动。
5、调试接口:STM32有两种调试接口,JTAG为5针, SWD为2线串行(一共四线)
此外还有采用USB进行程序烧写和数据输出:和电脑USB口连接也可以进行小负载驱动供电。
通常采用CH340G的芯片:实现USB转串口。
需要单独的振荡电路 12MHZ
使用该芯片将电脑的USB映射为串口使用, 注意电脑上应安装串口驱动程序,否则不能正常识别。
当烧写程序时,我们希望BOOT0=1,BOOT1=0。当烧写完成后我们希望BOOT0=0,BOOT1=0(这个模式BOOT1可以是0可以是1,这里我们让BOOT1拉低,即整个过程BOOT1都为L接地,简化电路设计)。