kpzclxtx 发表于 2013-4-19 15:43:24

求助:能否使用51单片机完成16位的AD或者DA应用?

如题,小弟最近想做高精度的数字电流源,16位DA精度基本满足要求,但是以前只用过8位DA+STC89C52实现,不知道16位能否用这种单片机实现?是不是必须使用16位ARM?或者请推荐一款16位CPU?
感激不尽呐

yklstudent 发表于 2013-4-19 18:34:09

{:shocked:}

tony_sgt 发表于 2013-4-19 19:38:57

可以用串行的AD或是DA,分高低位取出AD或DA的值在51单片机內處理數據就OK了

gym402 发表于 2013-4-19 19:41:50

DA可以用串行的啊,或者用16位430

lxa0 发表于 2013-4-19 19:44:44

完全可以
只是速度慢一些

lidar 发表于 2013-4-19 21:55:46

如果速度要求不是很高的话,可以使用串行的DA的,要么就IO复用的方式

xintao 发表于 2013-4-19 22:01:04

8位的单片机也可以处理16位的数据;
430是16位的单片机;
ARM是32位的……

eddia2012 发表于 2013-4-20 13:31:50

用16位的PWM来模拟,C8051F带这个功能。

glllglll 发表于 2013-4-20 20:04:19

可以的。比如说16位的ad,那只是说ad可以把采集来的电压转换成16位的数字量,16位的数字量在51中用个int型就可以储存了,与51是8位的没关系的。要是考虑到端口的话,串行一般有3跟线(片选、时钟和数据)。你可以查查用51控制的16位的ad7705的文档,看完后应该能解除疑惑了

BG4RFF 发表于 2013-4-20 23:27:14

用51控制的16位的ad7705很多年前试过,不过那时候很水的

mwboo 发表于 2013-4-22 13:41:46

明显8位的就可以控制了!

aniuge123 发表于 2013-4-22 13:52:05

推荐 飞思卡尔 16位单片机 具体型号MSGS12 系列

聆听风声 发表于 2013-4-22 14:29:17

貌似与单片机的关系不是很大吧!AD与DA这个玩意选择串行的就行了,16位的精度,讲究的还是基准源的选择,和整个电路的布板设计的要求更多!{:smile:}

kyan3886 发表于 2013-4-22 14:32:14

过去一直用51+ad977a ,无压力,高速上兆的就别想了

zjk 发表于 2013-4-22 14:38:03

用两个IO口,串行应该就行了吧。。。

bbssilverkey 发表于 2013-4-22 14:49:45

我觉得处理好基准电压才是难事

zichenxiaofeng 发表于 2013-4-22 17:34:04

当然可以啦!串行不存在问题,并行的话 可以用两组IO口呗!{:smile:}{:smile:}

dingdan258 发表于 2013-4-24 11:57:08

可以的啊,无非高低分开处理。。。。。。。。。

censtar 发表于 2013-4-24 12:21:42

那,24位的AD必须24为的CPU了? 那哪儿找去啊。

censtar 发表于 2013-4-24 12:22:08

仅从AD的角度考虑,51没问题的。24位都没问题。

marshallemon 发表于 2013-4-24 12:28:28

51? 16bit的精度?16bit分辨率还差不多

huangshuyi 发表于 2013-4-24 21:27:52

PIC的也行

kpzclxtx 发表于 2013-4-26 14:02:39

censtar 发表于 2013-4-24 12:22 static/image/common/back.gif
仅从AD的角度考虑,51没问题的。24位都没问题。

感谢各位大侠,大侠们推荐一款16位DA芯片呗,本来考虑使用MAX541,不过看100块大洋感觉有点贵啊,有木有便宜的啊?请指教啊

kpzclxtx 发表于 2013-4-26 14:03:12

dingdan258 发表于 2013-4-24 11:57 static/image/common/back.gif
可以的啊,无非高低分开处理。。。。。。。。。

和我想的一样谢谢

kpzclxtx 发表于 2013-4-26 14:03:36

kyan3886 发表于 2013-4-22 14:32 static/image/common/back.gif
过去一直用51+ad977a ,无压力,高速上兆的就别想了

感谢,,,大侠推荐一款16位DA芯片呗,本来考虑使用MAX541,不过看100块大洋感觉有点贵啊,有木有便宜的啊?请指教啊

kpzclxtx 发表于 2013-4-26 14:05:22

聆听风声 发表于 2013-4-22 14:29 static/image/common/back.gif
貌似与单片机的关系不是很大吧!AD与DA这个玩意选择串行的就行了,16位的精度,讲究的还是基准源的选择,和 ...

嗯,对极,多谢,能不能推荐一款便宜点的16位DA芯片?

kpzclxtx 发表于 2013-4-26 14:06:11

glllglll 发表于 2013-4-20 20:04 static/image/common/back.gif
可以的。比如说16位的ad,那只是说ad可以把采集来的电压转换成16位的数字量,16位的数字量在51中用个int型 ...

感谢感谢,能不能推荐一款便宜点的16位da芯片啊

lpc1788 发表于 2013-4-26 14:18:15

速度不高的DA片子很多,要就呼一下啦!

电子爱好者_MCU 发表于 2013-4-26 15:06:20

最好建议才有内部带AD功能的单片机 外接单片机 做到16位精度 基准源(参考点)的选择很头疼 做不好还不如10位或者8位的AD

kpzclxtx 发表于 2013-4-26 15:28:49

电子爱好者_MCU 发表于 2013-4-26 15:06 static/image/common/back.gif
最好建议才有内部带AD功能的单片机 外接单片机 做到16位精度 基准源(参考点)的选择很头疼 做不好还不如10 ...

感谢,我想用8位的,毕竟用过0832,但老师要求步进1mv精度0.01mv,8位的话步进算下来10mv左右吧,精度好像也不满足,悲催!

kpzclxtx 发表于 2013-4-26 15:29:53

lpc1788 发表于 2013-4-26 14:18 static/image/common/back.gif
速度不高的DA片子很多,要就呼一下啦!

大侠推荐一款便宜点的16位da啊?多谢多谢~~~

censtar 发表于 2013-4-26 16:28:20

kpzclxtx 发表于 2013-4-26 14:02 static/image/common/back.gif
感谢各位大侠,大侠们推荐一款16位DA芯片呗,本来考虑使用MAX541,不过看100块大洋感觉有点贵啊,有木有 ...

AD7705   

censtar 发表于 2013-4-26 16:28:36

TM7705    也差不多

kpzclxtx 发表于 2013-4-26 18:23:30

censtar 发表于 2013-4-26 16:28 static/image/common/back.gif
AD7705

这个是AD转换器,我在找DA芯片亲,不过必须感谢。。

redroof 发表于 2013-4-26 19:32:45

pwm当da最便宜

xujihu 发表于 2013-4-26 19:43:51

51单片机没有16位的AD吧好像也就10位的最高

redroof 发表于 2013-4-26 19:47:15

高分辨率高精度的da都不便宜
便宜没好货
pwm便宜但线性不好
不过如果愿意费点事,用个高精度ad采自己输出的值然后再调整,就可以不依靠da的线性了
16位线性的ad还是很好找的

bigeblis 发表于 2013-4-26 22:43:51

marshallemon 发表于 2013-4-24 12:28 static/image/common/back.gif
51? 16bit的精度?16bit分辨率还差不多

51为什么不能做16bit精度?
ADC的精度和单片机有什么关系?
不要求速度的话,C51哪怕处理128bit的数据又有什么问题?

marshallemon 发表于 2013-4-26 22:51:39

本帖最后由 marshallemon 于 2013-4-26 23:06 编辑

bigeblis 发表于 2013-4-26 22:43 static/image/common/back.gif
51为什么不能做16bit精度?
ADC的精度和单片机有什么关系?
不要求速度的话,C51哪怕处理128bit的数据又 ...

看来貌似你是高手了,你自己做过16bit的DA吗?你见过IC>20bit的DA没?你知道PWM做DA有哪些因素要注意吗?128bit的分辨率有意义吗?128bit的分辨率你能做到多高的nosie free分辨率?又能做到多高的INL,DNL?

另外说你下你的128bitDA的思想,用PWM做DA,是需要外接RC网络的,要做到128bit这时间常数可不小,电阻大了4KRT噪声大,电容大了就要注意漏电,吸附效应和ESL了,毕竟你的频率较低所以漏电也不能小视

bigeblis 发表于 2013-4-27 00:04:49

marshallemon 发表于 2013-4-26 22:51 static/image/common/back.gif
看来貌似你是高手了,你自己做过16bit的DA吗?你见过IC>20bit的DA没?你知道PWM做DA有哪些因素要注意吗? ...

请问,你说的这些问题,好像都是外围模拟电路的难点吧?与你使用什么单片机来提供原始数据有关系么?
你认为C51不能做16bit精度的处理,我认为这个是可以的,仅此而已!

marshallemon 发表于 2013-4-19 15:43:25

本帖最后由 marshallemon 于 2013-4-27 10:51 编辑

bigeblis 发表于 2013-4-27 00:04 static/image/common/back.gif
请问,你说的这些问题,好像都是外围模拟电路的难点吧?与你使用什么单片机来提供原始数据有关系么?
你 ...

首先说下影响PWM做DA精度和噪声的因素,使用MCU来做PWM da,首先要保证晶振的频率的稳定度,其次要保证PWM脉宽的稳定度,传统的51内部没有PWM,使用软件模拟的话要充分考虑初值重装带来的影响,这个影响处理不好可是要累加的,再次要考虑PWM幅度的稳定性。不论是MCU内部还是外围电路的设计都将表现为精度,无噪声分辨率,重复性,再现性等问题。
你歪楼了吧,我只是说16bit的精度比较不好实现,由其对于问出这种问题来的LZ,先作出16bit的分辨率,再说16bit的精度精度,但并不是说绝对不能实现,而是要按顺序来,现成的DA大多数也只是16bit的分辨率,16bit的精度,这个要是那么容易实现就好了,但不排除你对这个的设计很有天赋,凡事不能光靠理论去想,要自己亲手做过才知道,我做过16bit分辨率的DA,PWM实现的
http://bbs.ednchina.com/BLOG_ARTICLE_3010874.HTM

redroof 发表于 2013-4-27 12:18:06

marshallemon 发表于 2013-4-27 10:46 static/image/common/back.gif
首先说下影响PWM做DA精度和噪声的因素,使用MCU来做PWM da,首先要保证晶振的频率的稳定度,其次要保证PW ...

精度问题如果你可以降低速度,那么可以用一个精确的AD来校正。
精确到16位的SigmaDeltaAD很好找。
这样这个PWM的DA只需要关心噪声和短稳
温漂老化什么的都可以靠精确AD来补偿
当然PWM的分辨率最好是超过16位,例如17-18位,这样得到16位精确度就比较容易了
如果只有16位PWM,在某些点上没法稳定到16位。某些时候PWM增加1个LSB,结果AD可能测到数据变化了2个LSB,那你就没办法减小半个LSB了。

marshallemon 发表于 2013-4-27 12:50:28

本帖最后由 marshallemon 于 2013-4-27 12:53 编辑

redroof 发表于 2013-4-27 12:18 static/image/common/back.gif
精度问题如果你可以降低速度,那么可以用一个精确的AD来校正。
精确到16位的SigmaDeltaAD很好找。
这样这 ...

恩,做成闭环当然是最妥当不过了,再能加上内部校准(自带传递测量)哪就更好了,例如FLUKE的高位万用表校准仪,另外要看你的满幅度的大小,你的满幅度高了同样是16bit自然对噪声要求就相对低了。
不降低速度也是可以的,使用两路PWM合成就好,这个速度也不损失,精度还能提高。
我没说实现不了,只是鉴于lZ问的问题,能看出LZ对这个没有概念,建议LZ还是先把16bit的分辨率做出来,再说精度的问题,没有>16bit的分辨率,谈啥16bit的精度。
我对DA不只要求短温,长期稳定性,年稳也是有要求的。没有了年稳,只能在刚校准后来说这个精度了

zysun20010300 发表于 2013-4-27 13:17:40

我正在用的,ST32M015,M0的核,10人民币以内

kpzclxtx 发表于 2013-4-27 13:39:00

marshallemon 发表于 2013-4-27 12:50 static/image/common/back.gif
恩,做成闭环当然是最妥当不过了,再能加上内部校准(自带传递测量)哪就更好了,例如FLUKE的高位万用表校 ...

感谢,现阶段是想用16位的MAX5541来实现,想先做出来看看结果。分辨率我可以理解,但是精度为什么很难实现?这个还是有点疑惑?感谢大牛!

redroof 发表于 2013-4-27 13:42:56

marshallemon 发表于 2013-4-27 12:50 static/image/common/back.gif
恩,做成闭环当然是最妥当不过了,再能加上内部校准(自带传递测量)哪就更好了,例如FLUKE的高位万用表校 ...

呵呵,就是啊
所以我才说要他做成闭环的,靠一个精确的AD反馈。
现在的24位SigmaDelta AD完全是白菜价,稳定到18-19位的线性还是轻轻松松的。
这样PWM只要分辨率和噪声够了就行,温漂和长稳完全靠AD实时校正就行了。

要是找个直接达到这种精度的DA,我真不知道是什么价格了。

至于您说用两路PWM合成,我不明白这是什么意思。。。
是把一个PWM的值缩小若干倍,然后跟第二个PWM做加法,以此来降低PWM的位数吗?
这样会确实会加快稳定速度,但代价是校准计算复杂了很多(例如,你发现需要增加30个输出LSB,那么应该把高位PWM加几,低位PWM加几?)

marshallemon 发表于 2013-4-27 13:53:45

redroof 发表于 2013-4-27 13:42 static/image/common/back.gif
呵呵,就是啊
所以我才说要他做成闭环的,靠一个精确的AD反馈。
现在的24位SigmaDelta AD完全是白菜价, ...

的确是这样的,输出两路PWM,一路是大信号,一路做小信号,然后合成,FLUKE的高位的万用表校准仪也是使用的PWM做的da,输出频率大概在80HZ左右,我用MCU的硬件PWM做到16bit的频率为122hZ,现在的分辨率是31.25uV,倘若我想再提高分辨率,外围的信号切换速度就不得不考虑了,能满足较高的切换速度的管子比较难找,所以如果采用两路合成这样对这个管子的要求就低了许多。

最好的闭环+自校准,这样年稳也有保障

marshallemon 发表于 2013-4-27 14:00:22

kpzclxtx 发表于 2013-4-27 13:39 static/image/common/back.gif
感谢,现阶段是想用16位的MAX5541来实现,想先做出来看看结果。分辨率我可以理解,但是精度为什么很难实 ...

所谓的精度你可以这样理解,对于AD来说接入的是标准的2.000V,AD运算出来的就是2.000V,精度要受到年稳的制约,例如你的万用表年稳是300ppm,也就是一年变化300/1000000,你刚校准玩时测试2V的标准电压是2.000000,结果一年后再测标准2V成了2.000600V了

kpzclxtx 发表于 2013-4-27 14:13:56

marshallemon 发表于 2013-4-27 14:00 static/image/common/back.gif
所谓的精度你可以这样理解,对于AD来说接入的是标准的2.000V,AD运算出来的就是2.000V,精度要受到年稳的 ...

理解了,,感谢大牛

kpzclxtx 发表于 2013-4-27 14:58:11

bbssilverkey 发表于 2013-4-22 14:49 static/image/common/back.gif
我觉得处理好基准电压才是难事

感谢,不知道大牛2.5v的基准电压是用什么芯片?本来想用TL431,但看有人说这个不稳呢?

kyan3886 发表于 2013-4-27 16:34:36

xujihu 发表于 2013-4-26 19:43 static/image/common/back.gif
51单片机没有16位的AD吧好像也就10位的最高

增强型的有,c8051f 系列的有24bit的,精度嘛....

marshallemon 发表于 2013-5-1 08:26:55

kpzclxtx 发表于 2013-4-27 14:58 static/image/common/back.gif
感谢,不知道大牛2.5v的基准电压是用什么芯片?本来想用TL431,但看有人说这个不稳呢? ...

基准的选用这个种类很多,如果你做的只是可以提供大功率的电源则对这个基准要求并不高,TL431即可,如果要求再稍高一些可以选择LM385.我做的并不是功率电源,而是参考电源,输出功率很小,输出电流最大只有10mA,电压基准用的REF5020I.

kpzclxtx 发表于 2013-5-1 14:50:19

marshallemon 发表于 2013-5-1 08:26 static/image/common/back.gif
基准的选用这个种类很多,如果你做的只是可以提供大功率的电源则对这个基准要求并不高,TL431即可,如果 ...

感谢,最终选择了REF192,也只是作为电压基准非功率器件。还有一个问题就是,如果我希望系统断电后重启DA输出仍旧是上一次设定的输出,应该怎么实现?

marshallemon 发表于 2013-5-1 20:54:44

kpzclxtx 发表于 2013-5-1 14:50 static/image/common/back.gif
感谢,最终选择了REF192,也只是作为电压基准非功率器件。还有一个问题就是,如果我希望系统断电后重启DA ...

使用外置的E2PROM或FLASH,或使用MCU内部的IAP写FLASH记录当前的输出HEX值,上电后读取这个HEX值输出

kpzclxtx 发表于 2013-5-1 22:15:57

marshallemon 发表于 2013-5-1 20:54 static/image/common/back.gif
使用外置的E2PROM或FLASH,或使用MCU内部的IAP写FLASH记录当前的输出HEX值,上电后读取这个HEX值输出 ...

真心感谢,准备使用AT24C01、、、、

liangjiatian 发表于 2013-5-1 22:19:18

{:titter:}{:titter:}{:titter:}{:titter:}
页: [1]
查看完整版本: 求助:能否使用51单片机完成16位的AD或者DA应用?