Orangepi3 Lts 驱动开发
夏侯城临
这个作者很懒,什么都没留下…
展开
-
OrangePi3 LTS 驱动开发-遥控器(二)
里面的0x00181869之类的就是我们打印出来的scancode,熟悉nec编码应该知道,nec编码由引导码+客户码+客户码反码+命令码+命令码反码组成,而这个1818应该就是厂商特定的客户码吧。linux 对于每一种遥控器都有一个keymaps文件,里面定义了我们遥控器的scancode跟linux 按键事件的对应,所以我们只要增加我们遥控器keymaps就可以了。,code为MSC_SCAN,这并不是我们想要的type为EV_KEY,Code为KEY_DOWN事件。我们再写个app监听下按键吧。原创 2023-04-09 10:17:25 · 197 阅读 · 0 评论 -
OrangePi3 LTS 驱动开发-遥控器(一)
遥控器测试,手册上说要orangepi特制的遥控器,但是h6这颗芯片是带ir硬解码的,所以市面上的遥控器大多数都是可以用的。如果不是nec,那么用 echo nec > /sys/class/rc/rc0/protocols 即可切换。改成 ir->rc->allowed_protocols = __RC_PROTO_NEC_CODEC;orangepi开机默认不是nec模式的,如果想改开机默认在nec模式下。protocols 节点的生成对应的驱动文件为 rc-main.c。原创 2023-04-08 21:56:35 · 317 阅读 · 0 评论 -
OrangePi3 LTS 驱动开发-spi通信(二)
上一章讲了spi无驱动设备读写的方法,这一节演示一下,spi 设备驱动的编写模板。kernel版本:orange-pi-5.10-media。驱动加载以后,将spi1的mosi与miso短接,会将tx数据,通过rx打印出来。原创 2023-04-08 21:35:32 · 256 阅读 · 0 评论 -
OrangePi3 LTS 驱动开发-spi通信(一)
其实这个spidev的节点是内核给应用层的一种无驱动设备用的一种形式,跟iic一样,注册后在生成/dev/spidev1.0 这么个设备节点。5.1x版本,spi1默认是关闭的,需要在orangepiEnv.txt中添加overlays=spi-spidev1字样开启spi1。如果不添加,默认设置为开,需要更改dts中的配置。App代码如下,就获取一下spi的设备id,如果能返回,说明线没接错,spi通讯正常。1、修改sun50i-h6-orangepi-3-lts.dts文件。原创 2023-04-08 13:58:28 · 424 阅读 · 2 评论 -
OrangePi3 LTS 驱动开发-i2c通信(四)
所以我们去解析/dev/input/eventx节点就好。veml7700驱动中我们注册了input device。上报到了input 子系统。原创 2023-04-07 13:34:47 · 171 阅读 · 0 评论 -
OrangePi3 LTS 驱动开发-i2c通信(三)
所以,我们去轮询读取lux节点的数据就好了。原创 2023-04-07 12:53:20 · 94 阅读 · 0 评论 -
OrangePi3 LTS 驱动开发-i2c通信(二)
4、input设备的注册以及上报。(这一步可以省略,app直接轮询解析也可以,但是上报input子系统后,我们可以解析/dev/input/eventx节点得到我们想要的光感lux值)cat /sys/class/max_veml7700/veml7700/support 为1 ,表示有光感设备,0表示没有光感设备。lux当前寄存器中光感数值,需要计算得到真实光感值,在APP里处理计算。delay 驱动中上报input的时间间隔。1、i2c_driver的注册。2、veml7700的初始化。原创 2023-04-07 11:58:28 · 269 阅读 · 2 评论 -
OrangePi3 LTS 驱动开发-i2c通信(一)
5.1x版本,i2c0默认是关闭的,需要在orangepiEnv.txt中添加overlays=i2c0字样开启i2c0。如果不添加,默认设置为开,需要更改dts中的配置。是适配驱动中at24.c。重新编译,替换kernel跟dtb后,查看at24c02相关的节点是否生成。2、修改sun50i-h6-orangepi-3-lts.dts文件。kernel版本:orange-pi-5.10-media。往节点写字符串,然后读出来,打印。1、修改sun50i-h6.dtsi文件,屏蔽以下内容。原创 2023-04-07 09:48:15 · 316 阅读 · 0 评论 -
OrangePi3 LTS 驱动开发-uart通信
5.1x版本,uart3默认是关闭的,需要在orangepiEnv.txt中添加overlays=uart3字样开启uart3。如果不添加,默认设置为开,需要更高dts中的配置。App测试demo,orangepi里编写,直接gcc 编译运行即可。2、修改sun50i-h6-orangepi-3-lts.dts文件。kernel版本:orange-pi-5.10-media。usb转串口小板 tx rx接26pin的uart3 ,1、修改sun50i-h6.dtsi文件,屏蔽以下内容。原创 2023-04-06 18:48:21 · 445 阅读 · 0 评论 -
OrangePi3 LTS 驱动开发-GPIO 中断
上一节将到将普通gpio设置为输入,app端可以通过轮询的方式去读取外部设备的状态,但这样消耗的资源比较大。如果采用中断的方法,当gpio高低电平发生变化的时候,我们再去处理相应的事件,那么会大大降低cpu的负担。kernel版本:orange-pi-5.10-media。那么串口会每隔一秒打印一次中断处理函数。dts配置同上一节gpio输入。将pw0修改输出1hz的方波,原创 2023-04-06 16:03:31 · 264 阅读 · 0 评论 -
OrangePi3 LTS 驱动开发-GPIO输入
将pl8接3.3后,cat /sys/class/max_input/input/gpio_value 为1。将pl8 接地后,cat /sys/class/max_input/input/gpio_value 为0。kernel版本:orange-pi-5.10-media。将OrangePi3 LTS开发板pl8 配置为输入。原创 2023-04-06 13:48:53 · 251 阅读 · 0 评论 -
OrangePi3 LTS 驱动开发- PWM
OrangePi3。原创 2023-04-06 11:12:15 · 417 阅读 · 0 评论 -
OrangePi3 LTS 驱动开发-GPIO点灯
linux设备驱动开发原创 2023-04-06 11:07:28 · 381 阅读 · 0 评论