eric2013 发表于 2022-4-10 11:58:01

H7-TOOL的SPI控制器主从机操作说明,20cm杜邦线接线方式,SPI全双工25MHz通信速度(2022-04-10)

H7-TOOL做主机,STM32H7做从机。

V7开发板SPI从机程序下载,这个是专门为TOOL测试做的一个从机程序:

https://www.armbbs.cn/static/image/filetype/zip.gifSPI从机测试例子.7z (7.64MB)

1、硬件接线方式如下:


_________________________                        _____________________________
|         ______________|                      |______________________       |
|          |   SPI1   |                      |      SPI1          |      |
|          |            |                      |                      |      |
|          |      CLK(D5) |______________________|(PB3)CLK            |      |
|          |            |                      |                      |      |
|          |   MISO(D3) |______________________|(PB4)MISO             |      |
|          |            |                      |                      |      |
|          |   MOSI(D2) |______________________|(PB5)MOSI             |      |
|          |            |                      |                      |      |
|          |______________|                      |______________________|      |
|      __               |                      |                           |
|   |__|                |                      |                           |
|   USER                |                      |                           |
|                      GND|______________________|GND                        |
|                         |                      |                           |
|_H7-TOOL Master _________|                      |_STM32H7 Slave ______________|
程序里面默认做的是4字节全双工处理,大家可以根据自己的需求修改。

2、TOOL上位机配置如下,每次点击执行都可以看到效果:


大家自己修改使用,不需要每次都执行初始化,初始化仅需执行一次即可,即LUA函数SPI_Init仅执行一次即可。


大家将TOOL的串口线也和板子接上,可以看到TOOL的SPI控制器发给板子的数据:



3、这里注意一点即可,下面三个的实现本质是一样的,都是基于SPI全双工方式:

(1)仅写数据:实际上也有返回的全双工方式,只是程序没有使用。
(2)仅读取数据:也是全双工方式。
(3)读写数据:这里实际上同样是全双工方式,比如下面的配置同样是4次全双工通信,只是前两次用于写入,后两次用于读取,总共也是4次。



大家可以根据需要,配合延迟和循环之类的函数做其他操作。


下面是测试仅写效果:





下面是测试仅读效果:







eric2013 发表于 2022-4-11 03:41:51

更新完毕,更多的SPI主从机相关知识可以看V7开发板的SPI主从机双机通信教程:

教程第94章:https://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

luis_13 发表于 2022-11-14 09:40:11

这个接受或者发送必须要指定长度,如果不知道要接受多少长度,这个值赋多少呢?

eric2013 发表于 2022-11-14 11:04:49

luis_13 发表于 2022-11-14 09:40
这个接受或者发送必须要指定长度,如果不知道要接受多少长度,这个值赋多少呢?

不定长不用管这个,当然,越大越好。越大,每个缓存可以处理的时间就越长。

SPI DMA不定长的本质是双缓冲机制,一直开着接收就行。

luis_13 发表于 2022-11-14 18:30:19

eric2013 发表于 2022-11-14 11:04
不定长不用管这个,当然,越大越好。越大,每个缓存可以处理的时间就越长。

SPI DMA不定长的本质是双 ...

ok谢谢硬汉各。 明白了。

杰瑞鼠 发表于 2023-9-19 16:20:33

可以h7-tools作为从机,单片机作为主机吗?在SPI不变差分驱动的情况下,降低总线塑料到2MHZ,中间线束能达到40cm吗?

eric2013 发表于 2023-9-20 09:10:52

杰瑞鼠 发表于 2023-9-19 16:20
可以h7-tools作为从机,单片机作为主机吗?在SPI不变差分驱动的情况下,降低总线塑料到2MHZ,中间线束能达到 ...

TOOL的SPI主从都已经做好了,测试两个TOOL使用50cm线可以50MHz双机通信,都是LUA API控制。API非常简单。

eric2013 发表于 2024-4-16 11:55:57

还是焊接上稳定牢固

SPI主从通信是全双工通信, 收发同时进行的。
主机写数据操作:比如写4个字节数据,实际也返回4个字节数据,只是我们没使用。
主机读数据操作:比如读取4个字节数据,实际我们也写入了4个数据,只是写入的什么不重要了。
主机写入后读取: 比如写入2个字节,读取2个字节,实际是连续进行了4次全双工通信,写入的2个数据使用前两次全双工,读取使用的后两个全双工。





页: [1]
查看完整版本: H7-TOOL的SPI控制器主从机操作说明,20cm杜邦线接线方式,SPI全双工25MHz通信速度(2022-04-10)