傳說有個痞友手上有很多家用 led 無線遙控器。讓我們就來好好研究一下這顆 RC (remote control)吧~ 順便練習一下寫篇文章,好久沒發文了。 遙控器長這個樣子: 其實我不會拆,是痞友說從正面試試,按鍵面拉開後,底下是鎖住個。 底下電路長這樣,我們可以發現上面是433Mhz 的基本發射電路,433Mhz晶體震盪加上NPN 950 構成一個發射器。 手上有一台簡易的2Ghz的載波頻率檢測器,拿來試試,發現數值跳來跳去,可能是程式問題或是假像頻率信號太大了吧~ 此台被我分解過,長的很難看。 我們從RF信號的前端可拉出原始傳送資料。我們只需從晶震/npn前端電阻拉出及可。 參考電路圖,google 一下 "433mhz schematic" https://electronics.stackexchang ... transmitter-circuit 這時,我們需要拿出示波器來,好好的仔細觀察傳送信號可能像那種專用接收ic用的。 我們會發現傳送信號是由2個不同50% duty cycle的頻率組成。 仔細調整示波器,可發現信號最前面都為 48個細的週期(比較高頻)。 緊接著為4個大周期的信號(比較低頻)。 此為細週期,先初步用我的示波器計算一下半週 T約為 275uS 。 此為寬週期,示波器初步觀看為 595uS,不過此可能設定解析度偏大而有誤差。 在不同的按鍵對映的編碼,在分析過程會發現有時會在負半週期時有錯誤的編碼。 猜測可能是mcu程式沒處理好的bug。 拿出我"愛買"的433Mhz接收模組,此模組為SYN470+1257解碼器,我是獨立從syn470拉出"解調"信號。 並接上我的邏輯分析儀: 原始發射未調變前之信號: 細週期 275us ,約為 1.8Khz 寬週期 552 us, 約為 900hz 2個調變信號,中間間隔約為25ms 上為發射信號解析,下為接收器解調。 我們會發現有點shift,此為合理的。 另外我會發現在接收器解析的信號在正負半波週期會有點改變,可能是接收器特性吧。 此處也發現有些負半週週期調變應該有點錯誤。 數據分析記錄1: 此數據會發現每個傳輸信號是由110個大小周期信號混合。 例如:ON鍵: 48小 4大 1小 1大 3小 3大 1小 1大 7小 1大.........共 110個 接收器實作在 arduino 上,使用 D2 當中斷檢測信號。 我是用網路上現成的rc-switch來修改的,我之後再描述這套庫的限制。 https://github.com/sui77/rc-switch 此為第1個test例子 此為第2個test例子 數據分析記錄2: 此為利用 arduino 解出的碼。右側為此按盤的掃描接線,此pcb上面有一堆的 TP 點。 如果不愛原來的碼,可直接拆除原 mcu 並浮接自己的mcu(ex:attiny)並跳接那些 TP 點及可擁有自定款。 目前發現在每一個按鍵有可能跳出不同的碼,以 key on 來說明。 key-on: 00000000-0000F474-0594E304-0200 1.在不同次的按鍵觸發時,F474 可變成 F476,放開再按可再變成 F474。 猜測可能是故意做的,可同時控制2組。 2.按住後持續按住一陣子後,F474可變成F475,F476可變F477。 猜測可能是讓接收器進入加速調整(如led背光強度調整) 此為數據2裏,可發現一個檢查碼驗證 674(hex) 結論: 其實我是還沒找到這顆是用那顆解碼器,只好手動寫個解碼程式。 arduino sample code: RC_PLRF1166_TEST.zip RC_PLRF1166_TEST2.zip |
GMT+8, 2024-12-24 02:14 AM , Processed in 0.048825 second(s), 26 queries , Gzip On.
Powered by Discuz! X3.4 Licensed
© 2001-2023 Discuz! Team.