2015年11月19日 星期四

[好奇] USBasp 燒錄晶片的電路問題與測試


當完成 USBasp 這個裝置的初號機之後,腦袋裡頭就開始打轉的幾個令我好奇的問題:

  1. 因為之前玩過的裝置或者是 Arduino 本身,裡頭的電路基本上都是包含 石英振蕩器 這一顆零件的,若是這種狀況之下,究竟燒錄的當下,除了 MCU 本身的這些基本構成的零件,究竟需不需要存在?

  2. 在 Arduino UNO R3 原版本的裝置和電路圖上,都還有另外一顆其實也挺重要的 IC ATMega16U2 的存在,如果搭配這一顆 IC,似乎就會讓 Arduino UNO 在上傳草稿碼 sketch 變得很容易;不用像自製型簡易版那種方式,縱使透過了 USB2TTL 這一條連接線的幫助,在上傳前,還得看準時機按個 Reset 才行(而且,還是要本來就有把 Reset 考慮進去的狀況下)。如果,我使用 USBasp 的架構來替換掉這一顆 ATMega16U2,這樣也能省略掉之後的這個動作了啊,而且不用再透過 USB2TTL 這一條線;那,在這樣的狀態之下,如果兩顆 MCU 都各自使用各自的 石英振蕩器,雖然沒什麼不對,不過,不曉得能不能讓兩顆 MCU共用同一顆 石英振蕩器 的訊號?這樣可以省下一顆的費用。

2015年11月9日 星期一

# [樂的一半]USBasp Ver1.4 實裝 - 當成功來臨時


讓大仁哥瘋了的歐陽修的 三上 經常是人生獲得重大 天啟 的時刻啊!
老天爺可能常給你,也可能經常不理你 ~

睡醒後,關於 USBasp 這個裝置,想到的問題是萬一重組一次還是遇到相同的狀況,豈不悽悽慘慘悽悽 ~
不然先試著用麵包板的環境,把拆下來的元件逐一換上去試看看吧!

構成 MCU 運作的主要線路上的 電阻、電容和石英震盪器 實在不想認為它們可能會出問題,所以還是先把問題重心擺到了和 USB 接頭上的 pin 腳,有主要連結關係的那幾顆元件上面好了。

[苦的一半]USBasp Ver1.4 實裝 - 失敗是成功的媽媽 XD


在完成上一回合的 MCU Fuses 相關資訊確認後,而且確認這個 USBasp 裝置可以在目前的環境狀態之下完成,於是開始進行 使用 Fritzing 進行元件位置確認以及佈線的規劃。

經過了一番奮戰,終於得到了第一個版本,然後又對照著上頭的線路,慢慢的把這些元件和線路焊到「洞洞板」上面。

失敗版

但是!本回合都完成了才遇到了這個但是!

接到電腦後依舊顯示為unknown device

只好重新查對線路,反覆的查了好幾回合,都沒看到有焊錯的地方,也不曉得是哪一個元件出了問題?
動用三用電表來進行基本的狀態測試,以能目前腦袋裡頭的資訊能理解的狀態,這些零件應該都還能正常的工作才對。

在還不是特別清楚是哪一個環節出問題的狀況下,只好想辦法在麵包板上再重製另一個 USBasp (還好,手邊的零件還有辦法組出另一塊出來檢查)。

測試的方式:

  1. 把 MCP 燒個最簡單的 Arduino LED blink 來檢查是不是 MCU 的主要線路出問題。然後把 pin 19 & GND 的線路額外接出來測(PS 1),LED 會閃,那問題至少不會是在主要那幾個 pin 腳和 19 上頭。

  2. 讓麵包板上的 USBasp 透過其它接線來檢查是不是連接 USB D+ / D- 這兩條主要資料傳輸的線路上出問題。試著讓麵包板與電木板上頭的 pin 14 & pin 15 腳位相連,然後再將本來要連接到 USB D+ / D- 線路透過測試勾連回麵包板上頭。結果就造成麵包板上的 USBasp 也一起 unknown device 了。 =..= 所以問題可能在這 ~

  3. 和上面的方式類似,不過是反過來讓電木板上使用麵包板上本來就正常的 pin 14 & pin 15 腳位的線路。結果竟然還是得到了 unknown device 啊啊,這樣不就又表示問題可能不在 pin 14 & pin 15 上面了嗎 ~‧ ~

反覆在這些方式之間找問題點,卻都沒有找到那隻卡在這裝置和我腦袋裡頭的那隻笨虫啊!!!!

有路試到沒步,這樣在這邊打轉也得不到新花樣啊,於是在搞了三天後的睡前,把它給全拆了 ~


PS 1:都不曉得這樣倒底算運氣好還是運氣不好,ICSP 腳位剛好有 pin 19 & GND

PS 2 : USB pinout
USB pinout


#USBasp, #AVR