2018年1月13日 星期六

用Atmega 328p 自組Arduino上傳草稿碼時, 如何自動Reset?


Arduino開發板玩了一陣子之後, 會想要自己組一個開發板。
參考做法: https://www.arduino.cc/en/Main/Standalone

這樣的好處是:
1. 省錢
  開發板比較貴, ATMega328P晶片比較便宜
2. 省電
  要做低粍電專案, 開發板粍電量太高
3. 好玩

但是寫完草稿碼後, 要上傳時; 以前看葉大的書, 叫我們自己找正確的時點去Reset晶片。
手動Reset的日子, 我也過了不少, 但有時太常改程式, 又不太抓得到時點, 會一直上傳失敗。

所以就想人家開發板為什麼不用手動Reset, 可以自動Reset?
發現其實只是將Serial-to-USB的RTS接腳, 接一個100nF的電容, 再接到328p晶片的Reset腳位就好。


參考來源: 電路圖

直接用來看看, 是真的可以運作的! 只是加個電容就好了, 真是神奇!
可是我用來有時也會失敗!
又Google了一下, 發現別人也有類似情形, 有人就加上拉電阻及下接電阻。
我後來查了一下Arduino官方電路圖:
https://www.arduino.cc/en/uploads/Main/Arduino_Nano-Rev3.2-SCH.pdf

也是一樣做法!

就不管了, 那就這樣接吧, 後來把breadboard的元件用洞洞板焊接後, 發現上傳的成功率居然變得很高! 所以我的想法是: breakboard可能有些接觸不良的情形, 用焊接的就消除這個問題, 只是我的Serial-to-USB板子接到洞洞板做的成品時, 仍是用插接的, 加上電容也是臨時用杜邦線接的, 也會有接觸不良問題, 才造成部份的失敗率!


張貼留言