1、8位DAC
目标精度:8位
8位分辨条件下,要求1次谐波对输出电压的影响不要超过1个位的精度(即V一次谐波<3.3/256=0.01289V。
如Vh为3.3V,VL为0V,那么一次谐波的最大值是Vh1=4V幅值/π=23.3/π=2.1V,这就要求我们的RC滤波电路提供至少-20lg(2.1/0.01289)=-44dB的衰减。(V, dBV 和 dBuV转换在线计算器:https://www.elecfans.com/tools/dBV.html)
若定时器最快的计数频率是64MHz,APB总线上挂载的所有定时器最大频率均为64MHz,以64MHz为例,8位分辨率的时候,PWM频率为64M/256=250KHz。
PWM频率为250KHz,那么一次谐波频率就是250Khz;
1阶RC滤波,幅频特性为:-10lg[1+(f/fp)^2];fp为截止频率。
所以对一阶滤波来说,要达到-44dB的衰减,必须-10lg[1+(f/fp)^2]=-44; 得到f/fp=158.486,即fp=250/158.486=1.57743KHz。
2阶RC滤波,幅频特性为:-20lg[1+(f/fp)^2];fp为截止频率。
所以对二阶滤波来说,要达到-44dB的衰减,必须-20lg[1+(f/fp)^2]=-44; 得到f/fp=12.549,即fp=250/12.549=19.922Khz。
目标精度8位下,如果是1阶RC滤波,则要求截止频率为1.57743KHz,如果为2阶RC滤波,则要求截止频率为19.922Khz。
2、10位DAC
目标精度:10位
12位分辨条件下,要求1次谐波对输出电压的影响不要超过1个位的精度(即V一次谐波<3.3/1024=0.00322V。
如Vh为3.3V,VL为0V,那么一次谐波的最大值是Vh1=4V幅值/π=23.3/π=2.1V,这就要求我们的RC滤波电路提供至少-20lg(2.1/0.00322)=-57dB的衰减。
若定时器最快的计数频率是64MHz,APB总线上挂载的所有定时器最大频率均为64MHz,以64MHz为例,12位分辨率的时候,PWM频率为64M/1024=62.5KHz。
PWM频率为62.5KHz,那么一次谐波频率就是62.5KHz;
1阶RC滤波,幅频特性为:-10lg[1+(f/fp)^2];fp为截止频率。
所以对一阶滤波来说,要达到-57dB的衰减,必须-10lg[1+(f/fp)^2]=-57; 得到f/fp=652.174,即fp=62.5/652.174=0.09583332KHz=95.83332Hz。
2阶RC滤波,幅频特性为:-20lg[1+(f/fp)^2];fp为截止频率。
所以对二阶滤波来说,要达到-57dB的衰减,必须-20lg[1+(f/fp)^2]=-57; 得到f/fp=25.5377,即fp=62.5/25.5377=2.447362Khz
目标精度10位下,如果是1阶RC滤波,则要求截止频率为95.83332Hz,如果为2阶RC滤波,则要求截止频率为2.447362Khz。
3、12位DAC
目标精度:12位
12位分辨条件下,要求1次谐波对输出电压的影响不要超过1个位的精度(即V一次谐波<3.3/4096=0.00080V。
如Vh为3.3V,VL为0V,那么一次谐波的最大值是Vh1=4V幅值/π=23.3/π=2.1V,这就要求我们的RC滤波电路提供至少-20lg(2.1/0.00080)=-69dB的衰减。
若定时器最快的计数频率是64MHz,APB总线上挂载的所有定时器最大频率均为64MHz,以64MHz为例,12位分辨率的时候,PWM频率为64M/4096=15.625KHz。
PWM频率为15.625KHz,那么一次谐波频率就是15.625KHz;
1阶RC滤波,幅频特性为:-10lg[1+(f/fp)^2];fp为截止频率。
所以对一阶滤波来说,要达到-69dB的衰减,必须-10lg[1+(f/fp)^2]=-69; 得到f/fp=2818.383,即fp=15.625/2818.383=0.00554395KHz=5.54395Hz。
2阶RC滤波,幅频特性为:-20lg[1+(f/fp)^2];fp为截止频率。
所以对二阶滤波来说,要达到-44dB的衰减,必须-20lg[1+(f/fp)^2]=-69; 得到f/fp=53.088,即fp=15.625/53.088=0.2943226Khz=294.3226Hz。
目标精度12位下,如果是1阶RC滤波,则要求截止频率为5.54395Hz,如果为2阶RC滤波,则要求截止频率为294.3226Hz。
4、总结
根据上述计算易知,定时器PWM模拟DAC时,分辨率主要受限于定时器主频,同样,最终输出目标信号频率也受限于定时主频与分辨率,即在较低主频情况下还想提高目标分辨率,必然造成最终输出信号频率受限。
另外,DAC的精度还受GPIO输出电压精度等其他因素影响。