CN111475366B - 一种i2s模拟pwm输出的方法、装置、设备和介质 - Google Patents
一种i2s模拟pwm输出的方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN111475366B CN111475366B CN202010139529.7A CN202010139529A CN111475366B CN 111475366 B CN111475366 B CN 111475366B CN 202010139529 A CN202010139529 A CN 202010139529A CN 111475366 B CN111475366 B CN 111475366B
- Authority
- CN
- China
- Prior art keywords
- data
- pwm
- mclk
- output
- square wave
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Dc-Dc Converters (AREA)
Abstract
本发明提供一种I2S模拟PWM输出的方法、装置、设备和介质,方法包括:S1、将CPU支持单采样点双通道各32BIT数据宽度的I2S所输出的数据,组合为一个64BIT的方波数据;S2、设置所述I2S的MCLK,从而得到PWM频率;S3、发起DMA传输,将64BIT的方波数据发送I2S控制器,最后按照得到的PWM频率通过I2S DATA OUT引脚输出最终的PWM波形。本发明可以将I2S所输出的数据,组合为一个64BIT的方波数据,从而实现I2S输出模拟成PWM输出,解决了CPU硬件的PWM资源不足的问题。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种I2S模拟PWM输出的方法、装置、设备和介质。
背景技术
脉冲宽度调制(Pulse Width Modulation,简称PWM)是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,以实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。
很多设备需要搭载较多的PWM接口外设,但有些CPU硬件的PWM资源较少的,比如福州瑞芯微电子股份有限公司出品型号为RK3308的CPU等,其具有3组I2S通道,只有4个PWM接口。这样对于需要搭载较多的PWM接口外设的产品(如扫地机)而言,就显得捉肩见肘。目前有使用GPIO软件模拟PWM输出依赖CPU调度的解决方案,但这种方案不仅浪费CPU资源,而且无法保证稳定的PWM波形输出。
发明内容
本发明要解决的技术问题,在于提供一种I2S模拟PWM输出的方法、装置、设备和介质,可以将I2S所输出的数据,组合为一个64bit的方波数据,从而实现I2S输出模拟成PWM输出,解决了CPU硬件的PWM资源不足的问题。
第一方面,本发明提供了一种I2S模拟PWM输出的方法,包括下述步骤:
S1、将CPU支持单采样点双通道各32bit数据宽度的I2S所输出的数据,组合为一个64bit的方波数据;
S2、设置所述I2S的mclk(在代码实现上,是设置为一个固定值),根据公式PWM频率=mclk/32/2/mclk_tx_div,从而得到PWM频率;
其中32是I2S默认设置的通道位宽为32bit;2是双通道;分频系数mclk_tx_div=mclk/sclk,设置在I2S控制器的寄存器内;
S3、发起DMA传输,将64bit的方波数据发送I2S控制器,最后按照得到的PWM频率通过I2S DATA OUT引脚输出最终的PWM波形。
所述步骤S1的具体过程是:
S11、预先配置PMW占空比和频率参数;
S12、当I2S单采样点双通道各输出32bit宽度的数据时,按预先所配置的PMW占空比和频率参数转换为一个64bit的数据方波;另外还可以通过PMW占空比和频率参数计算出I2S的mclk_tx_div,用于计算PWM频率。
第二方面,本发明提供了一种I2S模拟PWM输出的装置,包括:
组合模块,用于将CPU支持单采样点双通道各32bit数据宽度的I2S所输出的数据,组合为一个64bit的方波数据;
mclk设置模块,用于设置所述I2S的mclk,根据公式PWM频率=mclk/32/2/mclk_tx_div,从而得到PWM频率;
其中32是I2S默认设置的通道位宽为32bit;2是双通道;分频系数mclk_tx_div=mclk/sclk,设置在I2S控制器的寄存器内;
数据传输模块,用于发起DMA传输,将64bit的方波数据发送I2S控制器,最后按照得到的PWM频率通过I2S DATA OUT引脚输出最终的PWM波形。
所述组合模块具体执行下述过程:
S11、预先配置PMW占空比和频率参数;
S12、当I2S单采样点双通道各输出32bit宽度的数据时,按预先所配置的PMW占空比和频率参数转换为一个64bit的数据方波;另外还可以通过PMW占空比和频率参数计算出I2S的mclk_tx_div,用于计算PWM频率。
第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:通过将CPU支持单采样点双通道各32bit数据宽度的I2S所输出的数据,组合为一个64bit的方波数据,再根据所设置I2S的mclk得到PWM频率,发起DMA传输,将64bit的方波数据发送I2S控制器,最后按照得到的PWM频率通过I2S DATA OUT引脚输出最终的PWM波形,从而将I2S输出模拟成PWM输出,解决了CPU硬件的PWM资源不足的问题,而且该方案用硬件输出,相比使用普通GPIO模拟PWM的方案(而GPIO模拟PWM实现的主体是软件),可以输出更稳定的PWM波形。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明CPU硬件的结构框图;
图2为本发明实施例一中方法中的流程图;
图3为本发明实施例二中装置的结构示意图;
图4为本发明实施例三中电子设备的结构示意图;
图5为本发明实施例四中介质的结构示意图。
具体实施方式
本申请实施例通过提供一种I2S模拟PWM输出的方法、装置、设备及介质,将I2S所输出的数据,组合为一个64bit的方波数据,从而实现I2S输出模拟成PWM输出,解决了CPU硬件的PWM资源不足的问题,并使输出的PWM波形更稳定。
本申请实施例中的技术方案,总体思路如下:将CPU支持单采样点双通道各32bit数据宽度的I2S所输出的数据,组合为一个64bit的方波数据,再根据所设置I2S的mclk,发起DMA传输,将64bit的方波数据发送I2S控制器,最后通过I2S DATA OUT引脚输出最终的PWM波形,即可将I2S输出模拟成PWM输出。
在介绍具体实施例之前,先介绍本申请实施例方法所对应的CPU硬件结构,如图1所示,CPU硬件结构大概分如下几个部分:
DMA,用于数据搬运,在下列实施例中用于将64bit的方波数据从内存搬运到I2S控制器;
I2S控制器,用于将数据转化为信号,通过I2S接口总线发出,达到模拟PWM波形的目的;
I2S总线,不同的CPU,其拥有的I2S通道的数量不同,比如福州瑞芯微电子股份有限公司出品型号为RK3308的CPU等,其具有一组I2S 8通道的接口,可将其模拟成4路PWM输出。
实施例一
本实施例提供一种I2S模拟PWM输出的方法,如图2所示,包括;
S1、将CPU支持单采样点双通道各32bit数据宽度的I2S所输出的数据,组合为一个64bit的方波数据;
S2、设置所述I2S的mclk,根据公式PWM频率=mclk/32/2/mclk_tx_div,从而得到PWM频率;
其中32是I2S默认设置的通道位宽为32bit;2是双通道;分频系数mclk_tx_div=mclk/sclk,设置在I2S控制器的寄存器内;
S3、发起DMA传输,将64bit的方波数据发送I2S控制器,最后按照得到的PWM频率通过I2S DATA OUT引脚输出最终的PWM波形。
其中,所述步骤S1的具体过程是:
S11、预先配置多路PMW占空比和频率参数;
S12、当I2S单采样点双通道各输出32bit宽度的数据时,按预先所配置的多路PMW占空比和频率参数转换为一个64bit的数据方波。
基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。
实施例二
在本实施例中提供了一种I2S模拟PWM输出的装置,如图3所示,包括:
组合模块,用于将CPU支持单采样点双通道各32bit数据宽度的I2S所输出的数据,组合为一个64bit的方波数据;
mclk设置模块,用于设置所述I2S的mclk,根据公式PWM频率=mclk/32/2/mclk_tx_div,从而得到PWM频率;
其中32是I2S默认设置的通道位宽为32bit;2是双通道;分频系数mclk_tx_div=mclk/sclk,设置在I2S控制器的寄存器内;
数据传输模块,用于发起DMA传输,将64bit的方波数据发送I2S控制器,最后按照得到的PWM频率通过I2S DATA OUT引脚输出最终的PWM波形。
所述组合模块具体执行下述过程:
S11、预先配置多路PMW占空比和频率参数;
S12、当I2S单采样点双通道各输出32bit宽度的数据时,按预先所配置的多路PMW占空比和频率参数转换为一个64bit的数据方波。
由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。
实施例三
本实施例提供了一种电子设备,如图4所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质,如图5所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:本申请实施例提供的方法、装置、设备及介质,通过将CPU支持单采样点双通道各32bit数据宽度的I2S所输出的数据,组合为一个64bit的方波数据,再根据所设置I2S的mclk得到PWM频率,发起DMA传输,将64bit的方波数据发送I2S控制器,最后按时得到的PWM频率通过I2S DATA OUT引脚输出最终的PWM波形,从而将I2S输出模拟成PWM输出,解决了CPU硬件的PWM资源不足的问题,而且可以输出更稳定的PWM波形。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (4)
1.一种I2S模拟PWM输出的方法,其特征在于:包括下述步骤:
S1、将CPU支持单采样点双通道各32bit数据宽度的I2S所输出的数据,组合为一个64bit的方波数据;具体过程是:
S11、预先配置PMW占空比和频率参数;
S12、当I2S单采样点双通道各输出32bit宽度的数据时,按预先所配置的PMW占空比和频率参数转换为一个64bit的数据方波;
S2、设置所述I2S的mclk,根据公式PWM频率=mclk/32/2/mclk_tx_div,从而得到PWM频率;
其中32是I2S默认设置的通道位宽为32bit;2是双通道;分频系数mclk_tx_div=mclk/sclk,设置在I2S控制器的寄存器内;
S3、发起DMA传输,将64bit的方波数据发送I2S控制器,最后按照得到的PWM频率通过I2SDATAOUT引脚输出最终的PWM波形。
2.一种I2S模拟PWM输出的装置,其特征在于:包括:
组合模块,用于将CPU支持单采样点双通道各32bit数据宽度的I2S所输出的数据,组合为一个64bit的方波数据;具体执行下述过程:
S11、预先配置PMW占空比和频率参数;
S12、当I2S单采样点双通道各输出32bit宽度的数据时,按预先所配置的PMW占空比和频率参数转换为一个64bit的数据方波;
mclk设置模块,用于设置所述I2S的mclk,根据公式PWM频率=mclk/32/2/mclk_tx_div,从而得到PWM频率;
其中32是I2S默认设置的通道位宽为32bit;2是双通道;分频系数mclk_tx_div=mclk/sclk,设置在I2S控制器的寄存器内;
数据传输模块,用于发起DMA传输,将64bit的方波数据发送I2S控制器,最后按照得到的PWM频率通过I2SDATAOUT引脚输出最终的PWM波形。
3.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1所述的方法。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010139529.7A CN111475366B (zh) | 2020-03-03 | 2020-03-03 | 一种i2s模拟pwm输出的方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010139529.7A CN111475366B (zh) | 2020-03-03 | 2020-03-03 | 一种i2s模拟pwm输出的方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475366A CN111475366A (zh) | 2020-07-31 |
CN111475366B true CN111475366B (zh) | 2022-05-24 |
Family
ID=71747987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010139529.7A Active CN111475366B (zh) | 2020-03-03 | 2020-03-03 | 一种i2s模拟pwm输出的方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475366B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346234A (zh) * | 2011-06-30 | 2012-02-08 | 福州瑞芯微电子有限公司 | 一种i2s接口的功能测试方法 |
CN107835001A (zh) * | 2017-10-27 | 2018-03-23 | 上海辰竹仪表有限公司 | 脉冲宽度调制波的处理方法、***、信号处理装置及介质 |
CN207692037U (zh) * | 2017-12-28 | 2018-08-03 | 重庆德科电子仪表有限公司 | 车载仪表低成本无损语音播放*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10054965B2 (en) * | 2015-08-06 | 2018-08-21 | Honeywell International Inc. | Analog/digital input architecture having programmable analog output mode |
-
2020
- 2020-03-03 CN CN202010139529.7A patent/CN111475366B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346234A (zh) * | 2011-06-30 | 2012-02-08 | 福州瑞芯微电子有限公司 | 一种i2s接口的功能测试方法 |
CN107835001A (zh) * | 2017-10-27 | 2018-03-23 | 上海辰竹仪表有限公司 | 脉冲宽度调制波的处理方法、***、信号处理装置及介质 |
CN207692037U (zh) * | 2017-12-28 | 2018-08-03 | 重庆德科电子仪表有限公司 | 车载仪表低成本无损语音播放*** |
Non-Patent Citations (1)
Title |
---|
"基于STA335BW的D类功率放大器的分析与设计";王忠诚;《电声技术》;20160229;第40卷(第02期);第28-31页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111475366A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7778814B2 (en) | Method and device for simulating an automation system | |
CN107907814B (zh) | 一种提高芯片量产测试效率的方法 | |
CN108319549B (zh) | 一种测试***及测试方法 | |
CN206773693U (zh) | 一种符合OCP Mezzanine card标准的PCIe Riser卡 | |
CN106502930B (zh) | 基于windows平台的GPIO模拟串行接口的方法和装置 | |
US8504344B2 (en) | Interface between a verification environment and a hardware acceleration engine | |
Yang et al. | A novel bus transfer mode (AS transfer) and a performance evaluation methodology | |
CN104698950A (zh) | 一种***设备控制方法、微控制器、上位机及*** | |
CN111475366B (zh) | 一种i2s模拟pwm输出的方法、装置、设备和介质 | |
WO2005119506A3 (en) | Computer system for data manipulation and related methods | |
CN103150952B (zh) | 可重构的eda实验平台 | |
CN103402062B (zh) | Ccd驱动时序生成方法及其驱动时序生成装置 | |
CN106407554B (zh) | 一种同时支持主从机功能的lpc总线仿真验证方法和装置 | |
JP4910710B2 (ja) | プログラム作成装置 | |
WO2022001317A1 (zh) | 芯片仿真方法、装置、设备、***及存储介质 | |
CN109241073A (zh) | 一种让人工智能机器人具有人类情感的方法 | |
JP2008269022A (ja) | シミュレーション装置、シミュレーション方法、及び開発支援方法 | |
JP2007536659A (ja) | 自動化システムのシミュレーションのための方法及び装置 | |
CN108614447B (zh) | 风电机组的联合仿真方法、装置、设备及存储介质 | |
CN113760809B (zh) | 一种gpio接口的配置方法、***、装置及可读存储介质 | |
CN210955053U (zh) | 一种用于配置i2c总线芯片的接口电路 | |
Crosbie et al. | Using attached processors to achieve high-speed real-time simulation | |
Rolim et al. | Hardware-in-the-loop evaluation of DSP-controlled converters | |
CN111124974B (zh) | 接口扩展装置及方法 | |
Phatak et al. | Virtual Multi-ECU High Fidelity Automotive System Simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 350000 building 18, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province Applicant after: Ruixin Microelectronics Co.,Ltd. Address before: 350000 building 18, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province Applicant before: FUZHOU ROCKCHIP ELECTRONICS Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |