打印

pic16f增强型单片机的IO口问题。

[复制链接]
5553|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hexenzhou|  楼主 | 2011-5-17 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新出来的16F增强型单片机的IO口和以前不一样了,如果不打开内部弱上拉,则无法输出高电平,为什么这样设计?还有ADC端口在打开内部弱上拉的情况下会读取到VCC的AD值,关闭弱上拉则ADC就正常了。增强型16F单片机这样设计感觉怪怪的。
沙发
yewuyi| | 2011-5-17 10:24 | 只看该作者
在1828的手册P124写:
每个PORTA 引脚都具有单独配置的内部弱上拉功能。
控制位WPUA<5:0> 用于使能或禁止每个上拉功能(见
寄存器12-7)。当端口引脚被配置为输出时,这些弱上
拉会自动关闭。上电复位时,通过OPTION 寄存器的
WPUEN 位禁止所有上拉。

使用特权

评论回复
板凳
hexenzhou|  楼主 | 2011-5-17 10:30 | 只看该作者
如果把IO设为输出,理论上弱上拉会自动关闭,但是如果这时把WPUEN位设为1关闭弱上拉功能,则IO口无法输出高电平,只有把WPUEN设为0打开弱上拉功能才能输出高电平。这是为什么?

使用特权

评论回复
地板
yewuyi| | 2011-5-17 10:31 | 只看该作者
至于ADC,我查手册没有找到带ADC部分的IO结构图,所以无法确定,但估计,应该确实如此,我个人认为这样可以并不影响你的使用,除非你外部信号源的阻抗超级巨大,否则至少可以帮助你在外部信号源未正确接入时将ADC钳位到一个确定的电平上。

另外,经过查询新老型号的相关手册,在这点上并无什么区别,老的型号应该也是如此。

使用特权

评论回复
5
hexenzhou|  楼主 | 2011-5-17 10:32 | 只看该作者
不仅是IO口有这个问题,还有PWM输出也有这个问题,如果不打开弱上拉功能,则PWM也没有输出。

使用特权

评论回复
6
yewuyi| | 2011-5-17 10:36 | 只看该作者
如果把IO设为输出,理论上弱上拉会自动关闭,但是如果这时把WPUEN位设为1关闭弱上拉功能,则IO口无法输出高电平,只有把WPUEN设为0打开弱上拉功能才能输出高电平。这是为什么? ...
hexenzhou 发表于 2011-5-17 10:30


未遇到这个限制,至少我使用PIC16F1828、PIC16F193X等型号时,我都是讲WPUEN设置为1直接关闭了所有的弱上拉,但没遇到不能输出高电平的现象。

PS:MCLR脚除外

我某个产品中的一段初始化如下:

void                 InitCPU(void)
{
OSCCON=0b01111010;    //INTOSC 16MHZ
if(!HFIOFR){Nop();}
OPTION_REG=0b10000101;//TIME0=Fosc/64
INTCON=0b00000000;
PORTB=0x00;
PORTA=0x00;
TRISB=0x00;
TRISA=0b11001011;
}

使用特权

评论回复
7
yewuyi| | 2011-5-17 10:38 | 只看该作者
不仅是IO口有这个问题,还有PWM输出也有这个问题,如果不打开弱上拉功能,则PWM也没有输出。
hexenzhou 发表于 2011-5-17 10:32


增强型PIC16中的PWM,我尚未实际测试过,但IO口我已经实际使用多次,未遇到这个限制。

如果有这个限制的话,恐怕算是BUG了,估计可能性不大。

使用特权

评论回复
8
hexenzhou|  楼主 | 2011-5-17 16:57 | 只看该作者
谢谢版主的解答,经反复调试,是我自己硬件电路的问题,IO口和PWM弱上拉没有问题,就只是ADC有这个问题。新的增强型16F系列非常不错,推荐大家使用。

使用特权

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

本版积分规则

21

主题

339

帖子

1

粉丝