飞凌国产芯片系列经验分享

编程入门 行业动态 更新时间:2024-10-27 03:33:24

飞凌国产<a href=https://www.elefans.com/category/jswz/34/1769159.html style=芯片系列经验分享"/>

飞凌国产芯片系列经验分享

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

一、PWM的应用
1、pwm的添加

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

arch/arm/boot/dts/sun8iw11p1.dtsi

中添加

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>;
}

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

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

[pwm4]
pwm_used = 1
pwm_positive = port:PB20<4><0>
[pwm4_suspend]
pwm_positive = port:PB20<7><0>

编译镜像并烧写

2、PWM的测试

echo 0 >/sys/class/pwm/pwmchip4/export
echo 1000000 > /sys/class/pwm/pwmchip4/pwm0/period
echo 500000 > /sys/class/pwm/pwmchip4/pwm0/duty_cycle
echo 1 > /sys/class/pwm/pwmchip4/pwm0/enable

测量得到频率为 1K 方波

echo 0 > /sys/class/pwm/pwmchip4/pwm0/enable
echo 208333> /sys/class/pwm/pwmchip4/pwm0/duty_cycle
echo 416667 > /sys/class/pwm/pwmchip4/pwm0/period
echo 1 > /sys/class/pwm/pwmchip4/pwm0/enable

测量得到频率为 2.4K 方波

原文参考链接:.html
A40i 核心板介绍:.html

更多推荐

飞凌国产芯片系列经验分享

本文发布于:2023-06-29 00:32:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/936306.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:芯片   经验   系列   飞凌

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!