tcm123 发表于 2016-12-5 11:14:28

请教单片机如何高速传输数据给树莓派?


树莓派有两个SPI口,也有串口

串口已占用并且速度上满足不了高速数据传输. 在此不讨论

用SPI速度上没问题,如果树莓派的SPI作为SLAVE,单片机作为MASTER, 这样单片机只管发数据,从机中断接收就行了,很简单,和使用串口类似.

但假设必须树莓派作为主机(还没考究过PI是否能作SLAVE), 单片机作为从机, 树莓派如果批量连续读取单片机数据, 那么两次SPI读取时间的时间是非常短的,可能就几US, 下一个时钟来时从机必须马上准备好数据 (单片机要从队列里取数据肯定没这么快)

我现在的疑惑就是单片机从机如何应付主机这种高速连续读数据 , 当然主机端可以加点延时或者次都询问是否从机已准备好数据,但这样都严重影响SPI交换数据速度

以前操作SPI外设都是批量连续读不用加任何延时,可能是外设纯硬件实现的原因?


是我哪里理解有问题? 各位有什么方案?

qumei 发表于 2016-12-5 11:42:47

不是应该用DMA吗?
不过还真没写过从机的DMA,主机DMA倒是写过STM32的

aozima 发表于 2016-12-5 11:48:15

SPI从机,自己做上忙状态与协议即可。

想通就用以太网!

gxlujd 发表于 2016-12-5 11:49:04

这还真是个难题,另外树莓派没有AD脚,也是个遗憾。

qiuchen 发表于 2016-12-5 13:07:32

USB可以不?

TIANYJ 发表于 2016-12-5 13:30:30

树莓派的SPI速度的确是超级高的,我们的显示屏应用就是跑的128MHZ。如果低速的单片机跟树莓派之间传输数据,建议中间加缓存,单片机一次写好一定数量的数据后发信号通知树莓派来取。

bbstr 发表于 2016-12-5 13:38:57

树莓派的SPI时钟确实高,但是作为slave不合适,操作系统系统调度来不及,如果跑linux-rt也可以试试

redroof 发表于 2016-12-5 13:50:40

高速spi从机软件实现非常难,而且有很多限制。连续传还好,一问一答非常难做到快速!最好别这么干!想想你给从机发命令读数据的时候,如果你是从机,你该怎么做??dma这时候是没用的!

redroof 发表于 2016-12-5 13:59:36

如果非要用spi从机,那么为了好写程序,最好是多弄个引脚做为联络线,表示从机处理的命令,可以给岀回答了。主机发完命令就等这个信号,然后读结果

wdluo 发表于 2016-12-6 08:58:46

最好的方式用USB,我之前做了一个高速USB的板子,在树莓派上实测速度基本上是30MByte/s左右,一般的高速应用基本上够了吧

windrarara 发表于 2016-12-6 14:52:12

用usb或者以太网,像stm32可以做从机的usb

overheat 发表于 2016-12-6 15:47:45

也是建议USB或者以太网

qiqirachel 发表于 2016-12-10 17:01:42

靠,又有什么动作????

lyl520719 发表于 2017-4-7 14:18:45

树莓派SPI与FPGA传输数据应该可以。不了解树莓派。

hmd420304805 发表于 2017-4-7 14:20:38

tcp ip   usb

Seven-007 发表于 2017-4-7 15:03:58

学习了,
页: [1]
查看完整版本: 请教单片机如何高速传输数据给树莓派?