阅读:1143回复:0
郁闷的问题
我现在用的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; } |
|