DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 7125|回复: 7
打印 上一主题 下一主题

[资料] 用于STM32F10x单片机的编程器设计

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-17 08:22:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  本案是用于该类单片机的硬件编程器,可对该类单片机实现联机编程和脱机编程;还可以测试该类单片机的工作频率、工作电压等多项参数,一机多用。
  1、STM32F101R8主要特性
  STM32F10x系列是ST公司推出的基于ARM最新架构Cortex-M3内核的MCU。集成了存储器、时钟、复位和电源管理电路,DMA控制器,模数/数模转换器,快速IO口,多功能定时器及各种通讯端口。
  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单片机上测试,编程可靠,测量准确,效果很好。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
沙发
发表于 2014-9-18 16:43:56 | 只看该作者
这个 好 版主 ,可以开发下。
板凳
发表于 2015-1-2 23:28:13 | 只看该作者
好资料,感谢分享
地板
发表于 2015-5-6 17:26:28 | 只看该作者
good information, thank you for share their
5#
发表于 2015-6-12 23:02:20 | 只看该作者
这个多帮我。
7#
发表于 2017-5-13 16:21:33 | 只看该作者
这个         看看      学习
8#
发表于 2018-4-7 14:04:02 | 只看该作者

好资料,谢谢分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-29 03:09 , 耗时 0.113414 秒, 25 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表