星期五, 4月 11, 2014

用Arduino Uno燒錄Arduino Pro Mini (Use Arduino Uno to burn Arduino Pro Mini without remove MCU!)

In above article we can use Uno to burn Pro Mini, but we should remove mcu on Uno first, for smd version Arduino it is unrecoverable.
Even in DIP package version, it is not easy if you don't have corrected tool and skill!

I found a method can keep mcu on the board, and burn to Mini success!

  1. Connecting the pin with Uno and Mini
    1. Uno 5V to Mini Vcc
    2. Uno Ground to Mini Ground
    3. Uno Rx to Mini Rx
    4. Uno Tx to Mini Tx
  2. Connect Uno's Reset to Ground
  3. Plug USB to UNO
  4. Compile and upload Sketch, when Arduino IDE show "Uploading...",press the Mini's Reset button one or twice.
  5. If press in right timing, IDE will show "Done uploading", then Sketch is uploaded!

會玩Arduino的人手上一定不會只有一片板子, 基本的Arduino Uno一定會來一片, 然後再視情況來個附加功能的Arduino yun, 或者縮小版本的Arduino  Nano~~~~

我也一樣, 為了縮小體積, 先後購入了Arduino Nano、Atiny85開發版(相容Digispark),  還有最近到手的Arduino Pro Mini。Nano其實體積還是有點大, Atiny85的腳位對我而言又不足, Pro Mini看起來是一時之選。
但是Pro Mini拿掉了USB to TTL, 無法接上USB直接upload sketch, 是最大的問題, 但也因此能降低成本縮小體積。因此再接上一片FTDI的USB to TTL是大部分人會採用的解決方案。

我比較反骨, 想要連USB to TTL也省下來, 而且之前看到這篇文章 Arduino as an USB to TTL adapter , 把Uno拿來控制HC-05藍牙模組, 確定Uno也可以當作USB to TTL Adapter(Uno上面就有一顆ATmega16u2作為USB to TTL)。但是搞了許久卻不得其門而入, 無法讓Uno燒錄Sketch到Pro Mini去... 找中文資源並沒有完全相同議題的文章, 英文方面的討論也都模糊不清。最後終於找到完全一樣議題的文章, 有兩篇:

http://www.instructables.com/id/Uploading-sketch-to-Arduino-Pro-Mini-using-Arduino/
http://www.instructables.com/id/Arduino-Examples-2-Use-an-Arduino-as-a-FTDI-Progr/
這兩篇的方法基本上是一樣, 但是第一篇較清楚。
細節請自己點下連結去看, 在此就不做翻譯了。

但上述提的方法需要把Uno上面的ATMEGA328P先拔掉, 讓Uno的ATmega16u2可以直接透過TX/RX接到Mini Pro, 個人覺得有點麻煩, 難道燒錄的時候還要先拆掉MCU...如果拆時不小心折到腳不就哭出來了...
最後發現控制HC-05時要把Reset接到Ground, 讓MCU進入Reset Mode, 可以讓Uno板上的Rx/Tx直接接到ATmega16u2, 但是又需要Reset接到Pro Mini的DTR作通知傳輸的動作, 造成兩難, 所以最後總結的方案就是:


  1. 接好Uno與Pro Mini之間的接腳
    1. Uno 5V到Mini Vcc
    2. Uno Ground到Mini Ground
    3. Uno Rx到Mini Rx
    4. Uno Tx到Mini Tx
      (Rx對Rx..Tx對Tx...就是這樣接沒錯, 若是Rx對Tx的方式接, 會失敗, 千萬注意!)
  2. 把Uno的Reset接到Ground
  3. Uno接上USB, 此時Uno與Mini都會上電
  4. 編輯好Sketch, 編譯並且上傳, 當Compile完成之後, Arduino IDE會出現"Uploading..." 此時按1~2下Mini的 Reset, 代替原本的DTR, 就會開始Upload.
  5. 若按下Mini的 Reset時機正確, IDE顯示 "Done uploading", 完成!
    按下的時機要多測試幾次.
雖然每次Upload都要按下Reset有點麻煩, 不過若是偶爾拿Uno應急, 也不用去拔掉MCU, 算是一個折衷的方案! 提供給大家試試!!!




沒有留言:

快樂的無線電錶 - 1

最近著迷一部動漫 新石紀  , 是以科研為主題展開的作品; 這邊不是要討論這部作品, 重點是女角們身材都很好 而是其中以陸續展開的科技樹,  只要玩過即時戰略遊戲的人應該都深知科技樹的重要性, 放到現實生活中, 不斷的研究開發的過程對(阿宅)而言, 幾乎是一股能夠與性並駕齊...