飞凌国产芯片系列干货|A40i开发板应用笔记-PWM 的应用
本文讲解了国产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><default><default> [pwm4_suspend] pwm_positive = port:PB20<7><0><default><default>
编译镜像并烧写
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 方波
相关产品 >
-
FETA40i-C核心板
Allwinner A40i是全志开发的一款工业级处理器,A40i作为全国产工业级芯片中的佼佼者,采用更低功耗的4核ARM Cortex-A7架构,工作温度-40-85℃,是一款高性能低功耗超高性能CPU主芯片。飞凌嵌入式深度研究全志A40i芯片参数、原理图、datasheet规格书推出了以FETA40i核心板为主的一系列全国产工业级嵌入式计算机板卡,并提供了用于评估的A40i工控板、 A40i开发板。 了解详情 -
OKA40i-C开发板
国产工业级,高清输出,丰富接口|OKA40i开发板采用底板+核心板结构,基于全志工控行业平台级处理器四核Cortex-A7 A40i设计,主频1.2GHz,集成MAli400MP2 GPU,内存1GB/2GB DDR3L,存储8GB eMMC。 全志A40i工控行业芯片平台 A40i为国产工控行业芯,全志A40i处理器代表了Allwin在智能工业控制领域的成就。飞凌嵌入式A40i系列OKA40i-C开发板是飞凌推出的一款中国芯,全国产级工业级开发板,适用于适用于基于视觉交互的工业控制产品 了解详情