0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

干货 | LS1028A 如何输出PWM方波?

飞凌嵌入式 2021-10-28 17:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

最近,我收到了一个使用飞凌嵌入式OK1028A-C输出pwm方波的需求.但是发现OK1028平台没有相关的说明,于是我着手写下了这篇文章。

在查阅OK1028A-C原理图和《QorIQ LS1028A Reference Manual》后得知,LS1028默认有8个FlexTimer (FTM) ,每个FTM有8路pwm。

默认背光采用的是FTM1产生的pwm,我们使用FTM7做pwm测试。

如下图所示:

LS1028 RCWSR12寄存器的12-14为I2C4的管脚复用。

如下图所示:

I2C4管脚可以复用为六种管脚功能。OK1028A-C将管脚设置为can2 的rx 和tx ,在原理图《OK1028A-C_V1.1》中可以看到T6_CAN2_RX、U7_CAN2_TX。

我们可以通过修改rcw文件,将I2C4设置为pwm管脚。

OK1028A-C默认是支持pwm功能的,所以我们无需移植驱动,所做的工作只是修改pinmux和在设备树中增加pwm的相应设备节点即可。修改packages/firmware

/rcw/ls1028ardb/RSQPP0x85bb/rcw1500gpu600.rcw中IIC4_PMUX的设置,将pin设置为pwm输出。

将IIC4_PMUX=2修改为 IIC4_PMUX=4

如下图所示:

完成上述设置后我们需要修改设备树代码,增加PWM配置。我们的修改的文件路径如下:

packages/linux/linux/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi。

然后添加pwm7设备

Pwm7: pwm@2860000 {

compatible = "fsl,ls1028a-ftm-pwm";

reg = <0x0 0x2860000 0x0 0x10000>;

#pwm-cells = <3>;

clock-names = "ftm_sys";

clocks = <&ftm_sysclk>;

};

如下图所示:

▐ 启动OK1028A-C系统

root@forlinx:~#cat /sys/kernel/debug/pwm 查看我们当前的pwm设备

如下图所示:

我们现在打开了一个pwm控制器,可以看到FTM1支持8个通道,而背光使用的是pwm-1通道。将我们修改后的设备树文件和firmware编译,烧写到飞凌LS1028A-C开发板,启动系统。

root@forlinx:~#cat /sys/kernel/debug/pwm 查看我们当前的pwm设备。

如下图所示:

此时,虽然我们添加的pwm设备打开了,但和pwm0设备还是有差别的,新添加的pwm设备的每一路通道都没有设置周期和占空比。

所以下一步我们不需要再增加驱动代码,而是利用sys即可直接设置pwm参数。Pwmchip8是我们添加的pwm设备。

▐ 使能使用的pwm通道

root@forlinx:~#echo 1> /sys/class/pwm/pwmchip8/export 初始化 pwm通道1

root@forlinx:~#echo 2> /sys/class/pwm/pwmchip8/export 初始化 pwm通道2

root@forlinx:~#cat /sys/kernel/debug/pwm

命令

查看我们当前的pwm设备:

如果想取消相应pwm通道的话,可以使用“echo 1> /sys/class/pwm/pwmchip8/unexport”

“echo 2 > /sys/class/pwm/pwmchip8/unexport”命令。

因为我们每次只能使能一路pwm,所以先配置和打开pwm1。

root@forlinx:~#echo 1000000 > /sys/class/pwm/pwmchip8/pwm1/period 配置pwm1 period为1000000,单位为ns,即1kHZ。

root@forlinx:~#echo 500000 > /sys/class/pwm/pwmchip8/pwm1/duty_cycle 配置 duty_cycle 为500000,一个周期中on的时间即占空比,单位为ns,占空比50%

root@forlinx:~#echo 1 > /sys/class/pwm/pwmchip8/pwm1/enable 使能

root@forlinx:~#cat/sys/class/pwm/pwmchip8/pwm1/{enable,period,duty_cycle} 命令可以查看我们的pwm使能状态,周期,和占空比。

如下图所示:

▐用示波器测试T6_CAN2_RX产生1khz的方波

由于每次只能使能一路pwm,所以我们要使能pwm2,就需要先关闭pwm1。

root@forlinx:~#echo 0> /sys/class/pwm/pwmchip8/pwm1/enable

root@forlinx:~#echo 1000000 > /sys/class/pwm/pwmchip8/pwm2/period 配置period为1000000

root@forlinx:~#echo 500000 > /sys/class/pwm/pwmchip8/pwm2/duty_cycle配置duty_cycle为500000。root@forlinx:~#echo 1 > /sys/class/pwm/pwmchip8/pwm2/enable 使能

root@forlinx:~#cat/sys/class/pwm/pwmchip8/pwm2/{enable,period,duty_cycle}

▐用示波器测试U7_CAN2_TX产生1khz的方波

在我们使用OK1028A-C时,由于管脚复用,很多功能模块的管脚没有引出,但是模块的驱动是支持的。这种情况下,我们只需要修改rcw相应的pinmux配置和设备树文件就可以使用相应的功能了。


好了,以上便是我对OK1028A-C开发板如何实现PWM输出方波的方法,有什么需要帮助和了解的访问飞凌嵌入式官网关注。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【RA-Eco-RA6M4开发板评测】PWM输出

    通道详情 PWM 输出就是对外输出脉宽(即占空比)可调的方波信号, 信号频率由周期设定寄存器 GTPR 的值决定,占空比由比较寄存器 GTCCR 的值决定。 2 RT-Thread 的
    发表于 11-09 21:30

    使用rt_thread无法输出PWM怎么解决?

    背景: 实际无法输出PWM波 但是打印报文PWM脉冲 脉宽的变化和线程程序都是正常执行的 使用的RTT 4.03版本; 单片机为STM32F103VET6; 输出引脚:PC9;
    发表于 10-14 07:05

    2223W单键触摸双路PWM输出应用方案

    电子发烧友网站提供《2223W单键触摸双路PWM输出应用方案.pdf》资料免费下载
    发表于 04-30 16:41 1次下载

    LTC3886输出PWM波异常的原因?

    我在尝试用一片LTC3886输出两路8V10A的电源,硬件设计参考了DC2155A,调试中发现OUT0控制外部MOS管的PWM波有异常,它的占空比一直大幅变动,而OUT1的
    发表于 04-17 06:59

    LS1028 FSPI设备驱动程序不工作怎么解决?

    我想使用 ls1028 处理器的 qspi 功能。 我按如下方式更改 dts: dts: spi@20c0000 { 兼容 = “NXP,LX2160A-FPPI”; #address-cells
    发表于 04-10 07:20

    请问IAR是否支持LS1043A

    我在 IAR 支持设备列表中只能找到一个设备LS1046A, 这是否意味着 IAR 是否不支持其他器件(LS1043ALS1023...)? 我只想针对 LS1043A 的不同接口编
    发表于 04-08 06:16

    如何为LSDK构建libgtk-x11-2.0.so.0?

    我正在尝试为我的 LS1028A RDB板(运行 LSDK)构建 libgtk-x11-2.0.so.0。这是 libopencv_highgui.so 所需要的。有没有办法为 LS1028A 交叉编译这个库?
    发表于 04-04 08:00

    信号发生器输出方波的占空比调整技巧

    一、信号发生器与方波信号概述 1.1信号发生器的基本功能与应用 信号发生器在电子测试和测量中作用重大。它能生成多种波形信号,可模拟不同工作环境,为电路提供测试所需激励源。在通信系统调试、科学实验
    的头像 发表于 04-02 11:57 1428次阅读
    信号发生器<b class='flag-5'>输出方波</b>的占空比调整技巧

    方波信号的频谱与带宽

    方波信号的频谱1、理想方波的频谱(时域到频域)理想方波为频率1G,50%占空比,幅度为1v,上升时间为0,把理想方波通过离散傅里叶变换(DFT),就可以知道各个频率分量的幅度,如下图
    的头像 发表于 03-21 19:33 4151次阅读
    <b class='flag-5'>方波</b>信号的频谱与带宽

    LS1046A硬编码RCW无法更改怎么解决?

    我们有一个基于 LS1046ALS1046ARDB 的定制设计板作为参考设计。定制板是 “裸机” 的,上面没有编程。因此,我们将引导源字设置为 0x9F 并尝试用新设置覆盖硬编码 RCW,以便
    发表于 03-21 07:25

    开关电源原理及选型介绍

    通过开关的打开和闭合产生周期性的方波,如12V的输入电压,5V的输出电压,则方波的高低电平的比例是5:7;也就是PWM波,通过改变方波的占空
    的头像 发表于 03-19 10:02 1759次阅读
    开关电源原理及选型介绍

    DLPC7540EVM RGB的恒流源输出电流是60HZ的方波吗?

    我们想做一套RGB的外部驱动电源,RGB的恒流源输出电流是60HZ的方波么?是不是通过三路RGB_EN来控制的。另外三路RGB_PWM是不是来控制三路RGB灯的亮度的。对应的控制信号是否是J97对应的
    发表于 02-21 15:02

    芯知识 语音芯片中的音频输出PWM和DAC的比较

    PWM音频输出硬件简单成本低但音质受限,功耗高;DAC音频输出音质高动态范围宽但硬件复杂成本高。选择取决于产品需求和成本预算。
    的头像 发表于 02-10 13:14 1054次阅读

    请问AMC1204的数字输出端口与TMS570LS3137什么外设连接最适用?

    AMC1204, AMC1200现准备用TMS570LS3137做电机控制芯片,用AMC1204隔离采样直流母线电压,请问AMC1204的数字输出端口与TMS570LS3137什么外设连接最适用?程序中软件如何实现数字脉宽表征
    发表于 02-05 10:12

    思瑞浦推出车规级LIN SBC新品TPT1028Q

    LIN2.2-A物理层标准,更在性能与集成度上实现了显著提升。 TPT1028Q内置了高性能的LIN收发器和低dropout LDO,其高度集成的设计有效减小了板级面积,从而降低了系统成本。这一特点使得
    的头像 发表于 01-21 11:33 1376次阅读