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

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

3天内不再提示

掌握4G模组PWM|技术精要

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-12-14 09:40 次阅读

今天要讲的是4G模组PWM的技术精要,以常用的合宙Air724UG为例做出示例分享给大家。

一、简介

1.1pwm是什么

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

PWM 的相关参数

PWM 的频率:
是指 1 秒钟内信号从高电平到低电平再回到高电平的次数(一个周期),也就是说一秒钟 PWM 有多少个周期 单位:Hz

PWM 的周期:
T=1/f 周期=1/频率 例:如果频率为 50Hz ,也就是说一个周期是 20ms,那么一秒钟就有 50 次 PWM 周期 3. PWM 的占空比:是一个脉冲周期内,高电平的时间占整个周期时间的比例 单位:% (0%-100%) 例:一个周期 10ms,高电平占 8ms,那么此占空比就是 8/10=80%

1.2pwm 原理

单片机的 IO 引脚输出的是数字信号,且只能输出 1 和 0,那如果 TTL 电平中,高电平为 5V,低电平为 0V,但是我们想要输出不同的模拟电压,比如输出 3.75V 应该怎么操作?

此时要用到 PWM,通过改变 IO 口输出方波的占空比,得到不同的模拟电压。3.75/5=0.75 ,也就是高电平时间占整个周期的 75%,即占空比为 75%,可得到平均电压 3.75V.

wKgZoWc7UjWAdhyPAABU2te3XNY522.png

注意上图中蓝线,代表着输出的模拟电压,占空比越大,则模拟电压也越大。

1.3 Air724UG pwm 说明

查阅 Air724UG 模块硬件设计手册:
https://docs.openluat.com/air724ug/product/

wKgZoWc7UkiAYEN2AAFsG-SfQzs585.png

PWM_PWT_OUT 的时钟基于 APB 时钟,主时钟是 200Mhz,通过配置 pwt 寄存器的 PWT_Period 和PWT_Duty 来控制 pwm 的输出

PWM_LPG_OUT(Light Pulse Generation)用于低频率的应用如驱动 LED 闪烁。

下面是频率和占空比可以选择的取值范围:

周期范围:
125ms,250ms,500ms,1000ms,1500ms,2000ms,2500ms, 3000ms

选择对应的时间,输出的波形周期也与之对应。

高电平时间:
15.6ms, 31.2ms, 46.8ms, 62ms, 78ms, 94ms, 110ms, 125ms, 140ms, 156ms, 172ms, 188ms,

200ms, 218ms, 243ms

选择对应高电平时间,输出在当前周期内的高电平。

二、演示功能概述

教程教你如何使用开发板输出 PWM 功能。

功能定义:

1. 使用 PWM 引脚输出脉宽调制信号
2. 驱动开发板指示灯,呼吸灯演示

三、准备硬件环境

3.1 开发板准备

使用 EVB_Air724 开发板,如下图所示:

wKgaoWc7UleAQ5RlABFblmCcazs998.png

此开发板的详细使用说明参考:

https://docs.openluat.com/air724ug/product/

Air724UG 产品手册中的《EVB_Air724UG_AXX 开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14 开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。

api文档:
https://doc.openluat.com/wiki/21?wiki_page_id=2068

3.2 数据通信线

USB 数据线一根(micro USB)。

3.3 PC 电脑

WIN7 以及以上版本的 WINDOWS 系统。

3.4 组装硬件环境

USB 数据线插入 USB 口,另一端与电脑相连,拨码开关全部拨到 ON,串口切换开关选择 UART1,USB 供电的 4V 对应开关拨至 ON 档,如下图所示。

wKgZoWc7UmWAfDKQAAdaPcbQbDI258.png

四、准备软件环境

4.1 下载调试工具

使用说明参考:
Luatools 下载和详细使用
https://docs.openluat.com/Luatools/

4.2 源码及固件

1、底层 core 下载

下载底层固件,并解压

链接:
https://docs.openluat.com/air724ug/luatos/firmware/

如下图所示,红框的是我们要使用到的

wKgaoWc7UnOAXOX0AATaT2Ww0ao331.png

2、 本教程使用的 demo 见附件:

https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/pwm呼吸灯

4.3 下载固件和脚本到开发板中

打开 Luatools,开发板上电开机,如开机成功 Luatools 会打印如下信息

wKgZoWc7Un-AEQDUAAOuCYpRAXc113.png

点击项目管理测试选项。

wKgaoWc7UoqAdtIaAAD-ba_HoP4048.png

进入管理界面,如下图所示。

wKgaoWc7UpWAVCWgAAIqWUWCAIM443.png

点击选择文件,选择底层固件,我的文件放在 D:luatOSAir724 路径中

wKgZoWc7UqCAFjyrAACCWPSnIRQ882.png

点击增加脚本或资源文件,选择之前下载的程序源码,如下图所示。

wKgZomc7UrCANpTYAAEGASmCIrI542.png

点击下载底层和脚本,下载完成如下图所示。

wKgaomc7Ur2AA4WcAAFJj0_V0yc611.png

五、代码示例介绍

5.1 PWM 接口说明

本例使用 Air724 的 49 管脚,即 PWM_PWT_OUT GPIO_5 pwm 通道 id=0,控制开发板上的红色电源指示灯。

开启 pwm 通道的 pwm 输出,设置不同的占空比,小灯会有不同的亮度,原理图如图所示。

wKgaomc7UsuAVFjjAAJxjxGsmfI901.png

5.2 breathingLight.lua 代码

打开并且配置 PWM 函数 misc.openPwm(0, 512, y) 说明

--0:gpio5, 1:gpio13

--p1 周期 0-1024

--p2 占空比 0-512

wKgZomc7UtiAXzveAAHlFaxcVIA262.png

5.3 main.lua 代码

本代码为主程序脚本,系统启动后首先会对 4G 网络进行配置,然后加载加载功能测试模块。

六、开机展示

连接好硬件并下载固件后,重启开发板观察指示灯的变化,如下图所示。

七、常见问题

1、为什么 gpio13 输出是低频波形吗?

gpio13 只能输出低频 pwm 波形。

2、为什么配置后输出没波形?

答:看通道是否配置正确,gpio 口是否被占用。

3、PWM 的信号的频率如何选择?

频率的选择通常取决于具体应用,根据自己的项目需要来选择:

(1)电机控制:常用频率为 1 kHz 到 20 kHz,以确保足够的反应速度和控制精度。

(2)LED 调光:频率通常在 1 kHz 以上,以避免人眼感知到闪烁。

(3)音频信号:频率设置应高于音频信号的最高频率(例如,至少为 20 kHz)。

分享完毕,欢迎关注

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5172

    浏览量

    213687
  • 脉宽调制
    +关注

    关注

    3

    文章

    218

    浏览量

    38300
  • 开发板
    +关注

    关注

    25

    文章

    5017

    浏览量

    97334
  • 模组
    +关注

    关注

    6

    文章

    1474

    浏览量

    30346
收藏 人收藏

    评论

    相关推荐

    掌握4G模组SPI|技术指南

    本次我要分享的是4G模组SPI的技术指南,以合宙Air724UG为例,学完本章帮你实现技术提升。
    的头像 发表于 12-14 09:38 78次阅读
    <b class='flag-5'>掌握</b><b class='flag-5'>4G</b><b class='flag-5'>模组</b>SPI|<b class='flag-5'>技术</b>指南

    ESP32S2 WROVER在使用AT指令获取4G模组时,dte会报超时怎么解决?

    模组:ESP32 S2 WROVER 4G模组:合宙Air724UG 在使用AT指令获取4G模组时,dte会报超时。 代码和log如下图所示
    发表于 06-27 06:54

    4G是怎么样的一个技术

    现在移动在搞4G网络,想问一下4G是怎么样的一个技术
    发表于 05-07 22:20

    4G技术

    4G技术{:4_95:}。。。。。。。。。。。。。。。。。。。
    发表于 06-14 15:39

    MiniPCIE 封装4G模组价值仍在

    类使用使用场景需要,奇迹物联推出一款基于eSIM技术的PCIExpress Mini Card 1.2 标准接口的4G模组—AM400P。基于ASR平台 ,工作温度可达-40℃到+85℃,静电能力达到
    发表于 02-21 11:57

    4G移动通信是什么?4G中有哪些关键技术

    4G移动通信是什么?4G中有哪些关键技术
    发表于 05-27 06:17

    4G模组

    4G模组:CR100IP-AHD-TF1-1F
    发表于 03-21 20:02 0次下载

    4G模组4G模块是什么?4G模组4G模块的平台?4G模组4G模块怎么选?ASR RDA 高通

    开始正文前,如需进一步交流,欢迎大家添加朱胖子微信交流: 4G模块是什么 4G模块是什么?4G模块是指第四代通讯技术模块, 4G模块是支持T
    的头像 发表于 06-07 19:50 1.5w次阅读

    ML307A 4G模组硬件设计手册

    基于ML307A  4G模组的硬件设计指导手册
    发表于 10-24 16:50 5次下载

    4G模组之UDP应用的最佳实践!

    今天说的是4G模组之UDP应用,展示最佳实践,送你参考。
    的头像 发表于 11-08 09:24 266次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b>之UDP应用的最佳实践!

    字符串处理:4G模组软件指南精要

    最近一直有朋友咨询我关于4G模组的字符串处理,今天我便把相关指南展示给大家。
    的头像 发表于 11-17 09:57 177次阅读
    字符串处理:<b class='flag-5'>4G</b><b class='flag-5'>模组</b>软件指南<b class='flag-5'>精要</b>!

    4G模组PWM调光入门:打造个性化呼吸灯

    一直有朋友问我怎么打造个性化呼吸灯,本文我将以合宙低功耗4G模组经典型号——Air780E为例,展示PWM输出呼吸灯的实现方法,帮助大家深入理解如何在项目中应用PWM
    的头像 发表于 11-17 09:56 192次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>PWM</b>调光入门:打造个性化呼吸灯

    4G模组SD卡接口编程:深度学习

    今天我们需要深度学习的是4G模组SD卡接口编程,以我常用的模组Air724UG为例,分享给大家。
    的头像 发表于 11-20 23:14 177次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b>SD卡接口编程:深度学习

    SPI与4G模组的集成:技术要领篇

    今天咋们要讲的是SPI与4G模组技术要领,以低功耗模组Air724UG为例,展示给大家学习。
    的头像 发表于 11-20 23:25 178次阅读
    SPI与<b class='flag-5'>4G</b><b class='flag-5'>模组</b>的集成:<b class='flag-5'>技术</b>要领篇

    4G模组PWM接口:技术实操要点

    今天我们讲解的是4G模组PWM接口的技术实操要点,以我常用的模组Air724UG为例分享出来。
    的头像 发表于 11-20 23:29 201次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>PWM</b>接口:<b class='flag-5'>技术</b>实操要点