0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

保險絲如何編程

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-12 11:52 ? 次閱讀

步驟1:什么是保險絲?

當我們開始了解保險絲設置時,我們腦海中浮現(xiàn)出的根本問題是:保險絲到底是什么?為什么我們需要花時間去學習它們?

我希望這本指南對找到問題的答案有所幫助。

首先,AVR MCU通常具有三個存儲區(qū)域:1)FLASH,專用于程序代碼

2)SRAM,用于運行時變量。

3)EEPROM,可由用戶代碼用來存儲在MCU關閉時必須保留的數據。

4)現(xiàn)在,保險絲形成了可用于編程的第四個存儲區(qū)。它包含一些包含這些位的字節(jié)。

簡單地說,保險絲是微控制器存儲器的一部分,為某些功能保留,這些功能決定了微控制器的工作方式。準確地說,保險絲是保留的。微控制器中EEPROM存儲器的一部分。 EEPROM代表電可擦可編程只讀存儲器。 EEPROM是非易失性存儲器。非易失性是指一旦存儲,即使關閉電源也可以保留存儲器。保險絲是控制低電平功能和引腳分配的EEPROM位。保險絲不能通過程序訪問,只能由芯片程序員進行更改。我將在后面解釋我的低級功能。如我所說,程序一旦完成就無法使用熔絲設置,這意味著微控制器芯片中運行的程序無法更改熔絲設置。即使您使用的是“自編程”微控制器,即允許其上運行的引導加載程序軟件將程序上傳到其閃存的微控制器,您也無法更改熔絲位。

盡管我簡要瀏覽了整個主題,但我主要打算展示如何為avr微控制器設置保險絲,以便使用外部時鐘運行它。

步驟2:為什么需要編程保險絲?

保險絲控制著微控制器的工作方式,因此更改保險絲設置可以使我們根據自己的要求來更改和修改微控制器。在芯片可以用于外部環(huán)境之前,該芯片中很少有用于配置它的參數。這些參數通過保險絲位設置。換句話說,保險絲位決定芯片的性能,是否具有引導加載程序,運行的速度和電壓,看門狗定時器條件,存儲器保護模式,啟動選項,時鐘源和分頻器,編程選項,斷電檢測等。

保險絲位的主要優(yōu)點非常明顯,可以根據情況配置微控制器。無法通過程序代碼更改時鐘行為。不同的AVR型號之間的保險絲位差異很大。

步驟3:如何編程保險絲?

在開始之前,我們需要查看Atmega8的保險絲位和的初始值。他們。由于即時通訊使我可以通過移動設備進行操作,因此我制作了包含所需詳細信息的表格。我使用Google Sheet Android應用程序創(chuàng)建了它。我找不到將它們轉換為圖片的方法。因此,我在這里發(fā)布了鏈接。

Atmega 8的保險絲位(本教程中使用的那個im)

https://docs.google.com/spreadsheets/d/1haE2Sprdsa-NgKYsOQlwI99WHfGqCItJutG4h-MnOus/edit?usp = docslist_api

現(xiàn)在,我們將繼續(xù)介紹如何根據所使用的特定編程器對AVR中的熔絲位進行編程的詳細信息。首先,我們應該查閱程序員的手冊以了解詳細信息。例如,如果您將STK600與AVR Studio一起使用,則STK600窗口具有標簽為Fuses的選項卡,您可以在其中設置不同的位,并可以在其中編程,驗證或讀取保險絲位。

(例如,我使用的是Atmega8。我主要使用Atmega 8,因為它便宜并且可以容納大多數項目的內存)。

大多數人對此主題感到困惑。簡而言之,只有兩種類型的保險絲:高保險絲(hfuse)和低保險絲(lfuse),某些微控制器還有一個額外的保險絲字節(jié),稱為擴展保險絲(efuse)。

最令人困惑的部分是這里。熔絲位的未編程狀態(tài)為邏輯高或1,對任何熔絲位進行編程都會將其電平更改為邏輯低或0。

“要記住的一個例外是-與引導加載程序相關的熔絲位不能從軟件,但是可以使用并行/串行編程工具以編程模式進行訪問。“

如上圖所示,顯示了保險絲及其位值和位數。上面提到的保險絲的一些功能是:-(我在發(fā)布的圖中使用了Atmega 8數據表)。

高保險絲字節(jié)(hfuse)

1)第一位是BOOTRST,即默認情況下未編程(1)。如果將該位編程為(0),則在加電或器件復位后,它將從引導加載程序存儲器部分開始執(zhí)行程序。簡而言之,如果使用引導程序來閃存MCU,則必須使能該位。如果僅使用ISP編程器上載固件,則不要更改此位。如果使用引導加載程序,則BOOTSZ0和BOOTSZ1也很重要。這些位允許選擇引導加載程序節(jié)的大小。

2)下一位是EESAVE。如果對此熔絲進行了編程(通過寫入0),則在芯片擦除過程中EEPROM存儲器保持不變。有時,這種保險絲可能會有所幫助。例如,如果您將一些重要數據(例如校準值)保留在EEPROM存儲器中,并且需要在不丟失數據的情況下更新程序,則可以對該位置進行編程。但是,如果要在擦除后始終保持干凈的芯片,則不要更改該位(設置為1)。

3)WDTON位用于初始設置看門狗定時器。如果對此進行編程,則在不特別注意的情況下,將強制您的看門狗定時器始終處于打開狀態(tài),并保持周期性地重置芯片。如果不需要看門狗,則不要對其編程。

4)SPIEN位用于禁用串行編程模式ISP。實際上,不可能從串行模式禁用該位。必須通過高壓編程來完成。

5)RSTDSBL位的情況與此相同。它用于禁用將RESET引腳轉換為I/O的復位功能。通常不建議這樣做。并且當在ISP模式下對器件進行編程時,不能將其禁用。

6)CKOPT位用于選擇振蕩器選項。

低熔絲(熔絲)

讓我們看一下熔絲的低字節(jié)。

1 )一組四個相似的位(CKSEL0至CKSEL3)用于選擇時鐘選項。默認情況下,CKSEL0至CKSEL3保險絲被設置為選擇內部8MHz RC振蕩器。但是我們知道AVR可以用更多不同的方式計時:

*校準的內部RC振蕩器(默認8MHz)

*外部RC振蕩器

*外部晶體或晶體諧振器

*外部低頻晶體

*外部時鐘信號

我將在下一步中說明有關SUT(啟動時間)的內容。

稍后,我將在本指南中介紹如何自行計算這些值。

2)BODEN或掉電檢測使能位使能掉電檢測。通常禁用掉電檢測(1)。將該位編程為低(0)使能進行掉電檢測。此功能的原因是-當電源電壓低于微控制器所需的電壓時,它開始出現(xiàn)異常行為。它可能會開始擦除自己的內存,也可能會從其閃存中運行隨機部分。為避免這種情況,提供了掉電檢測功能。一旦電源電壓低于設定的BOD電平,芯片將安全切換。當電源電壓再次恢復正常時,芯片將重新啟動。

BODLEVEL-通過此位,我們可以設置掉電檢測電平。例如-如果微控制器以3.3伏特運行,我們可以將掉電檢測電平設置為2.7伏特,這樣,如果電源電壓低于此電壓,則微控制器將安全關閉。

此處要注意的有趣功能是的,像Atmega 32這樣的其他AVR微控制器也有一些不同的熔斷器,例如在高熔斷器字節(jié)中有OCDEN和JTAGEN,在Atmega 328p中有DWEN等。

我為低質量的圖片表示歉意,因為我根據我的要求對此進行了說明機器人。

第4步:對時鐘和振蕩器的了解。

是的,確實有很多保險絲計算器應用可用互聯(lián)網。但是我個人在徹底學習該主題之前不喜歡使用它?,F(xiàn)在是時候了解我們自己對熔絲位進行編程的方式了。我將撰寫如何根據我們的需求選擇和更改不同的時鐘功能。在開始編程之前,我們需要學習與該主題相關的一些術語。

什么是時鐘?

時鐘只是一種可以跟蹤時間的設備,它可以帶給您節(jié)拍的感覺搬去。例如,墻上的時鐘以秒為單位遞增。節(jié)拍器的節(jié)拍器可能每半秒或整秒給您一個節(jié)拍。時鐘滴答(每秒周期)的次數稱為其頻率,以赫茲(Hz或周期/秒)為單位。同樣,Atmega內部也有一個時鐘,其速度直接與其每秒(在時鐘的每個滴答/周期內)可以執(zhí)行多少條指令有關。大多數AVR附帶的默認時鐘速度為1 MHz(每秒1百萬個周期)。

內部振蕩器的唯一缺點是其頻率隨施加的電壓和溫度而變化,而其他時鐘則沒有這種情況。源。

如何設置時鐘速度?

我們有兩個選擇:

使用內部時鐘或外部時鐘。如果我們編寫的代碼可以執(zhí)行基本操作,并且不需要精確計時,則內部時鐘就足夠了。在任何其他情況下,尤其是對于通信(例如,使用UART),時序至關重要。在這種情況下,我們需要一種替代方法,因此我們使用諸如晶體,諧振器,振蕩器和時鐘之類的東西。它們都適合以我們想要的頻率產生我們想要的節(jié)拍,但是在業(yè)余愛好者中最常見的是晶體和諧振器。在本教程中,我們將使用一個晶體。

要使用該晶體,我們還需要兩個18-22 pF陶瓷電容器。另一方面,諧振器將電容器和晶體內置于一個封裝中,因此使其更加緊湊。這幾乎只是差異,但是如果使用諧振器,則在設置熔絲位方面可能會有細微的差異。振蕩器需要一個外部電源來工作,并且通常具有四個引腳。

啟動時間(SUT)

時鐘源通常需要一點時間進行預熱,并在微控制器啟動時向我們提供可靠的信號已開啟。這稱為啟動時間。

步驟5:自行編程時鐘保險絲!

您已經對保險絲字節(jié)及其工作原理以及在微控制器(此處為Atmega 8)中的功能有一個大概的基本了解。現(xiàn)在,我們正在進入編程階段。我主要是出于這個目的使用Winavr,所以我無法告訴您如何使用極限刻錄機和其他工具來實現(xiàn)。

我們現(xiàn)在知道我們必須從高熔絲字節(jié)更改CKOPT(第4位)并進行更改低熔絲字節(jié)中的CKSEL0,CKSEL1,CKSEL2,CKSEL3和SUT0,SUT1的值,因為它們是控制時鐘設置的位。由于我們僅配置時鐘設置,因此其他保險絲設置將保持不變。如果甚至錯誤地更改了其他保險絲的位值,微控制器也會變磚。

電子表格包含低保險絲位CKSEL3,CKSEL2,CKSEL1和CKSEL0的選項。這將幫助我們選擇需要用于微控制器的時鐘源。我已經從Atmega8的數據表中制作了這個Google工作表,請與教程保持打開狀態(tài)

鏈接在這里-

https://docs.google.com/spreadsheets/d/11IjfDRkWHNW0dj0FEKCDzZMcXTvDuv1Q4jMPNpIYck0/edit ?usp = docslist_api

因此,由于我使用外部晶體運行微控制器,因此我將使用與該選項相對應的值CKSEL3-CKSEL0。但是我們看到,這些值在1111-1010范圍內。要選擇準確的值,我們需要查看另一個表,該表包含了我們希望微控制器獲得的頻率值。這是一張根據頻率包含CKOPT值和CKSEL3-1值的表。選擇編程的CKOPT值(0)。編程的CKOPT值用于高頻操作。我還將CKSEL3-1的值選擇為111。現(xiàn)在,我們需要從中選擇CKSEL0,SUT1和SUT0值的選項。這是鏈接-https://docs.google.com/spreadsheets/d/1028hW05QgAiBQzUzOMjDfJ1VCY8tcOMtgQAsnH5xOWw/edit?usp=docslist_api

如果您查找表格,則會找到啟動時間及其對應選項的列表位值。我選擇具有65毫秒啟動延遲時間的晶體振蕩器,因為我在這里使用了晶體振蕩器。因此,根據表,CKSEL0值為1,SUT1值為1,SUT0值為1。由于我們使用的是晶體振蕩器,并且啟動時間與晶體振蕩器相對應,因此我們的CKSEL3-CKSEL0值將變?yōu)?111.

這完成了我們的選擇選項。

第6步:總結。

上一步可能看起來很混亂,命令,但此步驟將清楚地顯示整個過程。

那么,我們實際上要做什么?

我們有一個微控制器(這里是Atmega 8)。它以出廠時的默認頻率運行。我們想在16Mhz外部晶體上運行它。

那到底該怎么做?僅查看和更改熔絲位值。我們也不要忘記,1表示未編程,0表示已編程?,F(xiàn)在,芯片處于默認的熔絲字節(jié)配置。首先,我們需要決定如何運行微控制器?為簡單起見,讓我們假設只有三個選項-外部晶體,外部諧振器或內部振蕩器。

我們發(fā)現(xiàn)晶體振蕩器是一種可靠的計時源,我們不介意為兩個22pf電容器花一點錢。現(xiàn)在,我們的選擇很明確,我們希望使用外部晶體來運行AVR芯片。

但是從哪里可以得到選擇外部晶體振蕩器的選項?

在熔絲低位字節(jié)中的CKSEL3至CKSEL0中提供了這些選項。

我們查看了微控制器數據表中提供的表格,發(fā)現(xiàn)有一個稱為陶瓷諧振器或晶振的選件。我們當然希望如此,因此我們記下與之關聯(lián)的CKSEL3-CKSEL0的位值。

Hmm,但該范圍的值范圍為1111-1010。具體要選哪一個?以及如何指定晶體振蕩器的頻率?顯然,晶體有很多可用頻率,我們只想在16Mhz上運行。為此,我們查看另一個表,其中包含頻率和與之配合使用的推薦電容器范圍。

在此表中,我們發(fā)現(xiàn)16Mhz大于1 Mhz,因此我們選擇該選項。與我們選擇的CKOPT相關的位的值為0,與此同時,我們?yōu)镃KSEL3-CKSEL1的值選擇了111。

現(xiàn)在我們可以確定我們正在運行帶有16Mhz外部晶振的avr芯片。

我們剛剛閱讀了有關熔絲位的說明,并談到了一些晶振需要預熱并啟動的啟動時間資料發(fā)出可靠的信號。

我們如何找到它?

我們再次在同一指令提供的表格中找到它。現(xiàn)在此表包含CKSEL0值以及SUT1和SUT0值。我們選擇65毫秒的啟動時間選項,因此我們的相應位值為CKSEL0 -1,SUT1-1,SUT0-1-1。

因此,我們成功完成了低熔絲字節(jié)組的選擇。高熔絲字節(jié)設置為-

7)RSTDISBL- 1

6)WDTON-1

5)SPIEN -0

4)CKOPT -1 《3》 EESAVE -1

2 )BOOTSZ1 -0

1)BOOTSZ0 -0

0)BOOTRST -1

現(xiàn)在我們必須將它們更改為-

7)RSTDISBL -1

6)WDTON -1

5)SPIEN -0

4)CKOPT -0

3)EESAVE -1

2)BOOTSZ1 -0

1)BOOTSZ0 -0

0)BOOTRST -1

11001001(二進制)或C9(十六進制)。我們只是將CKOPT從1更改為0,其他所有都保持不變。

現(xiàn)在是低熔絲字節(jié),最初是-

7)BODLEVEL -1

6)BODEN -1

5 )SUT1 -1

4)SUT0 -0

3)CKSEL3 -0

2)CKSEL2 -0

1)CKSEL1 -0

0)CKSEL0 -1

我們正在改變-7)BODLEVEL -1

6)BODEN -1

5)SUT1 -1

4)SUT0 -1 《3》 CKSEL3 -1 《2》 CKSEL2- 1

1)CKSEL1 -1 《0》 0)CKSEL0 -1

二進制為11111111,十六進制為FF。

現(xiàn)在,既然完成了evrything,我們只需要在微控制器中刻錄這些新設置即可。

使用avrdude語法,它應該是-

avrdude -c usbasp -p m8 -U lfuse:w: 0b11111111:m -U hfuse:w:0b11001001:m

但是最好以十六進制形式編寫,例如-

avrdude -c usbasp -p m8 -U lfuse:w:0xff:m -U hfuse: w:0xC9:m

Atmega8內部1Mhz振蕩器的默認值為-

avrdude -p atmega8 -c usbasp -U lfuse:w:0xE1:m -U hfuse:w:0xD9:m

最后,整個過程到此結束。盡管這并不能完全解釋保險絲及其編程方法,但對于初學者來說,這絕對是一個大概的主意。

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 保險絲
    +關注

    關注

    4

    文章

    577

    瀏覽量

    44023
  • 編程
    +關注

    關注

    88

    文章

    3574

    瀏覽量

    93545
收藏 人收藏

    評論

    相關推薦

    自恢復保險絲的原理是什么

    自恢復保險絲是一種能夠在過流、過載、過熱或短路情況下自動切斷電路,并在故障解除后自動恢復導通狀態(tài)的裝置。與傳統(tǒng)的熔斷保險絲不同,自恢復保險絲無需手動更換,可以多次使用,因此更加可靠和便捷。
    的頭像 發(fā)表于 10-15 18:07 ?447次閱讀

    汽車智能保險絲

    電子發(fā)燒友網站提供《汽車智能保險絲.pdf》資料免費下載
    發(fā)表于 08-29 11:10 ?0次下載
    汽車智能<b class='flag-5'>保險絲</b>

    保險絲的常見術語

    保險絲斷開瞬間,能安全承受的最大電壓,選用保險絲時,被選用保險絲的額定電壓,應大于被保護回路的輸入電壓。
    的頭像 發(fā)表于 04-10 11:20 ?587次閱讀

    關于汽車保險絲的常見問題

    汽車常用保險絲有高電流保險絲和中低電流保險絲,一般較容易接觸到的為中低電流保險絲。
    的頭像 發(fā)表于 04-01 11:38 ?693次閱讀

    怎么判定保險絲好壞 判別保險絲好壞的方法 保險絲的選用

    怎么判定保險絲好壞 判別保險絲好壞的方法 保險絲的選用? 判定保險絲好壞以及選擇合適的保險絲對于電氣設備的安全運行非常重要。 一、判定
    的頭像 發(fā)表于 03-07 16:39 ?8248次閱讀

    延時保險絲的工作原理 延時保險絲和普通保險絲的區(qū)別

    延時保險絲的工作原理 延時保險絲和普通保險絲的區(qū)別? 延時保險絲是一種常見的電子元件,廣泛應用于各種電子設備中。它的主要作用是在電流突然超過設定值時提供短時間的延時,以防止設備過載或短
    的頭像 發(fā)表于 03-05 17:06 ?5030次閱讀

    保險絲的作用是什么?工作原理是什么?

    保險絲是一種用來保護電路安全的電器元件。它的作用是在電路中的電流超過設定值時自動切斷電源,防止電路過載、短路、故障和設備損壞。保險絲的工作原理基于熱效應和電磁效應,當電流通過保險絲時,產生的熱量
    的頭像 發(fā)表于 02-21 16:28 ?5508次閱讀

    保險絲的作用是防止電流太大?那么電壓高了保險絲還有作用嗎?

    保險絲的作用是防止電流太大?那么電壓高了保險絲還有作用嗎? 保險絲是一種用來保護電路的安全設備,它的作用是限制電流在安全范圍內,防止電路過載或短路情況下?lián)p壞設備、引發(fā)火災或電擊等危險。然而,
    的頭像 發(fā)表于 02-18 14:11 ?2536次閱讀
    <b class='flag-5'>保險絲</b>的作用是防止電流太大?那么電壓高了<b class='flag-5'>保險絲</b>還有作用嗎?

    保險絲的作用是什么 保險絲是什么材料做成的

    保險絲是一種用于保護電路的安全裝置,它的作用是在電流過載時斷開電路,以防止設備損壞和火災的發(fā)生。保險絲由細絲狀的導體制成,一般采用銅、鐵、鉛、鋁、錫等材料。下面將詳細介紹保險絲的工作原理、分類以及在
    的頭像 發(fā)表于 01-18 16:35 ?3815次閱讀

    一次性保險絲與自恢復保險絲這兩種之間有什么差別?

    一次性保險絲與自恢復保險絲這兩種之間有什么差別? 一次性保險絲和自恢復保險絲是兩種用于電氣系統(tǒng)中的保險器件,它們在功能和特性上存在一些差異。
    的頭像 發(fā)表于 01-04 14:13 ?1437次閱讀

    什么是自恢復保險絲?自恢復保險絲有什么作用?

    什么是自恢復保險絲?自恢復保險絲有什么作用?? 自恢復保險絲是一種使用聚合物溫控材料制成的電流保護器件。它具有自恢復及過流保護功能,適用于各種電氣和電子設備中,從而保護它們免受過電流和過熱的損壞
    的頭像 發(fā)表于 01-03 11:43 ?1464次閱讀

    空氣開關有保險絲嗎?空氣開關能否代替保險絲

    空氣開關有保險絲嗎?空氣開關能否代替保險絲? 空氣開關和保險絲是電路中常見的兩種保護裝置。它們都起著防止電路過載和短路的作用,但它們的工作原理和使用場景有所不同。在本文中,我將詳細介紹空氣開關
    的頭像 發(fā)表于 12-20 17:05 ?5019次閱讀

    保險絲基礎知識科普

    額定電流: 反映保險絲實際應用時的電流值,In 被標在保險絲上。
    的頭像 發(fā)表于 12-11 11:13 ?2612次閱讀
    <b class='flag-5'>保險絲</b>基礎知識科普

    什么是自恢復保險絲?自恢復保險絲有哪些不同類型?

    自恢復保險絲是一種保護電子電路免受過流、過載、過熱或短路損壞的裝置。自恢復保險絲有兩種類型:傳統(tǒng)的徑向引線和SMD芯片封裝。自恢復保險絲具有正溫度系數 (PTC),這意味著溫度升高后電阻會增加。當
    的頭像 發(fā)表于 11-30 15:07 ?7094次閱讀
    什么是自恢復<b class='flag-5'>保險絲</b>?自恢復<b class='flag-5'>保險絲</b>有哪些不同類型?

    保險絲選型指南

    電子發(fā)燒友網站提供《保險絲選型指南.pdf》資料免費下載
    發(fā)表于 11-15 11:30 ?2次下載
    <b class='flag-5'>保險絲</b>選型指南