这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 又有问题,R8C/2B, 有关A/D 转换

共4条 1/1 1 跳转至

又有问题,R8C/2B, 有关A/D 转换

菜鸟
2008-06-12 16:14:41     打赏

小弟在使用R8C/2B的芯片做到A/D转换的时候,又被卡住了。
有碰上过相同情况吗?提供个经验,谢谢啊
大概的情况:
Vref连接供电电源,3.3V
选择AN9(p1_1) 作输入电压,是经过电池连接两个电阻到地1/2分压过来。
电池电压大概3.8V,分压处大概是1.9V。这个1.9V是在AN9 没有连接的时候
读的,跟预想的一样
硬件连接上AN9 之后,有几种情况
1.AN9 处的电压被拉高,接近Vref的值,10BIT精度读出来1012。
   这种情况具体是什么配置造成的还不是很清楚,是把A/D转换集成到整个程序中发现的

2.AN9的电压被拉低,电压低到0.5V左右,读出来的值在175左右。
   下面的程序配置
3.电压会被拉低到0,读出来的值只有0或者1。
跟情况2差不多的配置,差别在Sfr配置的时候将pd1_2设置成1


相关源码:
void ADconvert_Sfr_init()
{
 
 pd1_1=0;
 #if 1 
 
 //adgsel0=1;  //选择AN8~AN11
 adcon0=0x05;  //引脚AN9,单次模式,选择f4

 adcon1=0x28;  //连接Vref。10位精度
 //adcon1=0x20;//8bit

 adcon2=0x09;
 
 
 adic=0x00;  //中断禁止
 #else
  #endif
 
}

UINT16 ReadBatt(void)
{
 UINT16 batt;
 UINT8 i;
 pu02=0;  
 pd1=0x00;//如果没有句,就会变成情况3
 ADconvert_Sfr_init(); 
 for(i=0;i<20;i++)
 {
  asm("NOP");
 }
 
 adst=1;
 while(adst==1);
 
 batt=(ad0&0x03ff); 
 //pu02=1;
 return batt;
 
}




关键词: 有问题     有关     转换    

菜鸟
2008-06-13 17:19:55     打赏
2楼

谢谢Drive78
今天检查了下,发现AN9连接采样电压的话,即使不给MCU复位,电压也会被拉低,
这样子怀疑跟芯片引脚内部电路有关,然后试了AN6这个引脚,发现正常的,
现在就用AN6吧


菜鸟
2008-06-30 17:57:36     打赏
3楼
 谢谢renesasstk,
现在板子已经不在我手上,不过下个项目也还是用的瑞萨的芯片,还可以继续看看.

之前我考虑的情况是这样
1.因为相同的外部电路在AN6 上可以正常,那我觉得不应该是电阻太大的问题, 
如果电阻太大我需要调节电阻的话,这样子我觉得应用起来会非常不方便.
2.短路的问题,也考虑过, 之前这个AN9是做输出使用的,可以正常拉高的,

现在更多的原因可能真的是软件配置的问题.下一个板子再仔细查查.



菜鸟
2008-07-31 16:15:14     打赏
4楼

renesaschina
     你的代码和我最上面的代码并没有区别啊,
还有一个adgsel0是寄存器ADCON2的bit3,我设置ADCON2=0x09,这样
adgsel0已经被置位了。
我用的芯片是R8C /2B系列的,我手头上的资料 rcj09b0048_r8c2a2bhm.pdf
因为你的观点和renesasstk一样的。


还有个问题

我先前使用的编译器是试用版的,现在过期了,我要继续使用的话是不是要买一个许可了?
或者有办法继续使用吗?


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]