查看: 1540|回復: 0
打印 上一主題 下一主題

【瘋殼·嵌入式教程4】手把手教你做平板電腦-設備按鍵驅動(dòng)實(shí)驗教程

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2022-8-22 10:39:47 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
設備按鍵驅動(dòng)實(shí)驗教程
——瘋殼·嵌入式平板開(kāi)發(fā)





    第一節 引言 --- 如何看一個(gè) GPIO 按鍵的電路原理圖

    下圖來(lái)源于文檔 3128_sdk_a02_20170325.pdf 中第 9 頁(yè)和第 12 頁(yè)。
    如下第一張圖 PMIC_PWRON 引腳在按鈕按下前一直保持高電平,按鍵按下后變成低電平并觸發(fā)中斷休眠/喚醒屏幕。第一張圖所示 pmic_pwron 連接的是一個(gè)按鍵電路,第二張圖所示 pmic_pwron 連接的是 GPIO0_A2。綜上所述,按鍵可以由 gpio 來(lái)實(shí)現的。




    圖1

    第二節 按鍵配置實(shí)例 --- 以 GPIO2_D1 為例,高電平觸發(fā)上升沿來(lái)模擬按鍵被按下

    gpio 引腳通?梢耘渲贸奢斎牒洼敵龉δ。作為輸入功能,一般在 linux 系統里面是以中斷的方式來(lái)使用;如果作為輸出功能一般主要用來(lái)提供一個(gè)高低電平信號。本文利用  gpio 的輸入功能來(lái)模擬一個(gè)按鍵。
    本章主要以 GPIO2_D1 為例子講解,給 GPIO2_D1 一個(gè)高電平來(lái)觸發(fā)上升沿產(chǎn)生中斷操作并串口打印一條語(yǔ)句。

   
    圖2
    圖示紅框位置表示將要配置的 gpio 在開(kāi)發(fā)板上的位置

   
    gpio 在電路圖中的位置
    圖3

    第三節 rk3128 開(kāi)發(fā)板 gpio 在 DTS 中的配置

    rk3128 驅 動(dòng) 配 置 使 用 的 是 Device Tree 的 方 式 , 所 以 在 kernel 路徑 $(dir)\rk3128-source\kernel\arch\arm\boot\dts 中 rk3128-study.dts 描述了我們整個(gè)系統的驅動(dòng)配置,gpio 的配置如下所示:

   
代碼1

    第四節 實(shí)驗步驟

    1.如何看中斷是否注冊成功 --- cat /proc/interrupts
    我們注冊的中斷名字是:gpio_input_test 對應于中斷號 160

     
    圖4
    2.kernel 實(shí)驗步驟

   
    圖5
    第五節 實(shí)驗現象
    以一根杜邦線(xiàn)為例,低電平觸發(fā)中斷

  
    圖6
    第六節 AD 按鍵

    什么是 AD 按鍵:“AD 檢測法實(shí)現簡(jiǎn)單實(shí)用的按鍵”,僅僅需要一個(gè) AD 接口和若干的電阻,就可以實(shí)現 1  個(gè),2 個(gè),3 個(gè)        多個(gè)按鍵輸入。原理就是按鍵按下的時(shí)候,IO 口將檢測
    到不同的電壓值。
    本節第一張圖所示三個(gè)按鍵就組成了 AD 按鍵并對應不同的阻值報告給 cpu,cpu 檢測后知道那個(gè)鍵被按下,相應的 driver 配置看$(dir)\rk3128-source\kernel\arch\arm\boot\dts 中rk3128-study.dts 的&adc{ }選項,源代碼對應文件是$(dir)\rk3128-source\kernel\drivers\input\keyboard\rk_keys.c
    下圖來(lái)源于文檔 3128_sdk_a02_20170325.pdf 中第 9 頁(yè)。

   
    圖一 AD 按鍵原理圖
    圖7

   
    圖二 cpu 側接線(xiàn)圖
    圖8

    第七節 PMIC_PWRON 休眠/喚醒屏幕

    本節主要是繼續第一節課的原理圖講解一下屏幕的休眠/喚醒功能(gpio 的一個(gè)應用) 相應的 driver 配置看$(dir)\rk3128-source\kernel\arch\arm\boot\dts 中 rk3128-study.dts的&adc{...}選項,源代碼對應文件是$(dir)\rk3128-source\kernel\drivers\input\keyboard\rk_keys.c
    注意中斷響應函數 keys_isr(int irq, void *dev_id),具體的屏幕休眠/喚醒由它來(lái)處理。





如需定制開(kāi)發(fā),請通過(guò)官網(wǎng)“瘋殼”網(wǎng)頁(yè)底部的“聯(lián)系我們”進(jìn)行聯(lián)系

    文件下載請點(diǎn)擊: 4、設備按鍵驅動(dòng)實(shí)驗.pdf (887.32 KB)



您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页