阅读:1445回复:5
D12怎样传输MCU P2数据??
我要实现从P2口读数据再从D12发到主机,怎么实现啊??
我现在改了ISR.C里面的 void ep2_txdone(void) { int i; D12_ReadLastTransactionStatus(5);//复位中断寄存器 //可添加用户代码(进行检测端点号5IN令牌的操作) FPGA_WR=1; FPGA_WR=0; //写使能关闭 for (i=0;i<64;i++);//读一个缓冲64字节 { FPGA_RD=1;//给FPGA开始读信号 //P2口数据赋值给EpBuf; EpBuf=P2; FPGA_RD=0;//给FPGA读完信号 } D12_WriteEndpoint(5, 64, EpBuf);//把缓冲数据发送到主机 FPGA_WR=1; FPGA_RD=1; } 固件里是不是只要改这个就行啦?? |
|
沙发#
发布于:2004-08-10 00:31
恩,我现在在LINUX里写数据到板子,再读数据,是能正常实现的。
但是我现在要从P2口读FPGA的数据,然后通过D12传到LINUX里,所以要读P2口 |
|
板凳#
发布于:2004-08-09 22:26
硬件都定了,那就直接用ZLG的固件和驱动测试,还考虑什么P2口和DMA?
|
|
地板#
发布于:2004-08-09 22:10
to shahlynn:
谢谢你的回复 我用的是周立功的板子 请问你说的改EPPHAL,是用了DMA吗?我现在没有用DMA,其实我也不知道我用了DMA没有。 如果我要传输我要发的数据(不一定是P2口的),是不是只要修改Epbuf然后再D12_WriteEndpoint(5, 64, EpBuf);就可以了? |
|
地下室#
发布于:2004-08-09 22:00
用P2来传送数据给D12要考虑两方面的问题:
1 D12的控制线怎么与51连接。参考的接法是用ALE锁存数据/命令A0,如果要用P2的话,请先考虑能否用到ALE,能否使P2处于准双向状态? 如果不能的话,解决方案有两种:A,用另外的一根线控制ALE,模拟ALE时序;不如直接用B方案,接死ALE,用另外的一根线直接控制A0口。 2 软件的修改 从你的修改方法来看,对分层还不了解,这样改既麻烦又容易出错。 先从最底层软件改起,保持提供给上层调用的函数接口不变。具体来说,主要改EPPHAL,保持读写函数的调用方式不变,只根据你的硬件设计更改端口影射关系和对D12的读写函数的实现方法。基本上不用修改上层的模块。 说得够清楚了吧?如果还不懂,我也没辙了。 |
|
5楼#
发布于:2004-08-09 19:17
急啊,牛牛们帮忙啊
肯定给分 |
|