首页 » 技术文章 » STM32F10x在OTP MCU编程器中的应用

STM32F10x在OTP MCU编程器中的应用

作者:  时间:2011-01-05 13:53  来源:EDN

  3.2 ADCDMATIM的设计

  在上图的主循环中,没有对ADC的任何处理,这是因为程序采用了定时启动ADC、用DMA自动读取ADC的采样数据、并在DMA中断中处理ADC数据的方法。采用这种工作方式,只需要在初始化过程中正确设置ADCDMA和定时器即可,其它都在相应的ISR中完成。

  DMA1通道1连接到ADC,配置如下:外设基地址是ADC1的数据寄存器地址,存储器基地址是开辟的缓冲区首地址,数据源是外设,数据目的是缓冲区,缓冲区大小为5个单元,外设地址不自动增量而存储器地址则自动增量,数据均为半字,循环模式,高优先级,传输完成产生中断。

  ADC设置为扫描模式,数据右对齐,软件触发转换,共5个通道,最大采样时间,且在开机复位后校准一次。

  用TIM2 CH2控制ADC定时转换。定时器配置为计数时钟1MHzCH2为输出比较模式,定时中断。

  每当产生TIM2 CC2中断,就启动ADC1按既定顺序对所有通道转换一次,DMA则自动保存每个通道的转换结果。当所有通道转换完毕,DMA产生中断,在此中断中处理数据。本案采用了如下方法:每3次数据中取中值,每8个中值再取平均值作为最后的转换结果,并据此判断各电压是否正常。

  3.3 PWM方式产生OTP芯片的工作时钟

  本案编程器提供给OTP单片机的是2MHz的工作时钟(其它频率也可)。本案利用TIMPWM功能输出一个2MHz的方波。

  TIM4的计数时钟为36MHzCH4设置为PWM1模式。设置完成、启动TIM4后无需其它代码即可在相应引脚上输出时钟信号,并可控制其启动和停止。。

  3.4 频率检测

  本案采用主控制器内部的SySTick产生1s中断,并配合另一个定时器计数OTP单片机的频率输出。因为STM32F10x的工作主频很高,因此可以很准确地检测OTP单片机的内部振荡频率。

  程序设计时利用了ST提供的标准外设库STM32F10x_StdPeriph_Lib_V3.3.0。限于篇幅,具体代码不详述。

  4、结语

  本方案已在多种OTP单片机上测试,编程可靠,测量准确,效果很好。

  参考文献:

  【113586.pdf, STM32F101x8/B datasheet, www.st.com

  【2RM0008.pdf, STM32F10x Reference Manual, www.st.com

  【3】《基于MDKSTM32处理器开发应用》,李宁,北京航空航天大学出版社

  【4stm32f10x_stdperiph_lib_um.chm, www.st.com

相关推荐

ARM收购Geomerics 强化行动装置游戏视觉

ARM  游戏视觉  2013-12-18

ARM:2013年Mail芯片出货量将超三亿片

ARM  芯片  2013-12-06

ARM控制智能机及平板芯片市场趋势将持续

ARM  控制智能机  2013-11-28

推动连网与行动创新 ARM聚焦物联网商机

ARM  物联网  2013-11-26

全球75%企业高管关注物联网新机遇

ARM  物联网  2013-11-08

英特尔将代工ARM芯片 或引发芯片价格下跌

英特尔  ARM  2013-10-31
在线研讨会
焦点