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裝置無法辨識,實在令人沮喪...還好找到問題點了, 儘管匪夷所思, 但記錄下來, 下次 就不會再犯了...