完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
首先先查看rockchip的IR调试文档。
先去查看rockchip的调试文档,对RK的ir的先有一些初步的认识 rk驱动只支持NEC NEC,最基础的红外电平,逻辑1为0.56ms高电平+1.69ms的低电平。逻辑0为0.56ms高电平+0.56的低电平。 因为rk的驱动只支持NEC,所以按照NEC的编码协议(如上图)可以看到,NEC的IR编码是首先是一段9ms的高电平,然后就是一段4.9ms的低电平。然后就开始发送地址(address),然后是地址(address)的反码,然后发送控制码(Command),然后是控制码的反码,这样的一个过程完成一次按键的按下。 其他厂商的红外编码 其他的厂商的比如美的,格力的红外编码都是私有协议和NEC不一样,需要根据对应的协议,然后使用PWM的脉冲测量进行修改驱动。 RK3399 IR 调试 驱动路径:kerneldriversinputremotectlrockchip_pwm_remotectl.c 首先查看dts,其中rk的ir驱动中,使用PWM的脉冲测量去检测高低电平的长度,然后计算出是不是我们配置的红外值,如果是将这个红外值映射成linux 的标准按键值,所以需要注册一个input子系统。 pwm3: pwm@ff420030 { compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm"; reg = <0x0 0xff420030 0x0 0x10>; #pwm-cells = <3>; pinctrl-names = "active"; pinctrl-0 = <&pwm3a_pin>; clocks = <&pmucru PCLK_RKPWM_PMU>; clock-names = "pwm"; status = "disabled"; }; &pwm3 { status = "okay"; pinctrl-names = "default"; //这个很重要必须要设置为“default”,不然就会使用"active";,导致没有产生中断。 pinctrl-0 = <&pwm3a_pin>; interrupts = compatible = "rockchip,remotectl-pwm"; remote_pwm_id = <3>; handle_cpu_id = <1>; remote_support_psci = <1>; ir_key1 { rockchip,usercode = <0x4040>; //usercode就是NEC里面的address rockchip,key_table = <0xf2 KEY_REPLY>, //将红外编码值(command),映射成linux的标准键KEY_REPLY。 <0xba KEY_BACK>, <0xf4 KEY_UP>, <0xf1 KEY_DOWN>, <0xef KEY_LEFT>, <0xee KEY_RIGHT>, <0xbd KEY_HOME>, <0xea KEY_VOLUMEUP>, <0xe3 KEY_VOLUMEDOWN>, <0xe2 KEY_SEARCH>, <0xb2 KEY_POWER>, <0xbc KEY_MUTE>, <0xec KEY_MENU>, <0xbf 0x190>, <0xe0 0x191>, <0xe1 0x192>, <0xe9 183>, <0xe6 248>, <0xe8 185>, <0xe7 186>, <0xf0 388>, <0xbe 0x175>; }; }; 驱动注册成功 如果驱动注册成功使用getevent -l 会生成如下节点: 查看红外中断 红外注册成功后,使用红外遥控器往红外接收头按下按键,可以看到是否产生了红外中断,从而证明驱动是正常工作了。 cat proc/interrupts 硬件连接 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
678 浏览 0 评论
920 浏览 1 评论
814 浏览 1 评论
2030 浏览 1 评论
3275 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 02:31 , Processed in 0.600149 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号