色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32F10x在OTP MCU編程器中的應用

          STM32F10x在OTP MCU編程器中的應用

          作者: 時間:2011-01-04 來源:網(wǎng)絡 收藏

            因其價格低廉、性能成熟在許多小家電中得以廣泛應用。硬件通常是其開發(fā)過程中必不可少的設備。本案是用于該類單片機的硬件,可對該類單片機實現(xiàn)聯(lián)機編程和脫機編程;還可以測試該類單片機的工作頻率、工作電壓等多項參數(shù),一機多用。

            1、STM32F101R8主要特性

            STM32F10x系列是ST公司推出的基于ARM最新架構(gòu)內(nèi)核的MCU。集成了存儲器、時鐘、復位和電源管理電路,DMA控制器,模數(shù)/數(shù)模轉(zhuǎn)換器,快速IO口,多功能定時器及各種通訊端口。具有多種低功耗模式、在線調(diào)試端口。該系列MCU引腳、外設、軟件具有高度兼容性,能應用到許多領域中。

            本案選用了基本型器件STM32F101R8。這顆器件的主要特性有:

          •   ARM 32位 CPU,36MHz,單周期乘法和硬件除法器
          •   64KB FLASH,10KB SRAM
          •   2.0~3.6V,POR,PDR,PVD
          •   內(nèi)部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在線調(diào)試
          •   CRC計算,96位唯一ID
          •   51個IO口
          •   小型LQFP64封裝

            2、硬件設計

            編程器通過串口或其它通訊口與配套工具軟件通訊,實現(xiàn)對芯片的聯(lián)機編程。脫機時則通過按鍵控制對芯片的編程。

            編程器硬件框圖如圖1所示。

          編程器硬件框圖

          圖1 編程器硬件框圖

            編程器產(chǎn)生芯片所需的工作和編程電壓,并根據(jù)需要控制所有電壓的開啟和關閉。同時,利用主控制器內(nèi)部多通道ADC檢測供電電壓和編程電壓,一旦電壓發(fā)生異常即關斷系統(tǒng)。

            指示燈編程器用主控制器高驅(qū)動能力口線直接控制指示燈的開關,指示編程器的各種工作狀態(tài)。

            通過編程接口對OTP芯片編程,同時還供給芯片工作時鐘,檢測芯片內(nèi)部振蕩器的頻率。

            STM32F101R8的應用連接如圖2所示。

          STM32F應用連接圖

          圖2 STM32F應用連接圖

            其中,CLK提供OTP芯片工作時鐘;AD0 ~ AD4共5路電壓輸入,用于檢測系統(tǒng)的工作電源和編程電壓;f1_TST和f2_TST則用于檢測OTP芯片的內(nèi)部振蕩器頻率。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的設計

            在上圖的主循環(huán)中,沒有對ADC的任何處理,這是因為程序采用了定時啟動ADC、用DMA自動讀取ADC的采樣數(shù)據(jù)、并在DMA中斷中處理ADC數(shù)據(jù)的方法。采用這種工作方式,只需要在初始化過程中正確設置ADC、DMA和定時器即可,其它都在相應的ISR中完成。

            DMA1通道1連接到ADC,配置如下:外設基地址是ADC1的數(shù)據(jù)寄存器地址,存儲器基地址是開辟的緩沖區(qū)首地址,數(shù)據(jù)源是外設,數(shù)據(jù)目的是緩沖區(qū),緩沖區(qū)大小為5個單元,外設地址不自動增量而存儲器地址則自動增量,數(shù)據(jù)均為半字,循環(huán)模式,高優(yōu)先級,傳輸完成產(chǎn)生中斷。

            ADC設置為掃描模式,數(shù)據(jù)右對齊,軟件觸發(fā)轉(zhuǎn)換,共5個通道,最大采樣時間,且在開機復位后校準一次。

            用TIM2 CH2控制ADC定時轉(zhuǎn)換。定時器配置為計數(shù)時鐘1MHz,CH2為輸出比較模式,定時中斷。

            每當產(chǎn)生TIM2 CC2中斷,就啟動ADC1按既定順序?qū)λ型ǖ擂D(zhuǎn)換一次,DMA則自動保存每個通道的轉(zhuǎn)換結(jié)果。當所有通道轉(zhuǎn)換完畢,DMA產(chǎn)生中斷,在此中斷中處理數(shù)據(jù)。本案采用了如下方法:每3次數(shù)據(jù)中取中值,每8個中值再取平均值作為最后的轉(zhuǎn)換結(jié)果,并據(jù)此判斷各電壓是否正常。

            3.3 用PWM方式產(chǎn)生OTP芯片的工作時鐘

            本案編程器提供給的是2MHz的工作時鐘(其它頻率也可)。本案利用TIM的PWM功能輸出一個2MHz的方波。

            TIM4的計數(shù)時鐘為36MHz,CH4設置為PWM1模式。設置完成、啟動TIM4后無需其它代碼即可在相應引腳上輸出時鐘信號,并可控制其啟動和停止。。

            3.4 頻率檢測

            本案采用主控制器內(nèi)部的SySTick產(chǎn)生1s中斷,并配合另一個定時器計數(shù)的頻率輸出。因為STM32F10x的工作主頻很高,因此可以很準確地檢測OTP單片機的內(nèi)部振蕩頻率。

            程序設計時利用了ST提供的標準外設庫STM32F10x_StdPeriph_Lib_V3.3.0。限于篇幅,具體代碼不詳述。

            4、結(jié)語

            本方案已在多種OTP單片機上測試,編程可靠,測量準確,效果很好。

          蜂鳴器相關文章:蜂鳴器原理


          評論


          相關推薦

          技術專區(qū)

          關閉