STM32型号的说明:以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:
1 | STM32 | STM32代表ARM Cortex-M3内核的32位微控制器。 |
2 | F | F代表芯片子系列。 |
3 | 103 | 103代表增强型系列。 |
4 | R | R这一项代表引脚数,其中T代表36脚,C代表48脚,R代表64脚,V代表100脚,Z代表144脚。 |
5 | B | B这一项代表内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,B代表128K字节Flash,C代表256K字节Flash,D代表384K字节Flash,E代表512K字节Flash。 |
6 | T | T这一项代表封装,其中H代表BGA封装,T代表LQFP封装,U代表VFQFPN封装。 |
7 | 6 | 6这一项代表工作温度范围,其中6代表-40——85℃,7代表-40——105℃。 |
103性能特点
内核:ARM32位Cortex-M3 CPU,最高工作频率72MHz,1.25DMIPS/MHz。单周期乘法和硬件除法。
存储器:片上集成32-512KB的Flash存储器。6-64KB的SRAM存储器。
时钟、复位和
电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压。POR、PDR和可编程的电压探测器 (PVD)。4-16MHz的晶振。内嵌出厂前调校的8MHz RC振荡
电路。内部40 kHz的RC振荡电路。用于CPU时钟的PLL。带校准用于RTC的32kHz的晶振。
低功耗:3种低功耗模式:休眠,停止,待机模式。为RTC和备份寄存器供电的VBAT。
调试模式:串行调试(SWD)和JTAG接口。
DMA:12通道DMA控制器。支持的外设:定时器,ADC,DAC,SPI,IIC和UART。
2个12位的us级的A/D转换器(16通道):A/D测量范围:0-3.6 V。双采样和保持能力。片上集成一个温度传感器。
2通道12位D/A转换器:STM32F103xC,STM32F103xD,STM32F103xE独有。
最多高达112个的快速I/O端口:根据型号的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16个外部中断向量。除了模拟输入,所有的都可以接受5V以内的输入。
最多多达11个定时器:4个16位定时器,每个定时器有4个IC/OC/PWM或者脉冲计数器。2个16位的6通道 高级控制定时器:最多6个通道可用于PWM输出。2个看门狗定时器(独立看门狗和窗口看门狗)。Sys
tick定时器:24位倒计数器。2个16位基本定 时器用于驱动DAC。
最多多达13个
通信接口:2个IIC接口(SMBus/PMBus)。5个USART接口(ISO7816接 口,LIN,IrDA兼容,调试控制)。3个SPI接口(18 Mbit/s),两个和IIS复用。CAN接口(2.0B)。USB 2.0全速接口。SDIO接口。
ECOPACK封装:STM32F103xx系列微控制器采用ECOPACK封装形式。
晶振工作原理 计算机都有个计时电路,尽管一般使用“时钟”这个词来表示这些设备,但它们实际上并不是通常意义的时钟,把它们称为计时器(timer)可能更恰当一点。计算机的计时器通常是一个精密加工过的石英晶体,石英晶体在其张力限 度内以一定的频率振荡,这种频率取决于晶体本身如何切割及其受到张力的大小。有两个寄存器与每个石英晶体相关联,一个计数器(counter)和一个保持 寄存器(holdingregister)。石英晶体的每次振荡使计数器减1。当计数器减为0时,产生一个中断,计数器从保持寄存器中重新装入初始值。这 种方法使得对一个计时器进行编程,令其每秒产生60次中断(或者以任何其它希望的频率产生中断)成为可能。每次中断称为一个时钟嘀嗒(clocktick)。
晶振在电气上可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率为串联谐振,较高的频率为并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他
元件的参数变化很大,这个振荡器的频率也不会有很大的变化。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的引脚都有等效输入电容,这个不能忽略。一般的晶振的负载电容为15p或12.5p,如果再考虑元件引脚的等效输入电容,则两个22p的电容构成晶振的振荡电路就是比较好的选择。
复位电路的作用
CPU 、
单片机的内部结构很复杂,基本组成部分是:运算器、寄存器、存储器(RAM、ROM)、微程序控制器、地址计数器、I/O控制器、定时器等,机器
上电或程序运行出错时,内部是随机的混乱状态,各个功能寄存器的数据是随机的,尤其是程序计数器 PC,是给 CPU 指示下一条指令的地址指针,哪怕
是错一个地址,整个程序就乱套了,你如果学习过汇编语言就会明白。
而在复位端子提供一个时间足够长的复位脉冲,CPU 内部就会按照设计者的意图,对各个部件进行初始化工作,PC 指向固定的地址,程序从此开始正常运行。
在单片机内部都有独立运行的可编程定时器,俗称看门狗,如果程序在规定的时间内没有进行清零操作,计数器溢出就会强制 CPU 进入复位操作,使智能化
仪器可以从死机故障中自行解脱出来。
复位一般有三种模式:上电复位、手动复位、看门狗复位。
Flash存储器 Flash 闪存的英文名称是"Flash Memory",一般简称为"Flash",它属于内存器件的一种,是一种不挥发性( Non-Volatile )内存。闪存的物理特性
与常见的内存有根本性的差异:目前各类 DDR 、 SDRAM 或者 RDRAM 都属于挥发性内存,只要停止电流供应内存中的数据便无法保持,因此每次电脑开机都
需要把数据重新载入内存;闪存在没有电流供应的条件下也能够长久地保持数 据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存
储介质的基础。
SRAM是运行程序的空间,FLASH是存储程序的地方
RAM(random access memory)随机存储器。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将
丢失其存储内容,故主要用于存储短时间使用的程序。 按照存储信息的不同,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器
(Dynamic RAM,DRAM)。
ROM (read only memory)只读存储器,掉电不丢失;
Flash就是rom呀,sram就是静态随机储存器呀;sram是程序加载的地方,flash就是放程序的地方;rom只是一种形象的称呼,意思就是掉电不丢失的 储存器,因为以前有PROM,EPROM,E2PROM;现在都是闪存flash的天下,因为flash容量大。
FLASH程序存储器存程序,单片机上电后会自动从这里读代码开始运行。
SRAM是跑程序时候暂存临时数据的地方,一般不太大,从128字节到几K字节都有,一掉电数据就没了。
EEPROM是掉电也不丢数据的存储器,一般都用来存设置的。你可以一字节一字节的把每字节的8位1任意编写成0。但这片一般是按扇区为单位,一擦除就是全成1。 由字面意思就可以理解,SDRAM SRAM DRAM都可以统称RAM,random access memory的缩写,只是前面加了几个修饰词而已。
SRAM:静态随机存储器,就是它不需要刷新电路,不像动态随机存储器那样,每隔一段时间就要刷新一次数据。但是他集成度比较低,不适合做容量大的内存,一般是用在处理器的缓存里面。像S3C2440的ARM9处理器里面就有4K的SRAM用来做CPU启动时用的。
SDRAM:同步动态随机存储器,像电脑的内存就是用的这种RAM叫DDR SDRAM。其集成度非常高,因为是动态的,所以必须有刷新电路,每隔一段时间必须得刷新数据。其存储单元不是按线性排列的,是分页的。一般的嵌入式产品里面的内存都是用的SDRAM。
DRAM:动态随机存储器,SDRAM只是其中的一种吧,没用过,不怎么清楚。
ROM:只读存储器的总称。
PROM:可编程只读存储器,只能写一次,写错了就得报废,现在用得很少了,好像那些成本比较低的OPT单片机里面用的就是这种存储器吧。
EPRM:没见过,不知道什么东西。网上也找不到相关的东西。是EPROM吧?
EPROM:可擦除可编程存储器,这东西也比较古老了,是EEPROM的前身,在芯片的上面有个窗口,通过紫外线的照射来擦除数据。非常之麻烦。
EEPROM:电可擦除可编程只读存储器,比之EPROM就先进点了,可以用电来擦除里面对数据,也是现在用得比较多的存储器,比如24CXX系列的EEPROM。
NANDFLASH和NORFLASH都是现在用得比较多的非易失性闪存。NOR采用的并行接口,其特点读取的速度比之NAND快乐很多倍,其程序可以直接在NOR里面运行。但是它的擦除速度比较慢,集成度低,成本高的。现在的NOR的容量一般在2M左右,一般是用在代码量小的嵌入式产品方面。还有就是在ARM9的
开发板上可以看见。
而NAND呢,采用的是串行的接口,CPU从里面读取数据的速度很慢,所以一般用NAND做闪存的话就必须把NAND里面的数据先读到内存里面,然后CPU才能够执行。就跟电脑的硬盘样的。但是它的集成度很高,我的ARM9的开发板上面一块256M的NAND还没有一块2M的NOR的一半大,所以成本很低。还有就是它的擦除速度也的NOR要快。要不然的话那就真的悲剧了,假如擦除一块2M的NOR要一分钟,如果NAND的擦除速度比NOR还要慢,那擦除一块256M的NAND不是要几个小时。NAND一般是用在那些要跑大型的操作系统的嵌入式产品上面,比如LINUX啊,WINCE啊。NOR可是可以跑,可以把LINUX操作系统剪裁到2M以内,一个产品难道只去跑系统吗?用户的应用程序呢!其实很多时候,一个嵌入式产品里面,操作系统占的存储空间只是一小部分,大部分都是给用户跑应用程序的。就像电脑,硬盘都是几百G,可是WINDOWNS操作系统所占的空间也不过几G而已。
CPU
中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。主要包括运算器(ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为
电子计算机三大核心部件。
JTAG接口解读
通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于Debug;一般支持JTAG的CPU内都包含了这两个模块。
一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,如FLASH,RAM,SOC(比如4510B,44Box,AT91M系列)内置模块的寄存器,像UART,Timers,GPIO等等的寄存器。
最小系统
硬件最小系统:由电源、主板和CPU、内存组成.在这个系统中,没有任何信号线的连接,只有电源到主板的电源连接.在判断的过程中通过声音来判断这一核心组成部分是否可正常工作:
软件最小系统:由电源,主板,CPU.内存,显示卡/显示器.键盘和硬盘组成.这个最小系统主要用来判断系统是否可完成正常的启动与运行.
10