声明:参考:https://blog.csdn.net/thisway_diy/article/details/115109168?spm=1001.2014.3001.5501
参照韦老师的博客和视频路线学习470,同时会借用韦老师博客的内容,非商业目的,仅仅是学习使用。
单片机最小系统是指用最少的电路组成单片机可以工作的系统,通常最小系统包含:电源电路、时钟电路、复位电路、调试/下载电路。下图是470的引脚示意图。
电源电路
不同的MCU的工作电压可能是不一样的,比如51单片机通常为5V,TMS470单片机通常为3.3V。因此,通常需要查阅该MCU的数据手册才能确定工作电压和规范。
1、VCCIOR-Vss:标准工作电压;电压范围:3V~3.6V,从引脚上看一共有有6个,对应的有8个Vss;
2、Vcc:输出工作电压;电压范围:1.4V~1.7V,用作参考电压;
3、VCCAD-VSSAD:ADC工作电压,电压范围:3V~ 3.6V;
4、Vccp,Flash工作电压,电压范围:3V~ 3.6V;
从数据手册了解到以上知识后,再来看看原理图上MCU电源部分。下图的U1E是MCU所有电源相关引脚,可以看到VCCIOR和VCCP 都直接接在了VCC_3V3上(3.3V),VSS都接在了GND上;VCC引脚接了一系列的退耦电容;VCCAD连接了VCC_ADC并没有直接连接到VCC_3V3,VSSAD直接连接到GND上了。右边是一系列退耦电容,这些电容在Layout(PCB布局走线)时,需要均匀分布在每组电源引脚附近。此时,MCU电源部分符合数据手册的要求。
前面VCC_3V3需要外部提供给MCU,也就是通过电源适配器提供,而一般的电源适配器通常为5V或 12V,因此还需要电源转换电路,将外部输入的12V或5V转换为3.3V。下图 分别为12V电源输入电路、12V转5V电路、5V转3.3V电路,在5V和3.3V电路中有LED灯,用于提示用户整个系统电源正常工作。
时钟电路
MCU是一个集成芯片,由非常复杂的数字电路和其它电路组成,需要稳定的时钟脉冲信号才能保证正常工作。时钟如同人体内部的心脏一样,心脏跳动一下,推动血液流动一下。时钟产生一次,就推动处理器执行一下指令。除了CPU,芯片上所有的外设(GPIO、I2C、SPI 等)都需要时钟,由此可见时钟的重要性。
芯片运行的时钟频率越高,芯片处理的速度越快,但同时功耗也越高。为了功耗和性能兼顾,微处理器一般有多个时钟源,同时还将时钟分频为多个大小,适配不同需求的外设。
由《数据手册》可得到如图 所示的时钟树,这里只关心时钟源,时钟的分配使用放在后面讲解。从图上可以看出只有一个时钟来源,OSC,需要外部电路晶振,输入频率范围要求为5-20MHz。因为需要外部电路提供,成本会增加,但精度较好。
继续查看《数据手册》,可以看到如图5-3所示的外部时钟输入参考电路。
从数据手册了解到以上知识后,再来看看原理图上的时钟电路部分,如图 x 所示。晶振旁的负载电容,应选择高质量陶瓷电容(NPO),以满足高频率场合。在Layout(PCB布局走线)时,晶振和负载电容,应尽可能的靠近MCU,以减少输出失真和启动时的稳定时间,保证振荡器可靠工作。
复位电路
嵌入式系统中,由于外界环境干扰,难免出现程序跑飞或死机,这时就需要复位让MCU重新运行。查看《参考手册》,没有给出具体的复位电路,只是说明了相关的复位引脚。
再来看看原理图上的复位电路,如图 所示。当开发板正常工作时,VDD_3V3上拉PORRSTn和RSTn。从原理图上可以看出PORRSTn可以被JTAG拉低,另外当VCC低于3.3V时也可以拉低。RSTn就比较简单了,直接按键拉低。
调试/下载电路
不同的MCU,调试/下载的方式可能不一样。比如51系列单片机,使用串口下载程序,同时也使用仿真调试。对于STM32,可以使用串口下载程序,也能使用串口打印进行简单调试,但STM32支持更高效的JTAG(Joint Test Action Group)调试接口和SWD(Serial Wire Debug)调试接口。TMS470支持JTAG,引脚如下:
电路如下:
启动选择电路
不同的MCU,启动的方式的种类可能不一样。比如51系列单片机,只能从内置存储器读取数据启动,因此没有启动选择的必要。对于STM32,可以从内置存储器启动(默认),可以从系统存储器(用于从USART1下载程序),可以从内部SRAM启动(调电消失,可用于调试),出现多个启动方式,就需要启动选择。对应的内存如下图:
看了下470的手册,没有讲启动方式的选择,内存地址如下图,猜测默认就是从Flash 0x0地址开始执行。