智能终端定制开发 ad
MTK/瑞芯微/高通-Android,智能模块/智能终端方案商

深度定制各类智能终端和智能硬件产品,提供硬件选型咨询、参考设计、元器件推荐、驱动开发、行业模块集成、操作系统定制与算法集成等软硬件定制服务。
contact.aspx

Android核心板产品覆盖2G、3G、4G通讯,双核、四核、八核CPU,可选的平台有MTK6580、MTK6737、MTK6750等,Android版本有5.1 6.0 7.0等。
contact.aspx

可广泛应用于低端智能POS、安防监控、车载设备、低端智能机器人、智能家居、智能硬件、工业智能手持设备、低端智能对讲设备、低端警务或执法设备、智能穿戴、贩卖机、物流柜、智能门禁系统等行业和设备。
contact.aspx

可提供以太网转串口透传,WIFI转串口透传,蓝牙转串口透传,CAN总线模拟量控制输出模块等。
contact.aspx

带3G或4G通讯功能,运行android系统,有多个串口,可以外挂各种模块:条码扫描、RFID、指纹识别、身份证识别、磁条卡、ID卡、GPS/北斗模块等。
contact.aspx

具有4G通讯功能,多个RS232或RS485接口,以太网接口,USB接口,CAN接口,多个AD输入。基于Android系统智能平台,方便APP应用开发。器件严格选型,运行稳定,质量可靠。
contact.aspx

一次错误检查的教训
[工程教训] 2008-08-07

http://www.ouravr.com/bbs/bbs_content_all.jsp?bbs_sn=606725

 

 

进现在的公司工作才刚刚1年半,以前虽然一直在这个行业做,但是都是做一些维修和售后之类的工作,而在这里因为经过熟人的介绍,做了开发——我最向往的工作。因为我自己本身的学历只有夜大的大专,年纪也早已过了而立之年,所以我非常珍惜这个机会,工作学习一直非常卖力。

这次是我进公司后第一次挑大梁,从硬件选型,到画SCH,PCB,乃至整个软件的编制都是我一个人独立完成,而且整个设计基本上可以说是非常成功的,填补了公司技术方面的很多个空白。

然而,就在今天,就在整个设计即将进行最后送检的样机试制时,我发现一直困扰我的LCD显示不均匀问题,原来不是出在LCD设计上,而是出在我选用的——ATMEGA169V!!!!!

因为在样机的研发过程中,LCD模块是同步进行开发设计的,之前有个厂商一共送过3批次的工程样片过来测试,但是在ATMEGA169V上测试都有笔画显示深浅不均的现象,因为对方是一个小厂,而ATMEGA169V是大厂的产品,所以在排除软件问题后,就想当然地以为是LCD没有设计好,直到今天,第二个供应厂商送来他们的样片,测试结果惊人地相似!我才意识到原来的判断有问题!经过仔细的对比和应用HT1621B驱动测试,最终确认问题在于我一直信任有加的——ATMEGA169V!!!!是它的驱动能力不够所致!我的LCD是段式扫描,面积大约40×100mm,19×4=76段。

第一次挑大梁眼看就要砸了,为了这个项目,我付出了太多太多,可是眼下的结局让我沮丧头顶!我心里真是不甘啊,欲苦无泪!

我想,事到如今,怨天尤人是没有任何用处的,辞职也许还能给自己留些许的尊严,总比从此被人冷落,然后被迫离开要好一些,反正颜面现在已经不重要了,重要的是今后,我要如何在这个行业里混?我很迷惘,也许现在我还不能下什么结论,做什么决定,只有等心情恢复平静之后。

所以我首要的任务是让自己恢复平静,然后仔细考虑自己的未来。但是眼下这一关如何去面对,如何去度过,我现在脑子里是一片混乱。

附部分和LCD驱动有关的子程序:

//--------------------------------------------
// LCD初始化,使用外部32768Hz异步时钟,51Hz帧频
//--------------------------------------------
void lcd_init( void )
{
        LCDCRA = 0x00;                        // 使用外部32768Hz异步时钟
        LCDCRB = 0xB3;                        // 1/3偏置(1/3:B3),1/4占空比,19条SEG
        LCDFRR = 0x04;
        LCDCCR = 8;
        LCDCRA = 0x80;                                        // 正常显示模式,非低功耗

                
/*        LCDCRA = 0x00;                                        // 使用内部主系统时钟1MHz
        LCDCRB = 0x33;
        LCDFRR = 0x44;
        LCDCCR = 0x80;
        LCDCRA = 0x80;                                        //*/
}

//----------------------------------------------------------
// I/O端口初始化※※※※※※※※※※※※※※※※※※※※※※※※
//----------------------------------------------------------
void port_init( void )
{
        PORTA = 0xFF;
        DDRA  = 0xFF;
        
        PORTB = 0x7f;
        DDRB  = 0xbe;
        
        PORTC = 0xFF;
        DDRC  = 0xFF;
        
        PORTD = 0xFF;
        DDRD  = 0xFF;
        
        PORTE = 0xFc;                                        // RS232的3条I/O
        DDRE  = 0x07;                                        // 设置为输出0
        
        DDRF  = 0x78;
        PORTF = 0x08;
        
        PORTG = 0xe7;                                        // PG3,PG4
        DDRG  = 0x1F;
}

//--------------------------------------------
// T2初始化,使用外部32768Hz异步时钟,1024预分频
// 1Hz中断秒信号,作软RTC※※※※※※※※※※※※
//--------------------------------------------
void timer2_init( void )
{
        TCCR2A = 0x00;                                         // 先停止T2
        ASSR = 0x08;                                         // 设置为异步模式
        TCNT2 = 0xE0;
        OCR2A = 0x20;
        TCCR2A = 0x07;                                         // 启动T2
}

 

 

 

 

 

今天上午ATMEL代理第一时间赶到公司,问题已经解决,在此鸣谢ATMEL代理:上海杰港电子的徐永华经理和钱晓晨工程师。

问题:我看的的DATASHEET是在OURAVR.COM下载的中文版,里边关于LCD对比度的设置寄存器有遗漏,请参见下图:

这个问题给我最深刻的教训有二:

1)不要盲目怀疑芯片,尤其是大厂的芯片;
2)不要盲目相信中文手册,以前因为自己E文太糗,所以喜欢中文版,这次差一点.....

再次感谢每一位回帖的朋友!

阿莫斑竹,请把这个帖子删除吧,低级错误没有必要继续了。

 

 

 

 

[工程教训添加评论 | 评论/阅读(0/1164)
相关文章
评论
昵称
主页
内容
递交


Copyright @ 我的开发笔记     2008 - 2017         粤ICP备19155526号-1