初始化返回代码是0x81,晶振两个引脚的电压在2.2v左右,usb接口d+约3.7v,d-约0v,检查电路连接没有发现问题,请教下一步如何测试?
用测试命令测试,发出去的0x55,读回来的是0x85,请问可能是什么原因?25脚和26脚的电平是正确的
/* PC1--CH375_A0 PC2--CH375_RD PC3--CH375_WR PC4--CH375_CS PD3--CH375_INT PC5--其他芯片用 */ //向CH375 的命令端口写入命令 void xWriteCH375Cmd(unsigned char cmd) { PORTC|=0X02; //CH375_A0=1 PORTA=cmd; PORTC&=0XEF; //CH375_CS=0 PORTC&=0XF7; //CH375_WR=0 delay_us(2); PORTC|=0X08; //CH375_WR=1 PORTC|=0X10; //CH375_CS=1 delay_us(2); }
//向CH375 的数据端口写入数据 void xWriteCH375Data(unsigned char dat) { PORTC&=0XFD; //CH375_A0=0 PORTA=dat; PORTC&=0XEF; //CH375_CS=0 PORTC&=0XF7; //CH375_WR=0 delay_us(2); PORTC|=0X08; //CH375_WR=1 PORTC|=0X10; //CH375_CS=1 }
//从CH375 的数据端口读出数据 unsigned char xReadCH375Data(void) { unsigned char dat=0; PORTC&=0XFD; //CH375_A0=0 PORTC&=0XEF; //CH375_CS=0 PORTC&=0XFB; //CH375_RD=0 delay_us(2); dat=PORTA; PORTC|=0X04; //CH375_RD=1 PORTC|=0X10; //CH375_CS=1 return(dat); }
//初始化ch375,成功返回0 unsigned char init_ch375(void) { unsigned char i; DDRC|=0X3E; //PC1--PC5输出 PORTC|=0X1E; //PC1--PC4=1 PORTC&=0X20; //PC5=0 DDRD&=0XF7; //PD3输入 PORTD|=0X08; //PD3上拉 CH375Reset(); i=CH375LibInit(); // 初始化CH375程序库和CH375芯片,操作成功返回0 return(i); } 以上是我的初始化程序,请帮忙看看问题,谢谢!
USB口的电压在不接任何东西的时候应该为低电平,还有就是你做测试命令不成功的话,那就需要查看你的硬件了,你可以使用示波器来看你的时序包括你的硬件上面是否连接正确等等,都可以用示波器来看下
好了,找到问题了,端口A没有设置输入输出,修改后的程序入下,初始化可以通过了
/* PC1--CH375_A0 PC2--CH375_RD PC3--CH375_WR PC4--CH375_CS PD3--CH375_INT PC5--其他芯片用 */ //向CH375 的命令端口写入命令 void xWriteCH375Cmd(unsigned char cmd) { DDRA|=0XFF; //PORTA输出 PORTC|=0X02; //CH375_A0=1 PORTA=cmd; PORTC&=0XEF; //CH375_CS=0 PORTC&=0XF7; //CH375_WR=0 delay_us(2); PORTC|=0X08; //CH375_WR=1 PORTC|=0X10; //CH375_CS=1 delay_us(2); }
//向CH375 的数据端口写入数据 void xWriteCH375Data(unsigned char dat) {
DDRA|=0XFF; //PORTA输出 PORTC&=0XFD; //CH375_A0=0 PORTA=dat; PORTC&=0XEF; //CH375_CS=0 PORTC&=0XF7; //CH375_WR=0 delay_us(2); PORTC|=0X08; //CH375_WR=1 PORTC|=0X10; //CH375_CS=1 }
//从CH375 的数据端口读出数据 unsigned char xReadCH375Data(void) { unsigned char dat=0; DDRA&=0X00; //PORTA输入 PORTA|=0XFF; //上拉 PORTC&=0XFD; //CH375_A0=0 PORTC&=0XEF; //CH375_CS=0 PORTC&=0XFB; //CH375_RD=0 delay_us(2); dat=PINA; PORTC|=0X04; //CH375_RD=1 PORTC|=0X10; //CH375_CS=1 return(dat); }
//初始化ch375,成功返回0 unsigned char init_ch375(void) { unsigned char i; DDRC|=0X3E; //PC1--PC5输出 PORTC|=0X1E; //PC1--PC4=1 PORTC&=0X20; //PC5=0 DDRD&=0XF7; //PD3输入 PORTD|=0X08; //PD3上拉 CH375Reset(); i=CH375LibInit(); // 初始化CH375程序库和CH375芯片,操作成功返回0 return(i);