STM32和FPGA双向通信的实现
我刚刚接触FPGA现在老师要求我用STM和FPGA实现双向通信,目前的想法是通过接口和FPGA通信,在FPGA里面例化一个双口RAM,来作为STM32和FPGA读写的缓冲区,但是我不知道FPGA如何读写例化好的双端RAM,大家能不能帮忙提供个思路,我想很多人都对这块感兴趣吧,大家讨论下,方便的话加我QQ849816909 双向通信?仅这个功能的话 方法有很多啊,UART SPICAN FSMC甚至GPIO 等等 我只用过ALTERA的片子,当用其双端口RAM的IP核设计的时候,你会发现工程文件夹里多出了四张图片,这些图片就是该双端口RAM的时序图,当初我主要就是根据这些图来设计的读写时序。上传一张让楼主看看。楼主可以试一试。 学习,这个想法不错, 估计以后用得上!! xivisi 发表于 2012-7-27 07:56 static/image/common/back.gif
双向通信?仅这个功能的话 方法有很多啊,UART SPICAN FSMC甚至GPIO 等等
谢谢你的回答哈。我针对昨晚的那个问题进一步想了一下,存在这些疑问,能不能请教你下。
你的QQ名叫行风吗, 水哥 发表于 2012-7-27 09:17 static/image/common/back.gif
我只用过ALTERA的片子,当用其双端口RAM的IP核设计的时候,你会发现工程文件夹里多出了四张图片,这些图片 ...
谢谢你的回答哈。我针对昨晚的那个问题进一步想了一下,存在这些疑问,能不能请教你下。
jimmylinxiaohai 发表于 2012-7-27 10:16 static/image/common/back.gif
谢谢你的回答哈。我针对昨晚的那个问题进一步想了一下,存在这些疑问,能不能请教你下。
...
关于STM32单片机的FSMC总线我就不说了,因为我不会,刚刚接触到这个单片机。{:loveliness:}
data_a,data_b是数据输入端口,q_a,q_b是输出口,你看后缀的话应该知道哪两个是一组吧。那两个时钟线还真是搞不掉,双端口模式的RAM就是要有这两个时钟线,你看我前面发的时序图也能看出来,可能M4K单元本身的结构就是这样的。
地址线10根是对的啊,因为你数据线16根啊,一个地址单元数据长度为16,所以2^10*16=16384 bits。
推荐你看本书《AVR单片机与CPLD/FPGA综合应用入门》,挺薄的,没几块钱,里面谈到了关于单片机和FPGA之间数据交换的几种方法,UART,SPI,双口RAM等。
FPGA那边读写数据确实要用到状态机,至于怎么设计,还是看时序图呗,你FPGA水平比较低,这个没人能帮你,建议你练练。
这个两者通信的,感觉调试起来挺费劲的,FPGA这边应该要用上SIGNAL TAP辅助。 水哥 发表于 2012-7-27 09:17 static/image/common/back.gif
我只用过ALTERA的片子,当用其双端口RAM的IP核设计的时候,你会发现工程文件夹里多出了四张图片,这些图片 ...
嗷>.<难道说当初我做双口FIFO时也出现了四张图片但我没看到???{:cry:} 水哥 发表于 2012-7-27 13:24 static/image/common/back.gif
关于STM32单片机的FSMC总线我就不说了,因为我不会,刚刚接触到这个单片机。
data_a,data_ ...
那本书还不错哈,谢谢了。我再研究下 欢迎大家继续交流啊。 速度要求不是太高的话用I2C接口吧:
AN 494: GPIO Pin Expansion Using I2C Bus Interface in MAX II CPLDs
AN 494 Design Example
本帖最后由 NJ8888 于 2012-7-28 14:30 编辑
我的看法,这个系统不好,也许你老师是为了考你。我认为,尽量减少MCU与FPGA之间的信息交互(弱耦合)好的办法是MCU发些带参数的信息给FPGA,FPGA自己处理完毕返回结果,这样减少信息交换引起的时间开销。我的系统是通过SPI+两个IO握手(主要是为了中断),MCU是SPI的主动方。MCU通过SPI发送命令给FPGA,数据处理完毕给MCU中断信号,然后MCU通过SPI读回。如果不用IO中断,那只好由MCU通过SPI轮询FPGA的状态了,所以多加IO提高效率 看了好多楼上的建议也学习了。。。 mark!!!!!!!!!!!!!!!!!!!!!! stm32fpga 建议用SPI,线少,布线简单,速度也不错,把MISO复用中断,效果就更佳了 感觉12楼说的有道理,俩MCU本身的计算再加上通信,肯定会很延迟的还是做中断任务的好。 qg_zhu 发表于 2012-10-12 22:49 static/image/common/back.gif
建议用SPI,线少,布线简单,速度也不错,把MISO复用中断,效果就更佳了
LZ是不是在对32与FPGA通信时使用过SPI?刚刚接触32的SPI2天,这几天正想与FPGA使用SPI进行通信。麻烦楼主说说个人经验,请教了。 我惯的女人 发表于 2013-2-23 10:36 static/image/common/back.gif
LZ是不是在对32与FPGA通信时使用过SPI?刚刚接触32的SPI2天,这几天正想与FPGA使用SPI进行通信。麻烦楼主 ...
是a !!!l楼主 用spi 吧!!我最近用FPGA 控制SPI 的flash。。。。顺便可以向你学习学习如何与其他器件通讯~~~ 真是受益匪浅 讨论的精彩!学习 用SPI吧 速度很快 也很简单 这个要看你要求速度有多快吧 spi确实不错的 我最近也在研究这个 怎么没后文了,期待 怎么没后文了,期待! 我要用以太网使两者通信。。{:cry:} 挖坟?多老的贴了
页:
[1]