本文适用于触觉智能2D0X核心板四路PWM的配置。触觉智能的IDO-SOM2D0X是基于SigmaStar SSD201/202 SoC的超小SOM模组,双核A7,1.2GHz主频,1080P视频解码,支持MIPI/RGB显示接口,支持双以太网,支持SDIO/USB/SPI/I2C/UART/DMIC/I2S,集成音频Codec,支持麦克风阵列;模组集成了WiFi和NAND Flash;支持Linux系统;高性能,低成本;批量供货保障,主要应用于智能楼宇室内机,智能家居中控,86盒家庭中控,电梯楼层显示器,IP网络广播设备等。
IDO-SOM2D0X-V1采用Sigmastar SSD201/SSD202D SoC 设计,Sigmastar SSD201/SSD202D拥有4路硬件PWM。其编号为 PWM0-PWM3。默认复用引脚,如下表所示:
编号 | 默认复用引脚 |
PWM0 | GPIO4 |
PWM1 | GPIO5 |
PWM2 | SD_D1 |
PWM3 | GPIO12 |
在kernel/arch/arm/boot/dts/infinity2m-doublenet.dtsi中,
定义寄存器、时钟和PWM的个数,以及对应的GPIO引脚,如下图所示:
参数及说明,如下表所示:
参数 | 说明 |
reg(寄存器) | 指定了PWM控制器的内存映射寄存器的位置和大小。 |
clocks (时钟) | 指定了PWM控制器使用的时钟源。 |
npwm (PWM数量) | 表示使用多少个PWM |
pad-ctrl (引脚控制) | 表示绑定的引脚,如: PWM1绑定PAD_GPIO5 PWM2绑定PAD_SD_D1 PWM3绑定PAD_GPIO12 |
status (状态) | “ok”是激活,“disable”禁用。 |
输出的GPIO可通过修改如下配置文件:
kernel/arch/arm/boot/dts/infinity2m-ssc011a-s01a-padmux-rgb565-rmii-doublenet.dtsi
进行配置,其中一路是用来调整PWM背光的,默认为PWM0。使用到哪个引脚就需要屏蔽掉(注释掉对应的代码)哪路引脚的GPIO,使其变为PWM模式。如下图所示:
2.3 内核配置
kernel需要加载PWM驱动:在编译内核前,通过make menuconfig进入配置菜单,找到Device Driver -> SStar Soc platform drivers,然后启用SSTAR_PWM选项保存并退出。
cd kernel
配置菜单选择,如下图所示:
具体编译及烧录步骤,见下面链接
Purple Pi R1 系统编译:
https://industio.yuque.com/mdtih8/gyzv1h/fa4r1wmkpkvlo9pi?singleDoc#
Purple Pi R1烧录流程
https://industio.yuque.com/mdtih8/gyzv1h/yezo0g3ragnuar79?singleDoc#
cd /sys/class/pwm/pwmchip0
注:此方式断电重启后,设置参数会恢复成默认状态。PWM参数设置如果需要保存,请按照以下步骤操作:
打开位于 /customer/ 目录下的 demo.sh 脚本文件。
将上述PWM配置命令逐一添加到 demo.sh 文件中。这将确保每次系统启动时,脚本都会自动执行这些命令,从而应用PWM设置。
完成命令添加后,保存 demo.sh 文件的更改。
最后,执行 sync 命令以确保所有更改被正确地同步并持久化到存储设备上。
2.6 验证
验证需要使用示波器测量对应的引脚波形,也可以通过调节占空比0%,50%,100%后用万用表测量对应引脚的电压进行粗略的验证。例如设置25%的占空比,测量结果,如下图所示:
全部0条评论
快来发表一下你的评论吧 !