首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» OTP MCU编程器中STM32F10x的应用方案
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
OTP MCU编程器中STM32F10x的应用方案
发短消息
加为好友
小可爱ing
当前离线
UID
831503
帖子
103
精华
0
积分
52
阅读权限
20
在线时间
17 小时
注册时间
2011-1-6
最后登录
2012-4-27
注册会员
UID
831503
1
#
打印
字体大小:
t
T
小可爱ing
发表于 2011-2-14 15:31
|
只看该作者
OTP MCU编程器中STM32F10x的应用方案
转换器
,
单片机
,
存储器
,
定时器
,
控制器
OTP单片机
因其价格低廉、性能成熟在许多小家电中得以广泛应用。硬件编程器通常是其开发过程中必不可少的设备。本案是用于该类单片机的硬件编程器,可对该类单片机实现联机编程和脱机编程;还可以测试该类单片机的工作频率、工作电压等多项参数,一机多用。
1、STM32F101R8主要特性
STM32F10x系列是ST公司推出的基于ARM最新架构Cortex-M3内核的MCU。集成了存储器、时钟、复位和电源管理电路,DMA控制器,模数/数模转换器,快速IO口,多功能定时器及各种通讯端口。具有多种低功耗模式、在线调试端口。该系列MCU引脚、外设、软件具有高度兼容性,能应用到许多领域中。
本案选用了基本型器件STM32F101R8。这颗器件的主要特性有:
ARM 32位Cortex-M3 CPU,36MHz,单周期乘法和硬件除法器
64KB FLASH,10KB SRAM
2.0~3.6V,POR,PDR,PVD
内部8MHz、40kHz RC振荡器,PLL;外部4~16MHz晶体,32kHz用于RTC和备份域
7通道
DMA
控制器
3个4通道通用定时器,IC/OC/PWM
2个SPI口,最高18Mbis/s
2个I2C接口,支持SMBus
3个USART,支持ISO7816,LIN,IrDA,Modem
1个16通道12位ADC
低功耗模式:睡眠、停止、待机
SWD和JTAG在线调试
CRC计算,96位唯一ID
51个IO口
小型
LQFP64
封装
2、编程器硬件设计
编程器通过串口或其它通讯口与配套工具软件通讯,实现对芯片的联机编程。脱机时则通过按键控制对芯片的编程。
编程器硬件框图如图1所示。
图1 编程器硬件框图
编程器产生芯片所需的工作和编程电压,并根据需要控制所有电压的开启和关闭。同时,利用主控制器内部多通道ADC检测供电电压和编程电压,一旦电压发生异常即关断系统。
指示灯编程器用主控制器高驱动能力口线直接控制指示灯的开关,指示编程器的各种工作状态。
通过编程接口对OTP芯片编程,同时还供给芯片工作时钟,检测芯片内部振荡器的频率。
STM32F101R8的应用连接如图2所示 。
图2 STM32F应用连接图
其中,CLK提供OTP芯片工作时钟;AD0 ~ AD4共5路电压输入,用于检测系统的工作电源和编程电压;f1_TST和f2_TST则用于检测OTP芯片的内部振荡器频率。RXD、TXD是编程器和上位机之间的通讯接口(UART),SCL和SDA是STM32F10x和OTP芯片之间的通讯接口(I2C,亦可用SPI等)。
L1、L2、L3连接到指示灯,BEEP连接到蜂鸣器,KEY连接到脱机编程按键。其余引脚控制编程电压和编程接口的开关。
3、编程器软件设计
3.1 主流程
软件主流程图如图3所 示。
图3 软件主流程图
主流程看起来非常简单,因为程序充分利用了STM32F10x强大的中断能力。
3.2 ADC、DMA和TIM的设计
在上图的主循环中,没有对ADC的任何处理,这是因为程序采用了定时启动ADC、用DMA自动读取ADC的采样数据、并在DMA中断中处理ADC数据的方法。采用这种工作方式,只需要在初始化过程中正确设置ADC、DMA和定时器即可,其它都在相应的ISR中完成。
DMA1通道1连接到ADC,配置如下:外设基地址是ADC1的数据寄存器地址,存储器基地址是开辟的缓冲区首地址,数据源是外设,数据目的是缓冲区,缓冲区大小为5个单元,外设地址不自动增量而存储器地址则自动增量,数据均为半字,循环模式,高优先级,传输完成产生中断。
ADC设置为扫描模式,数据右对齐,软件触发转换,共5个通道,最大采样时间,且在开机复位后校准一次。
用TIM2 CH2控制ADC定时转换。定时器配置为计数时钟1MHz,CH2为输出比较模式,定时中断。
每当产生TIM2 CC2中断,就启动ADC1按既定顺序对所有通道转换一次,DMA则自动保存每个通道的转换结果。当所有通道转换完毕,DMA产生中断,在此中断中处理数据。本案采用了如下方法:每3次数据中取中值,每8个中值再取平均值作为最后的转换结果,并据此判断各电压是否正常。
3.3 用PWM方式产生OTP芯片的工作时钟
本案编程器提供给OTP单片机的是2MHz的工作时钟(其它频率也可)。本案利用TIM的PWM功能输出一个2MHz的方波。
TIM4的计数时钟为36MHz,CH4设置为PWM1模式。设置完成、启动TIM4后无需其它代码即可在相应引脚上输出时钟信号,并可控制其启动和停止。。
3.4 频率检测
本案采用主控制器内部的SySTick产生1s中断,并配合另一个定时器计数OTP单片机的频率输出。因为STM32F10x的工作主频很高,因此可以很准确地检测OTP单片机的内部振荡频率。
程序设计时利用了ST提供的标准外设库STM32F10x_StdPeriph_Lib_V3.3.0。限于篇幅,具体代码不详述。
4、结语
本方案已在多种OTP单片机上测试,编程可靠,测量准确,效果很好。
本文来自赛微电子网,转载请注明出处:
http://www.srvee.com/html/39/n-48439.html
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议