请教单片机如何高速传输数据给树莓派?
树莓派有两个SPI口,也有串口
串口已占用并且速度上满足不了高速数据传输. 在此不讨论
用SPI速度上没问题,如果树莓派的SPI作为SLAVE,单片机作为MASTER, 这样单片机只管发数据,从机中断接收就行了,很简单,和使用串口类似.
但假设必须树莓派作为主机(还没考究过PI是否能作SLAVE), 单片机作为从机, 树莓派如果批量连续读取单片机数据, 那么两次SPI读取时间的时间是非常短的,可能就几US, 下一个时钟来时从机必须马上准备好数据 (单片机要从队列里取数据肯定没这么快)
我现在的疑惑就是单片机从机如何应付主机这种高速连续读数据 , 当然主机端可以加点延时或者次都询问是否从机已准备好数据,但这样都严重影响SPI交换数据速度
以前操作SPI外设都是批量连续读不用加任何延时,可能是外设纯硬件实现的原因?
是我哪里理解有问题? 各位有什么方案? 不是应该用DMA吗?
不过还真没写过从机的DMA,主机DMA倒是写过STM32的 SPI从机,自己做上忙状态与协议即可。
想通就用以太网! 这还真是个难题,另外树莓派没有AD脚,也是个遗憾。 USB可以不? 树莓派的SPI速度的确是超级高的,我们的显示屏应用就是跑的128MHZ。如果低速的单片机跟树莓派之间传输数据,建议中间加缓存,单片机一次写好一定数量的数据后发信号通知树莓派来取。 树莓派的SPI时钟确实高,但是作为slave不合适,操作系统系统调度来不及,如果跑linux-rt也可以试试 高速spi从机软件实现非常难,而且有很多限制。连续传还好,一问一答非常难做到快速!最好别这么干!想想你给从机发命令读数据的时候,如果你是从机,你该怎么做??dma这时候是没用的! 如果非要用spi从机,那么为了好写程序,最好是多弄个引脚做为联络线,表示从机处理的命令,可以给岀回答了。主机发完命令就等这个信号,然后读结果 最好的方式用USB,我之前做了一个高速USB的板子,在树莓派上实测速度基本上是30MByte/s左右,一般的高速应用基本上够了吧 用usb或者以太网,像stm32可以做从机的usb 也是建议USB或者以太网 靠,又有什么动作???? 树莓派SPI与FPGA传输数据应该可以。不了解树莓派。 tcp ip usb 学习了,
页:
[1]