奋斗吧,程序员——第五十一章 黑云压城城欲摧,甲光向日金鳞开

转眼到了年底,芯原的bit文件出来后,我们持续进行测试。

芯原是大公司,遇到问题习惯性怀疑是我们这里的操作有毛病,于是反复的对比试验和扯皮开始了。

“fpga发现接收数码相机fir信号出现帧错误,因为出现80ns脉冲?”

芯原立马说这个脉冲是错误的。

我只能给对方看datasheet上的冗余度,告诉他们这种情况是在容错范围内的。

同时在开发板上换上EG的芯片,抓到同样的80ns脉冲的情况,EG能识别的现象给他们看。

假如说我这里遇到问题需要求助的话——

“小叶:

上次提到的芯片有时侯发送会把整个bank发送出来的问题,产生原因我现在还没发现什么规律,最近又经常发现了,有时侯还会有没有发送出来的情况.

请给我一些寄存器配置方面的建议

我现在是这样配置的:

......

对方就会回答:

elber,你好!

从你下面所列出的寄存器配置来看,我觉得应该没有什么问题,所以我目前也没什么建议可以提供。

我个人感觉,这个问题应该跟芯片工作稳定性有关。你最好在出现这种情况的时候,确认一下配置是否正常。(比如相关寄存器是否被正确写入)

基本上很难指望对方能帮得上忙,一切都得靠自己。

这段时间经常要去上海出差,现场解决问题。

FPGA验证持续了月余,其实时间是比较紧的,如果这时候不把问题都测出来,等到流片下去,就是一大笔钱。

而有些问题,我们的确认,是有风险的。

比如说,信号的时钟不准导致的偏差,这里面有个冗余度的问题。

冗余度太大,会引起错的frame识别不出来, 冗余度太小,会识别不了正确的frame,这个是需要反复测试的.

这个问题又和数据有一定关系,假如那个字节里有0的话一般不会出问题,时钟会重新锁定,假如哪个字节里有连续的1的话,就有可能出问题。

协议上并没有规定冗余度,所以不好保证设置好的冗余度能支持所有手机,我们只能用手上所持有的手机试了。

所有的手机通过就认为Pass,当然,风险就来源于手机库里的手机太少,不像我以前的客户,sanyo财大气粗,库里有几百台手机。

FPGA结束后,去中芯国际流片,wafer的芯片又要进行测试。

这一测,又是一堆问题。

“芯片在附近有手机信号或者日光灯直射的时候出现大量frame error。而FPGA没有。

而中午光线较好时无这种现象。清晨和黄昏以及阴雨天是红外线最强的时间。”

芯原回复,“请提供详细对比试验的数据。”

测试这项工作枯燥而无趣,最关键的部分在于,从大量的数据中,提取出有用的信息,并总结出来。

好在芯片总算在2009年的春节前新鲜出炉了。

达真方面也如约发来正式邮件:

Dear Peter&Elber,

通知一聲,已接獲Foxconn通知,Sharp案正式開案,

請再幫忙確認貴公司module能支持:

IRDA/IRSS......

Sharp案已經正式kick off,第一階段要在3/4前完成Module的driver porting。

这是我们的第一个项目,我们俱是摩拳擦掌,准备大干一场。

进入第二阶段,联合调试阶段,开始了漫长的煎熬。

因为这次协议的提供方是台湾的另一家公司ACTISYS,我们无需提供协议,只需要根据对方的要求写好底层的API接口就可以。

ACTISYS也是一家大公司,是红外协会的会员,负责接口的工程师是印度人Suresh,特点是遇到问题就发很长很长的英文邮件,大体意思无非两类。

一、这个问题肯定是SP的问题。

二、明天是周末,本人绝对不加班,有问题周一再搞。

芯片提供方ITE是联阳科技,位于台湾新竹,也是一家大公司,他们的付总一口官腔,遇到问题也是往SP身上推。

这种多方合作的项目,有很多问题是很难定位的。

所以,这段时间,Sharp方的日本经理经常在电话会议里发飙,指名道姓要elber 出来解释。

在问题没弄清楚之前,我只得忍气吞声。

这段时间我发的邮件必须有理有力有节,既要提供证据,又要维护大公司的颜面,毕竟以后还要合作下去,撕破脸皮不好。

比如说有一次,台湾ACTISYS方面开始测试协议,我们提供的API发现不能用,数封邮件来回后没有解决问题,我只能出差到深圳,最后抓了波形,发现问题在ITE的spi驱动。

于是还得发邮件向ACT解释:

Dear Suresh,

Please update the attached file for testing the IrSS Driver.

It includes these file as follow:

sdk\src\spi\mmp_spi.c

dpf\irphy.c

dpf\irdrv.c

We find a problem in SPI API.......

有时候遇到的问题简直百口莫辩。

ACTISYS有个设备叫做IR9200的测试仪,类似压力测试的东西,用来测大量发送数据时的误码率,过红外认证,必须过这么个测试。

大体原理是测试仪对我们发一帧数据,我们必须回复一模一样的帧回去,如此往复。

结果,一开始用EG的芯片可以过测试,而用我们的芯片则不行。

仪器显示我们的芯片会产生CRC 错误。

这下人赃俱获,跑不了了吧。

刚获知这个消息的时候,我一度也怀疑是自己芯片的问题。

结果后来debug后发现问题在于上层调用API的方式,在上层加锁后解决此问题,不然回复数据的时候有时候延时太大。

ITE的人立刻跳出来反对。

“elber你不要捣浆糊,你说是我们调用的问题,如果仅仅是延时了,IR9200也不应该报CRC错误!”

“我的话还没说完,这里面其实是有两个问题,你那边的软件导致回复变慢,IR9200其实也有bug,我接下来会发邮件详细解释这个bug。”

——

Dear all,

In our test, we found that every time when the IR9200 show CRC error of the frame sended by DPF,there is a large silence time. That will result in a fail recorded by IR3200.The root cause has ......

如此一番折腾,沉冤得雪。

时间: 2024-10-16 09:13:48

奋斗吧,程序员——第五十一章 黑云压城城欲摧,甲光向日金鳞开的相关文章

【黑马程序员】甲光向日金鳞开

当春间二三月,轻随微微的吹拂着,不如隆冬神圣庄严,不如金秋给人以收获的喜悦,然而,它却承载着别有的一份美丽,让我眷恋.当清晨早起,推开熟悉的阳台门,再翻翻手机,本想看看时间的,可不经意间却点到了日历,猛然才发现来到黑马学习编程已经四个月了. 想起自己大学毕业也是两年前的事情了. 大学学的是电气工程,可能年轻人都会有一种年期气盛的逆反心理吧,当时考虑的就是在哪工作都不在自己老家这边,于是大学毕业之际,我在泰安这座不大的城市竟然找到了一份相对于对口的工作,做的是机器视觉技术员,这工作一听就挺高大上的

奋斗吧,程序员——第三十一章 寂寞空庭春欲晚,梨花满地不开门

全世界不理解我都没关系的,我一向不屑解释.只是不理解自己的那个人,为什么是你? 我知道你已经头也不回地离开,一如很多年之前那些朋友们. 我们都年轻,谁都有资格把幸福写得源远流长,只是这样美丽的错肩,在很多年后回忆起来,是不是一如当初的苦涩呢? 我一直在用力回忆,但至少我在想着这些事情的时候是不孤独的,就好像你从来没从我身边离开一样.我听到你喊我的那一声,大哥. 有一天甚至梦到自己变成了一条狗,在妹妹和她男朋友吃着同一个碗里的饭的时候,屁颠屁颠跑过去,然后妹妹喂我一口,妹夫喂我一口,这个梦太逗了,

奋斗吧,程序员——第五十三章 万里赴戎机,关山度若飞

我们正漫步在昆明的洱海边,手机响起. 手机显示的是York的电话,我心说准没好事. 收拾心情,用职业的状态接起电话. "Hi York!" "Hi Elber,有点小问题需要SP解决一下." York性格比较沉稳,很适合干各方协调的工作. 之前各方扯皮的时候,通常是他出来打圆场. 现在他说的小问题,估计问题其实不小. "请说." "是这样,贵司第一批出货的芯片不良率有点高,日方经理震怒,麻烦贵司赶紧过来处理一下." "

黑马程序员------IO(五)

黑马程序员------IO(五) 1.1  操作对象(示例1)ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable. Serializable:用于给被序列化的类加入ID号,用于判断类和对象是否是同一个版本 类通过实现java.io.Serializable接口以启用序列化功能,Serializable只是一个标记接口. 1 示例1: 2 import java.io.*; 3 4 class ObjectStreamDemo 5

CSDN日报20170318——《一个程序员的五年工作总结》

[程序人生]一个程序员的五年工作总结 作者:Programmer_Zhou 三月的重庆到处弥漫着浓浓的春味,在这个春暖花开的季节里,人们在闲暇的时间都忙着踏青和春游."一年之计在于春",春天是赏花旅游的季节,春天更是为未来作打算.定计划的时候.在2017年的春天,我做出了人生中的一个重要决定:离开工作近五年的ZTE(中兴通讯),去开启新的人生征程.最近我在罗辑思维的得到APP上订阅了薛兆丰老师的"北大经济学课"专栏,我认为他说的一句话特别有道理,这句话的大意是:&q

程序员的五个级别

程序员的五个级别 五级:能独立完成工程工作 四级:能带领其他人一同完成更大的工作 三级:能独立设计和实现产品 二级:能设计和实现别人不能做出的产品(如:Jeff Dean,Donald Knuth等) 一级:开创一个Bussiness(如:爱迪生.亨利·福特.亚历山大·贝尔等) 另外还有超然其上的零级(如:爱因斯坦等人),不可望不可即. ——摘自 吴军的<浪潮之巅>,与君共勉!

奋斗吧,程序员——第二十九章 伤心桥下春波绿,疑是惊鸿照影来

手机对我们的开发板按下红外发送键,很快一张图片从屏幕上显示出来,大功告成! 虽然代码还不能发布,但是看到成果的那一刻,内心还是非常激动的. 证明现在的我已非吴下阿蒙. 可惜没人和我分享胜利的喜悦,现在已是深夜. 最近一段时间,陈曦出差跑业务去了. 我打了个哈欠,终于可以美美的睡一觉了. 记得刚开始写代码的时候,有一次我的代码把系统搞死了,嘉庆看了一眼,云淡风轻地在代码里加了个sleep(1)解决问题,我才明白原来睡眠是这么重要的事情. 不光线程要睡觉,人更要睡觉. 因为太晚了,我决定不回家,直接

程序员的双十一

又到双十一了,这已经是我到京东后第五个双十一了,如今双十一已经发展成了一个全民的购物狂欢节. 2011 年,是我在京东经历的第一个双十一.那时京东刚刚拓展了图书品类,就搞了一个三小时内下单图书满两百减一百的活动.也正是这个活动刺激了广大爱学习.爱读书的同学疯狂下单,最后订单系统瘫痪了.正是这次瘫痪引发了后面老刘插刀请技术部负责人喝茶的轶事. 那时作为一名正在快速成长的程序员,我自然也买了很多书,为这次系统瘫痪贡献了一份力量:).今天整理办公桌抽屉,发现一本隐藏在最里面角落的旧书,正是在那次活动上

[译]好程序员的五声&ldquo;呐喊&rdquo;

通常编程情况下,会导致软件项目变坏的一些列反应 原文:The five shouts of good programmers 在任何一天,在这个世界上都有软件项目正在失败,这很常见.常见到当软件产品按照预期发布时人们都会感到吃惊.这不是什么新鲜事,基于被广泛引用的Standish Group的Chaso报告,这种事情已经已经发生了几十年了.但是现在,在很多情况下,人们试图尽最大努力去避免这种悲剧,但是经常公司的政治总是会比实用主义更具优先级.只要不要太晚,这都是可以通过简单的延迟来避免. 在这种