eric2013 发表于 2022-4-11 02:31:00

发布STM32H7的SPI DMA方式双机通信教程和案例(2022-04-11)


教程和例子下载:
https://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

接线:


_________________________                        _____________________________
|         ______________|                      |______________________       |
|          |   SPI1   |                      |      SPI1          |      |
|          |            |                      |                      |      |
|          |   CLK(PB3) |______________________|(PB3)CLK            |      |
|          |            |                      |                      |      |
|          |    MISO(PB4) |______________________|(PB4)MISO             |      |
|          |            |                      |                      |      |
|          |    MOSI(PB5) |______________________|(PB5)MOSI             |      |
|          |            |                      |                      |      |
|          |    NSS(PG10) |______________________|(PG10)NSS             |      |
|          |______________|                      |______________________|      |
|                         |                      |                           |
|                         |                      |                           |
|                         |                      |                           |
|                      GND|______________________|GND                        |
|                         |                      |                           |
|_STM32H7 Master _________|                      |_STM32H7 Slave ______________|

主机:
https://img.anfulai.cn/dz/attachment/forum/202204/09/025924kjozcwh711vhxlx7.png

从机:
https://img.anfulai.cn/dz/attachment/forum/202204/09/025951htopach6o8pzdhhz.png


教程目录:
https://img.alicdn.com/imgextra/i4/299314119/O1CN01zPmgnW1gIY95rKClI_!!299314119.png


morning_enr6U 发表于 2022-4-11 08:58:32

{:8:}

emwin 发表于 2022-4-11 11:15:31

本帖最后由 emwin 于 2022-4-11 11:18 编辑

大家根据自己接线的稳定性,可以适当调节 SPI 主机和从机的时钟速度,其中从机的时钟速度是可以
高于主机速度的,这样通信的容错性更好些。
后半句不准确,分频寄存器只对主模式有效,从模式性能跟它没关系,手册上是这么写的:
The SPI working in slave mode handles data flow using the serial interface clock derived
from the external SCK signal provided by external master SPI device. That is why the SPI
slave is able to receive and send data even when the spi_pclk and spi_ker_ck clock
signals are inactive.

eric2013 发表于 2022-4-11 14:25:03

emwin 发表于 2022-4-11 11:15
后半句不准确,分频寄存器只对主模式有效,从模式性能跟它没关系,手册上是这么写的:
看来H7 HAL的SPI从机有坑,我还特地升级到最新的1.11库,从机下,我去设置时钟,设置到2分频,开机直接挂了。必须低分频才正常,看来坑不小。

eric2013 发表于 2022-4-12 00:16:38

emwin 发表于 2022-4-11 11:15
后半句不准确,分频寄存器只对主模式有效,从模式性能跟它没关系,手册上是这么写的:

晚上确定了,设置各种分频都正常了。是我程序配置的问题。

从机确实无关。

zenghouyun 发表于 2022-5-2 17:12:08

如果能搞一个V7板子与V6板子通信的例程就更好了,因为大多数学员都没有两块V7板,我分别有V5、V6、V7板:lol

eric2013 发表于 2022-5-3 08:23:46

zenghouyun 发表于 2022-5-2 17:12
如果能搞一个V7板子与V6板子通信的例程就更好了,因为大多数学员都没有两块V7板,我分别有V5、V6、V7板

好的,后面增加V5,V6的双机。

yuanzhongda 发表于 2023-11-5 08:44:52

硬汉哥,请教个问题,这个spi和 usart在做复用功能的时候gpio上下拉我看很多程序是nopull,这样发送端使用推挽输出的时候不是短路了吗,输出端的3.3和输入端的地

eric2013 发表于 2023-11-5 10:18:56

yuanzhongda 发表于 2023-11-5 08:44
硬汉哥,请教个问题,这个spi和 usart在做复用功能的时候gpio上下拉我看很多程序是nopull,这样发送端使用 ...

SPI推荐带上拉,效果好

UART的话是RX和TX接的。SPI是主从方式区分的。

841291522gyl 发表于 2024-3-14 10:06:09

楼主,我用这个例子,两个MCU都是480M/400   ,SPI 2分频 不能跑通,还有额外设置吗?

841291522gyl 发表于 2024-3-14 10:09:19

这个例子,还有一个问题, 主MCU SPI 4分频 时钟为60M ,实际效果差不多30M, 用示波器看 SCK信号 ,两个字节的时钟之间有个空闲,SCK信号不连续

841291522gyl 发表于 2024-3-14 10:23:35

841291522gyl 发表于 2024-3-14 10:09
这个例子,还有一个问题, 主MCU SPI 4分频 时钟为60M ,实际效果差不多30M, 用示波器看 SCK信号 ,两个字节 ...

hspi->Init.MasterInterDataIdleness=SPI_MASTER_INTERDATA_IDLENESS_10CYCLE应该是没改这个时间导致的

eric2013 发表于 2024-3-16 08:51:23

841291522gyl 发表于 2024-3-14 10:06
楼主,我用这个例子,两个MCU都是480M/400   ,SPI 2分频 不能跑通,还有额外设置吗?

SPI从机不能支撑这么高的主机速度。
页: [1]
查看完整版本: 发布STM32H7的SPI DMA方式双机通信教程和案例(2022-04-11)