ATmega128在開(kāi)發(fā)應用中應注意的問(wèn)題
(1)晶振的設置方法
菜單中CKSEL0~CKSEL3是設置晶振的選項。ATmega128由于有內部晶振,所以首先要確定是外部晶振還是內部晶振。表1給出了內、外部晶振的范圍。表2和表3給出了內、外部晶振頻率的設置方法。
(2)熔絲位的設置方法
通過(guò)JTAG接口來(lái)實(shí)現對熔絲的設置,只要設置好如圖1所示的相應位,就可以實(shí)現不同的功能。關(guān)于熔絲每一位的功能,首先需要說(shuō)明的是,在對熔絲位進(jìn)行設置時(shí),如果讀出該位為“0”,說(shuō)明該位已被設置;該位為“1”則未被設置。ATmega128中一共有3個(gè)字節是有關(guān)熔絲的設置。其中第1個(gè)字節只用到了低2位,分別是WDTON(看門(mén)狗始終開(kāi))和M103C(ATmega103兼容模式);第2個(gè)字節的低4位是CLK0~CLK3,高4位分別是SUT0、SUT1(啟動(dòng)時(shí)間選擇)、BODEN(低功耗檢測使能)、BODLEVEL(低功耗檢測觸發(fā)程度);第3個(gè)字節的每一位分別是:BOOTRST(復位向量選擇)、BOOTSZ0、BOOTSZ1(BOOT區大小選擇)、EESAVE(芯片擦除過(guò)程中E2PROM內容保持)、CKOPT(選擇晶振操作)、SPIEN(串行下載程序使能,在PonyProg2000中沒(méi)有這一位是因為PonyProg2000本身通過(guò)串行下載程序,故不能修改)、JTAGEN(JTAG使能)、OCDEN(OCD使能,OCD即ON CHIP DEBUG)。
ATmega128有6個(gè)位鎖位,其中BOOTLOCK12、BOOTLOCK11、BOOTLOCK02、BOOTLOCK01是關(guān)于BOOT區的4個(gè)位鎖位,而LOCK2和LOCK1則是熔絲位的位鎖位??梢酝ㄟ^(guò)設置熔絲位鎖位來(lái)選擇使用相應的功能。所以在使用熔絲位功能以前一定要先設置相應的“解鎖”,即將LOCK2和LOCK1都設置為“1”。
若用ICCAVR來(lái)開(kāi)發(fā)編譯軟件,再通過(guò)PonyProg2000將程序直接下載到ATmega128芯片中去,可以即時(shí)地將程序思想反映到要實(shí)現的功能上來(lái),便于即時(shí)地修改程序中的錯誤,大大縮短產(chǎn)品的開(kāi)發(fā)時(shí)間。
ATmega128和51系列單片機基本上是2種不同的開(kāi)發(fā)方式,在筆者使用過(guò)程中,總結出了以下一些常見(jiàn)的但必須重視的問(wèn)題。
(1)管 腳
ATmega128具有豐富的管腳資源,一共有8個(gè)端口共53個(gè)I/O引腳,而且每一個(gè)I/O引腳都可以通過(guò)編程來(lái)設置輸入、輸出方式。ATmega128的每一個(gè)端口都有3個(gè)寄存器與之對應,現以PA口為例來(lái)說(shuō)明管腳的設置。①方向寄存器DDRA。DDRA的每一位對應于PA口的1個(gè)I/O管腳,相應的位為1,則將該管腳設置為輸出引腳;為0則設置為輸入引腳。②是輸出寄存器PORTA。用來(lái)存放ATmega128輸出的數據。③輸入寄存器PINA,用來(lái)存放ATmega128輸入的數據。在對PA口進(jìn)行具體操作時(shí),首先應該設置好DDRA,然后根據DDRA來(lái)選用PORTA或者PINA(注意一定不要搞錯方向)。
評論