目前需求是AM6231与FPGA通过SPI通信,AM6231的A核作为从机,配置为dma模式,FPGA作为主机做ADC采集,采集完成将数据给到A核,A核通过DMA将数据送到内存,请问AM6231在软件和硬件上能否满足这些需求呢?如果不能是哪些地方不能满足呢?目前了解到AM6231的A核不支持软件上从机模式,请问有没有支持其作为从机版本的SDK或者改动参考文档呢?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
目前需求是AM6231与FPGA通过SPI通信,AM6231的A核作为从机,配置为dma模式,FPGA作为主机做ADC采集,采集完成将数据给到A核,A核通过DMA将数据送到内存,请问AM6231在软件和硬件上能否满足这些需求呢?如果不能是哪些地方不能满足呢?目前了解到AM6231的A核不支持软件上从机模式,请问有没有支持其作为从机版本的SDK或者改动参考文档呢?
SPI linux driver是不支持slave mode的。因为linux里实现spi slave会比较复杂,所以我们没有例程也不建议客户使用slave mode。我们的工程师已经咨询e2e产品线工程师,请看下面帖子的回复。
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1313658/am623-reasons-for-not-supporting-spi-as-slave/4992998
不客气~
请看下面工程师最新的回复。
Is that FPGA design (RTL) under your control? What throughput/data rates are you expecting/requiring in your application?
SPI满足不了,工程师建议用GPMC接口或者PRU接口来实现。
That's about 26Mbytes/s, you will not be able to do that using a regular SPI interface.
If you really need that speed and given you are talking to an FPGA (that hopefully you can customize) the use of the GPMC interface can probably get you there (in 16-bit mode), but this may require some work on the SW side. GPMC interfaces are usually well-suited for low-level interface with FPGAs.
Another option is also do leverage the PRU accelerator for FPGA communication, see https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/09_01_00_08/exports/docs/common/PRU-ICSS/Overview.html. How well or how not well this all work work though really depends on your system-level signal flow / processing needs.