Introduction: 自造你的Arduino UNO板

Arduino是開源世界裡資源豐富的硬體,也由於硬體的開放,想要透過自己動手做,製造一個屬於自己的Arduino板子,不再是一件高門檻的工作,只要你具有熱情,花點小錢,將所需要的相關電子零件收集到手,你就可以馬上動手,自己製造一片屬於自己的Arduino開發板。

這一篇教程,就是希望透過Step by Step的方式,紀錄並分享我自己的製作經驗,和大家一起學習與研究,利用ATMEGA328P-PU PDIP-28 微控制器、麵包板和相關的電子零配件,自造一片自己的Arduino UNO板子,暢遊Arduino世界的樂趣。

Step 1: 相關電子零件

自造一片Arduino UNO板,您需要於課程前準備一些相關的電子零配件,相關的材料我也將它羅列於下,連結的育松電子公司,也是我個人在淘寶上採購,品質與服務質量還算不錯的廠商,供您參考。當然,您也可以直接向您習慣或住家附近的電子材料行採購相關的電子零件。

如果您覺得這樣的模式有些困難,其實更簡捷的方式,是直接購買Arduino的套件,這在許多線上通路、光華商場或電子材料行,都可以買得到。我也推薦我最廠採購的淘寶廠商【科易互動機器人】,它是由台商所經營的電子公司賣場,買場中的「Arduino開發套件區」就提供許多質量不錯的入門套件,例如:Arduino UNO入門套件、mind+、ArduBlock、S4A、傳感器套件...等,都是非常經典的入門學習套件。

本課程相關電子零配件如下:

  1. ATMEGA328P-PU PDIP-28 微控制器*1
  2. Arduino FTDI Basic程序下載器USB轉TTL FT232(或FT232RL Arduino FTDI MWC調試器)*1
  3. 400孔面包板*1
  4. 面包板專用電源模組*1
  5. 140條盒裝面包板跳線*1
  6. 16MHZ晶振49S型無源晶振*1
  7. 1/4W精密電阻(220R、10K)*1
  8. LED燈*1
  9. 6*6*6輕觸微動開關、按鍵開關*1
  10. 18~22PF陶瓷電容*2

Step 2: 參考資源:

在實作上,小弟也參考了其他先進所提供的經驗,大家可以從下面的文章分享連結深入探究。另外,葉難老師也出版了一本書籍《Arduino輕鬆入門:範例分析與實作設計》,裡面除了有各式傳感器的實作範例與說明之外,在第12章中,也以一整個章節的內容,完整的介紹了「在麵包板上自行建構Arduino」的方法,各位有興趣的夥伴可以買來當作參考手冊。

我參考了這幾篇:

  1. 在麵包板上建構Arduino(ATmega328P加USB轉TTL Serial轉接卡)
  2. 將Arduino Uno當做一台ISP線上燒錄器,燒錄bootloader或sketch到麵包板上的ATmega328P-PU晶片。
  3. Raspberry Pi:透過序列埠登入系統
  4. Build Your Own Arduino
  5. Building an Arduino on a Breadboard

附檔是吳志文老師分享的簡報檔,也是非常完整與詳細的自學講義。

Step 3: 認識ATMEGA328P-PU

ATMEGA328P-PU的接腳位置(如圖一),提供完整的Arduino UNO接腳數量,在安裝晶片時,只要確實注意第一支腳位(有一圓圈標示)即可。

Atmel ATmega328 8位元AVR®微控制器
Atmel ATmega328 8位元AVR®微控制器是基於RISC的高性能設備,結合了32KB ISP閃存記憶與同時讀寫功能、1KB EEPROM、2KB SRAM、23條通用I/O電纜、32個工作寄存器、串行可編程 USART等。 Atmel ATmega328微控制器可在一個時鐘週期內執行功能強大的指令,使設備能夠實現接近1 MIPS每MHz的吞吐量,同時平衡功耗與處理速度。 根據設計,Atmel微控制器可用於工業自動化與家庭及建築自動化。

特點
高性能、低功率AVR® 8位微控制器
高級RISC架構
131個功能強大的指令
20MHz時高達20 MIPS吞吐量 片上2週期乘法器
引腳數:28/32
最大I/O引腳數:23
SPI:2
UART:1
ADC:8個通道,10位分辨率
類比比較器:1 閃存(Kb):32
EEPROM (Kb): 1
SRAM (Kb): 2
溫度範圍:-40至85 °C

應用
家庭及建築自動化
舒適性與控制
工業自動化
感應器

Atmel ATmega328開發工具
Atmel提供多種調試與設備編程的開發工具。 AVR Dragon 是用於愛特梅爾 8 位及 32 位 AVR 微控制器的在系統調試器,具有在芯片調試 (OCD) 功能。 該調試器能夠在所有具有OCD功能的設備上執行符號調試,具有SPI、JTAG、PDI(選定設備)、高壓串行編程、並行編程及aWire模式。此外它還支持使用SPI、JTAG、PDI接口調試。 開發區域使設計師可以設計自己的電路或為所需的設備腳位添加插座。 JTAGICE 2及JTAGICE 3是用於Atmel 8位元與32 位元AVR設備的中程開發工具,具有用於源代碼級調試、NanoTrace(若設備支援)及設備編程的片上調試功能。 AVR ONE!支援完整的開發週期,是Atmel提供的最快速調試工具。

Step 4: Session 1:製作ATMega328燒錄器-燒錄ATMEGA328P-PU

需要將 Bootloader 或 Sketch 燒錄到 ATMEGA328P-PU 的晶片,您可以透過USBtinyISP 燒錄器(如圖二),這裡有葉難老師「AVR ISP燒錄器Adafruit USBtinyISP」的教學文。

本篇教程是透過電腦與Arduino UNO板,將Bootloader或Sketch燒錄到麵包板的 ATMEGA328P-PU 的晶片上。我所使用的環境是Arduino 1.0.6 Windows下載版(Windows ZIP file for non admin install)燒錄 ATMEGA328P-PU 晶片,更多資源連結請連結 Arduino官方網站。注意:務必下載使用ZIP下載版,才有ArduinoISP目錄與ArduinoISP.ino 檔案。

接下來開始製作ATMega328燒錄器,燒錄ATMEGA328P-PU。製作與燒錄過程,請參考下列教學文,有詳盡的製作步驟。

  1. 將Arduino Uno當做一台ISP線上燒錄器,燒錄bootloader或sketch到麵包板上的ATmega328P-PU晶片
  2. 製作ATMega328燒錄器
  3. Gravando bootloader no ATMEGA328 usando Arduino
  4. Build Your Own Arduino

在官網上也有一篇文章,也提供了兩種簡易的燒錄方法,可以一併參考:

  1. From Arduino to a Microcontroller on a Breadboard

在製作過程中,需要用到陶瓷電容與精密電阻,提供相關說明供大家研讀與研究:

  1. 陶瓷電容維基百科說明
  2. 教育部數位教學入口網~電解與電容
  3. 電阻色碼維基百科介紹

電路連接說明(詳見圖一):

  1. 連接ATMEGA的引腳1(RST)至Arduino UNO板燒的數位接腳10。
  2. 連接ATMEGA的引腳17(MOSI)至Arduino UNO板燒的數位接腳11。
  3. 連接ATMEGA的引腳18(MISO)至Arduino UNO板燒的數位接腳12。
  4. 連接ATMEGA的引腳19(SCK)至Arduino UNO板燒的數位接腳13。
  5. 連接的10K電阻至ATMEGA的引腳 1(RST),電阻的另一端連接Arduino UNO板子上的的5V電源。
  6. 另外,再連接ATMEGA 引腳20 至5V。引腳22 連接GND。
  7. 最後,在連結16MHZ的晶振至ATMEGA的引腳9、10,另一端連接18pf~22pf的陶瓷電容,然後接GND。

以上硬體連接部分完成,下一個Session將說明韌體設定的燒錄方式。

Step 5: Session 2:燒錄ATMEGA328P-PU步驟

準備材料:

  1. 一片 Arduino Uno R3 。
  2. 一個 ATMega328P-PU 。
  3. 一個 16 MHz晶振 (crystal)。
  4. 一個 10k 電阻 。
  5. 兩個 陶瓷電容器 18pf to 22 pf。
  6. 400孔或800孔麵包板。
  7. 麵包板跳線數條。

Bootloader韌體燒錄步驟:

  1. 將Arduino Uno 連接到電腦,開啟Android 1.0.6 的IDE畫面,設定版子類型(Tool > Board > Arduino Uno)與Serial Port (Tool > Serial Port > COM12) 。(注意:本範例的連結Port是COM12,請確實依您電腦的裝置管理中,所顯示的連結PORT為主,自行變更。)
  2. 將ArduinoISP程式上傳到Arduino版子,ISP程式可在IDE介面 File > Open > Examples >ArduinoISP目錄內的ArduinoISP.ino 檔案,開啟後,上傳到Arduino UNO上(或從下面所提供附檔下載)。**這個步驟就是讓Arduino UNO成為ISP燒錄器**
  3. 依據上一Session將Arduino與麵包板的線路連接完成。
  4. 進行麵包板上的ATMEGA328P-PU晶片燒錄:
    • Tools > Board > Arduino UNO 。(這裡是設定你要將ATMEGA328P-PU燒錄為哪一形式的Arduino)
    • 設定Tools > Serial Port。這是Uno板連接到電腦的序列埠號。
    • 設定Tools > Programmer,選為Arduino as ISP。

  5. 執行Tools > Burn Bootloader,將 bootloader 透過Arduino Uno板(此時它扮演的角色是ISP燒錄器)燒錄到麵包板上的ATmega328P-PU晶片裡。

  6. 接著,你會看見Arduino UNO板子上的TX、RX燈號不斷閃爍,不到一分鐘即可燒錄完成。

Step 6: 連結ATMEGA328P-PU,自造Arduino UNO板

承續上一個Session,在原有的麵包板上,只要再加上FTDI下載器,連結好相關的線路,就是一個完整的自製Arduino UNO版。相關的連結方式與配件,詳見圖二圖例,注意接線與接腳位置即可。

本教程範例,FTDI下載器只是作為提供Sketch程式的上傳器,電源部分則可以透過面包板專用電源模組及9V電池,就不需要一直連接電腦供電。(如圖一圖例)

如果你對自製PCB板有興趣,您也可以參考這一篇貼文,自行設計自己的PCB板。

Comments

author
zhaohui.ye made it!(author)2015-07-16

您好,在下想請問一下

是否能用此方法來燒入非ARDUINO所使用的單晶片(如:AT90PWM)

並且製作成ARDUINO板