Board logo

标题: mc9s12xdp512 的16通道AD转换问题[求助] [打印本页]

作者: mmengzhao    时间: 2008-3-18 10:20     标题: mc9s12xdp512 的16通道AD转换问题[求助]

//BUS CLK = 50MHz
////////////////////////////////////////////
ATD1CTL0 = 0x00;
ATD1CTL2 = 0xC0; //AD模块上电, 快速清零, 无等待模式, 禁止外部触发, 中断禁止
ATD1CTL3 = 0x00; //16通道连续转换,不使用FIFO
ATD1CTL4 = 0x2C; //10bit, sample time is 4ATD, clock cycles/ Fadclk=Fbus/(2*(PRS+1))=1.923Mhz
ATD1TEST1= 0;
ATD1DIEN = 0;//禁止数字输入
ATD1CTL5 = 0xb0; //多通道连续转换,无符号.

//////////////////////////////////////////////////////
if(ATD1STAT1_CCF0)
uADValue[0] = ATD1DR0;
if(ATD1STAT1_CCF1)
uADValue[1] = ATD1DR1;
if(ATD1STAT1_CCF2)
uADValue[2] = ATD1DR2;
if(ATD1STAT1_CCF3)
uADValue[3] = ATD1DR3;
if(ATD1STAT1_CCF4)
uADValue[4] = ATD1DR4;
if(ATD1STAT1_CCF5)
uADValue[5] = ATD1DR5;
if(ATD1STAT1_CCF6)
uADValue[6] = ATD1DR6;
if(ATD1STAT1_CCF7)
uADValue[7] = ATD1DR7;

if(ATD1STAT2_CCF8)
uADValue[8] = ATD1DR8;
if(ATD1STAT2_CCF9)
uADValue[9] = ATD1DR9;
if(ATD1STAT2_CCF10)
uADValue[10] = ATD1DR10;
if(ATD1STAT2_CCF11)
uADValue[11] = ATD1DR11;
if(ATD1STAT2_CCF12)
uADValue[12] = ATD1DR12;
if(ATD1STAT2_CCF13)
uADValue[13] = ATD1DR13;
if(ATD1STAT2_CCF14)
uADValue[14] = ATD1DR14;
if(ATD1STAT2_CCF15)
uADValue[15] = ATD1DR15;
////////////////////////////////////////////////////

问题: 16个通道连续采样,从通道0开始,转换结果寄存器读到的AD值为同一值,而实际输入电压大小不同,当ATD1CTL5 = 0xb1,从通道1或者其它通道开始采样时,转换结果寄存器读到的AD值会为不同值,但是对应转换结果寄存器得到的值不是对应通道的值,其中有些采样值和任何一输入电压都不符合

请斑竹看看,调了几天了都找不出原因。


作者: strongchen    时间: 2008-3-18 11:35

你的参考电压引脚连接好了吗?电平是多少?
作者: mmengzhao    时间: 2008-3-18 14:15

参考电源连接了,VDDA,VRH 为5V,VSSA,VRL为0。
斑竹能提供例子程序吗,实在不知问题出在哪里
作者: strongchen    时间: 2008-3-18 17:04

把你的整个PROJECT打包贴出来看看吧。
作者: mmengzhao    时间: 2008-3-18 17:33

整个工程文件在里面了,斑竹能用开发板调试下吗
作者: strongchen    时间: 2008-3-19 10:02

工程文件并没有上传。
作者: mmengzhao    时间: 2008-3-19 13:30

已经上传了,斑竹有邮箱吗,我传到邮箱
作者: strongchen    时间: 2008-3-19 13:52

请用贴子下部的快速回复窗口上传附件。
作者: mmengzhao    时间: 2008-3-20 10:47

用了贴子下部的快速回复窗口上传附件,却上传不了
作者: mmengzhao    时间: 2008-3-20 10:49

[upload=image/bmp]uploadImages/1.bmp[/upload]
作者: mmengzhao    时间: 2008-3-20 10:50

http://bbs.chinaecnet.com/uploadImages/16 ATD.rar
作者: mmengzhao    时间: 2008-3-20 10:55

传上来了,请斑竹看看.
mc9sxdp512为什么要用两个ATD模块,一个为采集8个通道模块,一个为采集16个通道模块,要采集0-16个通道,象mc9sxep100一样直接用一个采集16个通道的模块不就行了吗?
作者: strongchen    时间: 2008-3-20 11:08

上传文件名中不能有空格,也不能有中文,否则无法链接。
作者: 康桥人    时间: 2008-3-20 11:26

strongchen 真热心,顶一个,
作者: mmengzhao    时间: 2008-3-20 15:45

http://bbs.chinaecnet.com/uploadImages/16ATD.rar

谢谢斑竹的耐心帮助!
作者: 伊独侠客    时间: 2008-3-20 22:32

我也曾经碰到过这种情况!
最后是由于开发板与要进行AD转换的电阻两端电压没有共地!(我是对一个可变电阻进行AD转换的实验)
作者: mmengzhao    时间: 2008-3-21 12:06

斑竹 收到工程了吗 ?
作者: TristoneGao    时间: 2008-3-21 17:13

有以下两点,请检查:
1) 您使用的是freescale的S12XDT512的demo板吗?如果是,则请注意:
demo板上的是80Pin的MCU,只有ATD0的8通道,没有ATD1,而您使用的是ATD1;
2) S12XDT512的主频最高只能设为40M;S12XEP100才支持50M。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0