CN110572141A - 一种提高pwm控制器精度的方法及装置 - Google Patents
一种提高pwm控制器精度的方法及装置 Download PDFInfo
- Publication number
- CN110572141A CN110572141A CN201910757245.1A CN201910757245A CN110572141A CN 110572141 A CN110572141 A CN 110572141A CN 201910757245 A CN201910757245 A CN 201910757245A CN 110572141 A CN110572141 A CN 110572141A
- Authority
- CN
- China
- Prior art keywords
- period
- remainder
- pwm
- pwm controller
- reached
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012937 correction Methods 0.000 claims abstract description 100
- 238000010586 diagram Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/01—Shaping pulses
- H03K5/04—Shaping pulses by increasing duration; by decreasing duration
Landscapes
- Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Inverter Devices (AREA)
Abstract
本发明适用于PWM控制器技术领域,尤其涉及一种提高PWM控制器精度的方法及装置,方法包括:设定扩展修正参数值;多次进入PWM中断,根据扩展修正参数值将已达周期扩展为预达周期,并基于预达计数计算预达周期中的脉冲宽度;以及当PWM中断的次数达到扩展修正参数值的整数倍时,将脉冲宽度分配到预达周期中。即使预达计数大于原PWM控制器的计数精度范围,经过重新分配脉冲宽度,能够避免受到硬件的限制,实现与预达计数相匹配的功能,大大提高了PWM控制器的精度。
Description
技术领域
本发明适用于PWM控制器技术领域,尤其涉及一种提高PWM控制器精度的方法及装置。
背景技术
脉冲宽度调制(英文简称为PWM,英文全称为Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。
但是,现有脉冲宽度调制的精度往往只能根据出厂前所作设定。例如,精度为8位的PWM控制器,其理论分辨率为1/256,要达到这个分辨率,T/C需要从0计数到255;而精度为16位的PWM控制器,其理论分辨率为1/65536,要达到这个分辨率,T/C需要从0计数到65535,显然精度为8位的PWM控制器无法实现精度为10位或者16位的对应功能。则操作人员在使用过程中,会受到由于精度所带来的局限性,无法实现更高精度的操作,给操作人员带来极大的不便。
发明内容
本发明实施例提供一种提高PWM控制器精度的方法及装置,旨在解决PWM控制器的精度固定,无法实现更高精度的问题。
本发明实施例是这样实现的,本发明提供一种提高PWM控制器精度的方法,所述方法包括:设定扩展修正参数值;多次进入PWM中断,根据扩展修正参数值将已达周期扩展为预达周期,并基于预达计数计算预达周期中的脉冲宽度;以及当PWM中断的次数达到扩展修正参数值的整数倍时,将脉冲宽度分配到预达周期中。
更进一步地,所述基于预达计数计算预达周期中的脉冲宽度的步骤,具体包括:将预达计数除以扩展修正参数值,以此获取脉冲宽度以及余数;将余数分摊到各个已达周期的脉冲宽度中。
更进一步地,所述将余数分摊到各个已达周期的脉冲宽度中的步骤,具体包括:每次进入PWM中断,判断余数是否完成分摊,若余数大于零,判断余数未完成分摊,继续通过修改脉冲宽度分摊余数,及更新分摊后的余数。
更进一步地,所述根据扩展修正参数值将已达周期扩展为预达周期的步骤,具体包括:设定PWM控制器的周期为已达周期;对已达周期进行计数,判断计数值是否达到扩展修正值的整数倍,若达到,则判断已达周期已扩展为预达周期。
更进一步地,所述设定扩展修正参数值的步骤,具体包括:根据预达精度的PWM控制器对应计数范围除以已达精度的PWM控制器对应计数范围,获取所设定的扩展修正参数值。
本发明还提供一种提高PWM控制器精度的装置,所述装置包括:设定单元,用于设定扩展修正参数值;计算单元,用于多次进入PWM中断,根据扩展修正参数值将已达周期扩展为预达周期,并基于预达计数计算预达周期中的脉冲宽度;以及分配单元,用于当PWM中断的次数达到扩展修正参数值的整数倍时,将脉冲宽度分配到预达周期中。
更进一步地,所述计算单元包括:第一计算单元,用于将预达计数除以扩展修正参数值,以此获取脉冲宽度以及余数;分摊单元,用于将余数分摊到各个已达周期的脉冲宽度中。
更进一步地,所述分摊单元包括:余数分摊单元,用于每次进入PWM中断,判断余数是否完成分摊,若余数大于零,判断余数未完成分摊,继续通过修改脉冲宽度分摊余数,及更新分摊后的余数。
更进一步地,所述计算单元包括:预设单元,用于设定PWM控制器的周期为已达周期;判断单元,用于对已达周期进行计数,判断计数值是否达到扩展修正值的整数倍,若达到,则判断已达周期已扩展为预达周期。
更进一步地,所述设定单元包括:第二计算单元,用于根据预达精度的PWM控制器对应计数范围除以已达精度的PWM控制器对应计数范围,获取所设定的扩展修正参数值。
本发明的有益效果在于,与现有技术相比,本发明通过设计一种提高PWM控制器精度的方法及装置,先是设定扩展修正参数值,在多次进入PWM中断之后,根据扩展修正参数值进行周期扩展,将较小的已达周期扩展为较大的预达周期,并根据预达计数重新分配预达周期中的脉冲宽度,在PWM中断的次数达到扩展修正参数值的整数倍时,将重新分配的脉冲宽度分配到预达周期中,即使预达计数大于原PWM控制器的计数精度范围,经过重新分配脉冲宽度,能够避免受到硬件的限制,实现与预达计数相匹配的功能,大大提高了PWM控制器的精度。
附图说明
图1是本发明实施例一提供的提高PWM控制器精度的方法的流程框图;
图2是本发明实施例二提供的计算脉冲宽度的流程框图;
图3是本发明实施例三提供的分摊余数到脉冲宽度上的流程框图;
图4是本发明实施例四提供的将已达周期扩展为预达周期的流程框图;
图5是本发明实施例五提供的清除标识位的流程框图;
图6是本发明实施例六提供的设定扩展修正参数值的流程框图;
图7是本发明实施例提供的精度提高前后的波形对照图;
图8是本发明实施例提供的提高PWM控制器精度的整体方法的流程步骤图;
图9是本发明实施例七提供的提高PWM控制器精度的装置的结构框图;
图10是本发明实施例八提供的计算单元的第一结构框图;
图11是本发明实施例九提供的余数分摊单元的结构框图;
图12是本发明实施例十提供的计算单元的第二结构框图;
图13是本发明实施例十一提供的计算单元的第三结构框图;
图14是本发明实施例十二提供的设定单元的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明通过设计一种提高PWM控制器精度的方法及装置,先是设定扩展修正参数值,在多次进入PWM中断之后,根据扩展修正参数值进行周期扩展,将较小的已达周期扩展为较大的预达周期,并根据预达计数重新分配预达周期中的脉冲宽度,在PWM中断的次数达到扩展修正参数值的整数倍时,将重新分配的脉冲宽度分配到预达周期中,即使预达计数大于原PWM控制器的计数精度范围,经过重新分配脉冲宽度,能够避免受到硬件的限制,实现与预达计数相匹配的功能,大大提高了PWM控制器的精度。
实施例一
参考图1,本实施例一提供一种提高PWM控制器精度的方法,所述方法包括:
步骤1、设定扩展修正参数值;
步骤2、多次进入PWM中断,根据扩展修正参数值将已达周期扩展为预达周期,并基于预达计数计算预达周期中的脉冲宽度;以及
步骤3、当PWM中断的次数达到扩展修正参数值的整数倍时,将脉冲宽度分配到预达周期中。
其中,首先设定扩展修正参数值,后续基于扩展修正参数值实现PWM控制器的精度扩展。
PWM控制器在开启控制作用之后,由于其固有属性,需要多次进入PWM中断,而PWM中断指的是当定时计数器溢出(即已达周期到达)时,单片机暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。在多次进入PWM中断之后,可根据扩展修正参数值将已达周期扩展为预达周期,已达周期是PWM控制器原有精度对应的周期,例如,若是PWM控制器为8位PWM控制器,则已达周期为8位PWM控制器对应的周期。可以理解的是,预达周期由多个已达周期扩展组成。在已达周期扩展完预达周期后,可基于预达计数计算并获取预达周期中的脉冲宽度,并将获取的脉冲宽度存储到PWM寄存器中。预达计数可为高于PWM控制器原有精度的计数,例如,若是PWM控制器为8位PWM控制器,原本8位PWM控制器的计数为0至255,而预达计数可取高于255以上的计数。
先是设定扩展修正参数值,在多次进入PWM中断之后,根据扩展修正参数值进行周期扩展,将较小的已达周期扩展为较大的预达周期,并根据预达计数重新分配预达周期中的脉冲宽度,在PWM中断的次数达到扩展修正参数值的整数倍时,将重新分配的脉冲宽度分配到预达周期中。即使预达计数大于原PWM控制器的计数精度范围,经过重新分配脉冲宽度,能够避免受到硬件的限制,实现与预达计数相匹配的功能,大大提高了PWM控制器的精度。
举例来说,参考图7示出的波形图,假设PWM控制器为8位PWM控制器,占空比可达50.2%。
可知原本精度的8位PWM控制器,在其周期中的脉冲宽度为128,计数范围为0至255。占空比通过计算:128/256=50%,可知占空比为50%,无法达到50.2%的精度。如果需要达到该进度,8位PWM控制器需要扩展为10位,计数范围为0至1024,在其周期中的脉冲宽度为514,占空比通过计算:514/1024≈50.2%。而依照上述方法执行之后的PWM控制器,扩展修正参数值定义为4,即扩展之后的预达周期的计数范围为0至256*4=1024,分配在预达周期中的脉冲宽度为129、129、128和128。占空比通过计算:(129+129+128+128)/(256*4)=50.2%,可知占空比为50.2%。若是预达计数大于255,依然能够实现精度控制。
实施例二
参考图2,在实施例一的基础上,本实施例二的所述基于预达计数计算预达周期中的脉冲宽度的步骤,具体包括:
步骤23、将预达计数除以扩展修正参数值,以此获取脉冲宽度以及余数;
步骤24、将余数分摊到各个已达周期的脉冲宽度中。
其中,利用数学原理,将预达计数除以扩展修正参数值,以此获取脉冲宽度以及余数。在获取余数之后,可将余数分摊到各个已达周期的脉冲宽度中,并存储分摊后的脉冲宽度。通过上述方法,能够实现余数均匀的平摊到脉冲宽度上,实现在较大的预达周期下脉冲宽度的精度提高。
实施例三
参考图3,在实施例二的基础上,本实施例三的所述将余数分摊到各个已达周期的脉冲宽度中的步骤,具体包括:
步骤241、每次进入PWM中断,判断余数是否完成分摊,若余数大于零,判断余数未完成分摊,继续通过修改脉冲宽度分摊余数,及更新分摊后的余数。
其中,在每次进入PWM中断之后,对余数进行判断。若余数大于零,判断余数未完成分摊,则获取脉冲宽度后加一并设置到PWM寄存器,以及余数减一以更新余数;若余数等于零,则直接将获取的脉冲宽度设置到PWM寄存器。通过上述方法,能够更为具体的实现余数均匀的平摊到脉冲宽度上,实现在较大的预达周期下脉冲宽度的精度提高。
实施例四
参考图4,在实施例三的基础上,本实施例四的所述根据扩展修正参数值将已达周期扩展为预达周期的步骤,具体包括:
步骤221、设定PWM控制器的周期为已达周期;
步骤222、对已达周期进行计数,判断计数值是否达到扩展修正值的整数倍,若达到,则判断已达周期已扩展为预达周期。
其中,预先设定PWM控制器的周期即为已达周期。在每次进入PWM中断之后,对PWM控制器的已达周期进行判断。若是判断PWM控制器的已达周期计数值等于扩展修正参数值,则判断已扩展为预达周期,即是说,此时已达周期即是预达周期。若判断PWM控制器的已达周期计数值未达到扩展修正参数值,则继续进行已达周期的扩展。
详细来说,每进入一次PWM终端,已达周期计数值加一,直到计数值等于扩展修正值时则判断已达周期已扩展为预达周期,以及下次进入PWM中断重新计数,依此循环。
实施例五
参考图5,在实施例四的基础上,本实施例五的所述多次进入PWM中断之后的步骤,还包括:
步骤212、清除PWM中断的标识位。
其中,对于每一PWM控制器而言,为避免完成PWM中断处理程序之后,不会再次进入PWM中断,则在每次进入PWM中断之后,需要清除PWM中断的标识位。
当然,对于部分PWM控制器而言,在进入PWM中断之后会自动默认清除标识位,此时则无需执行步骤212。
实施例六
参考图6,在实施例一至实施例五的基础上,本实施例五的所述设定扩展修正参数值的步骤,具体包括:
步骤11、根据预达精度的PWM控制器对应计数范围除以已达精度的PWM控制器对应计数范围,获取所设定的扩展修正参数值。
其中,在提高精度之前,先需设定扩展修正参数值。可通过数学原理,根据预达精度的PWM控制器对应计数范围除以已达精度的PWM控制器对应计数范围,即可获取所设定的扩展修正参数值。
举例来说,8位PWM控制器需要提高精度为10位PWM控制器,8位PWM控制器为已达精度的PWM控制器,其对应计数范围为28=256,10位PWM控制器为预达精度的PWM控制器,其对应计数范围为210=1024,则设定的扩展修正参数值为210/28=4。
具体来说,参考图7和图8,在此详细描述提高PWM控制器精度的整体方法,将PWM控制器的占空比从50%提高到50.2%。
PWM控制器为8位PWM控制器,计数范围为0至255,若想实现计数范围为0至1023的10位PWM控制器的相应功能,占空比精度需达到50.2%,例如预达计数为514。先是通过公式210/28=4,获取扩展修正参数值为4。然后,PWM控制器第一次进入PWM中断或者中断计数值达到扩展修正值的整数倍,则预达计数除以扩展修正参数值并取余数,可得余数为2,进一步判断余数大于零,则余数减一后为一,预达计数除以扩展修正参数值再加一,即是通过公式(514/4)+1=129,再进一步判断该值与上次不同(上次为0),则更新脉冲宽度为129,退出PWM中断。随后,第二次进入PWM中断,清除PWM中断标识位,PWM控制器的已达周期加一后为二,并不等于扩展修正参数值,此时余数为1,进一步地判断余数大于零,则余数减一后为零,预达计数除以扩展修正参数值再加一,即是通过公式(514/4)+1=129,再进一步判断该值与上次相同(上次为129),则无需更新脉冲宽度,脉冲宽度依然取129,退出PWM中断。而后,第三次进入PWM中断,清除PWM中断标识位,PWM控制器的已达周期加一后为三,并不等于扩展修正参数值,此时余数为0,进一步地判断余数不大于零,则预达计数除以扩展修正参数值,即是通过公式514/4=128,再进一步判断该值与上次不同(上次为129),更新脉冲宽度为128,退出PWM中断。最后,第四次进入PWM中断,清除PWM中断标识位,PWM控制器的已达周期加一后为四,等于扩展修正参数值,则判断已达周期已扩展为预达周期,已达周期计数值清零,此时余数为0,进一步地判断余数不大于零,则预达计数除以扩展修正参数值,即是通过公式514/4=128,再进一步判断该值与上次相同(上次为128),则无需更新脉冲宽度,脉冲宽度依然取128,退出PWM中断。
从而,在预达周期中,脉冲宽度依次为129、129、128、128,通过计算(129+129+128+128)/(256*4)=50.2%,占空比为50.2%,即是说,可实现预达计数514的相应精度控制功能。
实施例七
参考图9,本实施例七提供一种提高PWM控制器精度的装置,所述装置包括:
设定单元100,用于设定扩展修正参数值;
计算单元200,用于多次进入PWM中断,根据扩展修正参数值将已达周期扩展为预达周期,并基于预达计数计算预达周期中的脉冲宽度;以及
分配单元300,用于当PWM中断的次数达到扩展修正参数值的整数倍时,将脉冲宽度分配到预达周期中。
其中,通过设定单元100,首先设定扩展修正参数值,后续基于扩展修正参数值实现PWM控制器的精度扩展。
通过计算单元200,PWM控制器在开启控制作用之后,由于其固有属性,需要多次进入PWM中断,而PWM中断指的是当定时计数器溢出(即已达周期到达)时,单片机暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。在多次进入PWM中断之后,可根据扩展修正参数值将已达周期扩展为预达周期,已达周期是PWM控制器原有精度对应的周期,例如,若是PWM控制器为8位PWM控制器,则已达周期为8位PWM控制器对应的周期。可以理解的是,预达周期由多个已达周期扩展组成。在已达周期扩展完预达周期后,可基于预达计数计算并获取预达周期中的脉冲宽度。预达计数可为高于PWM控制器原有精度的计数,例如,若是PWM控制器为8位PWM控制器,原本8位PWM控制器的计数为0至255,而预达计数可取高于255以上的计数。通过分配单元300,当PWM中断的次数达到扩展修正参数值的整数倍时,将计算得到的脉冲宽度分配到预达周期中
先是设定扩展修正参数值,在多次进入PWM中断之后,根据扩展修正参数值进行周期扩展,将较小的已达周期扩展为较大的预达周期,并根据预达计数重新分配预达周期中的脉冲宽度,在PWM中断的次数达到扩展修正参数值的整数倍时,将重新分配的脉冲宽度分配到预达周期中。即使预达计数大于原PWM控制器的计数精度范围,经过重新分配脉冲宽度,能够避免受到硬件的限制,实现与预达计数相匹配的功能,大大提高了PWM控制器的精度。
举例来说,参考图7示出的波形图,假设PWM控制器为8位PWM控制器,占空比可达50.2%。
可知原本精度的8位PWM控制器,在其周期中的脉冲宽度为128,计数范围为0至255。占空比通过计算:128/256=50%,可知占空比为50%,无法达到50.2%的精度。如果需要达到该进度,8位PWM控制器需要扩展为10位,计数范围为0至1024,在其周期中的脉冲宽度为514,占空比通过计算:514/1024≈50.2%。而依照上述装置执行之后的PWM控制器,扩展修正参数值定义为4,即扩展之后的预达周期的计数范围为0至256*4=1024,分配在预达周期中的脉冲宽度为129、129、128和128。占空比通过计算:(129+129+128+128)/(256*4)=50.2%,可知占空比为50.2%。若是预达计数大于255,依然能够实现精度控制。
实施例八
参考图10,在实施例七的基础上,本实施例八的所述计算单元包括:
第一计算单元230,用于将预达计数除以扩展修正参数值,以此获取脉冲宽度以及余数;
分摊单元240,用于将余数分摊到各个已达周期的脉冲宽度中。
其中,通过第一计算单元230,利用数学原理,将预达计数除以扩展修正参数值,以此获取脉冲宽度以及余数。通过分摊单元240,在获取余数之后,可将余数分摊到各个已达周期的脉冲宽度中,并存储分摊后的脉冲宽度。通过上述装置,能够实现余数均匀的平摊到脉冲宽度上,实现在较大的预达周期下脉冲宽度的精度提高。
实施例九
参考图11,在实施例八的基础上,本实施例九的所述分摊单元240包括:
余数分摊单元241,用于每次进入PWM中断,判断余数是否完成分摊,若余数大于零,判断余数未完成分摊,继续通过修改脉冲宽度分摊余数,及更新分摊后的余数。
其中,通过余数分摊单元241,在每次进入PWM中断之后,对余数进行判断。若余数大于零,判断余数未完成分摊,则获取脉冲宽度后加一并设置到PWM寄存器,以及余数减一以更新余数;若余数等于零,则直接将获取的脉冲宽度设置到PWM寄存器。通过上述装置,能够更为具体的实现余数均匀的平摊到脉冲宽度上,实现在较大的预达周期下脉冲宽度的精度提高。
实施例十
参考图12,在实施例九的基础上,本实施例十的所述计算单元包括:
预设单元221,用于设定PWM控制器的周期为已达周期;
判断单元222,用于对已达周期进行计数,判断计数值是否达到扩展修正值的整数倍,若达到,则判断已达周期已扩展为预达周期。
其中,通过预设单元221,预先设定PWM控制器的周期即为已达周期。通过判断单元222,在每次进入PWM中断之后,对PWM控制器的已达周期进行判断。若是判断PWM控制器的已达周期计数值等于扩展修正参数值,则判断已扩展为预达周期,即是说,此时已达周期即是预达周期。若判断PWM控制器的已达周期计数值未达到扩展修正参数值,则继续进行已达周期的扩展。
详细来说,每进入一次PWM终端,已达周期计数值加一,直到计数值等于扩展修正值时则判断已达周期已扩展为预达周期,以及下次进入PWM中断重新计数,依此循环。
实施例十一
参考图13,在实施例十的基础上,本实施例十一的所述计算单元包括:
清除单元212,用于清除PWM中断的标识位;
其中,通过清除单元212,其中,对于每一PWM控制器而言,为避免完成PWM中断处理程序之后,不会再次进入PWM中断,则在每次进入PWM中断之后,需要清除PWM中断的标识位。
当然,对于部分PWM控制器而言,在进入PWM中断之后会自动默认清除标识位,此时则无需设有清除单元212。
实施例十二
参考图14,在实施例七至实施例十一的基础上,本实施例十二的所述设定单元包括:
第二计算单元110,用于根据预达精度的PWM控制器对应计数范围除以已达精度的PWM控制器对应计数范围,获取所设定的扩展修正参数值。
其中,通过第二计算单元110,在提高精度之前,先需设定扩展修正参数值。可通过数学原理,根据预达精度的PWM控制器对应计数范围除以已达精度的PWM控制器对应计数范围,即可获取所设定的扩展修正参数值。
举例来说,8位PWM控制器需要提高精度为10位PWM控制器,8位PWM控制器为已达精度的PWM控制器,其对应计数范围为28=256,10位PWM控制器为预达精度的PWM控制器,其对应计数范围为210=1024,则设定的扩展修正参数值为210/28=4。
具体来说,参考图7和图8,在此详细描述提高PWM控制器精度的整体装置,将PWM控制器的占空比从50%提高到50.2%。
PWM控制器为8位PWM控制器,计数范围为0至255,若想实现计数范围为0至1023的10位PWM控制器的相应功能,占空比精度需达到50.2%,例如预达计数为514。先是通过公式210/28=4,获取扩展修正参数值为4。然后,PWM控制器第一次进入PWM中断或者中断计数值达到扩展修正值的整数倍,则预达计数除以扩展修正参数值并取余数,可得余数为2,进一步判断余数大于零,则余数减一后为一,预达计数除以扩展修正参数值再加一,即是通过公式(514/4)+1=129,再进一步判断该值与上次不同(上次为0),则更新脉冲宽度为129,退出PWM中断。随后,第二次进入PWM中断,清除PWM中断标识位,PWM控制器的已达周期加一后为二,并不等于扩展修正参数值,此时余数为1,进一步地判断余数大于零,则余数减一后为零,预达计数除以扩展修正参数值再加一,即是通过公式(514/4)+1=129,再进一步判断该值与上次相同(上次为129),则无需更新脉冲宽度,脉冲宽度依然取129,退出PWM中断。而后,第三次进入PWM中断,清除PWM中断标识位,PWM控制器的已达周期加一后为三,并不等于扩展修正参数值,此时余数为0,进一步地判断余数不大于零,则预达计数除以扩展修正参数值,即是通过公式514/4=128,再进一步判断该值与上次不同(上次为129),更新脉冲宽度为128,退出PWM中断。最后,第四次进入PWM中断,清除PWM中断标识位,PWM控制器的已达周期加一后为四,等于扩展修正参数值,则判断已达周期已扩展为预达周期,已达周期计数值清零,此时余数为0,进一步地判断余数不大于零,则预达计数除以扩展修正参数值,即是通过公式514/4=128,再进一步判断该值与上次相同(上次为128),则无需更新脉冲宽度,脉冲宽度依然取128,退出PWM中断。
从而,在预达周期中,脉冲宽度依次为129、129、128、128,通过计算(129+129+128+128)/(256*4)=50.2%,占空比为50.2%,即是说,可实现预达计数514的相应精度控制功能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种提高PWM控制器精度的方法,其特征在于,所述方法包括:
设定扩展修正参数值;
多次进入PWM中断,根据扩展修正参数值将已达周期扩展为预达周期,并基于预达计数计算预达周期中的脉冲宽度;以及
当PWM中断的次数达到扩展修正参数值的整数倍时,将脉冲宽度分配到预达周期中。
2.如权利要求1所述的提高PWM控制器精度的方法,其特征在于,所述基于预达计数计算预达周期中的脉冲宽度的步骤,具体包括:
将预达计数除以扩展修正参数值,以此获取脉冲宽度以及余数;
将余数分摊到各个已达周期的脉冲宽度中。
3.如权利要求2所述的提高PWM控制器精度的方法,其特征在于,所述将余数分摊到各个已达周期的脉冲宽度中的步骤,具体包括:
每次进入PWM中断,判断余数是否完成分摊,若余数大于零,判断余数未完成分摊,继续通过修改脉冲宽度分摊余数,及更新分摊后的余数。
4.如权利要求3所述的提高PWM控制器精度的方法,其特征在于,所述根据扩展修正参数值将已达周期扩展为预达周期的步骤,具体包括:
设定PWM控制器的周期为已达周期;
对已达周期进行计数,判断计数值是否达到扩展修正值的整数倍,若达到,则判断已达周期已扩展为预达周期。
5.如权利要求1-4任一项所述的提高PWM控制器精度的方法,其特征在于,所述设定扩展修正参数值的步骤,具体包括:
根据预达精度的PWM控制器对应计数范围除以已达精度的PWM控制器对应计数范围,获取所设定的扩展修正参数值。
6.一种提高PWM控制器精度的装置,其特征在于,所述装置包括:
设定单元,用于设定扩展修正参数值;
计算单元,用于多次进入PWM中断,根据扩展修正参数值将已达周期扩展为预达周期,并基于预达计数计算预达周期中的脉冲宽度;以及
分配单元,用于当PWM中断的次数达到扩展修正参数值的整数倍时,将脉冲宽度分配到预达周期中。
7.如权利要求6所述的提高PWM控制器精度的装置,其特征在于,所述计算单元包括:
第一计算单元,用于将预达计数除以扩展修正参数值,以此获取脉冲宽度以及余数;
分摊单元,用于将余数分摊到各个已达周期的脉冲宽度中。
8.如权利要求7所述的提高PWM控制器精度的装置,其特征在于,所述分摊单元包括:
余数分摊单元,用于每次进入PWM中断,判断余数是否完成分摊,若余数大于零,判断余数未完成分摊,继续通过修改脉冲宽度分摊余数,及更新分摊后的余数。
9.如权利要求8所述的提高PWM控制器精度的装置,其特征在于,所述计算单元包括:
预设单元,用于设定PWM控制器的周期为已达周期;
判断单元,用于对已达周期进行计数,判断计数值是否达到扩展修正值的整数倍,若达到,则判断已达周期已扩展为预达周期。
10.如权利要求6-9任一项所述的提高PWM控制器精度的装置,其特征在于,所述设定单元包括:
第二计算单元,用于根据预达精度的PWM控制器对应计数范围除以已达精度的PWM控制器对应计数范围,获取所设定的扩展修正参数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910757245.1A CN110572141B (zh) | 2019-08-16 | 2019-08-16 | 一种提高pwm控制器精度的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910757245.1A CN110572141B (zh) | 2019-08-16 | 2019-08-16 | 一种提高pwm控制器精度的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110572141A true CN110572141A (zh) | 2019-12-13 |
CN110572141B CN110572141B (zh) | 2024-02-13 |
Family
ID=68775628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910757245.1A Active CN110572141B (zh) | 2019-08-16 | 2019-08-16 | 一种提高pwm控制器精度的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110572141B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0398470A (ja) * | 1989-09-11 | 1991-04-24 | Hitachi Ltd | Pwmインバータ制御方法および装置 |
CN101499791A (zh) * | 2008-01-29 | 2009-08-05 | 力博特公司 | 一种pwm控制方法 |
WO2011091741A1 (zh) * | 2010-01-26 | 2011-08-04 | 深圳市京泉华电子有限公司 | 一种扩展控制器pwm分辨率的方法及装置 |
JP2014075720A (ja) * | 2012-10-05 | 2014-04-24 | Hitachi Ulsi Systems Co Ltd | Pwm信号生成装置 |
JP5560453B1 (ja) * | 2013-03-22 | 2014-07-30 | 株式会社アクセル | Pwm出力装置、pwm出力方法、及び遊技機 |
CN105846797A (zh) * | 2016-03-21 | 2016-08-10 | 广州视源电子科技股份有限公司 | 一种生成pwm调制信号的方法及装置 |
CN107835001A (zh) * | 2017-10-27 | 2018-03-23 | 上海辰竹仪表有限公司 | 脉冲宽度调制波的处理方法、系统、信号处理装置及介质 |
CN109792207A (zh) * | 2016-09-30 | 2019-05-21 | 株式会社自动网络技术研究所 | 信号产生电路以及电源装置 |
-
2019
- 2019-08-16 CN CN201910757245.1A patent/CN110572141B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0398470A (ja) * | 1989-09-11 | 1991-04-24 | Hitachi Ltd | Pwmインバータ制御方法および装置 |
CN101499791A (zh) * | 2008-01-29 | 2009-08-05 | 力博特公司 | 一种pwm控制方法 |
WO2011091741A1 (zh) * | 2010-01-26 | 2011-08-04 | 深圳市京泉华电子有限公司 | 一种扩展控制器pwm分辨率的方法及装置 |
JP2014075720A (ja) * | 2012-10-05 | 2014-04-24 | Hitachi Ulsi Systems Co Ltd | Pwm信号生成装置 |
JP5560453B1 (ja) * | 2013-03-22 | 2014-07-30 | 株式会社アクセル | Pwm出力装置、pwm出力方法、及び遊技機 |
CN105846797A (zh) * | 2016-03-21 | 2016-08-10 | 广州视源电子科技股份有限公司 | 一种生成pwm调制信号的方法及装置 |
CN109792207A (zh) * | 2016-09-30 | 2019-05-21 | 株式会社自动网络技术研究所 | 信号产生电路以及电源装置 |
CN107835001A (zh) * | 2017-10-27 | 2018-03-23 | 上海辰竹仪表有限公司 | 脉冲宽度调制波的处理方法、系统、信号处理装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110572141B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11330685B2 (en) | Method, device, terminal setting and readable storage medium for correcting mixed color | |
CN107251391B (zh) | 信号产生电路、电压变换装置及信号产生方法 | |
JP6146845B2 (ja) | 蓄電システムおよび該蓄電システムの放電制御方法 | |
CN109256947B (zh) | 车载用的信号产生电路及车载用电源装置 | |
CN104953814B (zh) | 一种控制pfc电路的方法和装置 | |
UA46755C2 (uk) | Багаторівневий перетворювач | |
US10158347B2 (en) | Device and method for providing a signal having an adjustable pulse duty factor | |
US7642876B2 (en) | PWM generator providing improved duty cycle resolution | |
CN110572141A (zh) | 一种提高pwm控制器精度的方法及装置 | |
KR20140090108A (ko) | Pwm 신호 생성 회로, 프린터, 및 pwm 신호 생성 방법 | |
US10020726B2 (en) | Hysteresis control of a DC-DC converter | |
CN102487566B (zh) | Led光源去抖动控制方法及电路 | |
JP4270315B2 (ja) | A/d変換回路の出力データ補正装置及びa/d変換出力データ補正方法 | |
JPH0398470A (ja) | Pwmインバータ制御方法および装置 | |
JP6103557B1 (ja) | 電力変換装置および電力変換装置の制御方法 | |
JP5560453B1 (ja) | Pwm出力装置、pwm出力方法、及び遊技機 | |
CN113119117B (zh) | 一种机器人的控制方法、控制器、机器人及控制系统 | |
CN109104110B (zh) | 阶调式模块化多电平变换器及其控制方法 | |
CN108282935B (zh) | Led调光方法、装置、设备及存储介质 | |
JP6962785B2 (ja) | 電圧測定装置 | |
KR101866643B1 (ko) | 전원 장치 | |
CN110632975A (zh) | 一种序列信号生成方法及装置 | |
US11683047B2 (en) | Switch-mode power supplies with improved analog-to-digital current calibration | |
CN102547797B (zh) | 测量控制方法及装置 | |
RU2239276C2 (ru) | Способ управления тиристорным непосредственным преобразователем частоты при помощи микропроцессорной системы |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |