当前位置: 首页 > news >正文

rv1106 PWM控制

功能引脚编号功能
AL_LEDpin7434PWM0_M0 /CPU_AVS /VI_CIF_D0_M1 /GPIO1_A2_d
W_LEDpin7741UART4_RX_M0/PWM3_IR_M1/GPIO1_B0_d
IR_LEDpin7840UART4_TX_M0/PWM7_IR_M1/SPI1_CS1_M0/VI_CIF_D1_M1/GPIO1_B1_d
CDSpin22145SARADC_IN1/PWM1_M1/GPI4_C1_z

修改设备树

修改设备树,添加PWM0_M0 , PWM3_IR_M1, PWM7_IR_M1
注意 rv1106g2-ipc.dtsi的vdd-arm已经占用PWM0_M0,要将其取消

vdd_arm: vdd-arm {
		// compatible = "pwm-regulator";
		// pwms = <&pwm0 0 5000 1>;
		compatible = "regulator-fixed";
		regulator-name = "vdd_arm";
		regulator-min-microvolt = <724000>;
		regulator-max-microvolt = <1078000>;
		regulator-init-microvolt = <950000>;
		regulator-always-on;
		regulator-boot-on;
		regulator-settling-time-up-us = <250>;
	};

在rv1106g2-ipc.dts中添加各个pwm

&pinctrl {
	sdmmc {
		/omit-if-no-ref/
		sdmmc_pwren: sdmmc-pwren {
			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	pwm0 {
		/omit-if-no-ref/
		pwm0m0_pins: pwm0m0-pins {
			rockchip,pins =
				/* pwm0_m0 */
				<1 RK_PA2 1 &pcfg_pull_none>;
		};
	};

	pwm3 {

		/omit-if-no-ref/
		pwm3m1_pins: pwm3m1-pins {
			rockchip,pins =
				/* pwm3_ir_m1 */
				<1 RK_PB0 2 &pcfg_pull_none>;
		};
	};

	pwm7 {

		/omit-if-no-ref/
		pwm7m1_pins: pwm7m1-pins {
			rockchip,pins =
				/* pwm7_ir_m1 */
				<1 RK_PB1 2 &pcfg_pull_none>;
		};
	};
};

&pwm0 {
	status = "okay";
	pinctrl-0 = <&pwm0m1_pins>;
};

&pwm3 {
	status = "okay";
	pinctrl-0 = <&pwm3m1_pins>;
};

&pwm7 {
	status = "okay";
	pinctrl-0 = <&pwm7m1_pins>;
};

重新生成固件,烧录后进入sys

[root@luckfox root]# cd /sys/class/pwm/
[root@luckfox pwm]# ls
pwmchip0  pwmchip3  pwmchip7

已经可以见到pwm0,pwm3, pwm7

通过sysfs对pwm操作

导出pwm0m0

[root@luckfox pwm]# echo 0 > ./pwmchip0/export
[root@luckfox pwm]# ls ./pwmchip0/
device     export     npwm       power      pwm0       subsystem  uevent     unexport

可见pwm0的pwm0已经导出

[root@luckfox pwm0]# ls ./ -al
total 0
drwxr-xr-x    3 root     root             0 Mar 13 17:44 .
drwxr-xr-x    4 root     root             0 Mar 13 17:44 ..
-r--r--r--    1 root     root          4096 Mar 13 17:46 capture
-rw-r--r--    1 root     root          4096 Mar 13 17:46 duty_cycle
-rw-r--r--    1 root     root          4096 Mar 13 17:46 enable
-r--r--r--    1 root     root          4096 Mar 13 17:46 output_type
-rw-r--r--    1 root     root          4096 Mar 13 17:46 period
-rw-r--r--    1 root     root          4096 Mar 13 17:46 polarity
drwxr-xr-x    2 root     root             0 Mar 13 17:46 power
-rw-r--r--    1 root     root          4096 Mar 13 17:46 uevent

[root@luckfox pwm0]# cat ./capture
cat: read error: Function not implemented
[root@luckfox pwm0]# cat ./duty_cycle
0  #1的时间
[root@luckfox pwm0]# cat ./enable
0  #开启
[root@luckfox pwm0]# cat ./output_type
fixed
[root@luckfox pwm0]# cat ./period
0    #周期时间 ns计算 如1000hz周期时间为1000000
[root@luckfox pwm0]# cat ./polarity
inversed   #极性 反相,值越大,高电平越少

测试

[root@luckfox pwm0]# echo 1000000 > ./period #设置频率为1KHZ
[root@luckfox pwm0]# echo normal > ./polarity #设置极性为正常,duty_cycle越大越亮
[root@luckfox pwm0]# echo 1 > ./enable #打开PWM0M0输出
[root@luckfox pwm0]# echo 300000 > ./duty_cycle # %30占空比
[root@luckfox pwm0]# echo 500000 > ./duty_cycle # %50占空比
[root@luckfox pwm0]# echo 700000 > ./duty_cycle # %70占空比
[root@luckfox pwm0]# echo 900000 > ./duty_cycle # %90占空比
[root@luckfox pwm0]# echo 1000000 > ./duty_cycle # %100占空比

随着duty_cycle的变大,LED越亮。


注意RKIPC已经占用PWM3,RKIPC初始化时会亮灯


相关文章:

  • C语言为例谈数据依赖性
  • Android 7 及以上,Fiddler 抓 https 包
  • 容器适配方法模拟Stack和Queue
  • Ansible命令行模式常用模块使用案例(二)
  • Keil创建stm32f103c8t6标准库
  • c++常用的算术生成算法
  • 深度学习项目--基于DenseNet网络的“乳腺癌图像识别”,准确率090%+,pytorch复现
  • RGV调度算法
  • C++20 `<bit>` 中的整数 2 的幂运算和 `std::bit_cast`:由浅入深的探索
  • 【土地智慧】解码土地利用的基本方针
  • 汉桑科技IPO:潜藏两大风险 公众投资者权益或受损
  • MistralAI挑战DeepSeek:开源模型能否颠覆行业巨头
  • 第6关:牛牛鱼缸-附加题
  • 工作记录 2017-01-09
  • Django系列教程(8)——函数视图及通用类视图
  • 【DevOps】使用Azure DevOps为Azure静态网站配置多阶段部署
  • OpenHarmony 编译运行qemu模拟设备
  • [内网渗透] 红日靶场2
  • Unity | 工具类:消息管理器-延迟分发
  • CSS3 用户界面设计指南
  • 服务器放n个网站/如何在网上推广自己
  • 广州高端品牌网站建设哪家公司好/qq群推广引流免费网站
  • 阿里云建网站流程/友情链接交换
  • 网站在线客服插件代码/北京网络推广公司排行
  • 利用vps做网站/企业网站管理
  • 秦皇岛黄金海岸收费吗/青岛百度关键词优化