问题描述:
在调试一块LED控制板时发现在显示的内容上下行,根据显示内容应该是熄灭的LED灯却亮着,亮度比正常显示的LED灯低很多。
调试过程:
LED显示相关函数如下,LED屏为单色屏,1/16扫描,点阵个数2048
void LedSendByteProcess(U8 bXdata, U8 bYdata)
{
U8 bTemp;
for (bTemp = 0; bTemp < 8; bTemp ++)
{
if (((bXdata == 4)&&(bYdata == 2))||(bXdata == 8))
{
R1(0);
R2(0);
}
else
{
R1(1);
R2(1);
}
//R1(0);
//R2(0);
//G1(1);
//G2(1);
CLK(0);
CLK(1);
}
void LedFreshProcess(void)
{
U8 bTemp1, bTemp2;
for (bTemp1 = 0; bTemp1 < 16; bTemp1++)
{
STB(1);
STB(0);
LedLineChoiceProcess(bTemp1);
OE(0);
for (bTemp2 = 0; bTemp2 < 8; bTemp2++)
{
LedSendByteProcess(bTemp1, bTemp2);
}
OE(1);
}
OE(1);
DelayCountUs(500);
}
1.在调整LedFreshProcess函数中OE、STB、行选择的先后顺序后,发现结果还是一样。
2.拿了一块调试好的控制卡,用示波器进行波形比较,发现控制卡的OE引脚无信号输出,OE连接至LPC1114的P0.4引脚,P0.4脚的配置方式如下图
3.根据此方式配置引脚后仍无信号输出(原因未查!),将OE引脚与G2引脚相连,在程序中将OE引脚配置为P1.9,原理图如下:
用示波器测试发现OE引脚有信号输出,但是信号电压只有2.5V左右,电压正常应该是5V,再分析发现在此驱动芯片输出端短接2个端子会拉低信号电压,将P0.4到驱动芯片输入端的引脚断开后在测试发现电压电平为5V,连接至控制卡发现显示正常,没有再出现虚点。至此问题算是解决了。