深圳技師學(xué)院 郭惠婷
AVRduino創(chuàng)客訓(xùn)練裝置開發(fā)
深圳技師學(xué)院 郭惠婷
AVRduino創(chuàng)客訓(xùn)練裝置是一種采用AVR單片機(jī)為核心的進(jìn)行程序設(shè)計(jì)和控制的電子裝置。它既可以進(jìn)行AVR單片機(jī)控制,又可以進(jìn)行Arduino項(xiàng)目轉(zhuǎn)AVR單片機(jī)控制、AVR單片機(jī)控制項(xiàng)目轉(zhuǎn)51單片機(jī)、Arduino控制項(xiàng)目。
AVR;Arduino;單片機(jī);創(chuàng)客
隨著經(jīng)濟(jì)的快速發(fā)展,產(chǎn)業(yè)結(jié)構(gòu)的不斷調(diào)整,企業(yè)對創(chuàng)客、創(chuàng)新型技能人才的需求量越來越大,對創(chuàng)客、創(chuàng)新型技能人才的要求也越來越高。
AVRduino創(chuàng)客訓(xùn)練裝置是一種采用AVR單片機(jī)為核心的進(jìn)行程序設(shè)計(jì)和控制的電子裝置,它是為了支持大眾創(chuàng)業(yè)、萬眾創(chuàng)新,為創(chuàng)客實(shí)現(xiàn)創(chuàng)新提供技術(shù)支持和應(yīng)用技能訓(xùn)練而開發(fā)的實(shí)訓(xùn)裝置。該裝置結(jié)合AVR單片機(jī)開發(fā)應(yīng)用實(shí)際,改變長期以來只重單片機(jī)基礎(chǔ)知識演示實(shí)驗(yàn)、不與應(yīng)用結(jié)合的現(xiàn)狀,將實(shí)際項(xiàng)目抽象為簡單的訓(xùn)練任務(wù),為學(xué)生提供系統(tǒng)全面的技能訓(xùn)練,讓學(xué)生從單片機(jī)系統(tǒng)開發(fā)高度,確定系統(tǒng)模塊,再通過模塊化編程,協(xié)調(diào)解決應(yīng)用問題,提高AVR創(chuàng)客和學(xué)生的學(xué)習(xí)效率和產(chǎn)品創(chuàng)新設(shè)計(jì)的能力。
AVRduino是吸收AVR開發(fā)技術(shù)和Arduino開源創(chuàng)新特點(diǎn)的開發(fā)裝置,即Arduino+AVR = AVRduino。Arduino是開源硬件和軟件的全稱,風(fēng)靡全球,創(chuàng)客資源豐富,但硬件接口少;無通用定時(shí)器、計(jì)數(shù)器;實(shí)時(shí)控制功能差等。AVR是采用RISC結(jié)構(gòu)的高級單片機(jī),能夠采用高級語言來編寫嵌入式系統(tǒng)的系統(tǒng)程序,從而能高效地開發(fā)出目標(biāo)代碼,但AVR無底層驅(qū)動;帶傳感器難;I2C通信難;LCD、SPI、SD卡驅(qū)動復(fù)雜等;
本項(xiàng)目充分吸收AVR與Arduino的優(yōu)點(diǎn),克服其各自的缺點(diǎn)開發(fā)出AVRduino創(chuàng)客訓(xùn)練裝置,本裝置采用ISP下載線結(jié)合ICCV7、WINAVR+AVRStudio軟件編程,可以完成AVR單片機(jī)的各種控制開發(fā),采用USB下載線結(jié)合Arduino IDE軟件編程,充分利用Arduino 的優(yōu)點(diǎn),可以完成Arduino創(chuàng)客創(chuàng)意產(chǎn)品的開發(fā)。
本裝置的主芯片是ATmega16,包含16KB的Flash,256字節(jié)的RAM。該裝置采用集成電路構(gòu)建的方式制成,結(jié)構(gòu)簡單、易于制作、體積小、便于攜帶和使用。所需的單元電路分解為CPU控制模塊、輸入/輸出控制模塊、通信電路模塊、電源電路模塊等。
2.1 輸入/輸出控制模塊
AVR單片機(jī)ATmegal6有32個(gè)輸入/輸出端口,分別為PA、PB、PC、PD 4組8位端口,對應(yīng)于芯片的32個(gè)I/O端口引腳,所有的I/O端口都是復(fù)用的,第一功能是數(shù)字通用I/O端口,復(fù)用功能可以是中斷、定時(shí)/計(jì)數(shù)器、I2C、SPI、USART、模擬比較、輸入捕捉等。為了方便進(jìn)行各項(xiàng)輸入/輸出實(shí)驗(yàn),本裝置的4組I/O口都用排針引出,如圖1所示。以下簡略介紹本裝置的數(shù)字輸入/輸出控制電路。
2.1.1 交叉閃爍LED燈輸出控制電路
本裝置將8只LED燈連在主控芯片的PB口,為方便做交叉閃爍及流水燈等實(shí)訓(xùn)項(xiàng)目,交叉閃爍LED燈輸出控制電路如圖2所示。
圖1
圖2
2.1.2 LED數(shù)碼管輸出顯示電路
單片機(jī)的拉電流比較小,灌電流比較大,不能用來直接驅(qū)動數(shù)碼管,所以擴(kuò)流電路是必需的,且AVR單片機(jī)只有32個(gè)I/ O口,因此不能用三級管來驅(qū)動,否則I/O口將不夠用,于是選用74HC573鎖存器來解決即擴(kuò)流又?jǐn)UI/O口的問題,電原理圖如圖3所示。PA3用于位選,用于控制哪個(gè)數(shù)碼管亮,PA4用于段選,用于控制顯示某位數(shù)字。
2.1.3 按鍵輸入控制電路
在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式,即每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接,如圖4所示,矩陣按鍵與單片機(jī)的PD口連接。本裝置采用的是2腳的輕觸式按鍵,按下時(shí)導(dǎo)通,松開則斷開。
圖3
圖4
2.2 通信電路模塊
本裝置涉及到的通信有I2C,SPI、RS232通信等,以下只簡單介紹本裝置的RS232通信接口電路的實(shí)現(xiàn)方式。
在遠(yuǎn)距離數(shù)據(jù)傳輸時(shí),普通的TTL或CMOS 電平無法滿足工業(yè)現(xiàn)場的抗干擾要求和各種電氣性能要求,因此本裝置采用國際電氣工業(yè)協(xié)會EIA推進(jìn)的RS-232接口標(biāo)準(zhǔn)。
(1)RS232電平與TTL/CMOS電平的轉(zhuǎn)換
本裝置采用DB9作為連接器,TTL/CMOS電平采用的是0-5V的正邏輯,即 OV 表示邏輯0,5V 表示邏輯1,而RS-232采用的是負(fù)邏輯,邏輯0用+5~+15V 表示,邏輯1用-5~-15V 表示。在TTL/CMOS中,如果使用RS-232 串行口進(jìn)行通信,必須進(jìn)行電平轉(zhuǎn)換。MAX232是一種常見的RS-232 電平轉(zhuǎn)換芯片,外圍僅需少數(shù)幾個(gè)電容器即可,如圖5所示。
圖5
圖6
(2)USB到RS232的轉(zhuǎn)換
為實(shí)現(xiàn)用筆記本電腦下載程序,本裝置設(shè)置了USB轉(zhuǎn)RS-232,采用的芯片是CH340。參照CH340數(shù)據(jù)手冊,CH340T的USB下載和外擴(kuò)電源接口電路如圖6所示。
軟件設(shè)計(jì)主要包括AVRduino的Bootload開發(fā)、下載和調(diào)試,ICCV7 for AVR應(yīng)用實(shí)踐開發(fā)測試,AVRduino庫文件開發(fā)和Arduino IDE應(yīng)用實(shí)踐的開發(fā)。在軟件測試中,利用ICCV7開發(fā)軟件設(shè)計(jì)AVR單片機(jī)應(yīng)用程序,利用ISP下載線和ISP通信接口下載程序,進(jìn)行AVR單片機(jī)的輸入輸出控制技術(shù)、定時(shí)器及計(jì)數(shù)器應(yīng)用技術(shù)、中斷控制技術(shù)、串行通信技術(shù)、LCD驅(qū)動技術(shù)、模擬控制技術(shù)、模塊化編程技術(shù)的訓(xùn)練實(shí)驗(yàn)。利用Arduino IDE開發(fā)軟件,進(jìn)行上述控制實(shí)驗(yàn)外,還進(jìn)行超聲傳感器、溫濕度傳感器、紅外傳感器實(shí)驗(yàn),進(jìn)行I2C、1-WIRE、SPI總線實(shí)驗(yàn)。
本裝置軟件設(shè)計(jì)的難點(diǎn)在于AVRduino的Bootload開發(fā)、下載和調(diào)試。為實(shí)現(xiàn)在Arduino IDE中進(jìn)行軟件編程,使用Arduino的庫文件,通過串口交互信息,通過串口燒錄程序,就必須開發(fā)Bootload程序固化在AVR芯片中。通過Arduino IDE燒錄bootloader時(shí),要注意“熔絲位”的設(shè)置, 熔絲字節(jié)在board.txt中描述,低位設(shè)定選擇內(nèi)部RC震蕩還是外部晶振,高位設(shè)為0xDA,高位中有關(guān)鍵的ISP位(0x20位),一旦設(shè)錯(cuò)以后就無法再通過ISP下載程序了!格式如下:
其中0xFF使用外部晶振,如使用內(nèi)部RC震蕩,設(shè)成0xE4(8MHZ),內(nèi)部晶振必須校準(zhǔn)后才能使用,本裝置使用的是外部晶振。此外,還要將主控芯片的pins_Arduino.h文件中的物理PIN與邏輯IO對應(yīng)起來,重新標(biāo)定每個(gè)物理PIN和邏輯IO的關(guān)系。
AVRduino創(chuàng)客訓(xùn)練裝置既可以進(jìn)行AVR單片機(jī)開發(fā)訓(xùn)練,也可以采用Arduino IDE軟件編程,進(jìn)行Arduino控制的實(shí)操訓(xùn)練,其總體設(shè)計(jì)電路如圖7所示。本裝置的創(chuàng)新之處在于:
(1)為創(chuàng)客創(chuàng)意實(shí)現(xiàn)提供技術(shù)支持
目前創(chuàng)客進(jìn)行創(chuàng)意使用的是Arduino開源硬件和軟件,初期進(jìn)行一些簡易開發(fā)尚可,深層次的開發(fā)會有較多困難,通過本訓(xùn)練裝置,為創(chuàng)客學(xué)生提供全面系統(tǒng)的應(yīng)用技術(shù)訓(xùn)練,逐步提高創(chuàng)客的開發(fā)水平。
圖7
(2)突破AVR單片機(jī)教學(xué)實(shí)踐的難點(diǎn),將AVR單片機(jī)實(shí)際工程應(yīng)用技術(shù)貫穿于應(yīng)用技能訓(xùn)練中,讓學(xué)生系統(tǒng)地提高AVR單片機(jī)應(yīng)用能力。
[1]胡斌.電子線路基礎(chǔ)輕松入門[M].北京:人民郵電出版社,2010.
[2]肖明耀,郭惠婷.AVR單片機(jī)應(yīng)用技能實(shí)訓(xùn)[M].北京:中國電力出版社,2016.10
[3]李全利.單片機(jī)原理及應(yīng)用技術(shù)[M].北京:高等教育出版社.2009.
郭惠婷(1991-),女,廣東梅州人,本科,助理講師,教師,研究方向:智能電子。