應用背景
隨著紅外線設備的應用日益廣泛,例如遙控器和紅外傳感器等。而RK3399作為一款高性能處理器,廣泛應用于電視盒子等智能終端。通過將紅外遙控功能與 RK3399 電視盒子結(jié)合,用戶能夠高效地控制電視設備。極大的提升了用戶體驗。
iTOP-RK3399平臺介紹
紅外遙控方案示例
iTOP-RK3399 開發(fā)板搭載了HS0038B 紅外接收模塊。接下來我們在RK3399開發(fā)板 Android8系統(tǒng)上適配紅外遙控。
01-獲取USERCODE和KEY值
開發(fā)板里面燒寫Android8系統(tǒng),然后在串口終端輸入以下命令使能DBG_CODE 打印
echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/code_print
在遙控器上按下任意按鍵,可以看到類似如下信息:
從上圖發(fā)現(xiàn)這個遙控的 usercode是0xdd22,用以標識遙控種類。RMC_GETDATA 表示鍵值。
我們選取遙控器上的幾個按鈕作為示例,分別測出如下圖所示的按鍵的鍵值。
02-修改設備樹打開PWM
首先查看開發(fā)板底板的原理圖如下圖所示:
然后在核心板原理圖搜索“IR_RX”,如下圖所示,對應的引腳是GPIO0_A6/PWM3A_IR_d
然后查找設備樹itop-3399.dtsi文件,路徑為:itop-3399_8.1/kernel/arch/arm64/boot/dts/rockchip/itop-3399.dtsi
在此文件中的pwm3節(jié)點添加鍵值,如下圖所示:
我們來分析一下這個節(jié)點,如下表所示:
itop-3399_8.1/kernel/include/dt-bindings/input/rk-input.h文件如下圖所示:
03-Android鍵值映射
在修改了步驟二的設備樹后,重新編譯Android源碼,編譯完成會在out目錄下生成編譯好的文件。itop-3399_8.1/out/target/product/rk3399_mid/system/usr/keylayout/ff420030_pwm.kl文件用于將 Linux 層獲取的鍵值映射到 Android 上對應的鍵值。我們可以添加或者修改該文件的內(nèi)容以實現(xiàn)不同的鍵值映射。沒有的按鍵值,在按鍵時,上層app收到的值是未知按鍵。我們添加示例的幾個按鍵的鍵值映射,如下圖所示:
中間的數(shù)字是功能碼對應的數(shù)字,在itop-3399_8.1/kernel/include/dt-bindings/input/rk-input.h中查看。右側(cè)的是與上層對應的關(guān)系,在frameworks/base/core/java/android/view/KeyEvent.java路徑可以查找到(例如:KEYCODE_DPAD_DOWN 只需要取后半部分就可以),如下圖所示:
修改完畢f(xié)f420030_pwm.kl文件,然后修改編譯腳本,將“make installclean”注釋掉,然后重新編譯Android8的鏡像,編譯完后,燒寫鏡像。
04-測試紅外遙控
燒寫鏡像以后,系統(tǒng)啟動進入Android系統(tǒng),我們打開系統(tǒng)自帶的“設置”APP,按遙控器上的上下鍵,可以移動到對應的選項,按遙控器上的enter按鈕,可以選中選項,按返回按鈕可以退回上一級目錄,按音量+ - 可以控制音量。
然后我們打開系統(tǒng)自帶的“通訊錄”APP,新建聯(lián)系人,在手機號的輸入框里面,用遙控器按下0-9 的數(shù)字,可以輸入,如下圖所示,以上測試說明3399支持紅外線接收。
-
遙控
+關(guān)注
關(guān)注
11文章
285瀏覽量
57418 -
紅外線
+關(guān)注
關(guān)注
14文章
621瀏覽量
56269 -
電視盒子
+關(guān)注
關(guān)注
1文章
159瀏覽量
19163
原文標題:高清電視盒子方案分享 | 紅外遙控適配過程全解析
文章出處:【微信號:迅為電子,微信公眾號:迅為電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論