PL2303, not ready for baud rate 74880

http://wp.me/ph3BR-20C

 

沒想到一段時間又跟這個扯上邊, 老外依然不用 PL2030來設計, 問了一下, 據說有問題 DEBUG 沒法用, 還要俺親自動手看看結果, 出去又回來的東西, 都不是一般所謂的MAKER玩家所為, 肯定是行家才會知道不行用要退回來的.

WIN8.1 / WIN10 都試驗了一下, 包括 PL2303TA / PL2303SA, 74880 BAUD 就會出亂碼, 同樣的問題, 115200 BAUD 就很正常. 開始懷疑設定有問題, 不過都是 WDF WHQL driver, 意思就是, 假如不是盜版 IC 的話, WIN10 會自動安裝驅動程式, 不需要使用者特別理會. 只要用到 RX / TX 兩根線的訊號而已, 有必要那麼抓頭嗎? 再用 LOGIC ANALYZER 看看BIT STREAM, 居然 BIT TIME 是 13.5us, 換算回來是 74074 BAUD, 但是調到這個BAUD RATE, 接收還是亂碼…?? 啥情況呢 !

替換, 立刻用 CP2102 和 CH340G, 74880 BAUD 一點事情都沒有, 問題馬上消失了, 那證明老外繼續不採用 PL2303 設計新品是可以理解的, 開來他是已經實驗過了.

翻了一下 CP2102 /CH340G還有 PL2303SA 的 DATASHEET, 沒有特別指明可以支援 74880 BAUD, 但是三選一的話, 試驗完畢, 馬上就可以決定, PL2303 注定出局.  到底是硬件不支持還是驅動程式有問題? 原因不明, 那就閒閒的寫封信問問, http://prolificusa.com/contact-us/

看看有沒有可以得到答案.

以前遇到, 會被懷疑是大陸盜版 IC 或停產型號引起的, 最近在台灣本土在地台灣公司買的樣品貨, 難道還是包著盜版貨 ?! 那只能繼續說那個故事, 從前有個公公………. 原來在設計階段已經被剔除了.

 

回顧一下遇到關於 PL2303 有關的BIRD事,

PL2303, Win8.1 ok but Win10 error code 10 again ?

PL2303HXA, back to work on Windows 8.1

PL2303, USB-To-RS232 cable, AUD-AM09MY105, possible Counterfeit IC products used

LCM1602, 買不到-1.5V的電池

通常, 買電池都是說 “買1.5V或者1.5伏特的電池", 或乾脆點, “買電池".

如果你說 “要買一個-1.5V或者負1.5伏特的電池", 大概沒人理你.

先不要拘泥在文字的遊戲裡面, 確實有時候是要用到 “負1.5伏特的電池", 買是買不到的, 也不要買, 就是一個普通的電池而已, 牽連到-1.5V, 純粹是概念和運算的問題. 不過實際還是有用的.

先看看用了 -1.5V電池的效果, h_ttps://www.youtube.com/watch?v=oFsJgORPGGU

 

 

 

再來看看如果沒有 -1.5V 電池的結果, h_ttps://www.youtube.com/watch?v=pmhI1hFoZi0

 

 

 

沒有-1.5V 電池, 看來不太舒服, 閃爍的顯示.

來看看到底怎樣理解一個 -1.5V 電池的存在, 看圖識字, 主要看 0V 的參考位置, 再用算術正負號的解釋, 從上面減到下面, 就得到一個 -1.5V 電池.

-1.5V battery

 

 

 

如果不要用 -1.5V 電池, 怎樣產生 -1.5V 呢, 以前理解過原理, NE555, Half-wave voltage doubler (HWVB) & negative voltage supply, 俺理解 [負電壓] 電路設計的原理

 

這次實際試試看, 做出來看看, 原來真的可以, 還是那個電池的原理, 一個電容充電後就是一個電池. 如果像 MATRIX 所描述, 世人都是一顆電池, 基諾李維演的就是教你怎樣做好一個電池. 那來看看怎樣做好這個電池.

左邊的電容, 當開關 (紅色的位置) 接到 [上方+3V 電池], 透過紅線的途徑就給他充電, 充電後, 成為一個在 [左邊的電池].

當開關 (綠色的位置) 接到 0 或 0V , [左邊的電池] 就奉獻自己的電量, 透過綠線的途徑給右邊的電容充電.

右邊的電容充電後, 也成為另外一個電池, 這時候就出現了 -2V, 所以有了 -1.5V 或更低壓的 “電池".

只要重複扳那個開關上下上下, 就可以"做手工餅乾了", 意思就是一直有-1.5V.

好像很神奇.

 

很難理解不?! 沒錯, 如果沒有了-1.5V, 顯示乾脆就是"從前有個公公…….", 所以在閃.

 

END

DS1302, LCD 時鐘實驗

http://wp.me/ph3BR-1Zj

 

抄來的DS1302 LIBRARY 用起來還是不順手, 特別是月份英文全寫顯示有BUG, 沒有短寫月份英文等容易混淆日子, 例如12-10 是12月10日還是10月12日? 乾脆都一起改了.

用 COM PORT, 115200 BAUD, N81格式, 發送設定時間的字串, ARDUINO 收到後就設定好 DS1302. 改過的全部源碼,

https://drive.google.com/drive/folders/0B3YrRYrhHTqzNGlfRzRTM3NXSmM

設定用的字串, 源碼裡面寫的比較詳細.

簡單提要, 例子 “S,2017-06-11,21:46:00,7\r\n"

含意, S 開頭要設定RTC, 2017年6月11日, 21:46:00, 星期天, 最後的數字, 1- 7 分別代表 星期一 到 星期天

一共25個字符, 包括 \r\n = 0x0d, 0x0a

樣子看來長這樣,

xiaolaba_RTC.ino.jpg DS1302

 

 

 

 

初版的, 日月難分.

h_ttps://youtu.be/odHoNn7Ij50

 

 

RTC, Real Time Clock, 用一個鈕扣電池, 保證在系統斷電或不使用時, 依然繼續計時和年月日等等, 就是一個一直走但是看不到時鐘, 只要上電後設定一次, 就好了, 直到備份的電池幾年後耗盡電力.

用途, Temperature logger, 套加一顆 RTC 的話就可以隨時開機關機, 只要查詢 RTC, 就可以得到現在的年月日星期時間等等, 當然, 用MCU自帶的低功耗 RTC 模組, 自己寫一個 RTC 也可以, 不過懶惰也不值得花之間.

DS1302 是其中一種 RTC 的 IC, 懶惰不要自己焊接, 買幾個模組樣品就好.

實驗的源碼繼續東抄西湊, 不用多久就可以做出一個很耗電的電子鐘, 不過這只是插麵包板的實驗品, 最終設計不會這樣耗電.

DS1302 的 LIBRARY 用起來不太合意, 例如, 日月年的輸出, 會出現 09-12-2017, 英美的寫法解讀各有不同, 到底看了解讀為 SEP/12/2017 還是 09/DEC/2017, 一直對這種標示法很感冒, 因為不只一次碰到溝通誤會的事情, 有閒暇的就慢慢改, 沒空就這樣試加減用, 最後加上單獨讀取完整月份, 例如這樣,


// 完整月份
Serial.println(rtc.getMonthStr());

lcd.print(rtc.getMonthStr());

顯示會出現英文全寫的月份, 起碼就有點依據判斷真確的月份.

 

 

當然, 這個方法有點瑕疵的, 時鐘設定模式, 必須開啟, 燒錄一次, 然後解除, 禁止時間設定, 再燒一次, 不然……


// 時鐘設定模式
//setDS1302();

 

 

完整的源碼, serial port 115200 BAUD, CPU 不用太耗時間, 趕快睡覺去.

用ARDUINO IDE 的 COM PORT 監視可以看到時間, LCD 也會顯示時間.


//REF:
//http://blog.geeks.tw/post/148525684793/ds1302
//https://xiaolaba.wordpress.com/2013/05/13/dscf5143-lcd-char-map-test/
//http://www.rinkydinkelectronics.com/library.php?id=5, DS1302 library used
/*
顯示RTC模組時間
*/

#include <DS1302.h>
#include <LiquidCrystal.h>

// 初始化DS1302
// DS1302 rtc([RST], [DAT], [CLOCK]); 三個pin的接法
DS1302 rtc(12, 11, 10);

//modified 2013/may/11, xiaolaba, LCD1602, HD44780 compatible
// change D12, D11 to D7, D6, because Atmega328p D12 = MISO, D11 = MOSI, may interfere with max6675 SPI, test ok
// LCD pins ===== RS,E,D4,D5,D6,D7
// | | | | | |
// Arduino pins = 7, 6,5, 4, 3, 2
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

void setupLCD(){

// set up number of columns and rows
lcd.begin(16, 2);

//default position 0, line 0
// Print a message to the LCD.
lcd.print("hello, xiaolaba");

//move to position 0, line 1
lcd.setCursor(0, 1);
// print the custom char to the lcd
//lcd.write((uint8_t) 0);
// why typecast? see: http://arduino.cc/forum/index.php?topic=74666.0
//lcd.print((uint8_t) 0);
//lcd.print("2106-NOV-04, 2nd line");
lcd.print("hello, 2nd line");
delay(5000);
lcd.clear();
}



void setDS1302 (){
//取消寫入保護,設定日期時要這行
rtc.writeProtect(false);
// 以下是設定時間的方法,在電池用完之前,只要設定一次就行了
rtc.setDOW(SUNDAY); // 設定週幾,如FRIDAY
rtc.setTime(1, 11, 00); // 設定時間 時,分,秒 (24hr format)
rtc.setDate(04, 06, 2017); // 設定日期 日,月,年
}

void setup() {
// 時鐘正常執行模式
rtc.halt(false);

// 時鐘設定模式
setDS1302();

setupLCD();

// 設定Serial
Serial.begin(115200);
}



void loop() {
//將得到的日期時間顯示在Serial視窗
// 週幾
Serial.print(rtc.getDOWStr()); Serial.print(" ");
// 日期
Serial.print(rtc.getDateStr()); Serial.print(" -- ");
// 時間
Serial.print(rtc.getTimeStr()); Serial.print(" -- ");
// 完整月份
Serial.println(rtc.getMonthStr());

//顯示在 lcd1602
//lcd.clear();
lcd.setCursor(0, 0); // index 0, lcd line 1
lcd.print(rtc.getTimeStr()); //time
lcd.setCursor(13, 0); // index 9, lcd line 1
lcd.print(rtc.getDOWStr()); // week day
lcd.setCursor(0, 1); // index 0, lcd line2
lcd.print(rtc.getDateStr());
lcd.setCursor(12, 1); // index 0, lcd line2
lcd.print(rtc.getMonthStr());

// 每次更新延遲1秒
delay (1000);
}

 

抄來用的DS1302 LIBRARY

http://www.rinkydinkelectronics.com/library.php?id=5

ADXL345, 一定不能買的雙排針模組

http://wp.me/ph3BR-1Z5

 

這個肯定是祖國同胞錯誤設計的, 有瑕疵的模組產品, 然後淘寶又流傳到了台灣批發給零售店或者網拍販售.

貪圖方便, 沒試驗買完就走, 也不想到這般天才的產品也在賣, 結果準備試驗時, 發現兩個問題,

1) 兩個排針, 一邊焊接成是傾斜不垂直於PCB ?!! 瑕疵品? 原來兩排針之間的距離是 24.2mm, 跟麵包板的標準孔距 ( 0.01″ 或 2.54mm 的整數倍數, 例如 2.54 x 9 或 2.54 x 10) 配不上, 唯有焊歪一排針, 那樣就可勉強插入麵包板, 這般天才的做法, 暫且忍受吧, 反正是實驗用品, 不過這一定是不合格麵包板模組產品.

2) 插好了, 霸佔了麵包板的 A – I 的兩排孔, 因此只有一邊的排針可以在J排孔接線, A那排要用測試鉤鉤還是多插幾條線引到其他位置插線呢…..難道要訂做一個特殊的麵包板不行? 這是另外一個瑕疵, 簡直就是不好用, 也可以是不能用, 肯定足夠構成退貨的正當理由. 設計者應該把排針的距離縮短到 22.86mm, 即可以正規設計, 也可以很實用插麵包板, 沒做到肯定是天兵設計的產品, 接受買家無條件退貨吧, 不要淪為奸商一員.

距離比較遠, 單價也不算 [高], 買樣品數量也只有兩個, 這趟不打算到零賣店退貨, 自己焊一下改裝算了, 不過已經背離買模組方便插麵包板的目的, 反正這貨是瑕疵品, 估計那家零售應該有清楚才對. 不值這個價所以之後一定不會再買, 更加不會推薦給同學們零買或網購, 果斷給這個模組黑名單, 設計者失誤, 或者幹的不爽, 臨走前給老闆一個坑? 還拿來賣就顯得有些禮義廉. 這個是第二次買到不合格的麵包板用模組.

坊間有存貨的趕快明說瑕疵然後割價拋售, 不然碰釘的人越多, 退換貨的成本越高, 特別學生實驗的單位如果訂購數量比較多的話. 突然想到, 明天準備網購的模組需要再增加多一個這種問題, 因為也是插麵包板用的, 不想碰到第三次, 就算可退貨也是麻煩自己, 何必呢!?

 

defective ADXL345 module, no alignment for 0.1″ grid of Perfboard

 

 

 

 

 

 

試音, SU-05, MP3, 讓我們盪起雙槳 MP3

http://wp.me/ph3BR-1XR

 

大頭姨媽常常都要聽聖經, 手機下載的報導會內容多是MP3格式, 沒有版權的問題, 過年見面她說用手機聽不方便, 所以希望用喇叭聽, 邊幹活邊聽也好. 剛好撿到一個壞掉的 SU-05, MP3 播放機, 遙控器是不見了, 拆來看是電池過放壞掉到了0V, 完全沒電了. 剛好又有一個筆電淘汰下來的鋰電池, 所以改裝一下, 電池換成 2600 mAh, 電力應該夠連續聽一天24小時. 過年一飛, 清明節一飛, 就拖到現在才動手換電池.

 

充電的電路看來很陽春, 就是 USB 5V 供電通過一個 DIODE 接到電池正極, 大約就是 0.7V 壓降, 所以電池理論上可以過充到 4.3V; 大概也沒有過放保護, 應該就是鋰電池本身的防過放電路保護板而已.

改裝了圓型的18650鋰電池, 試試看這30元人民幣的產品, 當地賣就一倍多一點, 運費利潤都包了. 裡面很 [簡單] , 就一個滴黑膠的MP3芯片, 加上兩個 CKE8002 聲音放大IC, 所以沒甚麼好改說的, 不過用途確實很不簡單, 心靈的大補帖的播放工具, 不是用工具的賣價便宜或貴價來衡量的.

GOOGLE 一下, 還是中國的產品, 便宜又大碗, 這年代有了 MP3 真的是福音, 聽福音報導也是不錯的工具. 整理好就拿給大頭姨媽, 希望有些幫助, 伺候一下人群, 做些小工作, 人生路途總有不如意, 心靈有些寄託是必須的, 重點是你有多關心身邊的人. 買個新的送不好嗎?! 那換個新的老公老婆更好, 是這樣嗎?!

這些資訊就存到 GOOGLE DRIVE, 有需要就看看, 作了一個短網址, https://goo.gl/EkirZf

https://drive.google.com/drive/folders/0B3YrRYrhHTqzLVJ6UzdTVm1sVXM

 

試音, SU-05 MP3, 讓我們盪起雙槳 MP3, SU-05 SPEAKER, 不是 HIFI, 只是一般的MP3播放機, 聽感要求需要適當降低. 不知道 GOOGLE 明天會不會又用機器人制止這段片的歌曲呢, 還是版權的問號.

h_ttp://wp.me/ph3BR-1XR

 

END-

“最簡單" 的 ESR meter, 可以更好嗎

http://wp.me/ph3BR-1Xw

 

 

“最簡單" 的 ESR meter 焊到 PCB 上面
2013/01/01 by xiaolaba, posted in electronics、homebrew PCB
http://wp.me/ph3BR-Kd

 

設計師需要時間.

覺得有需要改善一下解析度, 因此翻了很久, 找到了一部分的源碼, 基本上都忘記當時設計的限制或概念.

HC908 ESR meter

 


;2012-07-29

; ESR meter, 4 ohm max, no better than 0.25 ohm resolution
; 3V
; PTA0 / TCH0, 100KHZ output drive
; PTA5 / ADC3, ADC input, ESR reading, convert to PWM drive signal, 0ohm = 110, 4ohm = 82
; PTA1 / TCH1, PWM output, 14 step

 

配合電路圖

ADC = 82, 0 ohm

ADC = 110, 4 ohm

PWM step, 14

所以解析度是 (110 – 82) / 14 step = 28 / 14 step = 2LSB /step

每個 step = 4 ohm / 28 = 0.14 ohm

即 2LSB x 0.14 ohm = 0.28 ohm

如果要做到 0.05 ohm 解析度, 則需要把總體解析度怎加6倍

要把算法和硬件修改.

HTC TC U250 B250 cell phone power adaptor, no 1A output current

http://wp.me/ph3BR-1Wx

 

自從用過了 Dopod 818 Pro 還有 Dopod S300, 都是當時的頂級之列, 軟體有小小問題卻不處理好, 從那時起就被公司列入了 “不採用" 的名單. 因此 HTC 作為繼承的品牌名稱也遭到一樣對待, 所以往後就再沒碰過過 HTC 手機這牌. 雖說 WINCE 的操作系統是 MICROSOFT 的, IOS 和 ANDROID 起來後就被滅頂了, 然而 HTC ANDROID 手機還是有一定市場份額, 先不論大小, 某些公司或許不愛用, 但還是有很多人買的.

近期拿到一些 IPOD 的電源, 5V@1A的, 看起來就是山寨品, 不過 PCB 卻是印刷 DELTA (台達電) 的標誌. 為啥說是山寨呢? 有經驗的人看看這照片, 大概會心裡有數. 原來輸出是 12V, 硬要很不正規的塞一個 KA7805 的三端穩壓 IC 進去, 然後假裝成是 5V@1A 的電源供應器. 算一下, 這種垃圾, 滿載 1A 電流的話就是提供 5W, 但是 7805 為了把 12V 調整成 5V, 必須硬生生地扛住 12-5 = 7V 的電壓, 把 7V 乘以 1A, 就是 7W 的消耗, 消耗到了哪裡 ? 當然是發熱, 只要滿載供應 1A 電流, 這東西就是一個 7W 以上的發熱器, 比它供應到 IPOD 的 5W 還要多, 而且 7805 很快會熱到讓自身半死不活, 整個電源就掛掉了, 不是垃圾嗎 !? 所以人家才拿來要求修復修復, 當然, 拆來看到這種垃圾產品就勸說主人買別個好品質的, 不要用這種山寨貨, 那買啥呢 ? 送了一個閒置的就打發了.

 

 

其實也不需要買, 因為很多人都有過多的 5V@1A 電源供應器, 幾乎每個新手機都配一個, 舊手機的就必然給扔掉了. 這裡翻出來一個, HTC TC B250 或是 TC U250, 手機的充電器, 5V, 1A, 按照不同地區的電源插頭有不同型號, 不過統統都叫做 TC 250.

 

有一個很久以前送來的壞品, 因為太便宜就沒有修整過, 記得當時屋主說, 說沒用一年就開始無法充電, 已經丟棄一旁很久了, 那些換手機跟換衣服一樣的用家, 通常都換機推動經濟的, 那壞品就一直吃灰了, 這次送出了閒置品後, 剩了這個壞品 TC 250, 順手拿來, 想練習一下開關電源修復.

 

 

充電實驗 4.92V @ 0.64A, 正常. 需求電流到了 0.75A 左右就自動斷電, 然後馬上重啟, 周而復始, 確實是不能充電了, 當然也沒有1A輸出的能力. 短片比較好理解,

h_ttps://youtu.be/6-zi8eAfE-c

 

 

拆開電源外殼, IC 看不出來是哪一顆, 隱約看好像寫 DAP021, 但是查不到網路有 DATASHEET, 廠牌也不明. 後來經過一隊大師的指點, 居然瞎貓又碰到了死耗子, 給修復了. 控制的 IC 是 POWER INTEGRATION 出的, 型號是 DAP021, 據說是台達電的訂製品, 網路上沒有 DATASHEET, 功能很接近 LNK3604, 參考 https://ac-dc.power.com/sites/default/files/product-docs/linkswitch-xt2_family_datasheetTW.pdf

大師們的指點可以看這個帖子, http://bbs.pigoo.com/thread-63500-1-1.html

DAP021, TC B250 的電路圖可以看這裡, 完全手工, 看 PCB 慢慢描出來的, 或許有錯漏, 不過 95% 正確也可以幫助判斷基本構造和原理, 再參考比對一下 LNK3604, 真正完成了第一次修整開關電源的學習歷程, 算有點收穫. 不過要拆焊那些很小一咪咪的SMT零件, 只有普通的30W烙鐵是很困難, 所以拆焊那個 C33 和 R34 真的很考眼力和手工, 直覺說除了學習過程以外沒事最好還是不要多搞這種手工活, 費神呀….瞄一下換好的C33和手工焊錫, 就知道很不好弄.

 

 

雖然充電時 1A 只有 4.9V, 但是沒再自動重啟, 證明找到了問題的重點, 起碼恢復了 1A 的正常操作, 成了.

 

 

存檔於此, 就此做個筆記.

LNK3604-linkswitch-xt2_family_datasheet

PI DAP021 datasheet

HTC TC B250 schematic