找回密码
 注册
关于网站域名变更的通知
查看: 230|回复: 1
打印 上一主题 下一主题

全志A40i开发板PWM 的应用-飞凌国产芯片系列干货

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-11-18 16:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

本文讲解了国产[color=inherit !important]A40i [color=inherit !important]开发板PWM的应用,本篇文章主要适用于[color=inherit !important]飞凌 OKA40i 平台 [color=inherit !important]Linux3.10.65 操作系统,其他ARM 平台也可以参考,但是不同平台之间会存在差异,请自行修改以适应自己的使用。 写本文章的主要目的是协助客户加速产品的研发速度,由于水平有限, 不提供任何的完整性、可靠性等保证,软件版本更新之后,有些位置名称等内容可能会及时更新,修改方法请参考使用。

一、PWM的应用1、pwm的添加" K5 H2 I, l5 K# n4 R3 l

增加一路 pwm,以 pwm4 为例说明,其他方法类似,只做为参考。

arch/arm/boot/dts/sun8iw11p1.dtsi
3 W" r0 N" d' _' g5 o

中添加

; n/ J9 {0 f, |2 k1 V
pwm = &pwm;pwm0 = &pwm0;pwm4 = &pwm4;pwm: pwm@01c23400 {         compatible = "allwinner,sunxi-pwm";        reg = <0x0 0x01c23400 0x0 0x154>;        pwm-number = <1>;         pwm-base = <0x4>;         pwms = <&pwm4>; };pwm4: pwm4@01c23400 {        compatible = "allwinner,sunxi-pwm4";         pinctrl-names = "active", "sleep";         reg_base = <0x01c23400>;        reg_peci_offset = <0x00>;         reg_peci_shift = <0x04>;        reg_peci_width = <0x01>;         reg_pis_offset = <0x04>;        reg_pis_shift = <0x04>;        reg_pis_width = <0x01>;        reg_crie_offset = <0x10>;         reg_crie_shift = <0x08>;         reg_crie_width = <0x01>;        reg_cfie_offset = <0x10>;         reg_cfie_shift = <0x09>;         reg_cfie_width = <0x01>;        reg_cris_offset = <0x14>;        reg_cris_shift = <0x08>;        reg_cris_width = <0x01>;         reg_cfis_offset = <0x14>;        reg_cfis_shift = <0x09>;        reg_cfis_width = <0x01>;        reg_clk_src_offset = <0x28>;        reg_clk_src_shift = <0x07>;        reg_clk_src_width = <0x02>;        reg_bypass_offset = <0x28>;        reg_bypass_shift = <0x05>;        reg_bypass_width = <0x01>;         reg_clk_gating_offset = <0x28>;         reg_clk_gating_shift = <0x04>;         reg_clk_gating_width = <0x01>;         reg_clk_div_m_offset = <0x28>;        reg_clk_div_m_shift = <0x00>;         reg_clk_div_m_width = <0x04>;        reg_pdzintv_offset = <0x38>;         reg_pdzintv_shift = <0x08>;        reg_pdzintv_width = <0x08>;         reg_dz_en_offset = <0x38>;        reg_dz_en_shift = <0x00>;        reg_dz_en_width = <0x01>;         reg_enable_offset = <0x40>;        reg_enable_shift = <0x04>;        reg_enable_width = <0x01>;         reg_cap_en_offset = <0x44>;         reg_cap_en_shift = <0x04>;         reg_cap_en_width = <0x01>;         reg_period_rdy_offset = <0xe0>;         reg_period_rdy_shift = <0x0b>;        reg_period_rdy_width = <0x01>;        reg_pul_start_offset = <0xe0>;         reg_pul_start_shift = <0x0a>;         reg_pul_start_width = <0x01>;         reg_mode_offset = <0xe0>;        reg_mode_shift = <0x09>;         reg_mode_width = <0x01>;        reg_act_sta_offset = <0xe0>;         reg_act_sta_shift = <0x08>;        reg_act_sta_width = <0x01>;         reg_prescal_offset = <0xe0>;         reg_prescal_shift = <0x00>;         reg_prescal_width = <0x08>;        reg_entire_offset = <0xe4>;        reg_entire_shift = <0x10>;         reg_entire_width = <0x10>;         reg_active_offset = <0xe4>;         reg_active_shift = <0x00>;         reg_active_width = <0x10>; }
4 t" l, Z7 J  c

按手册 PWM 修改对应的寄存器。

修改 sys_config.fex 中 twi2_used=0 且增加


% L8 m% V5 M3 L8 R2 I" Y[pwm4]pwm_used = 1pwm_positive = portB20<4><0><default><default>[pwm4_suspend]pwm_positive = portB20<7><0><default><default>- u  ?5 ?( K! u5 N9 m) }: t8 I

编译镜像并烧写

2、PWM的测试8 Z+ B- p8 K, b! G# q' a3 j6 N4 k
echo 0 >/sys/class/pwm/pwmchip4/exportecho 1000000 > /sys/class/pwm/pwmchip4/pwm0/periodecho 500000 > /sys/class/pwm/pwmchip4/pwm0/duty_cycleecho 1 > /sys/class/pwm/pwmchip4/pwm0/enable
- S: m2 T: s5 |( B) R$ a; W/ T" e3 Y

测量得到频率为 1K 方波

4 F1 D& m2 D6 X
echo 0 > /sys/class/pwm/pwmchip4/pwm0/enableecho 208333> /sys/class/pwm/pwmchip4/pwm0/duty_cycleecho 416667 > /sys/class/pwm/pwmchip4/pwm0/periodecho 1 > /sys/class/pwm/pwmchip4/pwm0/enable
8 i5 t$ g" o) I1 x8 b( y9 m

测量得到频率为 2.[color=inherit !important]4K 方波


0 K. t* x( M) ?# [, }+ L/ C# {- m. ~, a

该用户从未签到

2#
发表于 2021-11-18 17:36 | 只看该作者
PWM测试的方法是什么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-9-11 06:15 , Processed in 0.125000 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表