深圳技師學院 郭惠婷
AVRduino創客訓練裝置開發
深圳技師學院 郭惠婷
AVRduino創客訓練裝置是一種采用AVR單片機為核心的進行程序設計和控制的電子裝置。它既可以進行AVR單片機控制,又可以進行Arduino項目轉AVR單片機控制、AVR單片機控制項目轉51單片機、Arduino控制項目。
AVR;Arduino;單片機;創客
隨著經濟的快速發展,產業結構的不斷調整,企業對創客、創新型技能人才的需求量越來越大,對創客、創新型技能人才的要求也越來越高。
AVRduino創客訓練裝置是一種采用AVR單片機為核心的進行程序設計和控制的電子裝置,它是為了支持大眾創業、萬眾創新,為創客實現創新提供技術支持和應用技能訓練而開發的實訓裝置。該裝置結合AVR單片機開發應用實際,改變長期以來只重單片機基礎知識演示實驗、不與應用結合的現狀,將實際項目抽象為簡單的訓練任務,為學生提供系統全面的技能訓練,讓學生從單片機系統開發高度,確定系統模塊,再通過模塊化編程,協調解決應用問題,提高AVR創客和學生的學習效率和產品創新設計的能力。
AVRduino是吸收AVR開發技術和Arduino開源創新特點的開發裝置,即Arduino+AVR = AVRduino。Arduino是開源硬件和軟件的全稱,風靡全球,創客資源豐富,但硬件接口少;無通用定時器、計數器;實時控制功能差等。AVR是采用RISC結構的高級單片機,能夠采用高級語言來編寫嵌入式系統的系統程序,從而能高效地開發出目標代碼,但AVR無底層驅動;帶傳感器難;I2C通信難;LCD、SPI、SD卡驅動復雜等;
本項目充分吸收AVR與Arduino的優點,克服其各自的缺點開發出AVRduino創客訓練裝置,本裝置采用ISP下載線結合ICCV7、WINAVR+AVRStudio軟件編程,可以完成AVR單片機的各種控制開發,采用USB下載線結合Arduino IDE軟件編程,充分利用Arduino 的優點,可以完成Arduino創客創意產品的開發。
本裝置的主芯片是ATmega16,包含16KB的Flash,256字節的RAM。該裝置采用集成電路構建的方式制成,結構簡單、易于制作、體積小、便于攜帶和使用。所需的單元電路分解為CPU控制模塊、輸入/輸出控制模塊、通信電路模塊、電源電路模塊等。
2.1 輸入/輸出控制模塊
AVR單片機ATmegal6有32個輸入/輸出端口,分別為PA、PB、PC、PD 4組8位端口,對應于芯片的32個I/O端口引腳,所有的I/O端口都是復用的,第一功能是數字通用I/O端口,復用功能可以是中斷、定時/計數器、I2C、SPI、USART、模擬比較、輸入捕捉等。為了方便進行各項輸入/輸出實驗,本裝置的4組I/O口都用排針引出,如圖1所示。以下簡略介紹本裝置的數字輸入/輸出控制電路。
2.1.1 交叉閃爍LED燈輸出控制電路
本裝置將8只LED燈連在主控芯片的PB口,為方便做交叉閃爍及流水燈等實訓項目,交叉閃爍LED燈輸出控制電路如圖2所示。

圖1

圖2
2.1.2 LED數碼管輸出顯示電路
單片機的拉電流比較小,灌電流比較大,不能用來直接驅動數碼管,所以擴流電路是必需的,且AVR單片機只有32個I/ O口,因此不能用三級管來驅動,否則I/O口將不夠用,于是選用74HC573鎖存器來解決即擴流又擴I/O口的問題,電原理圖如圖3所示。PA3用于位選,用于控制哪個數碼管亮,PA4用于段選,用于控制顯示某位數字。
2.1.3 按鍵輸入控制電路
在鍵盤中按鍵數量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式,即每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接,如圖4所示,矩陣按鍵與單片機的PD口連接。本裝置采用的是2腳的輕觸式按鍵,按下時導通,松開則斷開。

圖3

圖4
2.2 通信電路模塊
本裝置涉及到的通信有I2C,SPI、RS232通信等,以下只簡單介紹本裝置的RS232通信接口電路的實現方式。
在遠距離數據傳輸時,普通的TTL或CMOS 電平無法滿足工業現場的抗干擾要求和各種電氣性能要求,因此本裝置采用國際電氣工業協會EIA推進的RS-232接口標準。
(1)RS232電平與TTL/CMOS電平的轉換
本裝置采用DB9作為連接器,TTL/CMOS電平采用的是0-5V的正邏輯,即 OV 表示邏輯0,5V 表示邏輯1,而RS-232采用的是負邏輯,邏輯0用+5~+15V 表示,邏輯1用-5~-15V 表示。在TTL/CMOS中,如果使用RS-232 串行口進行通信,必須進行電平轉換。MAX232是一種常見的RS-232 電平轉換芯片,外圍僅需少數幾個電容器即可,如圖5所示。

圖5

圖6
(2)USB到RS232的轉換
為實現用筆記本電腦下載程序,本裝置設置了USB轉RS-232,采用的芯片是CH340。參照CH340數據手冊,CH340T的USB下載和外擴電源接口電路如圖6所示。
軟件設計主要包括AVRduino的Bootload開發、下載和調試,ICCV7 for AVR應用實踐開發測試,AVRduino庫文件開發和Arduino IDE應用實踐的開發。在軟件測試中,利用ICCV7開發軟件設計AVR單片機應用程序,利用ISP下載線和ISP通信接口下載程序,進行AVR單片機的輸入輸出控制技術、定時器及計數器應用技術、中斷控制技術、串行通信技術、LCD驅動技術、模擬控制技術、模塊化編程技術的訓練實驗。利用Arduino IDE開發軟件,進行上述控制實驗外,還進行超聲傳感器、溫濕度傳感器、紅外傳感器實驗,進行I2C、1-WIRE、SPI總線實驗。
本裝置軟件設計的難點在于AVRduino的Bootload開發、下載和調試。為實現在Arduino IDE中進行軟件編程,使用Arduino的庫文件,通過串口交互信息,通過串口燒錄程序,就必須開發Bootload程序固化在AVR芯片中。通過Arduino IDE燒錄bootloader時,要注意“熔絲位”的設置, 熔絲字節在board.txt中描述,低位設定選擇內部RC震蕩還是外部晶振,高位設為0xDA,高位中有關鍵的ISP位(0x20位),一旦設錯以后就無法再通過ISP下載程序了!格式如下:

其中0xFF使用外部晶振,如使用內部RC震蕩,設成0xE4(8MHZ),內部晶振必須校準后才能使用,本裝置使用的是外部晶振。此外,還要將主控芯片的pins_Arduino.h文件中的物理PIN與邏輯IO對應起來,重新標定每個物理PIN和邏輯IO的關系。
AVRduino創客訓練裝置既可以進行AVR單片機開發訓練,也可以采用Arduino IDE軟件編程,進行Arduino控制的實操訓練,其總體設計電路如圖7所示。本裝置的創新之處在于:
(1)為創客創意實現提供技術支持
目前創客進行創意使用的是Arduino開源硬件和軟件,初期進行一些簡易開發尚可,深層次的開發會有較多困難,通過本訓練裝置,為創客學生提供全面系統的應用技術訓練,逐步提高創客的開發水平。

圖7
(2)突破AVR單片機教學實踐的難點,將AVR單片機實際工程應用技術貫穿于應用技能訓練中,讓學生系統地提高AVR單片機應用能力。
[1]胡斌.電子線路基礎輕松入門[M].北京:人民郵電出版社,2010.
[2]肖明耀,郭惠婷.AVR單片機應用技能實訓[M].北京:中國電力出版社,2016.10
[3]李全利.單片機原理及應用技術[M].北京:高等教育出版社.2009.
郭惠婷(1991-),女,廣東梅州人,本科,助理講師,教師,研究方向:智能電子。