arm单片机知识S.docx
《arm单片机知识S.docx》由会员分享,可在线阅读,更多相关《arm单片机知识S.docx(9页珍藏版)》请在冰豆网上搜索。
arm单片机知识S
STM32的一些情况简介
如何保证ADC精度之STM32的ADC
共有最多3个ADC模块,最多21个ADC输入通道
特性
12位分辨率
自校准
转换结束,注入转换结束和发生模拟看门狗事件时产生中断
带内嵌数据一致的数据对齐
非常丰富的操作模式
双重模式(带2个或以上ADC的器件)
ADC转换时间:
1μs:
ADC时钟为14MHz时达到最快
14个时钟周期,转换周期可调:
14、20、26、41、54、68、84、252
ADC供电要求:
2.4V~3.6V
ADC输入范围:
VREF-≤VIN≤VREF+
规则通道转换期间有DMA请求产生
VDD与VDDA的处理
供电引脚
STM32共有7种封装规格,共有多组VDD/VSS引脚,以及一组VDDA/VSSA引脚。
尽管所有VDD和所有VSS在内部相连,在芯片外部仍然需要连接上所有的VDD和VSS。
因为导线较细,内部连接负载能力较差,抗干扰的能力也较差,如果漏接VDD或VSS,容易造成内部线路损坏,同时抗干扰能力下降。
VDD与VSS的去藕电容
每对VDD与VSS都必须在尽可能靠近芯片处分别放置一个10nF~100nF的高频瓷介电容。
在靠近VDD3和VSS3的地方放置一个4.7μF~10μF的钽电容或瓷介电容。
VDD与VDDA的关系
VDDA为所有的模拟电路部分供电,包括:
ADC模块,复位电路,PVD(可编程电压监测器),PLL,上电复位(POR)和掉电复位(PDR)模块,控制VBAT切换的开关等。
即使不使用ADC功能,也需要连接VDDA,强烈建议VDD和VDDA使用同一个电源供电。
VDD与VDDA之间的电压差不能超过300mV,VDD与VDDA应该同时上电或调电。
如何达到最优功耗水准
低功耗模式
I/O引脚的处理
1、如果需要减小I/O端口的电流消耗,可以根据具体情况配置I/O端口的状态:
输入端口?
?
?
?
配置为浮空输入,带外部上拉的输出端口?
?
?
?
配置为推挽输出并输出’1’,,带外部下拉的输出端口?
?
?
?
配置为推挽输出并输出’0’。
2、未用的内部外设:
保持为关闭和默认的复位状态:
不要进行重映射,复位寄存器RCC_APB1RSTR和RCC_APB2RSTR。
关闭对应的时钟,时钟使能寄存器:
RCC_AHBENR、RCC_APB2ENR和RCC_APB1ENR。
进入SLEEP模式的省电操作
1、为了降低系统功耗,进入SLEEP模式时,执行如下操作流程:
关闭无需等待中断或事件的外设时钟;设置进入机制(Sleep-Now或Sleep-on-Exit);设置系统进入SLEEP模式。
2、退出睡眠模式的方式:
WFI(等待中断),可由任一外设中断触发,WFE(等待事件),可由任一外设事件触发。
进入STOP省电模式的操作
为了降低系统功耗,进入STOP模式的操作流程:
关闭设置为普通IO功能的GPIO口时钟;
关闭已开启时钟的外设的使能位(尤其是ADC、DAC、USB等带模拟模块的外设);
关闭已开启时钟的外设的时钟;
关闭预取缓冲区,并将Flash等待周期置为0;
设置PWR_CR中LPDS位选择电压调节器的模式:
正常模式:
电压调节器处于正常供电状态;
低功耗模式:
可降低电压调节器自身的功耗,
将MCU从STOP模式唤醒的时间有所增加;
设置系统进入STOP模式。
退出STOP省电模式的操作
1、退出停止模式:
以WFI进入时:
任意外部中断线的中断;
以WFE进入时:
任意外部中断线的事件;
不包括PVD和USB唤醒事件。
2、从STOP模式恢复后,时钟的配置返回到复位时的状态(系统时钟为HSI),用户程序必须重新配置整个时钟系统,包括PLL。
ST推荐的LSE型号
对于STM32™的LSE部分,推荐使用CL《7pF的晶振(过大的CL会导致过大的gmcrit,从而无法保证足够的增益裕量)。
RTC是一个计数器,对输入时钟分频、计数、比较
RTC的校准
设置BKP_RTCCR寄存器,每220(1048576)个时钟周期中,减去相应周期数,每个单位能实现0.954(1000000/220)ppm的精度校准,BKP_RTCCR寄存器取值范围0-127,时钟可以调慢0-121ppm。
对于32,768Hz晶振,可补偿频偏范围为:
32,768Hz《fLSE《32,772Hz?
?
?
?
调慢,设置RTC预分频寄存器RTC_PRLH/RTC_PRLL。
例如:
由预设值32768调整为32766,再设置BKP_RTCCR寄存器,此时,对于32,768Hz晶振,可补偿频偏范围:
复位电路
外部复位信号低脉冲至少保持300ns,系统复位信号不影响备份区域的工作,NRST复位引脚是CMOS工艺的开漏电路。
在产生内部复位信号时,NRST引脚会输出一个低电平。
SWJ调试电路
SWJ电路设计及注意事项
调试烧录失败的常见原因
1、目标芯片没有正确连接,不能正常工作:
解决方法:
确保目标板的最小系统正确连接,芯片能正常工作:
VDD、VDDA及VSS、VDDS已全部正确连接,复位电路能够可靠复位,各复位源不互相影响。
2、芯片内原先烧录的代码影响了新的调试操作:
芯片内原先烧录的代码出错,芯片上电运行,进入未定义状态,不能进入调试模式。
芯片内原先烧录的代码启动了某些外设,或者将SWJ引脚配置为普通I/O口。
解决方法:
选择芯片的BOOT0/BOOT1引脚从RAM启动,或先擦除芯片内代码。
、芯片已被读/写保护:
调试工具不能读写芯片内置的Flash。
解决方法:
先使用调试工具解除芯片的读/写保护。
STM32硬件电路设计注意事项
STM32的基本系统主要涉及下面几个部分:
1、电源
1)、无论是否使用模拟部分和AD部分,MCU外围出去VCC和GND,VDDA、VSSA、Vref(如果封装有该引脚)都必需要连接,不可悬空;
2)、对于每组对应的VDD和GND都应至少放置一个104的陶瓷电容用于滤波,并接该电容应放置尽量靠近MCU;
2、复位、启动选择
1)、Boot引脚与JTAG无关。
其仅是用于MCU启动后,判断执行代码的起始地址;
2)、在电路设计上可能Boot引脚不会使用,但要求一定要外部连接电阻到地或电源,切不可悬空;
3、调试接口
4、ADC
1)、ADC是有工作电压的,且与MCU的工作电压不完全相同。
MCU工作电压可以到2.0V~3.6V,但ADC模块工作的电压在2.4V~3.6V。
设计电路时需要注意。
5、时钟
1)、STM32上电默认是使用内部高速RC时钟(HSI)启动运行,如果做外部时钟(HSE)切换,外部时钟是不会运行的。
因此,判断最小系统是否工作用示波器检查OSC是否有时钟信号,是错误的方法;
2)、RTC时钟要求使用的32.768振荡器的寄生电容是6pF,这个电容区别于振荡器外部接的负载电容;
5、GPIO
1)、IO推动LED时,建议尽量考虑使用灌电流的方式。
2)、在Stop等低功耗模式下,为了更省电,通常情况下建议GPIO配置为带上拉的输出模式,输出电平由外部电路决定;
6、FSMC
1)、对应100pin或144pin,FSMC的功能与I2C是存在冲突的,如果FSMC时钟打开,I2C1的硬件模式无法工作。
这在STM32F10xxx的勘误表中是有描述的。
ST官方推荐的几大主流开发板的原理图,在画电路的时候可以做为参考依据:
(本资料素材和资料部分来自网络,仅供参考。
请预览后才下载,期待您的好评与关注!
)