10229|14

8

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

Mega8 IO口高电平输出1.5V左右,低电平输出0.3V左右,求大家一起讨论 [复制链接]

本帖最后由 huanjun123 于 2014-11-6 15:19 编辑

自己做了一个基于mega8的最小系统,在测试的时候,出现了 IO口高电平输出1.5V左右,低电平输出0.3V左右的问题,这样应该不正常吧,麻烦大家帮忙一起看下。原理图在附件中,就是一个复位电路,供电5V,没有问题,已经测过。程序如下所示,就是简单的将PB0-PB2置为高电平。#include
#include
void main(void)
{
    DDRB|=(1<<0)|(1<<1)|(1<<2);
    PORTB|=(1<<0)|(1<<1)|(1<<2);
}
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\296603098\QQ\WinTemp\RichOle\L(]2BYBQILUG5SN4XY133]F.jpgfile:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\296603098\QQ\WinTemp\RichOle\L(]2BYBQILUG5SN4XY133]F.jpg
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\296603098\QQ\WinTemp\RichOle\L(]2BYBQILUG5SN4XY133]F.jpg

基于以上问题我做了以下几个方面的测试:


1、刚开始考虑,可能是硬件的问题,将该程序,没有任何改动,头文件都没有改,直接下载到我的mega16(直插)的开发板中,结果正常,管脚高电平为5V左右
2、给mega8下载程序,我自己做了一个10针转6针的转接板,考虑,可能是转接板有问题,于是我就从网上买了一个mega8的核心板,将下载器直接接到mega8核心板上,下载完程序,发现问题依然存在, IO口高电平输出1.5V左右,低电平输出0.3V,程序确实应该已经下进去了,当改变输出高电平的管脚时,核心板就会做出相应的反映。注:下载软件用的是PROGISP,熔丝位全部是默认,没有改动,mega16熔丝位默认是完全可以工作的。
3、在网上搜了mega8管脚的程序,也看了手册上管脚拉高的程序,和我写的一样,实在不知道问题,出在哪个地方了?

4、我又针对开发板做了一些实验,当把管脚设为输出高电平,实际用万用表测电压为1.5V,当外接上拉电阻时,测电压为5V,当把管脚设为输出低电平,外接上拉电阻,测电压为4V左右,当把管脚设为输入,并且使能上拉电阻,测管脚电压为1.5V(难道高电平就认为是1.5V?理论应该至少是0.6VCC啊)。


求大神帮忙分析下,这是正常么?单片机正常高电平应该至少是0.6VCC吧,我这就只有1.5V,已经困惑很久了,非常感谢。


更新1:
根据大家的意见,我又做了一下几个方面的测试:
1)用示波器测试了mega8管脚高电平和mega16管脚的高电平,发现,两者的波形是完全一样的,都是正弦波,如下图,只不过mega8管脚高电平波形有点不稳定,有毛刺,波形一样,为什么用万用表测两者的有效值不一样呢?mega8还是不正常为1.5左右,mega16就是正常的5V左右。求大神一起探讨一下啊。
2)我又分别用mega8和mega16的高电平驱动同样的LED,发现不一样的现象,觉得问题可能就出在这,mega8高电平驱动时,LED就会闪烁,用mega16驱动LED时,LED就正常亮,相同的程序,以前从来没有遇到过,这是因为mega8驱动能力不足造成的么?根据手册mega8高电平输出时,有20mA的电流输出,驱动LED肯定够用了啊,求大神谈论。
3)有回复的朋友提到,熔丝位的设置问题,我已经上传图片,基本就是mega8默认的,没有改动,大家看看有没有问题,非常感谢。

L(]2BYBQILUG5SN4XY133]F.jpg (34.34 KB, 下载次数: 0)

L(]2BYBQILUG5SN4XY133]F.jpg

mega8管脚.jpg (810.32 KB, 下载次数: 0)

mega8管脚.jpg

mega8熔丝位.jpg (2.36 MB, 下载次数: 0)

mega8熔丝位.jpg

mega16管脚.jpg (859.34 KB, 下载次数: 0)

mega16管脚.jpg

最新回复

Mega8 IO口高电平输出1.5V左右,低电平输出0.3V左右,你怎么解决的啊?   详情 回复 发表于 2016-11-28 23:36
点赞 关注
 

回复
举报

1万

帖子

139

TA的资源

版主

沙发
 
楼主测试出的管脚电压是在脉冲态下的,你用示波器看看便知。这说明程序没有正常工作,供电和程序确实没问题的话,重点检查复位、本振电路和程序固化操作。

点评

你好,根据您的意见,我又用万用表和LED做了一些测试,问题已经更新了,麻烦您看一下,一起讨论下,非常感谢  详情 回复 发表于 2014-11-6 15:24
我用示波器测一下啊,我有个mega16的开发板,也是用万用表测的,管脚高电平就是5V,应该不是这个原因,我自己做的mega8最小系统和网上买的mega8最小系统,测管脚高电平电压都是1.5V,一模一样,硬件电路应该没有问题  详情 回复 发表于 2014-11-5 18:44
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
chunyang 发表于 2014-11-5 18:29
楼主测试出的管脚电压是在脉冲态下的,你用示波器看看便知。这说明程序没有正常工作,供电和程序确实没问题 ...

我用示波器测一下啊,我有个mega16的开发板,也是用万用表测的,管脚高电平就是5V,应该不是这个原因,我自己做的mega8最小系统和网上买的mega8最小系统,测管脚高电平电压都是1.5V,一模一样,硬件电路应该没有问题。
 
 
 

回复

1万

帖子

24

TA的资源

版主

4
 
换几个IO试试,如果还是这个现象,说明和IO无关,看看输出有没有短路。

点评

所有的IO口都这样,短路?输出的IO口没有外接任何负载,直接测的管脚,并且给某个管脚写高电平,相应的管脚的电压确实会变高,只不过是1.5V而已。  详情 回复 发表于 2014-11-5 20:46
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

5
 
dcexpert 发表于 2014-11-5 20:31
换几个IO试试,如果还是这个现象,说明和IO无关,看看输出有没有短路。

所有的IO口都这样,短路?输出的IO口没有外接任何负载,直接测的管脚,并且给某个管脚写高电平,相应的管脚的电压确实会变高,只不过是1.5V而已。
 
 
 

回复

1万

帖子

24

TA的资源

版主

6
 
所有IO都这样,看起来是芯片没有正常工作啊。

1.确定一下电源没有问题
2.检查看门狗
3.检查BOD设置
4.检查复位电路的电容

点评

1、5V供电没问题,我直接把供电模块给卸了下来,采用稳压电源供电,还是一样。 2、关于看门狗和BOD我再看一下,这些都是默认的,没有改动 3、复位电容本来是0.1uF,怀疑可能是电容太小,芯片没有正常复位,换了10  详情 回复 发表于 2014-11-6 09:44
 
 
 

回复

218

帖子

0

TA的资源

一粒金砂(高级)

7
 
端口方向设置对了吗

点评

程序如下: DDRB|=(1  详情 回复 发表于 2014-11-6 09:46
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

8
 
dcexpert 发表于 2014-11-5 21:30
所有IO都这样,看起来是芯片没有正常工作啊。

1.确定一下电源没有问题

1、5V供电没问题,我直接把供电模块给卸了下来,采用稳压电源供电,还是一样。
2、关于看门狗和BOD我再看一下,这些都是默认的,没有改动
3、复位电容本来是0.1uF,怀疑可能是电容太小,芯片没有正常复位,换了10uF的电容,结果还是一样,重点是从网上直接买的核心板,电路应该没有问题,管脚高电平也是1.5V。
谢谢回复

点评

因为AVR芯片,特别是mega8是比较早的芯片了,因此不一定是全新的,芯片中fuse的默认值不一定是出厂的默认值,所以一定要仔细检查一下。  详情 回复 发表于 2014-11-6 09:48
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

9
 
digitaltek 发表于 2014-11-6 08:48
端口方向设置对了吗

程序如下:
DDRB|=(1<<0)|(1<<1)|(1<<2);
PORTB|=(1<<0)|(1<<1)|(1<<2);
第一句就是设置端口方向,第二句就是设置输出电平高低
 
 
 

回复

1万

帖子

24

TA的资源

版主

10
 
huanjun123 发表于 2014-11-6 09:44
1、5V供电没问题,我直接把供电模块给卸了下来,采用稳压电源供电,还是一样。
2、关于看门狗和BOD我再 ...

因为AVR芯片,特别是mega8是比较早的芯片了,因此不一定是全新的,芯片中fuse的默认值不一定是出厂的默认值,所以一定要仔细检查一下。

点评

熔丝位的图片我已经上传,您看一下,应该没问题,BOD和看门狗基本保持默认,即:使能BOD功能(供电电压低于2.7V,复位),禁止看门狗工作,根据大家的意见,我又做了一些测试,已经更新了,麻烦您看一下,非常感谢。  详情 回复 发表于 2014-11-6 15:23
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

11
 
dcexpert 发表于 2014-11-6 09:48
因为AVR芯片,特别是mega8是比较早的芯片了,因此不一定是全新的,芯片中fuse的默认值不一定是出厂的默认 ...

熔丝位的图片我已经上传,您看一下,应该没问题,BOD和看门狗基本保持默认,即:使能BOD功能(供电电压低于2.7V,复位),禁止看门狗工作,根据大家的意见,我又做了一些测试,已经更新了,麻烦您看一下,非常感谢。
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

12
 
chunyang 发表于 2014-11-5 18:29
楼主测试出的管脚电压是在脉冲态下的,你用示波器看看便知。这说明程序没有正常工作,供电和程序确实没问题 ...

你好,根据您的意见,我又用万用表和LED做了一些测试,问题已经更新了,麻烦您看一下,一起讨论下,非常感谢
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

13
 
根据大家的意见,我又用万用表和LED做了一些测试,问题已经更新了,麻烦大家看一下,一起讨论下,非常感谢

点评

你的看门狗在熔丝位中设置了,如果程序不喂狗就会自动复位。 看时钟波形,的确很差,这样系统一般不太稳定。如果是外部时钟,检查一下晶体上的两个电容是不是有虚焊了。  详情 回复 发表于 2014-11-6 20:40
 
 
 

回复

1万

帖子

24

TA的资源

版主

14
 
huanjun123 发表于 2014-11-6 15:25
根据大家的意见,我又用万用表和LED做了一些测试,问题已经更新了,麻烦大家看一下,一起讨论下,非常感谢

你的看门狗在熔丝位中设置了,如果程序不喂狗就会自动复位。
看时钟波形,的确很差,这样系统一般不太稳定。如果是外部时钟,检查一下晶体上的两个电容是不是有虚焊了。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

15
 
Mega8 IO口高电平输出1.5V左右,低电平输出0.3V左右,你怎么解决的啊?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表