阅读:1623回复:7
jiangyiyong兄请近
jiangyiyong兄谢谢你帮我了这么多次。但是有一点我不明白的是
我的51单片机还是不能和SL811HS通信。你能不能给点他们通信的 具体代码给我启示一下好吗?hbzhang@aiofm.ac.cn |
|
沙发#
发布于:2004-02-18 12:50
我不明白你的通信是什么意思,硬件的还是软件的,问题能说具体点吗?
|
|
|
板凳#
发布于:2004-02-18 13:34
jiangyiyongxiong兄,主要是软件上的代码处理了,,当我的51单片机读取或者是往SL811l写入数据的时候,SL811hs中的什么A0,nRD,nWR,nRst,nCS等该怎么取值呀。我知道这肯定要编写一个读和写的驱动函数,但是如何下手呀。
比如: unsigned char HostRead(void) { PORTB=0X0; /*数据总线先全置低; DDRB=0X0; /*数据线方向定义为输入; A0=1; /*满足SL811的时序要求, nCS=0; Dir=0; PORTA=0X58 /*设置控制信号读取SL811的数据; return PORTBN; /*函数返回SL811内存中的数据; } 其中PORTB是我的数据线代表了SL811中的D0-D7; PORTA 是控制线代表了nCS,nWR,nRD,A0,nRest等; 这符合读的要求吗? |
|
地板#
发布于:2004-02-18 16:28
老实说,我不太能看懂你的代码,我想你的基本问题读写寄存器的问题都没解决吧。最重要的你应该先找到的USB芯片的基址
|
|
|
地下室#
发布于:2004-02-18 16:35
如果你解决了基址的问题
BYTE_ SL811Read8( WORD_ wRegName ) { *(WORD_ *)io_addr = wRegName; return *(BYTE_ *)io_data; } |
|
|
5楼#
发布于:2004-02-18 19:00
我又不是用CYPRESS自己的主机芯片在做,知道了基址,还要靠控制线来操纵SL811呀,比如什么nCS,nWR,nRD,nRest等,关键是这几个我不知道如何用,谢谢你了jiangyixiong兄,你在哪里呀,寻个时候找你喝茶
|
|
6楼#
发布于:2004-02-19 08:37
我也不是啊,我是用DSP ,你的那几根线不是联到地址总线上的吗,当然要先把地址算出来。
|
|
|
7楼#
发布于:2004-02-19 08:40
我想你首先应该把地址编码搞清楚,RST应该与地址无关,如果实在搞不清楚应该先问做硬件的人,他们应该知道
|
|
|