zxlaw2002
驱动牛犊
驱动牛犊
  • 注册日期2004-03-03
  • 最后登录2007-08-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1141回复:0

郁闷的问题

楼主#
更多 发布于:2004-05-31 10:37
我现在用的ISP1362。我的电路图经检查,确认是正确的!且所用到的数据、地址线在FLASH的读写上是正确的!然后我采用了PHILIPS的样板程序,可就连HC_CHIP_ID都不能读正确!太郁闷了!请各位帮忙!
 
我的程序如下:
#include \"hal_intf.h\"
//#include \"usb_phci.h\"
#include \"type.h\"
#define CS4U 0x00220020
#define CS4L 0x00220024
#define CS5U 0x00220028
#define CS5L 0x0022002C
#define HC_DATA_ADD 0x15000000
#define HC_COMM_ADD 0x15000002
#define DC_DATA_ADD 0x15000004
#define DC_COMM_ADD 0x15000006

#define WRITE_USB(a,d) (*(P_U32)(a))=(d)
#define READ_USB(a) (*(P_U32)(a))
extern void delay(U32);



void moto_usb_init(void)
{

    *(P_U32)CS4U = 0x00002000;
    *(P_U32)CS4L = 0x00110501;
    
}

U32 usb_read_reg32(U8 Reg_No)
{
U32 Result;
U16 HByte,LByte;
WRITE_USB(HC_COMM_ADD,Reg_No);
//delay(60000);
LByte=READ_USB(HC_DATA_ADD);
HByte=READ_USB(HC_DATA_ADD);
Result=HByte;
Result=Result<<16;
Result=Result+LByte;
return (Result);
}

void usb_write_reg32(U8 Reg_No,U32 Data)
{
U16 HByte,LByte;
LByte=Data&0x0000FFFF;
HByte=(Data&0xFFFF0000)>>16;

WRITE_USB(HC_COMM_ADD,Reg_No|0x80);
WRITE_USB(HC_DATA_ADD,LByte);
WRITE_USB(HC_DATA_ADD,HByte);
}

U32 usb_read_reg16(U8 Reg_No)
{
U16 Result;
WRITE_USB(HC_COMM_ADD,Reg_No);
//delay(50);
Result=READ_USB(HC_DATA_ADD);
return(Result);
}

void usb_write_reg16(U8 Reg_No,U16 Data)
{
WRITE_USB(HC_COMM_ADD,Reg_No|0x80);
//delay(50);
WRITE_USB(HC_DATA_ADD,Data);
}


S32 usb_host_bottom(void)
{
U32 temp,temp1;
moto_usb_init();

temp=usb_read_reg16(HC_CHIP_ID_REG);
usb_write_reg16(HC_SCRATCH_REG,0xDEAD);
temp1=usb_read_reg16(HC_SCRATCH_REG);
return 0;
}
游客

返回顶部