如题,测试程序如下: CH375_PORT_INIT( ); xWriteCH375Cmd(0x06); xWriteCH375Data(0xf0); mDelaymS( 100 ); i = 88; i=xReadCH375Data(); mDelaymS( 100 ); mInitSTDIO( ); printf( "%x\n",i ); 测试总收不到0f,而总是收到0。 电路已经查过N遍了,连接没有短路。375电压正常,晶振也起振了。而且也刚刚换了一个375,还是出现同一个错误。神啊!!!救救我吧!!!
你在运行程序后在将CH375复位一下你在测试下看看,你的低4位的数据线有点问题,你仔细的检查下你的8个并口数据线是不是正常
如果使用的CPU是8051系列的仿总线方式,在读入数据前应将口寄存器直全1.
mDelaymS( 100 );再读,时间太长了吧
引用回复:mDelaymS( 100 );再读,时间太长了吧
100ms太长吗?应该是多少?
引用回复:如果使用的CPU是8051系列的仿总线方式,在读入数据前应将口寄存器直全1.
我用的是LPC2210,不是8051
引用回复:你在运行程序后在将CH375复位一下你在测试下看看,你的低4位的数据线有点问题,你仔细的检查下你的8个并口数据线是不是正常
好像不是低4位数据线的问题,因为我把发送的数据f0改成其他的数返回的也总是0。 而且,复位后再测返回值还是0。 复位程序位: IO0CLR |= 0x400; for(j = 0;j < 0x2fff; j++); IO0SET |= 0x400; RST引脚接的是LPC2210的P0.16,我是先置0再置1。 这样复位没问题吧?
你发一个00,看返回什么数据,如果还是返回的还是00的话,那你的8个并口就存在问题了,如果是别的数的话,那么就可以查出是哪个并口线出了问题
CH375的复位输入脚是接的LPC的P0.16的话,应该是0X00 01 00 00, IO0SET |= 0x00010000; for(j = 0;j < 0x2fff; j++); IO0CLR |= 0x00010000;
强调一点CH375是高电平复位有效.楼主你是让它一直处于复位状态.
引用回复:你发一个00,看返回什么数据,如果还是返回的还是00的话,那你的8个并口就存在问题了,如果是别的数的话,那么就可以查出是哪个并口线出了问题 不论我发什么数都是返回0,我怀疑是我的电路的问题。等会我上传一张我的硬件电路,大侠帮我分析一下,先谢谢了!很高兴能得到你们的回复!太谢谢了!
引用回复:CH375的复位输入脚是接的LPC的P0.16的话,应该是0X00 01 00 00, IO0SET |= 0x00010000; for(j = 0;j < 0x2fff; j++); IO0CLR |= 0x00010000; 不好意思,我的复位引脚是P0.10,不是16,P0.16是INT#。
引用回复:强调一点CH375是高电平复位有效.楼主你是让它一直处于复位状态. 你的意思是我弄颠倒了?应该是先置1,再置0?
这是我的原理图,大侠们帮忙分析一下有什么不对的地方吗?谢谢先!
上图中3.3V电压在实际应用中都改成了5V,其中: /* LPC2210单片机引脚 CH375芯片的引脚 P0.16 INT# P3.0 A0 P3.25 CS# P3.27 WR# P1.1 RD# P2.0-P2.7 D7-D0 P0.10 RST */
V3接地了没啊?