顯示具有 單晶片 標籤的文章。 顯示所有文章
顯示具有 單晶片 標籤的文章。 顯示所有文章

2009年7月29日 星期三

SOIC轉DIP USB疑似被干擾無法識別裝置的問題

在淘寶買了些ATtiny45準備來實作一些小東西, 但好像是缺貨的樣子, DIP封裝的不是很貴就是缺貨, 想說乾脆自已作一些SOIC轉DIP的轉卡來用好了,感覺不會很難的樣子.
東西到手之後, 利用eagle畫了圖之後, 才發現要作成單面且大小與原DIP差異不大的還真是不太容易, 只好把線寬儘量縮小, 小到我覺得洗版子時一定會造成斷線, 第一次洗, 是沒斷線, 但線都連在一起了, 得用美工刀一條一條去劃開, 這還不是最慘的, 最慘的是竟然忘記水平翻轉了, 還好IC是對稱的, 轉了180度後還是可以用.

第二次修正後跟著其它版子順便重新洗了一些, 也隨手焊了兩個備用.

這兩天開始實作AVR-CDC 裡的cdtiny45V-USB 裡面的示範專案 EasyLogger , 線路都很簡單, cdtiny45甚至只有幾顆電阻與3.6V zenor ,再加上一顆104電容而已, 幾乎不可能有錯的地方, 作出來後本來有找到裝置, 但在用去漬油去清洗後就完全找不到裝置, 實在是很詭異的問題, 雖然想說會不會104燒壞了, 但在重換一顆104後依然沒解決問題.

於是改作EasyLogger, 線路只比cdtiny45多了一顆10uf的電解電容, 感覺比較容易燒壞而已, 但焊完後之後也發生跟cdtiny45一樣的問題, 常常找不到裝置, 只有很偶而的狀況下才找到, 讓我有點懷疑是USB頭有問題.

另外為了方便測試, 也作了一個4pin轉usb type A(公,母), B(母)的轉接頭.

測試過程太冗長了不寫了, 結論是
1.USB轉接頭不能偷懶, 同時串接幾種不同的頭, 很容易干擾, 只能一種頭作一種.
2.最重要的發現, 第一次忘記水平翻轉的SOIC轉DIP板沒有平擾問題, 但第二次作的線路反而有干擾, 這實在令人無力, 這是實驗結果, 但實際是否真如猜測的是因為線路太細太近干擾所致, 還是有其它問題?? 不過這兩種板上的ATtiny45燒錄驗證都很正常, 實在想不通怎麼會有這樣的問題....

---
2009/08/01 更新
根據第一次誤打誤撞作錯的樣式,又重新Layout了一份新的板, 但焊了兩份, 結果依然找不到USB裝置,這實在令人不敢置信, 難道是因為我佈線時有稍為修改間距的關係?? 我覺得不可能是這個原因, 於是仔細回想整個製作過程, 又找到一個不一樣的地方, 我第一次焊時, 是採用一般SMD介紹的堆鍚的方式, 但從第二次開始, 因為覺得堆鍚好像焊得很爛的樣子,所以改用一點一點去焊的方式, 難不成是這個差別?? 於是把第二次失敗的板子重新使堆鍚的方式重焊過, 神奇的事發生了, 竟然全部動作正常... Orz... 再把最後一次作的板子也用堆鍚的方式再焊過....謎題揭曉... 果然是因為銲接方法不同所造成,這下更令人訝異了, 佈線不同造成信號干擾這可以理解, 但銲接方法不同,即使電路測試都沒有短路,也可正常燒錄, 但卻造成USB裝置無法辨識,實在令人沮喪...還好找到問題點了, 儘管匪夷所思, 但記錄下來, 下次 就不會再犯了...

2009年4月20日 星期一

AVR USBAsp 下載線製作使用記要

一連做了好幾個AVR的下載線( IN-System Programming, 一直覺得這個名詞翻譯得很爛, 從字面上完全不知道它的用途) , 最穩定的還是print port的下載線(並口下載線, 每次看到並口或串口時都要想一下), 雖然也做壞了2,3個, 不過ok之後, 倒是燒得很穩定,就是速度慢了些.
之後再做了serial port的下載線, 電路簡單, 用洞洞板直接焊ok線就好了, 不過, 在測試時卻糟遇問題, 一直到後來才發現不能再像之前做print port時, 另外加一個led測試電路, 直接把測試電路去除就ok了...

當已經有能力可以燒atmega8後, 最後終於開始做使用atmega8的usbasp(這真的很吊詭,要做avr的下載線,我還得先去想辨法把usbasp的firmware燒進atmega8,才有辨法做usbasp的下載線, 這不是逼人家一定要先去做一個print port或serial port的下載線嗎??)

都已經做完了,實在懶得把過程重新key上來, 看來我是不適合寫blog.. :)

總之, 在電路方面, 記得在usb的 d+,d- 2條線上加 3.6v稽納二極體接地來穩壓, 否則不是每台電腦都能偵測到這個usbasp下載線, 在window driver部份, 使用官網的最新驅動程式2009/02/28會導至一些自製的燒錄程式無法找到這個usbasp, 像 progisp, avr-fighter 等等, 但使用 avrtude-gui 倒是很穩定都認得. 至於firmware倒是沒限制, 使用最近被燒錄可以正常動作.

在燒錄方面, 燒 atmega168都(使用外部4hmz晶振)沒問題, 直接對燒 usbasp也沒問題 (使用外部12mhz晶振), 但燒錄atmega8時, 卻會發生找不到晶片的問題, 這時把usbasp jp3 short, 選擇低速燒錄後則沒問題, 但若將熔絲設成 usbasp建議的 c9 ef 後, 不管jp3有沒有short, 都無法認得晶片, 非得改用外部晶振12mhz的燒錄板才行, 當將熔絲設成atmeag8 deault後, 則再次使用外部4mhz晶振時, 則沒有問題. 推測絕對跟熔絲值設定有關, 不過, 真的懶了, 暫時用不到, 就先擱著吧.