2018年4月22日

簡易微電腦風扇控制器維修(PT2125)

前陣子家裡一台用了很久的風扇壞了也一陣子,想說拆來修看看!~
因為控制板修好後才想到來記錄一下,所以沒有控制板損壞的照片。



拆開底板看到控制板後先來看看控制 IC 型號,PT2125-C4N,


PT2125 是設計給數位電風扇用的IC,已設定轉速及運轉時間,還有一個自然風模式,
還可以裝上蜂鳴器,不過看來我這塊板子沒有。

PT2125 有分 C Type 及 F Type,差異在OSC的輸入源,C Type要上 32.768 kHz的 Crystal,F Type 可以直接接AC利用其頻率50~60Hz 來用。
PT2125-C Type 

PT2125-F Type
從上面的參考電路可以看出,IC控制馬達的方式是用 TRIAC (雙向矽控整流器),來代替原本用機械開關控制馬達的電路,下圖是網路上找到的傳統 AC馬達控制轉速的電路,馬達會有4條線圈抽頭來控制轉速,PT2125就是用TRIAC來直接取代那調速開關。
TRIAC是常見用來控制"AC"的電子開關,當Gata 閘有電壓時就可以雙向導通,另有一種SCR 只有單向導通,因為電風扇是AC電,當Gata 閘關閉時,電壓到0V時就不會再導通,如使用DC電就會關不掉了,因為上下兩極一直有偏壓在。

網路上找到的傳統開關風扇電路

稍微介紹完IC控制原理後就來回歸正題拉,原來是電風扇有幾顆LED腳都生鏽斷掉了。
在上面的電路可以看出,TRIAC 的 Gata 有串接LED,當LED斷了當然就無法控制馬達啦!~

將LED都整理一下,還可以用的就用砂紙磨磨生鏽的腳,斷的就只好換上新的。

拆下來的已鏽蝕的LED

修好的電路板 - 圈起來的為原本舊的LED

修好控制板的部分後,原本按鍵風速的塑膠面板斷了,就也來修一下。

破了個大洞
剪兩片塑膠片黏起來

用快乾黏在外殼上

外面最後在用透明膠帶黏起來

今年夏天又多一台電風扇可以吹啦!~











2018年1月8日

DIY改裝負離子風扇

時不時感覺辦公室的空氣好悶,查了一下負離子似乎可以淨化空氣,之前剛好有看到有賣場在賣負離子產生器,就來改裝一下我的小風扇拉!~

負離子產生器 - 5V/14.8~19.3mA
小風扇 - 5V/(弱風)500mA、(強風)900mA
接下來當然是先拆風扇囉,先把白色的蓋子拆開:

可以看到裡面非常空,非常適合把負離子產生器藏在裡面:

因為我想讓負離子發射端經由轉軸的洞穿過去,所以只好先把線剪斷穿過轉軸並順便加長一下線長,讓發射端接近中間,在配線時也要注意葉片是否會打到線:


將發射端固定好將線穿過轉軸

確認葉片離線的距離
接下來要將負離子產生器的電源接到開關板上,
這風扇有弱風及強風可切換,弱風是由電阻做限流讓馬達轉慢一點,為了讓弱風及強風皆可以產生負離子,所以要並接二極體讓電源都可以供給負離子發射器又不會影響強弱風切換。

風扇控制板

負離子產生器電源
將線整理一下,內部完成的樣子:

最後將外殼裝回去就完成啦!~

這幾天使用下來...說真的...感覺不太出來空氣的差異,原本還想說會有森林的感覺 XD,
不過倒是有發現灰塵似乎少了一點,身上的靜電好像也變少了。

2016年10月10日

bCNC Python環境設置

安裝Python環境 :
  1.  下載Python 2.7 (連結),bCNC目前建議使用Pythin 2。
  2.  在windows 環境變數 的 系統變數 裡的 Path 最後面寫入";C:\Python27"
安裝Python Pyserial :
-方法一(使用pip)
  1. pip官網下載 get-pip.py,先準備安裝pip。
  2. 執行CMD,cd到get-pip.py 所在目錄下,輸入 python get-pip.py 安裝pip。
  3. 輸入 "C:\Python27\Scripts\pip install pyserial",安裝 Pyserial。
-方法二(使用easy install)
  1. 執行CMD,輸入:
    "C:\Python27\Scripts\easy_install pyserial"
開啟bCNC :
  1. 下載bCNC,Downland ZIP。
  2. 解壓縮後執行 "bCNC.bat" 就會開啟bCNC 介面。

2014年9月15日

SJ2000 行車紀錄器更換電池時間不歸零

前言:
當初看在SJ2000的超高C/P值買了這台行車紀錄器,因為一顆電池只能撐兩小時,還順便買了兩顆電池來替換,想不到他竟然拔掉電池時間就會歸零= =,這讓我買了兩顆電池也沒用處了,在網路上找找好像大家都有這問題,可是也沒解答,只好來找資料想想辦法。

SJ2000 外觀
電路板正面
電路板背面
拆解取出電路板來研究電路,Main chip 為 NT96650,這顆是台灣聯詠科技出的 MIPS32 24Kec + DSP + H.264 Codec,是專門來做行車紀錄器的SoC,在市面上有不少白牌的行車紀錄器都是NT96650 + AR0330 CMOS Sensor 這超便宜又好用的組合。
NT96650 - Block Diagram
這次改造的目標是要讓時間能夠保持不要歸零,看了看電路上沒有RTC 的IC,不過NT96650內部有RTC 及 VDD_RTC的Power Pin,那看來時間應該是交給NT96650 來計算及維持,只要讓VDD_RTC 維持在1.5~3.6V就可以讓內部RTC持續工作。


在網路上努力的尋找有關NT96650 的電路圖,這類的公板電路有些都會簽保密協議,所以找了好久終於才找到外流的電路。

看了電路後發現VDD_RTC 是由一顆3.3V 的LDO 供應的,所以只要在這LDO之後加上電池電路就可以持續的供應VDD_RTC電源,不過也不能一直持續由電池供電給RTC,這樣電池很快就會沒電了,所以要利用二極體的特性,正常時電池電壓(3V)比LDO(3.3V)低,所以當LDO 供電時電池的迴路會開路,當LDO 沒供電時二極體才會導通由電池供電。

電池供電電路

由於找到的電路並不是我的SJ2000的,所以零件編號對不起來,經過一番的量測及確認IC型號後,終於找到這顆3.3V LDO的位子。
3.3V LDO

想了想決定把原來的LDO拿掉,跳成自己的電路比較好設計。
將VCC_RTC 跳線出來


將自己設計的LDO小板與SJ2000 連接後第一次上電測試基本功能是否正常。

LDO + 雙二極體電路
電源供應器供電測試
接下來將電池接上去後測試斷電後時間是否會跑掉。

將CR2032電池接上

經過測試時間沒有因換電池歸零,我買的備用電池有用了。

完畢!~


2015.06.01 - 新增LDO小板電路:
LDO是用TI的TPS73633,如果有其他類似的LDO也是可以替換,二極體是用BAT54C,比較省體積。

LDO 小板 電路圖


2014年6月9日

FatFs - FAT file system module - 筆記

FatFs Module 是日本的嵌入式系統工程師 ChaN 所撰寫的可用於商業的開放式程式碼。

架構如下圖:
圖檔來源:http://elm-chan.org/fsw/ff/00index_e.html
FatFs module 架構

圖檔來源:http://elm-chan.org/fsw/ff/en/appnote.html
FatFs module 程式碼檔案架構































檔案:
  1. ff.c、ff.h:FatFs module 主要的程式碼。
  2. diskio.c:使用者須自行在這添加與底層連接的函數。
  3. ffconf.h:設定及是否打開 FatFs 參數及函數。
     - _FS_READONLY:唯讀模式。
     - _USE_STRFUNC:開啟可使用字串函數。

函數:
  1. f_mount(&fp, "", 0):掛載儲存裝置 。
     - fp: 檔案結構指針。

  2. f_mount(NULL, "", 0):載卸儲存裝置。

  3. f_stat("file name", &filinfo):確認該檔案或資料夾是否存在,如不用file info 可輸入NULL。
     - filinfo: FILINFO型態變數 - 參考

  4. f_opendir(&fp, path):開啟資料夾
     - path:要開啟的資料夾名稱。

  5. f_readdir(&dir, &fno):讀取資料夾內所有檔案或資料夾名稱。
     - fno:名稱放置的陣列位址。

  4. f_open(&fp, "file name", mode):開啟檔案,並將檔案訊息放在結構指針。
     - fp: 檔案結構指針。
     - mode :
        1. FA_READ:  讀取檔案指令
        2. FA_WRITE:寫入檔案指令
        3. FA_OPEN_EXISTING:開啟檔案,不存在則開啟失敗。
        4. FA_OPEN_ALWAYS: 開啟檔案,不存在則建立新檔案。
        5. FA_CREATE_NEW:    建立檔案,已有相同名稱則失敗。
        6. FA_CREATE_ALWAYS:建立檔案,有相同名稱則覆蓋過去。

  5. f_close(&fp):關閉檔案,每次開啟檔案不使用時皆要關閉。

  6. f_sync(&fp):刷新檔案,與close 一樣的作用可是沒實際關閉檔案,可防止檔案遺失。
     -參考:http://elm-chan.org/fsw/ff/en/appnote.html - Critical Section

  7. f_read(&fp, &buff, data len, read len):讀取data len 數量byte 到Buffer。
     -buff:資料放置的陣列位址。
     -data len:要讀取的檔案Byte 數量。
     -read len:實際讀取到的Byte 數量,data len 超過檔案大小會只讀取到檔案的最後Byte。

  8. f_write(&fp, &buff, data len, write len):寫入data len 數量byte 到儲存裝置。
     -buff:資料放置的陣列位址。
     -data len:要寫入的檔案Byte 數量。
     -write len:實際寫入的Byte 數量,如儲存裝置已滿會停止寫入。

  9. f_puts(*str, &fp):寫入一字串到檔案。(#字串函數)

  10. f_printf(&fp, "%d", 123):使用方法與 printf() 一樣。(#字串函數)

File function return:
  1.   FR_OK: 所呼叫的Function 執行任務完成。
  2.   FR_DISK_ERR
  3.   FR_INT_ERR
  4.   FR_NOT_READY
  5.   FR_NO_FILE:沒有該檔案
  6.   FR_NO_PATH
  7.   FR_INVALID_NAME
  8.   FR_DENIED
  9.   FR_EXIST
  10. FR_INVALID_OBJECT
  11. FR_WRITE_PROTECTED
  12. FR_INVALID_DRIVE
  13. FR_NOT_ENABLED
  14. FR_NO_FILESYSTEM
  15. FR_MKFS_ABORTED
  16. FR_TIMEOUT
  17. FR_LOCKED
  18. FR_NOT_ENOUGH_CORE
  19. FR_TOO_MANY_OPEN_FILES
  20. FR_INVALID_PARAMETER

參考文獻及資料來源:
1. http://elm-chan.org/fsw/ff/00index_e.html

2014年3月7日

[QT] 將QString 轉成 Char 型態


由於要使用 fopen() 函數,需要給檔案路徑,可是fopen 只吃char 字元陣列,
而程式取路徑的方式是使用QFileDialog 的getOpenFileName ,傳出的是QString 類型。
所以得經過轉換才可以。

QString 透過 QByteArray 將字串轉為字元陣列。

QString str;
QByteArray byteArray = str.toLocal8Bit ();
char *c = byteArray.data();

參考資料:
1. http://0rz.tw/aNtB6

2014年3月6日

靜電保護-ESD 概念

靜電容易對電子產品造成傷害,輕微的可能重開機可以排除,嚴重的會造成電子元件永久性的損毀。

EDS元件防護原理(TVS):當有瞬間電壓超過電路正常工作電壓時,TVS會產生雪崩,產生一個對地的超低電阻通道,將瞬間電流由TVS引開保護其元件,脈衝結束後,TVS會回復高阻抗,使元件可以正常工作。

ESD國際規範:IES 61000-4-2

根據EN 61000-4-2 靜電測試方法:

  1. 空氣放電測試:模擬人的手指觸碰電子產品時所發生的靜電放電情況。
    測試方式:靜電槍用8mm的放電頭,測試電壓由低到高,對經常容易觸碰的非金屬部位做測試,通常最高測到正負8KV,法規中保留容許高於正負15KV的測試條件。
  2. 接觸放電測試:模擬操作人員直接或間接,接觸到電子產品所產生的放電情況。
    測試方式:靜電槍對待測品金屬部位做放電測試,通常測試到正負4KV。

IEC 61000-4-2 測試電壓與還境條件

測試結果評估判定:
ESD 測試結果評估須按被測試產品功能受影響的程度做判定, 
依法規係將受影響的程度分為四級: 
  • 第一級為 A 級判定 (Criterion A): 指產品功能在測試前後及測試過程中完全可 以正常操作, 無任何功能減低或異常現象出現, 完全不受 ESD 放電影響, 則稱產 品符合 A 級判定結果.
  • 第二級為 B 級判定 (Criterion B): 指產品在測試過程中,功能會受 ESD 放電影響, 在放電瞬間會暫時性的功能降低, 但可以自動回復, 這樣的產品則稱符合 B 級判 定結果.
  • 第三級為 C 級判定 (Criterion C):指產品功能在測試前可正常被操作,但測試過程 中受 ESD 放電影響, 出現功能降低或異常, 且功能無法自動回復, 必須經由操作 人員做重置(Re-set)或重開機的動做才能回復功能, 這情形則僅符合 C 級判定結 果.
  • 第四級為 D 級判定 (Criterion D): 指產品功能在測試前可正常被操作,但測試過 程中出現異常,雖經由操作人員做重置(Re-set)或重開機也不能回復功能, 這種情 況大概產品已損傷嚴重, 僅符合 D 級判定結果. (這屬不合格).
依IEC 61000-4-2法規建議,產品採購驗證必須符合A級或B級的判定才能接受, C 級和 D 級判定是不合格的. 


常見的ESD元件:
1. Varistor
2. ESD Guard:超低電容值,適合用在高頻訊號。
3. Zener Diode
4. TVS Diode:常用。

參考資料:

  1. http://www.digitimes.com.tw/tw/dt/n/shwnws.asp?id=0000160028_COJ1T6HK1WRFXA97F4HMK
  2. http://www.eettaiwan.com/ART_8800352147_480402_TA_ec8aeb8f.HTM
  3. http://www.lcis.com.tw/paper_store/paper_store/esd-test-protect-20141270243921.pdf