|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
對因熔絲位設(shè)置錯誤導(dǎo)致不能SPI寫入的總結(jié),以M16和M8為例 |
| 作者:maychang 欄目:新手園地 |
AVR單片機可以通過SPI口串行寫入程序,很方便,但熔絲位設(shè)置錯誤則可能會導(dǎo)致不能用SPI方式寫入。 首先我們必須清楚SPI寫入時,芯片已上電,而且SPI寫入時芯片要進行一系列操作如數(shù)據(jù)移動等,所以必須有時鐘,在時鐘作用下,芯片內(nèi)如果有先前寫入的程序,則此程序已經(jīng)被執(zhí)行。 SPI串行寫入必須滿足3個條件: (1) SPIEN位已編程,即允許SPI寫入。 (2) 芯片已有適當(dāng)?shù)臅r鐘。 (3) 芯片可以由外部電路復(fù)位。 三個條件缺一不可。 不能由SPI寫入的情況有下列幾種: (1) SPIEN位被置1。SPIEN位在SPI串行編程情況下是不能修改的,但并行編程可以修改。如果芯片先前曾并行編程,將SPIEN位置為1,則不能由SPI串行進一步編程。 出現(xiàn)這種情況,只要拿到并行編程器上重新將熔絲位設(shè)置成默認(rèn)值即可。 (2) 芯片時鐘源被誤設(shè)置成使用外部晶體或RC振蕩器,但目標(biāo)板上沒有晶體或相關(guān)電路,因此沒有時鐘,不能再次編程。 這種情況當(dāng)然也可以使用并行編程器將熔絲位改回來,但不一定要使用并行編程器,只要在芯片外部正確接上晶體或由一個適當(dāng)?shù)念l率源驅(qū)動XTAL1引腳,就可以進行SPI串行編程。 (3) M8的RSTDISBL位未編程,但目標(biāo)板上按照51單片機的習(xí)慣接了個電容到地和電阻到正電源。此時芯片不能由SPI復(fù)位,因為SPI編程器沒有驅(qū)動這么大電容負載的能力,所以不能SPI串行編程。 這種情況只要拆掉這個電容即可。實際上,M8內(nèi)部已有上電復(fù)位電路,沒有必要在外部接上電復(fù)位電路。 同樣的理由,如果目標(biāo)板上有外部看門狗芯片,也有可能造成不能由SPI串行編程的結(jié)果。和外部復(fù)位電路一樣,對M8來說外部看門狗是多余的。 (4) M8/M48/M88/M168是小封裝單片機,其RESET引腳可以作通用I/O用(PC6)。如果熔絲位RSTDISBL已編程,并且程序中將PC6設(shè)置成輸出,則不能由SPI再次編程,也不能用并行編程器再次編程。這是因為SPI編程器和并行編程器都沒有那么大的驅(qū)動能力將PC6引腳拉高或拉低。 這是最糟糕的情況,該芯片只能作廢,不過已寫入的程序可以執(zhí)行。 為避免這種情況發(fā)生,PC6絕不能作為輸出引腳使用,最好是不把RSTDISBL熔絲位編程。 |
| 2樓: | >>參與討論 |
| 作者: forbbs21ic 于 2006/8/6 8:40:00 發(fā)布:
好 適合初學(xué)者參考! |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |