xjw01 发表于 2013-10-16 23:31:05

这样做PWM也挺好的

xjw01 发表于 2013-10-16 23:31:46





xjw01 发表于 2013-10-16 23:33:10

10分钟热机后测试,大约末字一两字非线性。

xuxbao 发表于 2013-10-17 02:01:39

这个电路的稳定性应该和单片机口线输出高低电平有关,所以单片机供电电压也会对输出产生影响。

lllaaa 发表于 2013-10-17 06:47:23

xuxbao 发表于 2013-10-17 02:01
这个电路的稳定性应该和单片机口线输出高低电平有关,所以单片机供电电压也会对输出产生影响。

所以lz单片机用基准供电的

bg4cp 发表于 2013-10-17 08:19:36

怎么扩大输出电压的范围?或者怎么用PWM信号去控制直流电源的输出啊?

zca123 发表于 2013-10-17 09:05:22

纹波水平如何?

albert 发表于 2013-10-17 09:59:28

三阶低通.

建议pwm输出后控制一个外部的基准的占空比, 应该比直接使用单片机pwm要好.噪声什么的

xjw01 发表于 2013-10-17 10:12:45

本帖最后由 xjw01 于 2013-10-17 10:13 编辑

单片机直接输出的PWM,噪声不大。关键是写程序时要小心,那些会产生噪声的算法要抛弃。
这个方案有个缺点:
0开关状态点的温漂漂很大,大约每度10uV左右。
比如,0.01%占空比时,漂移50uV,那么在50%占空比时漂移25uV,99.9%占空比漂移接近0
我打算对0输出电压进行稳压。纯0态,可能是4mV左右。通过反馈电路调节STC单片机的地线电压,使得端口电压恒为4.00mv。我估计这样做之后,这个方案就实用了。反正LT1013只用了一半,还有一半没有使用,正好利用剩下的这一半进行地线电压调节。

xjw01 发表于 2013-10-17 10:15:10

简单的说,单片机内核芯片得到的电压并不完全是基准电压。还需改进一下。

xjw01 发表于 2013-10-17 10:18:53

这个方案第二个缺点:
CBB电容的吸附效应还是比较明显的。电压值设定后,如果电压跳变很大,等到最后一字稳定,需要10秒以上。主要体现在低压输出段。电压越低,所需时间越长。

xjw01 发表于 2013-10-17 10:19:49

优点很很明显:
使用单电源。电路简洁明快。

lilith 发表于 2013-10-17 11:08:06

xjw01 发表于 2013-10-17 10:15
简单的说,单片机内核芯片得到的电压并不完全是基准电压。还需改进一下。

用 IO 上的 PWM 脉冲驱动一个接到基准上的 JFET 或摸死开关,而不是用基准给 MCU 供电 {:139_281:}

JackFrost 发表于 2013-10-17 11:24:47

用PWM的话,还要注意信号跳变的地弹问题,电压低的时候这个地弹电压所占的比重就大了。

marshallemon 发表于 2013-10-17 11:28:06

想知道LZ那个表头上的电压是用啥AD检测的?另外想知道你的RC滤波用的是啥电阻,啥电容?你的PWM周期是多少?你是使用的硬件PWM还是软件模拟的?
另外我感觉你用基准给MCU和外围供电的不妥之处,MCU在执行不同指令时功耗不同,LCD在显示不同内容时功耗也不同,对于这样这个影不影响你的PWM输出电压就要看你的电压基准的负载调整率了,不过看你是基准扩流来用。你这样来用不如使用一个多路模拟开关或FET来使用PWM调制基准。
关于噪声不是靠算法来改进的,使用34401测噪声应该是不可行的,速度太慢。
我也用类似的此法做了一个16bit的PWM DA,使用硬件PWM,输出电压范围0~2.048V,周期为122hz,线性度超好,使用34401测这个输出,绝大多数输出34401是不跳字的,只有个别输出跳一个字。具体可以搜我的帖子

marshallemon 发表于 2013-10-17 11:31:24

xjw01 发表于 2013-10-17 10:18
这个方案第二个缺点:
CBB电容的吸附效应还是比较明显的。电压值设定后,如果电压跳变很大,等到最后一字 ...

对于这个问题,我在做这个DD时也遇到了,但我当时是觉得电容的ESL比较大,后来换了794电容就改善了这个问题了

marshallemon 发表于 2013-10-17 11:44:34

看了一下你的线性曲线,很不错,但不过零,这个估计和你使用MCU直接输出的关系

xjw01 发表于 2013-10-17 12:33:14

本帖最后由 xjw01 于 2013-10-17 12:35 编辑

marshallemon 发表于 2013-10-17 11:28
想知道LZ那个表头上的电压是用啥AD检测的?另外想知道你的RC滤波用的是啥电阻,啥电容?你的PWM周期是多少 ...

我不是使用122Hz,而是用较高频率的。
=8MHz/PWM分频/256=15kHz左右吧,具体得查一下程序。


噪声与算法相关性非常大。电压设定后,程序中,不要操作大电流的东西,不然会引入干扰。

xjw01 发表于 2013-10-17 12:46:46

lilith 发表于 2013-10-17 11:08
用 IO 上的 PWM 脉冲驱动一个接到基准上的 JFET 或摸死开关,而不是用基准给 MCU 供电

手上没有合适的开关。所以再三思考,还是试验端口直接PWM。

以后有机会买到好的模拟开关,再考虑你说的方案吧。

marshallemon 发表于 2013-10-17 13:21:27

xjw01 发表于 2013-10-17 12:33
我不是使用122Hz,而是用较高频率的。
=8MHz/PWM分频/256=15kHz左右吧,具体得查一下程序。



你说的是操作大电流外围产生的噪声,我说的是PWM产生的噪声,PWM自身产生的噪声是无法靠程序减少的,至于外围滤波器的形式和阶数这个要看你对这个PWM DA的稳定度要求,看你是2阶的有源滤波,这样输出的噪声应该不会小应该在mV级别的,你用示波器测测看

feng89 发表于 2013-10-17 13:24:45

放这方案改动一下就好了.用一个5V的基准接在输入处,单片机输出接一个MOS管来做开关管

marshallemon 发表于 2013-10-17 14:54:50

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:09:10

本帖最后由 xjw01 于 2013-10-17 15:10 编辑

marshallemon 发表于 2013-10-17 13:21
你说的是操作大电流外围产生的噪声,我说的是PWM产生的噪声,PWM自身产生的噪声是无法靠程序减少的,至于 ...

呵呵,不会是mV级的,是uV级的,CBB电容的频响很好的,高频信号可以过滤得干净。
电路中每个元件取值都是测算之后才得到的。
理论残余也就10uV级别。实际当然还有高频信号等,也包括表笔上感就到的强径的中波信号以及手机信号,但34401无法响应的。

你们使用高阶滤波器,是因为用了很低的频率。

marshallemon 发表于 2013-10-17 16:03:13

xjw01 发表于 2013-10-17 15:09
呵呵,不会是mV级的,是uV级的,CBB电容的频响很好的,高频信号可以过滤得干净。
电路中每个元件取值 ...

能否上传RC滤波这部分的计算笔记一看?

lilith 发表于 2013-10-17 16:30:11

xjw01 发表于 2013-10-17 12:46
手上没有合适的开关。所以再三思考,还是试验端口直接PWM。

以后有机会买到好的模拟开关,再考虑你说 ...

阿,我以为你手头上应该有一些摸死的。

可以参考我以前做 R2R DAC (非隔离)的方案,因为一来单片机 IO 上干扰较大,一来 IO 不足,我用了一个 CD4094 来扩展 IO,所以 4094 用基准 IC 供电,就解决了所有问题了。在要求更高的场合,甚至可以再单独用一个 7805 给一个 7414 施密特触发器供电,单片机和 4094 之间用施密特触发器隔离。我想 74HC14 施密特触发器能否用于你的 PWM?或者其它的缓冲器,比如 74HC04?

lilith 发表于 2013-10-17 16:32:31

RE: 这样做PWM也挺好的

xjw01 发表于 2013-10-17 15:09
呵呵,不会是mV级的,是uV级的,CBB电容的频响很好的,高频信号可以过滤得干净。
电路中每个元件取值 ...

你们使用高阶滤波器,是因为用了很低的频率。


+++++++++++


这个我之前说过了,频率很低是因为分辨率很高,而主时钟源频率受限于一般 MCU 主频不会太高(否则就要用别的方案了)。假设分辨率为 16bit,MCU 主频 12MHZ,PWM 时钟源使用 MCU 主时钟源、分频系数 1,那么 PWM 频率才183HZ 而已。

zhixiaoyuhong 发表于 2013-10-17 17:14:22

楼主用的啥ad?

xjw01 发表于 2013-10-17 17:52:56

lilith 发表于 2013-10-17 16:32
你们使用高阶滤波器,是因为用了很低的频率。




按我的理解是这样的:
一方面是基准源的稳定性,一方面的方波边缘形状及杂散偶合的稳定性。后者要求PWM频率特性好,端口可以工作在高频。
单片机端口可以工作在极高的频率上,一些通用器件的频响比单片机低得多。我曾在stm32上做过测试,PWM频率在几百kHz,依然输出极高的线性。而CD4053,在制作LCR数据电桥时,7.8kHz频率下,有的4053就不行了,零点会出现易常直流,实际是控制信号内部耦合在非线性器件上产生了“检波”效果。这种检波输出的温漂不可忽略。

单片机高度集成,三极管做得很小,频率极高。

所以,我大胆使用了高频率做PWM,并取得预期的线性度,同时给滤波带来方便。

xjw01 发表于 2013-10-17 17:54:34

当初用stm32,几百kHz测试PWM,VC86E竟然无法发现分辨出它的非线性误差。
所以我就推定,在10几kHz测试PWM,5位半的万用表将难以发现它的非线性。

lilith 发表于 2013-10-17 18:07:04

xjw01 发表于 2013-10-17 17:52
按我的理解是这样的:
一方面是基准源的稳定性,一方面的方波边缘形状及杂散偶合的稳定性。后者要求PWM ...

单片机端口可以工作在极高的频率上,一些通用器件的频响比单片机低得多。


+++++++++++++++


我也担心过这个问题,我曾经用某个 CD40xx 做 M8 的电平转换去驱动 PMOS 管,结果管子很烫,用示波器看 PWM 脉冲上升/下降沿变形很厉害。不过高速 CMOS 系列(74HC)会怎么样呢?
页: [1] 2
查看完整版本: 这样做PWM也挺好的