手把手教你把5V的Arduino改形成3.3V版本

Arduino Pro Mini是基於ATmega328的微控制板,支持5V/3.3V電壓。可是咱們比較容易買到的是5V供電的版本,有的時候須要用到3.3V版本(好比咱們的軟控DAC)。怎樣才能讓這款闆闆支持3.3V電壓呢。編程

思路測試

把5V的Arduino改形成3.3V版本,實際上就是提出了一個問題:5V的Arduino和3.3V版本有什麼不一樣?ui

實際上AtMega328P能夠支持很寬的電壓範圍。可是在不一樣工做電壓下,能夠跑到的最大主頻是不一樣的。spa

在5V下能夠跑到16MHz,而在3.3V下只能跑到8MHz。因此咱們首先須要解決時鐘問題。3d

5V的版本配備的外置晶振是16MHz的,爲了獲得8MHz的主時鐘,咱們能夠修改熔絲位,使用328內部的8MHz RC振盪器。blog

另外,328內部還有BOD檢測,當電壓低於設置值的時候會自動停機。使用3.3V電源應該把BOD閾值修改成2.7V。擴展

最後,還要刷入支持8MHz主頻的Arduino Bootloader。軟件

這樣改造出來的Arduino,支持3.3V電源電壓,RAW腳穩壓以後仍然獲得5V電壓,Arduino自己執行不受影響。配置

可是若是把RAW的穩壓輸出用於外設供電,就要仍然使用5V的外設。所以最好是外置一個3.3V的穩壓電源供Arduino和外設使用。file

準備工做

一、  若是你歷來沒有使用過Arduino,你首先須要下載IDE。如何安裝在此不贅述。

二、  準備兩塊闆闆,一塊是咱們要刷成3.3V的Arduino Pro Mini目標板。另外一塊是用來燒寫Bootloader的AVR ISP編程器,本文使用一塊Arduino Pro Mini來製做AVR ISP編程器。(沒有特殊緣由,只由於博主恰好有兩塊Arduino Pro Mini)。

  

三、  一塊USB轉R232轉接板,做爲Arduino ISP編程器。最好是可選擇3.3V和5V供電電壓的,方便最後測試。

注意AVR ISP和Arduino ISP的區別。前面說的AVR ISP是用來燒Bootloader的(Bootloader其實是一個AVR程序),而這裏的Arduino ISP是用來下載Arduino程序的。

   

製做流程

1、製做AVR ISP

首先咱們要使用Arduino Pro Mini來製做一個AVR ISP,再用這個AVR ISP來刷目標Arduino的Bootloader。

一、進行這樣的鏈接:Arduino Pro Mini --- 鏈接RS-232 --- USB轉RS-232板 --- 鏈接USB --- 電腦

如圖所示:

  

注意:

  1) 串口的RXD和TXD是交換鏈接的,即Arduino的RXD鏈接ISP的TXD;Arduino的TXD鏈接ISP的RXD。

  2) Arduino ISP上的電源選擇5V。

二、鏈接完畢後,確認串口COM號選擇無誤。

三、在IDE的File的Examples中選擇「ArduinoISP」。這是隨Arduino IDE提供的一個Demo程序,能夠把Arduino製做成一個AVR ISP編程器。

如圖所示:

  

OK。如今,Upload。

2、修改目標板的熔絲位並燒寫Bootloader

以前的步驟若是你已經完成,說明你已成功的作了一個AVR ISP,接下來修改目標板的熔絲位和燒Bootloader。

Arduino IDE能夠燒寫Bootloader,同時設置熔絲位,這樣就大大方便了咱們的操做。

一、在IDE的tools的programmer中選擇「Arduino as ISP」。

如圖所示:

  

二、用管理員權限打開「C:\Program Files\Arduino\hardware\arduino\avr\boards.txt」,注意安裝路徑不一樣,路徑可能有差異。Anyway,咱們要修改「boards.txt」,這個文件指定了各類Arduino板的軟件配置、熔絲位和Bootloader。

對照Datasheet,咱們發現擴展熔絲位已經把BOD設爲2.7V了,這樣只須要修改時鐘便可。

找到Arduino Pro or Pro Mini (3.3V, 8MHz),(不是Pro Mini的話就找對應的板子)對照下圖修改:

  

  擴展一下:根據Datasheet,只須要修改low_fuses的低4位爲0010,即CKSEL3~CKSEL0這4位:

  

 

二、進行這樣的鏈接:Arduino Pro Mini --- 鏈接SPI --- AVR ISP --- 鏈接RS-233 --- USB轉RS-232板 --- 鏈接USB --- 電腦

如圖所示:

  

注意:

  1)Arduino Pro Mini目標板和AVR ISP板之間的鏈接按照ArduinoISP Demo的說明:

  

即:

Arduino Pro Mini目標板      AVR ISP板

Rst                                      10

11                                       11

12                                       12

13                                       13

VCC                                    VCC

GND                                    GND  

  2) Arduino ISP的電源仍然選擇5V

三、鏈接完畢後,從Arduino IDE的tool中選擇boards -> 「modified Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328」。(modified是博主本身加的,沒什麼用,爲了好找罷了)

四、上述一切工做完畢,這時,目標板已是板上的豬肉,任你宰割了。Arduino ISP實際上只起它原本的做用——USB轉RS-232和供電。

真正刷寫Bootloader的是AVR ISP,被改變的是Arduino Pro Mini目標板。而後點擊IDE的tools -> 「Burn Bootloader」。

到這步爲止,目標板的熔絲位修改爲功,Bootloader也已經刷新,即目標板已經成功變爲支持3.3V的闆闆了。

按下目標板的RST按鈕,則開始執行8MHz的Bootloader了。

3、測試一把

一、進行這樣的鏈接:Arduino Pro Mini目標板 --- 鏈接RS-232 --- USB轉RS-232板 --- 鏈接USB --- 電腦

這裏要記得把Arduino ISP的供電電壓選爲3.3V。

二、打開IDE的file的examples,選擇blink。而後Upload。

若是目標板按照預期的進行間隔1s,持續1s的閃爍。那麼,恭喜你,你已成功製做了一枚支持3.3V的Arduino Pro Mini闆闆~~

相關文章
相關標籤/搜索