【求助】我的CH375的CHECK_EXIST命令通不过,请各位看看哪出问题了啊?

void write_command_to_usb(alt_u8 command) { //延时>1.5us delayus(8);

//设置USB_DB为输出 IOWR_ALTERA_AVALON_PIO_DIRECTION(USB_DB_BASE,0xff); //送命令到USB_DB IOWR_ALTERA_AVALON_PIO_DATA(USB_DB_BASE,command); //拉高USB_RD IOWR_ALTERA_AVALON_PIO_DATA(USB_RD_BASE,1); //命令操作 A0=1 IOWR_ALTERA_AVALON_PIO_DATA(USB_A0_BASE,1); //拉低USB_WR IOWR_ALTERA_AVALON_PIO_DATA(USB_WR_BASE,0); //延时100ns左右 //delayus(1); //拉高USB_WR IOWR_ALTERA_AVALON_PIO_DATA(USB_WR_BASE,1); //拉低A0 IOWR_ALTERA_AVALON_PIO_DATA(USB_A0_BASE,0); //设置USB_DB为输入 IOWR_ALTERA_AVALON_PIO_DIRECTION(USB_DB_BASE,0x00); //延时>1.5us delayus(8); } void write_data_to_usb(alt_u8 data) { //延时>1.5us //delayus(8); //IOWR_8DIRECT(CH376CTRL_0_BASE,0,data);

//设置USB_DB为输出 IOWR_ALTERA_AVALON_PIO_DIRECTION(USB_DB_BASE,0xff); //送数据到USB_DB IOWR_ALTERA_AVALON_PIO_DATA(USB_DB_BASE,data); //拉高USB_RD; IOWR_ALTERA_AVALON_PIO_DATA(USB_RD_BASE,1); //数据操作 A0=0 IOWR_ALTERA_AVALON_PIO_DATA(USB_A0_BASE,0); //拉低USB_WR IOWR_ALTERA_AVALON_PIO_DATA(USB_WR_BASE,0); //延时 //delayus(1); //拉高USB_WR IOWR_ALTERA_AVALON_PIO_DATA(USB_WR_BASE,1);

//设置USB_DB为输入 IOWR_ALTERA_AVALON_PIO_DIRECTION(USB_DB_BASE,0x00); //延时>600ns delayus(4); } alt_u8 read_data_from_usb(void) { //延时>1.5us //delayus(8); // return IORD_8DIRECT(CH376CTRL_0_BASE,0); alt_u8 data = 0; //返回数据变量定义

//设置USB_DB为输入 IOWR_ALTERA_AVALON_PIO_DIRECTION(USB_DB_BASE,0x00);

//拉高USB_WR; IOWR_ALTERA_AVALON_PIO_DATA(USB_WR_BASE,1); //数据操作 A0=0 IOWR_ALTERA_AVALON_PIO_DATA(USB_A0_BASE,0); //拉低USB_RD IOWR_ALTERA_AVALON_PIO_DATA(USB_RD_BASE,0); //延时>30ns数据输出有效,可以读取 //delayus(1); //读取数据 data = IORD_ALTERA_AVALON_PIO_DATA(USB_DB_BASE); //拉高USB_RD IOWR_ALTERA_AVALON_PIO_DATA(USB_RD_BASE,1);

//延时,读取结束>600ns delayus(4);

return data; } 取反出来的结果错误!晶振是正常起振的,25,26脚电压也没问题!请高手指教啊!谢谢!

不知道怎么回事,你的邮件发不过去,所以回邮件被返回。 你把你的读写函数贴出来看看


刘工,上面三个就是命令和读写函数啊!给你发的邮件里有主函数和初始化函数,时序也应该没问题的啊!可就是通不过那命令呢!


如果确定硬件没问题,基本确定就是时序有问题。 WR,RD的脉冲宽度是多少?


我用示波器测了下,delayus(1)延时约为1250ns,就是wr、rd为低电平的时间。可是我的测试命令还是通不过。这几天我把输入电压全改为了3.3v的了,试了下,还是不行!14脚的频率是12M,可13脚的频率是乱的,测不到,请问这正常吗?另外在上面我的写命令函数里(我的那程序第一句和最后一句),必须要延时吗?请看下我的上面三个函数,里面的延时正确吗?谢谢!


只有登录才能回复,可以选择微信账号登录