学单片机的第一步,通常不是写程序,而是先把最小系统跑起来。最小系统说白了就是能让单片机正常工作的最简电路,一般包括电源、晶振、复位,还有下载接口。这几部分任何一个出问题,程序都跑不起来。
先说电源。常见的51单片机用5V供电,STM32用3.3V。电源引脚附近一定要放退耦电容,一般是104的瓷片电容,尽可能靠近芯片电源脚和地脚。这个电容不是摆设,它能滤掉电源上的高频噪声,防止单片机因为电压波动而复位或者死机。有些开发板上还能看到一个大一点的电解电容,比如10uF或者47uF,那是处理低频纹波的,两种电容配合着用效果最好。
晶振电路负责给单片机提供心跳节拍。51单片机常用11.0592MHz或者12MHz的无源晶振,STM32常用8MHz的外部晶振再加内部PLL倍频。无源晶振需要配两个负载电容,容值根据晶振规格选,一般是15pF到30pF之间。这两个电容一端接晶振脚,一端接地,形成振荡回路。有源晶振就简单多了,直接输出方波接到单片机时钟输入脚,不需要额外电容,但价格贵一些。
复位电路的设计分高电平复位和低电平复位两种。51单片机是高电平复位,上电瞬间电容充电,RST脚出现一个高电平脉冲,单片机复位;电容充满后RST回到低电平,单片机开始运行。STM32是低电平复位,原理反过来,通常用一个RC电路加一个按键,按键按下NRST拉低,手动复位。复位时间不能太短,一般要求几个毫秒以上,电容和电阻的值要配合好。
下载接口容易被忽略,但其实很关键。STC51用串口下载,电路只需要TXD、RXD、GND,再加个自动下载的冷启动电路。STM32用SWD下载,需要SWDIO、SWCLK、GND,有的再加个NRST和3.3V。接线顺序别搞错,特别是SWDIO和SWCLK,反了的话下载器识别不到芯片。新板子焊好后,先用下载器连上,看能不能读到芯片ID,读到了说明最小系统基本没问题。
调试最小系统有个土办法:先看电源对不对,万用表量VCC和GND之间电压,5V系统看是不是在4.8到5.2之间,3.3V系统看是不是在3.2到3.4之间。电压不对,后面都是白搭。然后用示波器看晶振脚有没有振荡波形,没有波形的话查晶振、电容、还有芯片的时钟配置。最后测复位脚电平是不是正常状态,复位持续高电平或者低电平,单片机都跑不起来。
最小系统板Layout也有讲究。电源线尽量粗,地线最好铺铜,晶振下面不要走其他信号线,防止干扰。复位电路的按键离芯片近一点,减少引线长度。这些细节做好了,板子一次成功的概率大很多。很多新手板子跑不起来,不是程序问题,而是硬件上的这些小细节没注意到。
上一篇:美国、法国、德国、英国、意大利、日本、加拿大,将共同行动
下一篇:没有了