當完成 USBasp 這個裝置的初號機之後,腦袋裡頭就開始打轉的幾個令我好奇的問題:
因為之前玩過的裝置或者是 Arduino 本身,裡頭的電路基本上都是包含
石英振蕩器
這一顆零件的,若是這種狀況之下,究竟燒錄的當下,除了 MCU 本身的這些基本構成的零件,究竟需不需要存在?在 Arduino UNO R3 原版本的裝置和電路圖上,都還有另外一顆其實也挺重要的 IC
ATMega16U2
的存在,如果搭配這一顆 IC,似乎就會讓 Arduino UNO 在上傳草稿碼sketch
變得很容易;不用像自製型簡易版那種方式,縱使透過了 USB2TTL 這一條連接線的幫助,在上傳前,還得看準時機按個Reset
才行(而且,還是要本來就有把Reset
考慮進去的狀況下)。如果,我使用 USBasp 的架構來替換掉這一顆ATMega16U2
,這樣也能省略掉之後的這個動作了啊,而且不用再透過 USB2TTL 這一條線;那,在這樣的狀態之下,如果兩顆 MCU 都各自使用各自的石英振蕩器
,雖然沒什麼不對,不過,不曉得能不能讓兩顆 MCU共用同一顆石英振蕩器
的訊號?這樣可以省下一顆的費用。
如果這兩個問題都獲得了解釋或是答案,那我腦袋中的那一個新版的 TechDino
二號機,就能成型了;因為我目前實在沒有辦法玩那種 SMD 插件到洞洞板的上頭 ~
因此就直接用上之前完成的 USBasp 和另一顆 ATMega328P 來測試,雖然起初不太順利,不過後續發現又是因為 lfuse 上頭和晶片速度設定有關的旗標的問題,以及 USBasp 規格上面的 JP3 的用處(所以還順便試出了原來 JP3 的用處;通常在出廠晶片一開始的時候用得到)。
實驗一:無周邊零件狀態下,燒錄其它 MCU
以最後測試完的狀況來判斷,至少確認在 ATMega328p 這顆有提供 ICSP 規格的 MCU,在完全沒有任何其它構成線路的零件的狀態下,在 USBasp 僅只使用 ICSP 線路和其對應的接腳連接的狀況下,是可以順利的完成程式碼燒錄或是 fuses 設定變更這一類的操作的。
※ 就只是連對應接腳的位置而已,懶得拍圖 XD
實驗二:兩顆 MCU 共用一顆 石英振蕩器
首先,先讓上一次麵包板版本的 USBasp 可以再順利運作,然後透過 ICSP 線路,連接到另一塊麵包板上頭的 Arduino 基本型的線路上;不過 石英振蕩器
的兩個腳位的線路,則是和 USBasp 上頭的共用。
完成接線後,再透過 Arduino IDE 來把基本的 LED blink 程式往上傳,得到的結果,看起來共用的部份,好像不是問題。
※ 雖然插在麵包板版本的 USBasp 現在用的是 16.0 M 的。
- 右邊藍色圈選處是 USBasp 的
石英振蕩器
的位置 - 左邊綠色圈選處是 簡易版 Arduino 原本應該有顆
石英振蕩器
的位置
#USBasp, #AVR, #Arduino, #Tech.Dino, #shareXtal, #question&experiment
沒有留言:
張貼留言