顯示具有 Arduino 標籤的文章。 顯示所有文章
顯示具有 Arduino 標籤的文章。 顯示所有文章

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年10月31日 星期六

[序章] USBasp 的韌體安裝:韌體更新遭遇戰


在初步完成插件之後,緊接著想到的是應該要試著讓電腦系統可以辨識到這個裝置,這個動作就包含了兩個最主要的動作:上傳韌體到 MCU以及驅動程式的安裝
人生的 but, 總是這樣子開始的 (咖啡 ~

應該沒有辦法在這上面寫過多、也太過詳細的撞牆設定與測試 ‧‧‧
因為之前就已經在其它實驗上,拿過本回合要改成 USBasp 的這顆 Atmega328p,所以這顆 MCU 裡頭也早已經透過 Arduino IDE 安裝了它所提供的 bootloader 了。
這個地方或許就已經埋下了很重要的關問題點,也是之後需要驗證的

[楔子]實作 USBasp 電路圖

先來點類似開胃菜的楔子 ‧‧‧

由於之前玩了好幾個星期的 TransistortesterAVR,到上週為止,仍然無法順利的讓 MCU 晶片正常運作,
而在與網友亦或是該裝置作者的問答往返當中,暫時得到的結論是,仍然得確認上傳的資料是無誤的。

而這個問題,應該也就是一開始學著使用 avrdude 指令,然後透過 Arduino as ISP 的方式進行資料上傳時所遇到的問題:

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x03 != 0x08
avrdude: verification error; content mismatch

這樣的問題,當時該網友也提供一些意見,他在自己所使用的 arduino2560 這版子上也有遇到過,但是事實上對於上傳的韌體內容,並沒有造成太大的問題!

拉回到上傳韌體時卻遭遇認證機制錯誤的問題上面,暫時能想到的就是,想辦法弄到一個專門拿來燒錄韌體到 MCU 上面的裝置。

然而,手邊有機會拿來當晶片燒錄器的東西,也就只有 Arduino UNO R3 這塊板子而已!

在這邊小小小慶幸一下的事情是,因為在找問題解答的過程裡頭,也發現了個 USBasp 的裝置,好處是,它也是利用 ATmega 系列的晶片就可完成的裝置,而且可以燒錄的晶片也包含相當多的 ATtmel AVR 的晶片。

也發現網路上有相當多的產品,都是依此為基礎開發出來的自製 USBasp,雖然它現在幾乎已經沒有在更新的了。

Thomas Fischl's USBasp

從網站上可以下載到的目前最新的檔案: usbasp.2011-05-28.tar.gz

※ 看日期就知道,也算是有夠老的了,而且很久沒更新了。

& 這個壓縮檔裡頭已經包含了驅動程式了,所以可以不用額外下載。

解壓縮後可以看到的主要檔案目錄:

Name Sub Dir Descript
bin firmware 已編譯完成的韌體版本
linux-nonroot linux 驅動程式
win-driver windows 驅動程式
circuit 電路圖
firmware 韌體原始碼

然後,決定先嘗試用獲得的任務道具 USBasp_schematics.pdf, 依照此電路圖的線路,把裝置給插出來 ~

過程當然還是免不了一番波折的啦 ~


玩到現在覺得,容易出狀況的,或多或少地可能是在麵包板上面把電路圖實作出來的時候;不過,大多數的問題都是來自於韌體或者是軟體上面。

就像在製作這個 USBasp 的時候也是這樣子的。

USBasp 在麵包板上的蠢樣/USBasp on breadboard
USBasp 在麵包板上的蠢樣/USBasp on breadboard

真正的打擊遭遇戰,並不是在這裡 ‧‧‧


#Arduino, #USBasp, #AVR

2015年10月18日 星期日

[記錄]Arduino's 多功能電子元件測試電表 ─ 前傳


一切的動機,完全是源起於從家裡帶上台北來的,然後被完全分了全屍的電腦電源供應器,

知道那是什麼零件,還看懂上頭寫的單位資料的它們,基本就只有電阻和電容兩樣東西而已,

電感、電晶體、IC ... 等等,一種是有寫也沒懂之外,另一種就是沒寫也沒懂的狀態;

就算全拆下來了,也不曉得能拿來幹啥用的狀態。

2015年10月13日 星期二

[整理記錄]Arduino's 自製麥克風聲音放大器(拍手控制開關)歷程之六 (最終回)



分別將 兩個放大器拿來與 Arduino 微電腦板連接的測試情況:

一、LM 386 耳機放大器
 
LM 386 耳機放大器連接麥克風、軟體示波器外掛裝置和 Arduino 微電腦板
 
LM 386 耳機放大器在平時狀態下的波形



LM 386 耳機放大器透過麥克風接收到外部聲音時的波形
    
此時的10 KΩ 的電位計和上一篇一樣,依舊設定在 4.2 KΩ 的位置上,保持數據的一致性。

因為示波器軟體從 Line In 線路接收訊號,會回饋到電腦的聲音輸出上面,剛好可以把轉輸出的聲音錄下來:


※ 錄下來的聲音並沒有很大聲,又不想要動到裝置上的其他設定值,會讓變因變多,所以就有聽到就好了。

在這個拍手的過程,還不能距離裝置距離太遠,會有一般音量的掌聲收不到音的狀況,不然就是要拍得比較大力一點了。



二、LM 358 麥克風放大器

LM 358 麥克風放大器連接軟體示波器外掛裝置和 Arduino 微電腦板

 
LM 358 麥克風放大器在平時狀態下的波形
 
LM 358 麥克風放大器透過麥克風接收到外部聲音時的波形
     
此時的 200 KΩ 的可變電阻和上一篇一樣,依舊設定在 98.7 KΩ 的位置上,保持數據的一致性。


LM 358 麥克風放大器錄到的聲音,聽起來比 LM 386 耳機放大器的聲音大聲了些,
因為一致性的問題,所以也沒打算調整到 200 KΩ 的地方。

在測這個裝置收音的時候,坐在椅子上用一般的力道拍手,裝置就已經很順利地收到音了。



※ 整個測試的結論都只是表示,用到比較好的電路圖和比較專屬的電路圖裝置,效果是比較好的;
 所以,完全沒打算在麵包板上重插一次書上的電路圖,拿來做三個不同電路圖裝置的比較。
 (主體光是這兩個就已經花掉這麼多的篇幅在寫了 … )


最後的成果就是,終於完成拍手控制開關這個章節,然後獲得了 ~ 

軟體示波器外掛裝置、麥克風放大器(自製麥克風)和耳機放大器各一。

----
Arduino 實作拍手控制開關程式碼:sketch code

----
在這邊再次感謝 這個 Blog 的大大啊 ~ 




[整理記錄]Arduino's 自製麥克風聲音放大器(拍手控制開關)歷程之一


網路上搜尋到的 內文對應的組裝過程: Arduino 練習:電容式麥克風與運算放大器 LM358

以練習狀況來說,這個章節算是目前試最久的裝置了,原因是因為按圖組裝之後的程式效果,並不如書上所描述的如此簡單。

在整個環節完全測試完告一個段落時,再回頭來記錄與描述過程,可能還是會有些漏掉的環節吧。