注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

笨笨猫

 
 
 

日志

 
 

硬件调试经验  

2011-07-22 15:50:26|  分类: Work-2008 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
RTC的调试经验:
5-1:RTC的日期不能设置:即RYCR写不进去,读出来老是2000-1-1:
找了好久,用内存方面的命令memory fill RYCR/RDCR的地址,再用memory dump RYCR/RDCR看值变了没
发现直接写RYCR时,值不变,符合芯片手册,而要写一次RDCR后,值才变,从而确认RYCR无误,再一查是RYCR的

地址搞错了。将0x4090_0014错写成0x4090_0000

5-2:RTC报警时间调试经验:
==》设置好了RDCR, RYCR,然后设置好RDAR,结果无报警输出
后来一查手册Wristwatch Module中有2部分
一部份:RDCR RYCR
另一部份:Alarms:由alarm1和alarm2组成,alarm1由RDAR1 和RYAR1组成,而alarm2由RDAR2和RYAR2组成,
而报警匹配是,用RDAR1+RYAR1 || RDAR2 + RYAR2  去与RYCR,RDCR区配的。两者一致才会报警匹配

==>解决了上面的问题后,再用查询法去查报警设置:
    while(0 == _CheckRTSRAlarm1Status()){
    }

int _CheckRTSRAlarm1Status()
{
    if(RTSR & (1 << 4)){
        RTSR |= 1 << 4;
        return 1;//Alarm 1 is detected
    }
    else{
        RTSR |= RTSR;
        return 0;//No alarm  1 detected.
    }
}
发现不稳定现象,时而设定的报警时间能正常工作,时而不正常,后来找了许久,最后确认是不能老是去查那个

RTSR,而要延时一会,改为如下,问题解决:
    while(0 == _CheckRTSRAlarm1Status()){
    msleep(1000);
    }
    
6.键盘调试经验:
测试键盘时,发现问题:键盘上无论按下哪个键,都只出键码:0x01?
用万用表量各个行列,确认行列没有接错。硬件没错。再查键盘初始化的问题,KPC等设置正确,试了延时等等
处理,最后定位问题是GPIO 口的配置出错。对GPIO口进行Dump电平及MFP的配置。因为没有用到主么多的键盘引
脚,而对不用的线没有屏蔽掉,这个键盘控制芯片很怪异,不能多,不有少,一点不当,出错。重配置Keypad,

电源限流,致使无法启动板子,启动一半死了
所以PCM的录音后,再经过I2S播放时,必须要填充,数据量要扩大一位,使左右声道声音相同,否则I2S播放时,由于数据量
小一倍,(PCM只有单道,而I2S有双声道,两者格式不同)引起声音变形,整体上声音播放加快一倍速
 
 电容有两个参数,一个是容量,还有一个是耐压值。原有的电容额定电压不够,不足以支撑电感的高反电动势,在超过电容额定
电压下工作,时间久了自然温度反常上升,而温度的反常上升引起C510电容容值减小,随着C510电容容量减小,电容作用越
来越小直接失效,失效后相当地接地,这个C510电容是直接接V\_WLED,主要起高频滤波并有一定的稳压作用,再由
V\_WLED给LCD屏里的白光LED供电点亮。当其失效接地后相当于使V\_WLED与地短接了,LCD屏里的白光LED相当于接地了,没了
电压,白光LED自然不亮了, 自然背光没了,LCD屏也黑了。
 解决方法:
更换一个工作额定电压高,最好能耐40V的电容,问题解决
    
RxD,TxD焊反了,一次在龙旗做Distance Sensor的调试,串口线松动,重焊之,结果出乱码,一查是RxD,Txd焊反了
做耳机插拨时,发现能检测到事件却查不到有nIRQ中断产生,后来查来查去,是要先读一遍4个Event
Reg,是在之前,先读一遍这四个Event Reg后,就产生nIRQ中断了
Da9034如果事件没有读出,下次中断也将不会产生,

小板上发现声音不响,发现是PA没有打开,那个复位脚不灵,用gpio的方法也不能拉高拉低,后来一查是
这个脚在大板上是用作keypad的,脚是配成keypad的MFP,所以拉不动,重配MFP为0,使之为正常的GPIO问题解决。

Keypad
Pin脚配好MFP后,这个MFP就自动将有关什么边沿触发之类的就配置好了,无须自己再配

在龙旗调FPGA的I2C,用Jtag烧写loader至新的板子上,结果运行时,I2C出错,后来查原因许久,最
终发现是CLK\_OUT[13Mhz]时钟没打开,这个时钟由OSCC[POUT\_EN]位来控制,打开这个位,即I2C读
写成功,这个时钟提供给FPGA芯片用,当FPGA芯片少了这个时钟,自然没法完成I2C时序,表现为I2C
读写出错,也就是I2C内的状态寄存器的发送完成位没有置位。问题解决,再用示波器看一下波
形查一下时钟波形即可。\newline
再对比为什么以前那块板子可以,原来,那块板子他们飞了线,用了自已的时钟,这次这块新板没飞
线,就没有了时钟。

做FM收台时,老是抓不住台,后来是那个SF位没有效果,用查RSSI方法来查,当STC置1后,读取RSSI,与设定的阈值比较之,只有当其大于
阈值时,才算收到一个合格台,从而正常过滤了背景噪音

我方的延时有些不太准,该芯片时间为75ms,我当时为加快搜台速度也定为
75ms,但没想到我们的延时函数msleep()不是十分精准,有误差,所累积的误
差,使得芯片内部搜台时间逐渐小于其标准值,出现STC Fail,增加延时至
80ms后,问题解决。而这个STC与SF有逻辑联系,STC Fail必定导致SF Fail,
故有些SF Fail是由于STC Fail导致。这是其中一个导致偶然遇到SF/STC Fail
的重要原因。

FM驱动调试时,发现FM搜台失败或卡死,或是收到的台却噪声很大
,不清晰,查原因,是因为Motion Sensor MXC62025 在不断的进行
采样,而其采样频率较大,大量占用I2C总线,使得FM的I2C操作失败
。去掉之,问题解决,且收台声音效果很好。

后来王彪在做motion sensor 驱动时,发现当板子平放时,motion
sensor当为0才对,而输出值为3000。一查原因,原来是在motion sensor
MXC6202G手册中有ST:Self-Test位及BGTST bandgap
test位
我原以为Self-Test是用于上电初始化自检用的,而BGTST是用于初始温度校正用的,就将其打开置了位
,结果
就出现那个水平放置时值为3000的结果。将这两个位关闭掉后,水平放置时的值就正常了,出来的结果为0了。

来换了块三轴的motion
sensor,汪金文叫去帮忙,说是三个方向的值读出来一样。仔细看看,原来是这块芯片要求连续读,指定一个起始地址,后面
在这块芯片中芯片Reg地址自动++,自动将后面的数据送出来,而当遇到Stop条件时,芯片起始地址又复位为0了,所以用
单个的I2C读写,每次读完第一个Reg后,就会发送STOP,于是该Sensor复位Reg
Addr至0,所以连续三次读出的值均是X轴的坐标,而非预想中的X,Y,Z值

查出有几只脚的MFP没配,导致Camera
Preview的色彩偏色,是少了几根颜色线,配好MFP后,色彩正常

Camera
Preview画面出现一分二的不清晰现象,最后确认是没有旋转,加上旋转后问题解决

Camera输出的格式为YCbCr格式,而在310的LCD
控制器中只有Overlay2才能接收之,而Overlay1和Baseplane只能接收RGB格式,故,用MT9T111的Camera就只能将图像传至LCD的O
verlay2这一层中,所以在LCD的初始代码中必须将Overlay2使能及设置好。

LCD
DMA是专用的DMA,只有源没有目的,自动将从源接收到的数据传至内部的目的,自动转换成并口再送给LCD驱动器。当时在代码里找LCD
的DMA的DMA的目的地址好久未果,就是没有理解这一点。
而与相比较,对Camera DMA则要DMA的源与目的,两个都得设定。
Camera DMA与常规DMA无关,其通道0,1,2是自己的通道,不占用常
规的DMA的32个通道。其相关Reg的使用也是自己的,与常规DMA的寄
存器无关。

一次在刘辉交给我一块板子测试camera,发现影像不清晰,查来查去,最后发现原来是贴片时,少贴了
一块输出的芯片,结果camera少 了四根线,当然不清晰。

Camera 在后来的一个版本中,出现I2C出错
在一次小连的LDO优化中,关掉了LDO6,而这个LDO6是给camera
sensor的模拟供电,所以出错

发现板子上的CPU反复重启,或反复执行同一条指令,后来一查原来电源不稳,湛工在摆弄那个电源,后来调高电压电流后,问题解决

USB不稳定,反复出现那种插拨时的画面及声音: 解决方法同上
jtag与串口线同插,发现有时串口有数据,有时无,不稳定,后来确定是jtag插上后,
拉低了串口的电压使之不稳定,拨掉jtag线后,问题解决

同理而不同现象,jtag烧完bootloader后,发现板子不能重启,原因是串口与jtag同时插好了,电平拉低无法正常工作。

龙旗的人说断电时,断火线与断地线一回事,但王彪说要断火线,不能断地线。因为如果只断地线的话,此时火线依然还在,若此时别处
还有地,如USB插口未拨,则会在这之间形成电流,有可能烧元件。

在龙旗修板子,发现板子上电是,能启动bootloader,但启动至一定进度时,板子卡死,没得反应,进不了控制台,电流上到约
600mA左右,后来查看电源,上面的限流按钮已经按下,该电源将限流为600mA左右,而这块板子,在启动过程中,所要的
电流会逐步上升,最后会超过600mA,由于限流了,当所要的电流要超过600mA而遭到
 电源限流时,致使无法继续启动板子,启动一半死了
 
 和刘振国去东信产线上工作,发现Jtag连不上刚生产出来的小板,这下急了。开始以为是临时换料的原因,
和硬件人员连忙查,发现重启计算机后,看看BIOS中有无禁用并口,打开之,则解决,原来是BIOS禁用了并口


USB3319供电部份贴错致使USB不能枚举

插入USB后无反应,不能通过USB下载:
开发板上电很好,启动进入USB下载界面,就是插入USB线后,无反应
查了很久,原来是电源线和USB线插反了。
USB线上也能供电的,所以误将USB线插入电源,开发板照常运行,而误将电源线当成USB
线插入USB口,当然无效

是Mic采集人声,经交流耦合电容后送往9034里面的PGA级进行放大,放大信号再进入ADC/DAC中进行变换,这个变换是个调频(调占空比的过程),9034的ADC/DAC中会产生一个几KHz左右的
载波,将人的说话声波形以调频方式调制在这个方波中,最后将这个调制后的波形送至Receiver上发声。当无人声时,则依据信号强度大小判定无人声后,ADC/DAC会停止这个调制过程,方波的发生也同时停止。

而这个啸叫声来源就是当无人声时,9034 ADC/DAC误判环境噪声信号强度,以为是人声,立刻开始调制,同时产生方波载波,这个方波载波受环境噪声影响很小,调制后,基本上仍是方波,这个单一频率的方波送到Receiver上,就出现了单一频率的啸叫声。
因为音腔密闭性不好,杂音往往从边上漏进来,经PGA放大后诱发9034误判为人声,从而去开始调制,产生调制方波,于是引发单一频率的啸叫声,与郭凯用压紧音腔的方波试验,效果有所改观
第一大点是:音腔密闭性不好,漏声现象严重,必须是四周紧咬合Mic,音腔要紧凑,声音只能从前面MIC一端进来,第二大点,MIC与Receiver在同一面,彼此正对,且盒子没设计好,啸叫声在盒内更加强烈。这个在结构设计上要重点调整
软件上,可在MIC-PGA将输入的声音的增益减小些,以尽量减小无声时对环境噪声的放大,对环境噪声的放大过大,会使得后面的ADC/DAC单元误判为人声从而引发方波式的单一频率的啸叫声

从网上可以下载到IROM_Fusing_tools的源码,在按下这个软件的start控件后,先是
读取这个SD卡的第一个扇区,也就是这个磁盘的MBR 扇区,判断是不是FAT32格式的
磁盘(这也是为什么用来做启动的SD必须格式化为FAT32格式),接着获取总的扇区
数目TOTAl_SECOTR,并将所要烧写的bin文件烧写到磁盘的这个扇区:TOTAL_SECTOR –
2 - SIZE_OF_IMAGE/512。其中TOTAl_SECTOR是这个磁盘总的扇区数目;
SIZE_OF_IMAGE/512是这个bin文件将要占据的扇区数(这里是以512为扇区大小的,
因此对于扇区更大的SD卡也就没办法使用了,而现在的大容量SD都可能使用了2K甚至
4K的扇区,除非修改这个程序,并同步地在uboot中修改程序);至于2则是保留的2
个扇区,至于为什么要保留这2个扇区,需要分析uboot的源码情况,下面将做进一步
的阐述。

在SD启动方式下,S3C6410内部的IROM程序BL0首先运行,并将SD中的最后18个扇区开
始的16个扇区内容复制到片内的8K SRAM,也就是SteppingStone,接着跳转到这块
SRAM的开始地址开始运行,这8K的代码实际上就是上面u-boot_mmc.bin这个文件的最
后8K,也是u-boot.bin的最开始8K代码,这段代码也叫BL1。从BL0跳转到BL1的时候
uboot也就接管了CPU。
  评论这张
 
阅读(947)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017