请教ZLG公司及各位高手:我使用LPC2214,遇到以下问题,有相同经历的同志请指点:<br />硬件部分:<br /> 使用第20脚(P2.31)作为ADC5,输入的地方仅仅加入下拉电阻(4.7K);无其它电路,仅仅供测试使用。<br />软件部分:<br />ADC代码初始化:<br /> ADCR = (1 << 0) | // SEL = 1 ,选择通道0<br /> ((Fpclk / 1000000 - 1) << 8) | // CLKDIV = Fpclk / 1000000 - 1 ,即转换时钟为1MHz<br /> (0 << 16) | // BURST = 0 ,软件控制转换操作<br /> (0 << 17) | // CLKS = 0 ,使用11clock转换<br /> (1 << 21) | // PDN = 1 , 正常工作模式(非掉电转换模式)<br /> (0 << 22) | // TEST1:0 = 00 ,正常工作模式(非测试模式)<br /> (1 << 24) | // START = 1 ,直接启动ADC转换<br /> (0 << 27); // EDGE = 0 (CAP/MAT引脚下降沿触发ADC转换)<br /> DelayNS(10); <br /> uiADCData = ADDR; // 读取ADC结果,并清除DONE标志位<br /><br />使用ADC5(第20脚,P2.31):<br />(1).ADCR = (ADCR&0x00FFFF00) | (1 << 5) | (1 << 24); // 设置通道1,并进行第一次转换<br /> while( (ADDR&0x80000000)==0 ); // 等待转换结束<br /> ADCR = ADCR | (1 << 24); // 再次启运转换<br /> while( (ADDR&0x80000000)==0 ); // 等待转换结束<br /><br />问题和现象:代码执行(1)(即:选通第20脚接ADC)后,第20脚有0.2V电压输出。一旦使用<br />其它管脚作为ADC时,第20脚电压变为0V。这样,直接导致0--0.2V不可测量。(所有的ADC脚都一样)<br /><br />请教:我的ADC使用方法是否有误?谢谢!<br />芯片资料:<br />NXP<br />LPC2214FBD144<br />/00<br />CH5159 10<br />TSG0728B |
|