TM1650芯片驱动共阴极数码管问题:位之间干扰
本帖最后由 ycwjl728 于 2016-1-18 23:22 编辑后来编辑:问题已经锁定,详见8楼。
故障现象:不论是送0x00还是0xFF,数码管的C和小数点总是常亮,也就是a,f,e,d,和dp段总是常亮。
感觉TM1650驱动数码管挺简单的,没想到遇到问题了。。
单片机是ATmega16L,系统3.3V供电,两个IO模拟I2C,程序是某宝上买数码管模块的发的资料,号称亲测有效,我看好像也没啥问题,直接拿来用的。开显示和关显示的命令是好使。
原理图:
数码管型号:LDS-5202FX,力创商城买的,单片机也是。
数码管是共阳极的,数据手册上写的是共阴极例子,有关系吗?
哪位大神遇到过这种情况吗?
附上程序,为了简便我都压缩到一个函数里面了。
void TM1650Full(uchar addr1,uchar data1)
{
uchar i,t;
DIO_OUT;
CLK_OUT;
CLK_H;
DIO_H;
Delay_us(5);
DIO_L;
Delay_us(5);
CLK_L;
Delay_us(5);
for(i=0;i<8;i++)
{
t= addr1 & 0x80;
addr1 = addr1<<1;
if(t == 0x80)
{
DIO_H;
}
else
{
DIO_L;
}
Delay_us(5);
CLK_H;
Delay_us(5);
CLK_L;
}
DIO_IN;
DIO_H;
while((PINC&(1<<PC1)==(1<<PC1)));
CLK_H;
Delay_us(5);
CLK_L;
Delay_us(5);
DIO_OUT;
Delay_us(5);
for(i=0;i<8;i++)
{
t= data1 & 0x80;
data1 = data1<<1;
if(t == 0x80)
{
DIO_H;
}
else
{
DIO_L;
}
Delay_us(5);
CLK_H;
Delay_us(5);
CLK_L;
}
DIO_IN;
DIO_H;
while((PINC&(1<<PC1)==(1<<PC1)));
CLK_H;
Delay_us(5);
CLK_L;
Delay_us(5);
DIO_OUT;
Delay_us(5);
CLK_H;
Delay_us(5);
DIO_H;
Delay_us(5);
}
数码管的管脚是不是短路了? lisingch 发表于 2016-1-18 21:47
数码管的管脚是不是短路了?
看了您的回复,我用酒精棉擦了一下TM1650的管脚,现在变成8.8.全亮了...
这管脚间距挺大的啊。。。 现在变成8.8.全亮了,如果想显示一个1,那么就是1这两段比其他的更亮一点点。
晕。。。 拿示波器查看段码管脚电压
有可能是上拉电压不够,或者不能拉到地导致! 用共阴极的程序去驱动共阳极的数码管,能正常才怪。 特意下了数据手册,该芯片不支持共阳数码管 techbaby 发表于 2016-1-18 22:39
拿示波器查看段码管脚电压
有可能是上拉电压不够,或者不能拉到地导致! ...
现在问题已经基本锁定了:出在位选信号上。
详细描述:
如电路图所示,我只接了DIG1,DIG2,两位数码管,DIG3,DIG4两位我悬空的什么也没接。位选信号之间有干扰。
下图很能说明问题,我让第一位的a段亮,结果第一位的a段大亮,第二位的a段小亮。同理,让第二位的b段亮,则第二位b段大亮,第一位a段小亮。
如果让什么也没接的第三位或者第四位的某一段(比如c段)亮,则第一位和第二位的c段都会大亮。
怎么解决这个问题呢? luybpotter 发表于 2016-1-18 23:08
特意下了数据手册,该芯片不支持共阳数码管
说了吗?能否截图看看? KongQuan 发表于 2016-1-18 22:50
用共阴极的程序去驱动共阳极的数码管,能正常才怪。
大师,可否详解?
换数码管,根本就不是位选的问题 ycwjl728 发表于 2016-1-18 23:13
说了吗?能否截图看看?
你去下TM1640数据手册就清楚了,支持共阴或共阳2种接法的话,数据手册都会说明
还有你就2个数码管10个单片机口就能解决问题,用芯片驱动好奢侈{:lol:} ycwjl728 发表于 2016-1-18 23:16
大师,可否详解?
共阳极是公共极输出1, 段(a,b,c,d,e,f,g)输出0,对应的段点亮,共阴极相反。 KongQuan 发表于 2016-1-19 09:58
共阳极是公共极输出1, 段(a,b,c,d,e,f,g)输出0,对应的段点亮,共阴极相反。 ...
现在问题不是亮不亮的问题。可否麻烦看一下8楼? little_Monkey 发表于 2016-1-18 23:25
换数码管,根本就不是位选的问题
刚才我用万用表连了一下,数码管没问题啊。。。
是连哪位的哪段就哪段亮,没有另一位也跟着亮的问题。 ycwjl728 发表于 2016-1-19 11:01
现在问题不是亮不亮的问题。可否麻烦看一下8楼?
共阴驱动芯片接共阳数码管,不出问题才怪。不要去纠结了,换共阴数码管就搞定了,我用1650时也遇到过这种情况 winfuture 发表于 2016-1-19 11:27
共阴驱动芯片接共阳数码管,不出问题才怪。不要去纠结了,换共阴数码管就搞定了,我用1650时也遇到过这种 ...
OK,谢谢!我一会儿去买一个试试,数码管都焊上了,拆下来估计得挺麻烦。。。
1650的数据手册里面没写不能接共阳,楼上的网友让我看1640的数据手册,那里面写了段、位是开漏输出什么的。 luybpotter 发表于 2016-1-19 08:19
你去下TM1640数据手册就清楚了,支持共阴或共阳2种接法的话,数据手册都会说明
还有你就2个数码管10个 ...
谢谢提醒,1640的手册里面提到开漏输出的事,1650一个字也没说,无奈了。。
这个芯片1块钱,我换一个腿多的单片机肯定不止1块钱,还是合适的。 ycwjl728 发表于 2016-1-19 11:39
谢谢提醒,1640的手册里面提到开漏输出的事,1650一个字也没说,无奈了。。
这个芯片1块钱,我换一个腿多 ...
153便宜啊,你可以自己整个LED驱动芯片,只是驱动能力应该差一些影响亮度. ycwjl728 发表于 2016-1-19 11:37
OK,谢谢!我一会儿去买一个试试,数码管都焊上了,拆下来估计得挺麻烦。。。
1650的数据手册里面没写不 ...
看楼主那么纠结好辛苦,TM1650手册最后面的电路是共阴的;
好吧,它没说不能接共阳的;
那么,我测SIG1~4给你看;
ycwjl728 发表于 2016-1-19 11:37
OK,谢谢!我一会儿去买一个试试,数码管都焊上了,拆下来估计得挺麻烦。。。
1650的数据手册里面没写不 ...
基本上所有这类LED驱动芯片都可以接共阴、共阳,但是能达到什么样的效果就看你的需求了。
这个片子既然能驱动8段*4位的共阴数码管,自然就能驱动4段*8位的共阳数码管,这是毫无疑问的。
比如驱动RGB三色灯,则共阴共阳都是可以的。但是,只能显示4段的数码管有什么用途你就得自己考虑清楚了,万一真有这种需求呢。 楼主就别把标题改成位之间干扰了,TM1650芯片用着好得很,你数码管买错了而已 没有你出现的问题 122402902 发表于 2016-1-19 15:38
没有你出现的问题
你用TM1650驱动共阳极的数码管没有问题? takashiki 发表于 2016-1-19 15:06
基本上所有这类LED驱动芯片都可以接共阴、共阳,但是能达到什么样的效果就看你的需求了。
这个片子既然能 ...
楼上几位网友都说TM1650只能共阴,不能共阳。
刚才去市场买了几个共阴的,晚上回去试试,看看是不是这样。 little_Monkey 发表于 2016-1-19 15:28
楼主就别把标题改成位之间干扰了,TM1650芯片用着好得很,你数码管买错了而已 ...
如果是只能共阴的,那只能怪我不仔细揣摩TM1650的数据手册,没说可以共阳就是不能共阳。。。 xiaowu191 发表于 2016-1-19 14:31
看楼主那么纠结好辛苦,TM1650手册最后面的电路是共阴的;
好吧,它没说不能接共阳的;
那么,我测SIG1~4 ...
咋测的?逻辑分析仪? 得到结论了,换成共阴极的数码管就好了。
太坑了,不能用共阳的数据手册里面应该说一声,或者哪怕说一下驱动结构也行。一点提示也不给。。。 ycwjl728 发表于 2016-1-19 21:00
得到结论了,换成共阴极的数码管就好了。
太坑了,不能用共阳的数据手册里面应该说一声,或者哪怕说一下驱 ...
共阳只能用1651,规格书说的很清楚了,我也是打电话给技术支持才知道 谢谢楼主,刚也解决了我的问题,我没有用上拉电阻,受干扰严重,谢谢了 TM1650需要470uf的电容,不然电源上有很大的毛刺
页:
[1]