学单片机的第一个坎就是搭最小系统。最小系统就是让单片机"活过来"的最精简电路——电源、复位、振荡器,加上单片机本身,缺一个芯片就启动不了。今天把这些部分拆开聊聊。
最小系统的四大要素:电源电路(给单片机供电)、复位电路(让单片机从确定的初始状态开始运行)、振荡电路(提供时钟信号,决定单片机执行指令的节奏)、单片机芯片本身。有些单片机(比如 STM32 部分型号)内部集成了振荡器和复位电路,可以省掉外围,但功能极简化能让你在出问题时不抓瞎。
电源电路是最基础的。51 单片机一般是 5V 供电,STM32 是 3.3V,MSP430 是 1.8V 到 3.6V 宽电压。电源设计要点:第一个,稳定的电压。电压波动会引起单片机复位或者异常,用稳压芯片(AMS1117-3.3、LM7805)把外部电压(USB 5V、适配器 9V-12V)稳压到单片机需要的电平。第二个,去耦电容。单片机每个电源引脚旁边都要放一个 0.1μF 的陶瓷电容,滤掉电源里的高频噪声。第三个,大电容储能。在电源入口放一个 10μF 到 100μF 的电解电容,缓冲负载突变时的电压跌落。
复位电路分上电复位和手动复位两种。51 单片机是高电平复位(复位引脚保持高电平一段时间让单片机复位),STM32 是低电平复位(复位引脚拉低一段时间)。上电复位靠电容充电实现:电源上电瞬间电容相当于短路,复位引脚获得高电平(或低电平),随着电容充电复位引脚恢复,单片机开始工作。手动复位加个按键,按下时复位引脚被拉高(或拉低),松开后恢复。
复位电路的细节:第一个,复位时间。单片机需要复位信号保持至少一定时间(51 单片机一般是 2 个机器周期,STM32 是 20ms)。电容值选错了复位时间不够,单片机启动不可靠。第二个,复位时间。手按复位存在时序问题,多个芯片复位时按按键不能有明显抖动,加个施密特触发器(比如 74HC14)整形。
振荡电路提供时钟信号。最常用的是晶振(石英晶体振荡器)。晶振的频率选什么就定了功能:51 单片机常用 11.0592MHz(方便生成标准波特率)或者 12MHz,STM32 常用 8MHz(内部 PLL 倍频到 72MHz)。晶振电路里两个负载电容(一般 10-30pF)是必须的,容量比 1-3pF,让晶振起振。
晶振使用的几个坑。第一个,晶振离单片机尽量近,引线越短越好(不能太长)。引线长了相当于天线,会引入干扰。第二,晶振下面不走其他信号线。晶振是高频信号源,干扰其他线路会引起莫名问题。第三,晶振走正前先检查好坏。用示波器量晶振输出脚,看有没有正弦波,没有就查电不出来了。
下载/调试接口也算最小系统的一部分。51 单片机的 P0 口要外接上拉电阻才能用(因为 P0 口是开漏的)。需要外接上拉电阻。还有 EA 引脚,51 单片机用外部 ROM 时接低电平,用内部 ROM 时接高电平。STM32 的 BOOT0 和 BOOT1 引脚决定启动模式(从主 Flash 启动、从系统存储器启动、从 SRAM 启动),一般接个 10K 下拉电阻就行。
搭好最小系统的电路包含固定这些引脚。实际工程上第一个,多检查焊接。芯片引脚密集(QFP 封装 0.5mm 间距),容易短路或者虚焊,上电前用放大镜量一下。第二个,电源先不接单片。多检查。芯片引脚密集起来容易短路或者虚焊或者上电前先用放大镜确认电源正常再接芯片。第三个,电压电流用万用表量电流。多检查了。
扩展部分。第一个,串口下载电路。51 单片机用串口下载(PL2303、CH340),加个 MAX232 芯片做电平转换。STM32 用 SWD 接口下载(SWDIO、SWCLK、GND、VCC 四根线),简单很多。第二个,扩展电路。LED 指示灯、按键输入、数码管、继电器、电机驱动这些,根据应用加。
总的来说,单片机最小系统是入门的第一关。把电源、复位、振荡、下载这几个电路搞清楚了,单片机调通测试就能玩起来了。看似简单的电路搞复杂了,是扎扎实实的基本功。
下一篇:没有了