2014年10月25日 星期六

Arduino : Pro Mini 以 CP 2102 USB to TTL 上載程式

前一陣子在找雙搖桿的零件時,看到賣家的商品中有 Arduino Pro Mini (5V, 16MHz) ATMega 328,一片 75元,心想反正運費都得花,順便買來玩玩。

Arduino Pro Mini 沒有序列埠,需要自行外接 USB to TTL 來傳輸程式,本以為只要用家裡原有的 USB to TTL (chip : CP2102) 接上去就可以傳程式,沒想到按完 Upload 鈕,要嘛沒反應,不然就出現錯誤訊息,查了一下資料,原來除了 +5V、GND、RX、TX 以外,還需要將 DTR 腳位接上,不過,我的 USB to TTL 看到不這支接腳啊!查了一下 CP2102 的規格書,DTR pin 是第 28 支腳(最後一支),就在第一支腳旁,很好找,於是就將 USB to TTL 拆開來,將 DTR pin 接條細電線,拉到外部使用。

Arduino Pro Mini 上傳失敗的訊息


這顆 CP2102  IC 很小一顆,幸好 DTR 在角落,有較大的空間,讓我這個拿著一般烙鐵的非專業的人士可以有較大的成功機會。先用鐵氟龍膠帶將不相關的地方貼一貼,然後剪一小段電腦磁碟機的排線,運氣不錯!試了兩次,就將細線焊在小小的 IC 腳位端點。為了怕它又掉了,在導線上重新貼了膠帶。打上杜邦端子母接頭後,在塑膠殼上切一個小口,利用上、下蓋夾緊固定連接到 DTR 的端子。接下來就可以重新測試 Arduino Pro Mini 的程式上載了。

焊接 CP2102 pin 28 (DTR)
以 USB to TTL 外殼夾住新加上的杜邦端子(母)

CP2102 引出 DTR 的腳位後,和 Arduino Pro Mini (5V, 16MHz) 依底下的接線連接:

  • Arduino Pro Mini Vcc  ::::: CP2102 +5V
  • Arduino Pro Mini GND ::::: CP2102 GND
  • Arduino Pro Mini RXD ::::: CP2102 TXD
  • Arduino Pro Mini TXD ::::: CP2102 RXD
  • Arduino Pro Mini DTR ::::: CP2102 DTR


將 USB to TTL 插入電腦後,Arduino IDE 在主選單「Tools」 的「Board」中選取「Arduino Pro Mini (5V, 16MHz) w/ATMega 328」


如果硬體的接腳都接對了,應該就可以順利的上傳程式到 Arduino Pro Mini 了。這片小小的 Arduino 真是愈看愈可愛。

Arduino UNO vs. Arduino Pro Mini


在測試時發現,不知是我買的 Arduino Pro Mini 有問題,還是 USB 行動電源有問題,執行同樣的程式,接同一顆行動電源測試,在 UNO 上沒問題,但在 Arduino Pro Mini 上卻會在啟動後 30 秒自動斷電。但是換了另外一顆行動電源,兩片 Arduino 都正常了,原因待查。



9 則留言:

  1. 請教75元是在台灣哪邊買的?

    回覆刪除
    回覆
    1. 您好:
      可以在露天用關鍵字找找

      刪除
  2. 找資料不小心逛到這邊來 我想行動源的問題應該是Arduino Pro Mini太省電電流太低導致行動電源偵測不到有東西在充電,進入30秒關機模式,而UNO電流可能稍微大一點點,剛好超過最低電流偵測,所以不會關機,如果兩個行動電源都同廠牌,應該就是誤差判斷了 哈哈

    回覆刪除
    回覆
    1. 您好:
      沒有兩個同廠牌的行動電源可以測,可能是這樣吧!謝謝您的回應。

      刪除
  3. 你好
    為什麼我用mega版燒錄讀取類比訊號的時候
    打開序戶列監控可以看到數值
    但用mini pro稍一樣的程式卻一直跳亂碼呢

    回覆刪除
    回覆
    1. 抱歉, 我並沒有這方面的經驗吔~~
      不過, 一般來說, 序列埠通訊時出現亂碼, 大多是兩端的通訊設定匹配上有問題, 例如 baud rate 設得不同......先確認一下各項設定是否設對了, 不然, 一邊講中文, 另一邊說英文, 應該會出亂子的。

      刪除
  4. 請問一下同樣都是328晶片 選5V 16HZ 跟選3.3V 8HZ有差嗎?

    回覆刪除
    回覆
    1. 您好:
      哈~您的問題我並沒有研究,不過,網路上的資料應該很多的,例如:
      https://www.arduino.cc/en/Products/Compare

      刪除
  5. 多谢教程,帮大忙了。手上项目涉及多片 Arduino,之前两个月一直搞主控制器的开发,TTL 接好就没动过,最近开发附属控制器的时候忘记还要接 DTR 来着,结果烧一片 brick 一片,吓出一身冷汗。
    排错过程中发现这样一片写的很好的教程,分享一下
    https://arduino.stackexchange.com/questions/13292/have-i-bricked-my-arduino-uno-problems-with-uploading-to-board

    回覆刪除

 
© 2009. Design by Pocket