这样做PWM也挺好的
10分钟热机后测试,大约末字一两字非线性。 这个电路的稳定性应该和单片机口线输出高低电平有关,所以单片机供电电压也会对输出产生影响。 xuxbao 发表于 2013-10-17 02:01
这个电路的稳定性应该和单片机口线输出高低电平有关,所以单片机供电电压也会对输出产生影响。
所以lz单片机用基准供电的
怎么扩大输出电压的范围?或者怎么用PWM信号去控制直流电源的输出啊? 纹波水平如何? 三阶低通.
建议pwm输出后控制一个外部的基准的占空比, 应该比直接使用单片机pwm要好.噪声什么的 本帖最后由 xjw01 于 2013-10-17 10:13 编辑
单片机直接输出的PWM,噪声不大。关键是写程序时要小心,那些会产生噪声的算法要抛弃。
这个方案有个缺点:
0开关状态点的温漂漂很大,大约每度10uV左右。
比如,0.01%占空比时,漂移50uV,那么在50%占空比时漂移25uV,99.9%占空比漂移接近0
我打算对0输出电压进行稳压。纯0态,可能是4mV左右。通过反馈电路调节STC单片机的地线电压,使得端口电压恒为4.00mv。我估计这样做之后,这个方案就实用了。反正LT1013只用了一半,还有一半没有使用,正好利用剩下的这一半进行地线电压调节。
简单的说,单片机内核芯片得到的电压并不完全是基准电压。还需改进一下。 这个方案第二个缺点:
CBB电容的吸附效应还是比较明显的。电压值设定后,如果电压跳变很大,等到最后一字稳定,需要10秒以上。主要体现在低压输出段。电压越低,所需时间越长。 优点很很明显:
使用单电源。电路简洁明快。 xjw01 发表于 2013-10-17 10:15
简单的说,单片机内核芯片得到的电压并不完全是基准电压。还需改进一下。
用 IO 上的 PWM 脉冲驱动一个接到基准上的 JFET 或摸死开关,而不是用基准给 MCU 供电 {:139_281:} 用PWM的话,还要注意信号跳变的地弹问题,电压低的时候这个地弹电压所占的比重就大了。 想知道LZ那个表头上的电压是用啥AD检测的?另外想知道你的RC滤波用的是啥电阻,啥电容?你的PWM周期是多少?你是使用的硬件PWM还是软件模拟的?
另外我感觉你用基准给MCU和外围供电的不妥之处,MCU在执行不同指令时功耗不同,LCD在显示不同内容时功耗也不同,对于这样这个影不影响你的PWM输出电压就要看你的电压基准的负载调整率了,不过看你是基准扩流来用。你这样来用不如使用一个多路模拟开关或FET来使用PWM调制基准。
关于噪声不是靠算法来改进的,使用34401测噪声应该是不可行的,速度太慢。
我也用类似的此法做了一个16bit的PWM DA,使用硬件PWM,输出电压范围0~2.048V,周期为122hz,线性度超好,使用34401测这个输出,绝大多数输出34401是不跳字的,只有个别输出跳一个字。具体可以搜我的帖子 xjw01 发表于 2013-10-17 10:18
这个方案第二个缺点:
CBB电容的吸附效应还是比较明显的。电压值设定后,如果电压跳变很大,等到最后一字 ...
对于这个问题,我在做这个DD时也遇到了,但我当时是觉得电容的ESL比较大,后来换了794电容就改善了这个问题了
看了一下你的线性曲线,很不错,但不过零,这个估计和你使用MCU直接输出的关系
本帖最后由 xjw01 于 2013-10-17 12:35 编辑
marshallemon 发表于 2013-10-17 11:28
想知道LZ那个表头上的电压是用啥AD检测的?另外想知道你的RC滤波用的是啥电阻,啥电容?你的PWM周期是多少 ...
我不是使用122Hz,而是用较高频率的。
=8MHz/PWM分频/256=15kHz左右吧,具体得查一下程序。
噪声与算法相关性非常大。电压设定后,程序中,不要操作大电流的东西,不然会引入干扰。
lilith 发表于 2013-10-17 11:08
用 IO 上的 PWM 脉冲驱动一个接到基准上的 JFET 或摸死开关,而不是用基准给 MCU 供电
手上没有合适的开关。所以再三思考,还是试验端口直接PWM。
以后有机会买到好的模拟开关,再考虑你说的方案吧。
xjw01 发表于 2013-10-17 12:33
我不是使用122Hz,而是用较高频率的。
=8MHz/PWM分频/256=15kHz左右吧,具体得查一下程序。
你说的是操作大电流外围产生的噪声,我说的是PWM产生的噪声,PWM自身产生的噪声是无法靠程序减少的,至于外围滤波器的形式和阶数这个要看你对这个PWM DA的稳定度要求,看你是2阶的有源滤波,这样输出的噪声应该不会小应该在mV级别的,你用示波器测测看
放这方案改动一下就好了.用一个5V的基准接在输入处,单片机输出接一个MOS管来做开关管 marshallemon 发表于 2013-10-17 11:28
想知道LZ那个表头上的电压是用啥AD检测的?另外想知道你的RC滤波用的是啥电阻,啥电容?你的PWM周期是多少 ...
稳定度是指的不跳字,但34401应该是看不出来这个噪声的,使用示波器才可以,至于线性我理解为占空比和理想输出之前的关系,我做的16bit的PWM DA,基准电压为2.048V,这样1LSB=31.25uV,我的占空比为0时输出2.04800V,占空比为1时输出电压为2.04797V,依次类推,具体可搜我之前的帖子
本帖最后由 xjw01 于 2013-10-17 15:10 编辑
marshallemon 发表于 2013-10-17 13:21
你说的是操作大电流外围产生的噪声,我说的是PWM产生的噪声,PWM自身产生的噪声是无法靠程序减少的,至于 ...
呵呵,不会是mV级的,是uV级的,CBB电容的频响很好的,高频信号可以过滤得干净。
电路中每个元件取值都是测算之后才得到的。
理论残余也就10uV级别。实际当然还有高频信号等,也包括表笔上感就到的强径的中波信号以及手机信号,但34401无法响应的。
你们使用高阶滤波器,是因为用了很低的频率。
xjw01 发表于 2013-10-17 15:09
呵呵,不会是mV级的,是uV级的,CBB电容的频响很好的,高频信号可以过滤得干净。
电路中每个元件取值 ...
能否上传RC滤波这部分的计算笔记一看?
xjw01 发表于 2013-10-17 12:46
手上没有合适的开关。所以再三思考,还是试验端口直接PWM。
以后有机会买到好的模拟开关,再考虑你说 ...
阿,我以为你手头上应该有一些摸死的。
可以参考我以前做 R2R DAC (非隔离)的方案,因为一来单片机 IO 上干扰较大,一来 IO 不足,我用了一个 CD4094 来扩展 IO,所以 4094 用基准 IC 供电,就解决了所有问题了。在要求更高的场合,甚至可以再单独用一个 7805 给一个 7414 施密特触发器供电,单片机和 4094 之间用施密特触发器隔离。我想 74HC14 施密特触发器能否用于你的 PWM?或者其它的缓冲器,比如 74HC04?
RE: 这样做PWM也挺好的
xjw01 发表于 2013-10-17 15:09呵呵,不会是mV级的,是uV级的,CBB电容的频响很好的,高频信号可以过滤得干净。
电路中每个元件取值 ...
你们使用高阶滤波器,是因为用了很低的频率。
+++++++++++
这个我之前说过了,频率很低是因为分辨率很高,而主时钟源频率受限于一般 MCU 主频不会太高(否则就要用别的方案了)。假设分辨率为 16bit,MCU 主频 12MHZ,PWM 时钟源使用 MCU 主时钟源、分频系数 1,那么 PWM 频率才183HZ 而已。
楼主用的啥ad? lilith 发表于 2013-10-17 16:32
你们使用高阶滤波器,是因为用了很低的频率。
按我的理解是这样的:
一方面是基准源的稳定性,一方面的方波边缘形状及杂散偶合的稳定性。后者要求PWM频率特性好,端口可以工作在高频。
单片机端口可以工作在极高的频率上,一些通用器件的频响比单片机低得多。我曾在stm32上做过测试,PWM频率在几百kHz,依然输出极高的线性。而CD4053,在制作LCR数据电桥时,7.8kHz频率下,有的4053就不行了,零点会出现易常直流,实际是控制信号内部耦合在非线性器件上产生了“检波”效果。这种检波输出的温漂不可忽略。
单片机高度集成,三极管做得很小,频率极高。
所以,我大胆使用了高频率做PWM,并取得预期的线性度,同时给滤波带来方便。
当初用stm32,几百kHz测试PWM,VC86E竟然无法发现分辨出它的非线性误差。
所以我就推定,在10几kHz测试PWM,5位半的万用表将难以发现它的非线性。 xjw01 发表于 2013-10-17 17:52
按我的理解是这样的:
一方面是基准源的稳定性,一方面的方波边缘形状及杂散偶合的稳定性。后者要求PWM ...
单片机端口可以工作在极高的频率上,一些通用器件的频响比单片机低得多。
+++++++++++++++
我也担心过这个问题,我曾经用某个 CD40xx 做 M8 的电平转换去驱动 PMOS 管,结果管子很烫,用示波器看 PWM 脉冲上升/下降沿变形很厉害。不过高速 CMOS 系列(74HC)会怎么样呢?
页:
[1]
2