【银杏科技ARM+FPGA双核心应用】STM32H7系列十七——SPI_DMA
一、爆靓照bbs.21ic.com/icview-2895340-1-1.html
二、实验简介
本实验基于ARM+FPGA超mini款iCore4T双核心板,ARM和FPGA通过高速SPI总线相连进行交互,其时钟高达130Mbit/s。本实验将带你一步一步利用STM32CubeMx工具完成对SPI的配置及DMA的配置最终实现ARM对FPGA的高速读写验证。
三、资料包下载(实验源码+详细文档文明)
1、源代码
**** Hidden Message *****
2、实验指导书
3、STM32CubeMx详细操作说明
感谢分享 感谢分享,下载看看 感谢楼主分享,正想学习spi 好的看看 ARM和FPGA通过高速SPI总线相连进行交互,其时钟高达130Mbit/s!
如果在某些常规情况下,这个比 并行总线要更方便啊! 看了一下例程,请问一下,关于FPGA解析不同的功能、数据,甚至连续数据这个操作。
是不是也要实现定义好通讯协议?
比如 使用ARM 配置FPGA 连接的DAC\ADC,或者使用ARM配置FPGA发脉冲、启停脉冲、改变高低电平等操作。 当然,SPI 的通讯可能涉及不到帧头、帧尾、校验和这一说吧?
该如何做一个健壮的通讯协议啊? 東南博士的提问,我感觉也正是我想问的。
一般的spi 在操作的时候,常规的还是 地址(地址中的寄存器数据)+连续多个数据,8--16--32 位字节。
这样实现了DAC ADC 的操作。
看一下原理图、源码! 東南博士 发表于 2020-3-17 14:04
看了一下例程,请问一下,关于FPGA解析不同的功能、数据,甚至连续数据这个操作。
是不是也要实现定义好通 ...
你这个问题提的非常好,是有规定好的通讯协议,整包数据传输,单个数据传输,IO控制,单个寄存器控制等。这个在我们的FPGA部分会有详细的介绍。 heart蓝色CD 发表于 2020-3-17 14:35
你这个问题提的非常好,是有规定好的通讯协议,整包数据传输,单个数据传输,IO控制,单个寄存器控制等。 ...
CD兄,你说的FPGA部分,是只FPGA的例程中吗? 我也用了不少的TI ADI 公司的模拟器件,ADC DAC 时钟频率信号源等等。在传输SPI数据的过程中,也没有涉及到CRC校验或者信号的丢失判断部分。
例如传统的方式:
地址+数据:1个/2个/3个 地址+ 1个32Byte 的数据:
那就是按照顺序按照SPI的指令发字节就行了。
我比较疑惑的是,虽然SPI是片选、时钟、数据同步,但是也不能保证有数据丢失或者错乱的风险啊。。。
对于这个,该如何避免啊?
東南博士 发表于 2020-3-17 15:42
我也用了不少的TI ADI 公司的模拟器件,ADC DAC 时钟频率信号源等等。在传输SPI数据的过程中,也没有涉及到 ...
SPI 开启 CRC校验,FPGA接收数据后进行CRC校验,保证数据的正确性 heart蓝色CD 发表于 2020-3-17 16:18
SPI 开启 CRC校验,FPGA接收数据后进行CRC校验,保证数据的正确性
OK!好的!实际上 大多数ADC DAC 这类的ASIC 芯片 有没有校验机制的对吧? 東南博士 发表于 2020-3-17 16:29
OK!好的!实际上 大多数ADC DAC 这类的ASIC 芯片 有没有校验机制的对吧?
是的 spi_dma用hAL库一头雾水,学习了 学习一下 spi怎么使用dma 回复查看源代码