历史上的今天
今天是:2025年01月16日(星期四)
2019年01月16日 | STM32最小系统硬件组成详解
2019-01-16 来源:eefocus
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接地,简化电路设计)。

史海拾趣
|
我在其他单片机网站上找资料很容易的,就是没有EEworld上的多。比如我想找闹钟,我找这个标签就会有很多关于闹钟的标签。这个网站不知道有没有呢。… 查看全部问答> |
|
北京太极鹏发电子科技有限公司 本公司拥有LED显示屏的专业人才,公司各部门负责人员皆为LED行业的骨干力量,在LED行业均有十年左右的经验,曾参与北京环保局室外环保监测群显屏,首都机场,中国石油大厦,洛三灵高速公路等重大项目的开发,设计与 ...… 查看全部问答> |
|
一个基于DSP2812的DS1390串行EEPROM的驱动源代码 一个基于DSP2812的DS1390串行EEPROM的驱动源代码 前段时间写的一个EEPROM的程序,已经测试通过。 常见的EEPROM总线结构共有三种:I2C,Microwire,SPI.。 DS1390就是一个很常见的串行EEPROM芯片。区别于不同的型号和厂家,引脚定义似稍有不同,但 ...… 查看全部问答> |
|
平台2440,BSP是优龙的.在电源管理部分遇到了些问题, 问题一: 在定制系统的时候 选择电源管理部分的组件为FULL 环境变量SYSGEN_PM = 1 可是运行后在控制面板中没有 \"电源\" 这一项. 之前在一个帖子上见过类似的问题 可是没有给出答案 是不是还要配 ...… 查看全部问答> |
|
在内存时序中,tRCD, tCL等参数都是可以进行配置的,我看过一些内存芯片的资料,发现通过芯片的Mode Register就可以对tCL进行配置,但是不能对其他时序参数进行配置。因此,问题之一就是,为什么在Mode Register只支持tCL的配置?为什么会有这样的 ...… 查看全部问答> |
|
设置系统时钟时要先设置好FLASH的等待周期,不然程序就可能会跑飞 即这句:FLASH->ACR|=0x32; ============================= 可我在STM32F10xx的PDF中怎么也找不到关于FLASH->ACR寄存器的说明??凭什么就等于0x32。 请那位前辈指点 ...… 查看全部问答> |
|
哪们高手能帮忙指点一下,EP3C25F-324 能不能支持DDR2 MT47H64M16 ?我需要的存储速率是400M(或500M)字节每秒。如果可以用这个芯片,该选哪个型号(后缀有较多版本)? 如果不行可否推荐一款DDR(或DDR2),容量2Gb. 期待....... ...… 查看全部问答> |
|
今天把SPI这块看视频学习完了,写了一个用SPI控制DAC8830的程序 从前天开始学校把我的MSP430Launchpad 收上去了,但学习还得继续,写了一个SPI控制的DAC8830的程序,主要实现的是通过我们前面学习的ADC10把模拟的信号(比如正弦信号)采集进来,然后通过DAC8830把这个信号实时的送出,应该可以用示波器观察的到, ...… 查看全部问答> |




