转眼到了年底,芯原的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 ......
如此一番折腾,沉冤得雪。

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

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

    我们正漫步在昆明的洱海边,手机响起. 手机显示的是York的电话,我心说准没好事. 收拾心情,用职业的状态接起电话. "Hi York!" "Hi Elber,有点小问题 ...

  2. 频谱仪的更改ip_【正点原子FPGA连载】第五十一章 基于FFT IP核的音频频谱仪-摘自【正点原子】开拓者 FPGA 开发指南 (amobbs.com 阿莫电子论坛)...

    本帖最后由 正点原子 于 2020-10-24 15:19 编辑 203429z6c3os33t8albi33.png (66.36 KB) 2019-7-28 15:14 上传 第五十一章 基于FF ...

  3. Gradle 2.0 用户指南翻译——第五十一章. 发布工件

    本文禁止w3cschool转载! 翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc . 本文翻译所在分支:https://github.com/m ...

  4. 【正点原子STM32连载】第五十一章 视频播放器实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  5. 第五十一章 管理镜像 - 镜像的数据库注意事项

    文章目录 第五十一章 管理镜像 - 镜像的数据库注意事项 镜像的数据库注意事项 `IRIS` 实例兼容性 成员字节顺序注意事项 使用 `^DATABASE` 例程创建镜像数据库 第五十一章 管理镜像 ...

  6. 同宿舍的程序员毕业五年之女生篇:有人怀疑人生,有人考虑出家

    导读:在昨天的推送<同宿舍的程序员毕业五年后:有人年薪百万,有人月薪一万>中写了男生宿舍毕业五年的现状,而女生宿舍又如何呢? 作者:五五 来源:程序人生(ID:coder_life) 女程 ...

  7. 同宿舍的程序员毕业五年的现状:有人要当“螺丝钉”,有人头发掉光要出家...

    作者 | 五五 本文经授权转自程序人生 之前,在<同宿舍的程序员毕业五年的现状:有人年薪百万,有人月薪一万>中写了男生宿舍毕业五年的现状,而女生宿舍又如何呢? 女程序员的职业发展之路没有男 ...

  8. 软考 程序员教程-第三章 数据库基础知识

    软考 程序员教程-第三章 数据库基础知识 第三章 数据库基础知识 3.1 基本概念 数据库系统(DataBase System,DBS)由数据库(DataBase,DB).硬件.软件和人员4大部分组成 ...

  9. 一个平凡程序员的五年感悟:没有足够的付出,就没有热爱

    本来是想写<一个失败程序员的五年感悟>,后来想了想,不管过去如何,不应该再去评断.既然已经客观存在,自己也能够意识到问题所在,在接下来的时间里去改.去努力就好了.不应该轻易地给自己打上失败 ...

最新文章

  1. 7系列高速收发器总结 GTP IP核使用篇
  2. python编程入门与案例详解pdf-Flutter技术入门与实战 PDF 清晰版
  3. php判断端口跳转,PHP判断端口是否打开的代码
  4. C++primer plus第六版课后编程题答案8.3(正解)
  5. python----流程控制
  6. inline元素的间距问题
  7. 贾跃亭致信债权人:将努力打工还债,请相信我!
  8. html页面跨域提交数据,前端跨域的整理
  9. 简单的代码提交,还能玩出这么多花样?
  10. 苹果官网以旧换新价格暴跌;戴威退出 ofo 法人代表及高管;TensorFlow 2.1.0 发布| 极客头条...
  11. docker容器启动与停止命令
  12. 【NLP】word2vec 模型
  13. 在windows server 2008 r2上安装nokia pc 套件
  14. 采用计算机发布调度命令时 必须严格遵守,调度命令规范格式(公文命令).doc...
  15. C#正则表达式(来源:侧身向南边博客)
  16. 手脱ASPack2.12壳(练习)
  17. 记忆宫殿--清华一日游
  18. pythoninterpreter_java-Jython :: PythonInterpreter可以使用哪些模块...
  19. python aes加密_在不到5分钟的时间内用python编码aes128位加密
  20. Biotin-PEG-CHO,生物素PEG醛基

热门文章

  1. mysql group by 后求和_MySQL分组求和GROUP BY
  2. Zillow.com·ÖÎö-²Ëµ¶¿´¹úÍâ·¿²úÍøÕ¾Ö®Ò»--°¬ÈðÍø..
  3. yolov5目标框预测
  4. 【无标题】Realsense ROS驱动安装以及报错处理
  5. 「GoTeam 招聘时间」长亭科技 Golang 后端开发实习生工程师(杭州)
  6. SQL Server 常用日期函数的运用
  7. 【沙龙·南京】中国电信首届“天翼物联开发者大赛”广发英雄帖,邀众人才南京论剑
  8. Android问题解决
  9. 《道德经》第三十一章
  10. U盘装系统启动热键 (开机时使用)启动按键