小可愛(ài)ing的個(gè)人空間 http://selenalain.com/space-uid-27518.html [收藏] [復制] [RSS]

博客

AVR芯片的ISP全攻略

已有 2131 次閱讀2011-1-6 13:50 |個(gè)人分類(lèi):單片機|

AVR芯片的ISP全攻略
并行編程,最早的編程方法,功能最強大,但需要連接較多的引腳,通常需要12V~24V的高壓,以示區別,下面稱(chēng)為 高壓并行編程。
ISP(In System Programmability)  在系統編程,簡(jiǎn)稱(chēng)為 串行下載
IAP(In Application Programing)  在應用編程,BootLoader也是類(lèi)似的意思
1 ISP雖然利用了SPI接口(例外:M64/M128為UASRT0接口,Tiny13等沒(méi)有SPI接口)的引腳,但只在復位時(shí)起作用,而且下載完成后合格的下載器會(huì )自動(dòng)斷開(kāi)端口的連接,對正常工作時(shí)沒(méi)有影響的( 在產(chǎn)品應用中,下載器一定是不會(huì )一直粘在上面的)。
2 雖然高壓并行下載能修復任何熔絲位,但對于貼片封裝來(lái)說(shuō)是很不現實(shí)的,所以ISP接口是最常用的下載方式了
3 雖然IAP是一種新的升級方法,但IAP程序本身也是要先用高壓并行下載或ISP來(lái)燒進(jìn)芯片里面才行
4 Tiny13等少管腳AVR芯片因為管腳實(shí)在太少了,有ISP,但沒(méi)有[高壓并行編程]而特制了[高壓串行編程] 所以,產(chǎn)品上一般都留有ISP接口插座,或更省位置的----留6個(gè)焊盤(pán)就行了
ISP的工作前提
    1 芯片沒(méi)有物理?yè)p壞
    2 芯片的SPIEN熔絲位=0    使能ISP功能
    3 芯片的RSTDISBL熔絲位=1 RESET引腳有效 (假如芯片有這個(gè)熔絲位)
    4 線(xiàn)路正常---------接錯線(xiàn)? 短路?
    5 下載器正常-------特別要考慮 連線(xiàn)的接觸不良問(wèn)題
    6 電源

  運行時(shí)鐘      ISP時(shí)鐘(必須低于運行時(shí)鐘的1/4)
  4096Hz        <1024Hz      //很變態(tài)的用法,外接32.768KHz晶體+CKDIV8 ,不過(guò)AVRISP還是提供了603Hz這個(gè)速度了
                           //另一簡(jiǎn)易解決辦法是 下載時(shí)在32.768KHz晶體并聯(lián)一個(gè)1MHz晶體,雙龍的下載線(xiàn)就配有一個(gè)8MHz的石英晶體
   32768Hz        <8192Hz
    128KHz      < 32KHz      //內部RC128KHz
    1.0MHz      <250KHz      //默認值(包括8MHz+CKDIV8),所以AVRISP的ISP速度多為230KHz
    8.0MHz      <2000KHz
    16.0MHz      <4000KHz
運行時(shí)鐘不等于震蕩器的頻率,因為部分AVR芯片有系統時(shí)鐘預分頻器,可以對震蕩器進(jìn)行1~256分頻
CKDIV8熔絲位決定CLKPS位的初始值。
若CKDIV8未編程,CLKPS位復位為“0000”;若CKDIV8 已編程,CLKPS 位復位為“0011”,給出啟動(dòng)時(shí)分頻因子為8
AVRISP可提供的ISP時(shí)鐘 921.6KHz,230.4KHz, 57.6KHz,28.8KHz,4.0KHz, 603Hz
STK500可提供的ISP時(shí)鐘 1.845MHz,460.8KHz,115.2KHz,57.6KHz,4.0KHz,1206Hz
  時(shí)鐘設定      ISP方案
  內部RC        選擇合適的ISP速度
  外部RC        接上合適的電阻和電容,選擇合適的ISP速度。------補救: 外部時(shí)鐘源接到XTAL1
                       外部RC 根本就沒(méi)有什么意義,頻率精度/穩定度不高,成本也沒(méi)有降低,所以新的AVR芯片已經(jīng)沒(méi)有這個(gè)選項了。
   各位要注意的是錯誤設定后補救方法
  外部晶體      接上合適的晶體,選擇合適的ISP速度。      ------補救: 外部時(shí)鐘源接到XTAL1
  外部時(shí)鐘      接上合適的時(shí)鐘源,選擇合適的ISP速度。    ------補救: 外部時(shí)鐘源接到XTAL1
外部時(shí)鐘源可以是 外部(4MHz)有源晶體輸出,其他MCU的XTAL2腳,各種方波振蕩電路(NE555)輸出等
大部分AVR芯片的ISP端口是  SCK,MOSI,MISO,RESET
而M64/M128的ISP端口是    SCK, PDI, PDO,RESET
    而且M64/M128出廠(chǎng)默認兼容M103----熔絲位M103C=0,很多新特性不能使用,程序也可能不能正常運行
    ----因為C編譯器通常默認自動(dòng)把SP指向SRAM的末端,M103=0x0FFFH, M64/M128=0x10FFH,必然出錯!
AVR的所有熔絲位均是:
  1 未編程,多為不起作用的意思。
  0  編程,多為  起作用的意思。
  基于可編程工藝的都是這樣:
  PROM/EEPROM/FLASH都是出廠(chǎng)時(shí)和擦除后變?yōu)槿?(0xFF)的,要編程才能變成0。
  反過(guò)來(lái)就是了,跟CE/OE/INT都是[低電平有效]一樣,都是很常見(jiàn)。
  在ISP模式下永遠不能訪(fǎng)問(wèn)(修改)SPIEN位,這是AVR芯片的硬件保護
  有獨立RESET腳的M16/M32/M64/M128等,在ISP模式下根本就就不會(huì )令I(lǐng)SP無(wú)效,無(wú)論如何修改熔絲位,都能恢復正常。
  M8/M48/M88/M168/Tiny系列有RSTDISBL熔絲位可以令導致RESET失效而令I(lǐng)SP無(wú)法工作外,其他情況都能恢復正常。
  一般來(lái)說(shuō),只要滿(mǎn)足ISP的工作前提,再把XTAL1接到一個(gè)4MHz有源晶體的輸出,基本是萬(wàn)試萬(wàn)靈的。
 不要忘記,并行高壓編程的時(shí)鐘信號也是從XTAL1導入方波信號的。
 如果有源晶振的方法不行(除了ISPEN=0,RSTDISBL=0情況外),恐怕高壓編程也未必能奏效。
  JTAG的影響(M16,M32,M128等):
  JTAG能訪(fǎng)問(wèn) SPIEN 和 JTAGEN,要是不小心同時(shí)改成SPIEN=1,JTAGEN=1,將會(huì )導致MCU鎖死,需要高壓并行編程才能恢復。
  DebugWIRE的影響(M48,M88,M168,T2313等,數據手冊里面的資料不是很詳細)
  由于DebugWIRE使用RESET腳來(lái)通訊,所以跟ISP有所沖突
  可以通過(guò)ISP或并行高壓編程來(lái)使能DebugWIRE功能[即DWEN=0],使能DebugWIRE功能后,ISP功能失效。
  可以通過(guò)DebugWIRE來(lái)關(guān)閉DebugWIRE功能[即DWEN=1],關(guān)閉DebugWIRE功能后,如果RSTDISBL=1,SPIEN=0,ISP功能有效。
  比較特殊的是 DebugWIRE調試中,斷點(diǎn)的使用會(huì )降低Flash 數據記憶時(shí)間 DebugWIRE調試用的器件不能發(fā)給最終客戶(hù)。
  JTAG MKII同時(shí)具備JTAG/DeubgWIRE/ISP三種功能,可以輕松實(shí)現DebugWIRE/ISP的切換。
    (軟件需要升級到1.09版以后 即對應AVRstudio 4.12以后版本)
  設計使用debugWIRE 的系統時(shí),必須進(jìn)行下面的檢查:
  • dW/(RESET) 的上拉電阻不得小于10kΩ。debugWIRE 并不需要上拉電阻
  • 將 RESET 引腳與 VCC 直接連接將無(wú)法工作
  • 使用debugWIRE 時(shí)必須斷開(kāi)與RESET 引腳連接的電容
  • 必須斷開(kāi)所有的外部復位源
 

評論 (0 個(gè)評論)

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页