学单片机的第一步,不是先学编程,而是先把最小系统板搭起来。最小系统就是让一颗单片机能够独立运行的最少电路,没有它,程序烧不进去、跑不起来。很多新手跳过这步直接买开发板用,用了大半年还不知道里面是什么,今天把最小系统的组成拆开来聊聊。
最小系统一般包含五个部分:电源电路、时钟电路、复位电路、程序下载接口、还有就是单片机芯片本身。这五样东西缺了任何一样,单片机都跑不起来。电源给芯片供电,时钟提供节奏,复位让芯片从确定状态启动,下载接口让你把程序烧进去。
电源电路看起来简单,但不能马虎。单片机一般是3.3V或者5V供电,要看具体型号。用USB供电的话,51单片机常用5V直接取,STM32因为是3.3V,需要做一个电平转换,用个LDO(比如AMS1117-3.3)就行,成本几毛钱。电源的输入输出端都要加滤波电容,一般是10uF电解加一个0.1uF陶瓷电容,一个滤低频一个滤高频,靠近芯片的电源脚放。
时钟电路是单片机的"心跳"。51单片机一般用11.0592MHz或者12MHz的晶振,配合两个33pF到47pF的负载电容。晶振选11.0592的原因是这个频率能让串口波特率刚好是整数分频,不会有误差。STM32用8MHz外部晶振的比较多,内部还有RC振荡器可以用,精度差一点但省成本,做产品时能用内部的就省掉晶振。
复位电路有两种方式:上电复位和按键复位。上电复位靠一个电容加一个电阻,上电瞬间电容充电,复位脚保持一段时间的高电平(低电平复位的话反过来),然后被电阻拉低,芯片就复位了。按键复位就是在复位脚加个按钮,一按就强制复位。两种都做最好,调试的时候经常要按复位键。
程序下载接口,51单片机一般用STC的串口下载,插个USB转TTL模块就能烧录。STM32有两种方式:一种是SWD接口,只要四根线(3.3V、GND、SWDIO、SWCLK),用ST-Link下载器,速度快还能调试;另一种是串口下载,用系统存储器里的Bootloader,不需要专用下载器,但是速度慢。做板子时建议预留SWD接口,调试方便。
搭最小系统的常见坑:第一是电源接反,很多新手第一次烧板子把VCC和GND接反,直接烧芯片,所以上电前一定要用万用表量一下电源脚电压对不对。第二是晶振没焊好或者负载电容值不对,芯片上电后不工作,晶振不起振,这时候用示波器看晶振两脚有没有波形。第三是复位电路的极性搞反,有的单片机是高电平复位有的是低电平复位,要看数据手册。搭好最小系统,用万用表量一遍各引脚电压,烧个LED闪烁程序验证一下,成功了就算正式入门了。
下一篇:没有了