AVR單片機ATmega16L出廠時熔絲位的設置有兩點是需要使用者注意的,一是它的時鐘設置為CKSEL3=0、CKSEL2=0、CKSEL1=0,即使用內部1MHz的RC振蕩器,因此當你要用外部晶振時,比如你要用串口,這時就需要重新配置熔絲位,才能正常使用串口。二是JTAGEN 熔絲位。缺省為編程狀態。因此你如果要用PC2~PC5做一般I/O引腳用的話,也不能使用,必須在熔絲位配置窗口中把JTAGEN前面的那個√去掉,這樣程序才能正常運行。我在使用該芯片時就遇到過這些問題,寫出來提醒同行參考。 當然你在配置熔斯位時要小心從事,防止芯片鎖死。有不少網友屢屢遭此不幸。其實你在熔絲位配置時,只要方法正確,一般是不會出錯的。以我們常用的小馬PonyProg2000下載軟件為例,在Command菜單中選Security and Configuration Bits,(或者點Security and Configuration Bits按鈕)在接著出現的熔絲位配置窗口的下面,有幾個按鈕,千萬不要亂按。正確的方法是先按“Read”按鈕,讀出原來芯片中熔絲位的配置,然后再以此為基礎,按你的需要進行局部修改,確定無誤后再按“Write”按鈕,就OK了。一般不會出現鎖死的問題。如果萬一由于操作不當,出現鎖死也不必驚慌。除了用并行編程器恢復的方法以外,對于沒有并行編程器的朋友,還可以用外接有源振蕩器的方法解鎖,方法是用一個1MHz的振蕩信號接到ATmega16L的 13腳XTAL1,接通單片機的電源,正常的話你會看到原來單片機中的程序已經可以正常運行了。說明外接振蕩器已經使單片機恢復工作了。這下來就好辦了,仍然用PonyProg2000,點Security and Configuration Bits按鈕,進入熔絲位配置窗口,這時你會看到所有的熔絲位都沒打√,連灰色的SPIEN前面那個模糊不清的√也沒了,不過沒關系Don’t worry,你只要按照下圖中ATmega16L出廠時熔絲位的設置打√,然后按“Write”按鈕,如果屏幕輕輕的閃一下,OK,恭喜你已經好了,再按“Read”按鈕,你會看到除了你打√的地方以外,SPIEN前面那個模糊不清的√也出來了。鎖死的芯片已經解鎖了。 要注意的是外接的信號幅度不可太大,以免損毀芯片,我開始用一個51單片機的震蕩信號接過來,結果不行,可能是驅動能力不夠。后來換了一個信號發生器輸出的1MHz的信號,就成功了。也可以用NE555芯片搭個振蕩器做信號源。
|