打印

关于PIC单片机的AD转换的管脚配置

[复制链接]
10375|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bpwater|  楼主 | 2010-8-18 07:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我把一个管脚配置为模拟输入,采样AD值。
与这个管脚对应的方向寄存器的相应位,是否需要设置为输入,即设置为1.
沙发
yewuyi| | 2010-8-18 09:56 | 只看该作者

使用特权

评论回复
板凳
bpwater|  楼主 | 2010-8-18 10:26 | 只看该作者
PIC的技术支持说,管脚配置为模拟脚后,管脚的方向寄存器不用配置。

下面是他的回答:
先通过ADCON1选择是“模拟输入”或者“数字IO”。
如果作为“数字IO”,则再通过TRIS寄存器设置输入或输出。
如果作为“模拟输入”,则无需配置TRIS寄存器。

使用特权

评论回复
地板
yewuyi| | 2010-8-18 10:40 | 只看该作者
PIC的技术支持说,管脚配置为模拟脚后,管脚的方向寄存器不用配置。

下面是他的回答:
先通过ADCON1选择是“模拟输入”或者“数字IO”。
如果作为“数字IO”,则再通过TRIS寄存器设置输入或输出。
如果作为“模拟输 ...
bpwater 发表于 2010-8-18 10:26


不知道是哪家的FAE说的?!

请按照我说的把它设置为输入脚,请勿轻易设置为输出,只有在一些特殊应用中出于一些特殊目的并且有正确的电气连接时,才可能会把它设置为输出,正常使用中必须设置为输入,否则,轻则造成AD转换不准,重则造成MCU的IO烧毁。

你可以看看有关IO口的等效电路结构就知道了。

使用特权

评论回复
5
bpwater|  楼主 | 2010-8-18 17:39 | 只看该作者
我这个电路就是要输入和输出分时使用,检测电容的放电来延时的。

逻辑是:
设置为DO输出,输出2秒低电平,给电容放电,管脚和电容之间串了大电阻的。
设置为模拟输入,检测电容的电平值。

就这样反复切换,直到电容的电平放电到一定数值之后,才结束切换。

试验下来,我发现AD采样的值不准。

叶大侠,有没有什么好办法?

使用特权

评论回复
6
headwolf_83| | 2010-8-18 19:37 | 只看该作者
逻辑上是输入,比如AD,按键,不管其他寄存器怎么设置,方向位要符合逻辑。

使用特权

评论回复
7
headwolf_83| | 2010-8-18 19:38 | 只看该作者
退一万步,就算芯片真的做成模拟口只需要设置为模拟,你多写个设置位输入,不是也没事情,而且不要天天去想这个芯片要不要设置,那个芯片要不要设置。

使用特权

评论回复
8
bpwater|  楼主 | 2010-8-18 19:51 | 只看该作者
作为模拟输入的时候,我的设置如下:
    TRIS2 = 1;
      ADCON1 = 0x02;
      ADCON0 = 0x91;
      ad_delay();
      GODONE = 1;
      ..........
作为数字输出的时候,设置如下
      ADON = 0;                   //停止AD转换
      ADCON1 = 0x04;         //GP3,GP4为数字I/O
         GP2 = 0;               //输出低电平
         TRIS2 = 0;              //设置为输出

方正就这样来回的倒腾,就感觉AD检测到的值不准。

使用特权

评论回复
9
yewuyi| | 2010-8-19 08:33 | 只看该作者
我这个电路就是要输入和输出分时使用,检测电容的放电来延时的。

逻辑是:
设置为DO输出,输出2秒低电平,给电容放电,管脚和电容之间串了大电阻的。
设置为模拟输入,检测电容的电平值。

就这样反复切换,直到电容 ...
bpwater 发表于 2010-8-18 17:39


从逻辑上讲,IO口不容许同时是AD输入,又作为PORT口输出电平值,但你这个是分时使用,是完全没有问题的。
配合简单和恰当的外部电路,使用合理的软件代码,可以很容易解决你的问题。
给你的建议:
在保证电路不出现异常状态的情况下,请仔细弄清有关AD转换方面的相关知识细节,例如转换时间,例如AD模块启动需要一定时间,例如AD的输入阻抗,例如AD的采样时间等等。

你这个应用可能的最大问题也许就是你那个大电阻可能远远超出了AD的输入阻抗要求,另外在AD采保电容充电的过程中也许损失你外部电容中的电量。

使用特权

评论回复
10
bpwater|  楼主 | 2010-8-19 10:05 | 只看该作者
电路如下

使用特权

评论回复
11
yewuyi| | 2010-8-19 12:27 | 只看该作者
R6已经远远超出了AD的输入阻抗要求

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://bpwater.cublog.cn

0

主题

86

帖子

1

粉丝