2010-3-22

USB功能测试方法:

1. usb线一端插入PC,另一端插入手机后,如果PC上弹出消息框说有'unkown device'USB设备,说明23d检测到charge中断,并且正确的给sp5368/sp5369的USB端口提供了3.3V电源,DP管脚也由1.5K电阻上拉到3.3V,但是sp5368/sp5369的内部USB模块没有设置正确。

如果PC上没有弹出'unkown device'消息框,但是查到PC上‘我的电脑’--‘属性’--‘硬件’--‘设备管理器’--‘通用串行总线控制器’下有'USB Mass Storage Device', 说明sp5368/sp5369的内部USB模块设置正确,
对应寄存器0x0101[0,2,6,7]。如果以上现象都没有,说明PC没有检测到USB设备插入,

需要查手机端USB3.3v电压是否提供?DP上的1.5K电阻是否上拉到1.5K?
手机是否检测到charge中断并正确区分是‘充电器插入’还是‘USB设备接入’?

 

 

关于SD卡的保护,目前需要在代码上进行下列增强:

1 保护读写SD卡的时候,寄存器设置正确。目前已经在SP5368SDUSB.LIB。V2.13.20100320d中进行了修正;请参考附件;
2 为保证SD卡在DMA操作的时候,地址不被其他修改,我已经将SD卡DMA数据拷贝的部分放在SP5368.c中。
  另外,添加一个变量gSPSDDMAUseFlag 标志SD卡在进行DMA操作。

3  另外,在中断处理程序中进行下列处理,减少TP干扰;
   *void SP5368_LISR(void)
{
 EINT_Mask (SP5368_EINT_NO);  

DMA_Stop(DMACHANNEL);
gDmaLeft = DRV_Reg32(DMA_RLCT(DMACHANNEL));

 gintStatus = SP5368_Emi_Read(0x010f);
#if 0
 SP5368_Emi_Write(0x010f,0x0000);
#endif

 * 在sp5368_lisr()函数中调用 ,改为drv_active_his为直接待用HISR的处理;

#if 1
 SP5368_HISR();
   gintStatus = SP5368_Emi_Read(0x010f);
   SP5368_Emi_Write(0x010f,0x0000);

#else
   drv_active_hisr(DRV_SP5368_HISR_ID);
#endif

4 在上层软件的流程上保证读写SP5368寄存器的时候,将等待SP5368SD DMA不处于忙碌的时候。

例如: 拍照,录像,TP手写读取ADC数值,sleep等。
还需要添加一个地方,在SP5368FS.C中Read_sectors、Write_Sectors() ,调用sd_read_multi_Blocks/sd_write_multi_blocks()的前后进行EINTMASK(SP5368_EINT_NO)以及EINTUNMASK(SP5368_EINT_NO) 的操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值