硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2567|回复: 12
收起左侧

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

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-4-11 02:31:00 | 显示全部楼层 |阅读模式

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

接线:
image.png

[C] 纯文本查看 复制代码
_________________________                        _____________________________
|           ______________|                      |______________________       |
|          |     SPI1     |                      |        SPI1          |      |
|          |              |                      |                      |      |
|          |     CLK(PB3) |______________________|(PB3)CLK              |      |
|          |              |                      |                      |      |
|          |    MISO(PB4) |______________________|(PB4)MISO             |      |
|          |              |                      |                      |      |
|          |    MOSI(PB5) |______________________|(PB5)MOSI             |      |
|          |              |                      |                      |      |
|          |    NSS(PG10) |______________________|(PG10)NSS             |      |
|          |______________|                      |______________________|      |
|                         |                      |                             |
|                         |                      |                             |
|                         |                      |                             |
|                      GND|______________________|GND                          |
|                         |                      |                             |
|_STM32H7 Master _________|                      |_STM32H7 Slave ______________|


主机:


从机:



教程目录:



回复

使用道具 举报

3

主题

1222

回帖

1231

积分

至尊会员

积分
1231
发表于 2022-4-11 08:58:32 | 显示全部楼层
回复

使用道具 举报

210

主题

1043

回帖

1683

积分

至尊会员

More we do, more we can do.

积分
1683
发表于 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.


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2022-4-11 14:25:03 | 显示全部楼层
emwin 发表于 2022-4-11 11:15
后半句不准确,分频寄存器只对主模式有效,从模式性能跟它没关系,手册上是这么写的:

看来H7 HAL的SPI从机有坑,我还特地升级到最新的1.11库,从机下,我去设置时钟,设置到2分频,开机直接挂了。必须低分频才正常,看来坑不小。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2022-4-12 00:16:38 | 显示全部楼层
emwin 发表于 2022-4-11 11:15
后半句不准确,分频寄存器只对主模式有效,从模式性能跟它没关系,手册上是这么写的:

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

从机确实无关。
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
QQ
发表于 2022-5-2 17:12:08 | 显示全部楼层
如果能搞一个V7板子与V6板子通信的例程就更好了,因为大多数学员都没有两块V7板,我分别有V5、V6、V7板
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2022-5-3 08:23:46 | 显示全部楼层
zenghouyun 发表于 2022-5-2 17:12
如果能搞一个V7板子与V6板子通信的例程就更好了,因为大多数学员都没有两块V7板,我分别有V5、V6、V7板

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

使用道具 举报

4

主题

166

回帖

178

积分

初级会员

积分
178
发表于 2023-11-5 08:44:52 | 显示全部楼层
硬汉哥,请教个问题,这个spi和 usart在做复用功能的时候gpio上下拉我看很多程序是nopull,这样发送端使用推挽输出的时候不是短路了吗,输出端的3.3和输入端的地
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2023-11-5 10:18:56 | 显示全部楼层
yuanzhongda 发表于 2023-11-5 08:44
硬汉哥,请教个问题,这个spi和 usart在做复用功能的时候gpio上下拉我看很多程序是nopull,这样发送端使用 ...

SPI推荐带上拉,效果好

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

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2024-3-14 10:06:09 | 显示全部楼层
楼主,我用这个例子,两个MCU都是  480M/400   ,SPI 2分频 不能跑通,还有额外设置吗?
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2024-3-14 10:09:19 | 显示全部楼层
这个例子,还有一个问题, 主MCU SPI 4分频 时钟为60M ,实际效果差不多30M, 用示波器看 SCK信号 ,两个字节的时钟之间有个空闲,SCK信号不连续
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 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  应该是没改这个时间导致的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2024-3-16 08:51:23 | 显示全部楼层
841291522gyl 发表于 2024-3-14 10:06
楼主,我用这个例子,两个MCU都是  480M/400   ,SPI 2分频 不能跑通,还有额外设置吗?

SPI从机不能支撑这么高的主机速度。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 06:23 , Processed in 0.233936 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表