既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
SPI通信分析
许久不更,想你们了。
SPI 模式的配置
- SPI通信配置
STM官方的芯片手册中对于SPI通信模式的配置过程,CPHA和CPCL的配置对于通信模式的影响如下图所示:
note :中断模式下的连续从机数据传输。
STM32通信接口介绍:
对于STM32F103ZET6配置:
Up to 13 communication interfaces
– Up to 2 × I2C interfaces (SMBus/PMBus)
– Up to 5 USARTs (ISO 7816 interface, LIN,
IrDA capability, modem control)
– Up to 3 SPIs (18 Mbit/s), 2 with I2S
interface multiplexed
– CAN interface (2.0B Active)
– USB 2.0 full speed interface
– SDIO interface
对于 STMF407ZET6配置:
Up to 15 communication interfaces
– Up to 3 × I2C interfaces (SMBus/PMBus)
– Up to 4 USARTs/2 UARTs (10.5 Mbit/s,
ISO 7816 interface, LIN, IrDA, modem
control)
– Up to 3 SPIs (37.5 Mbits/s), 2 with muxed
full-duplex I2S to achieve audio class
accuracy via internal audio PLL or external
clock
– 2 × CAN interfaces (2.0B Active)
– SDIO interface
任务要求:
SCLK: 高于4Mhz
MISO:速度高于2Mbps
note :要求数据要连续传输大约192+1字节,而SPI通信,需要分字节传送数据帧。另外还得兼顾MOSI引脚的配置,和CS片选信号的使用。
寄存器配置:
F4的无线接口的引脚定义:
F1的无线引脚的定义:
对于SPI通信的特点:
- 所有的通信过程都是有主设备进行发起。
- 在通信配置上,主从设备必须在同一时序模式下进行。即配CPOL 和CPHA.
- 在主从通信前,需要先使能从设备,然后才是主设备的SCK发出时钟信号。
- 在TI模式下,主设备不用设置CPOL和CPHA。以及配置LSBFIRST位来定义帧格式。
- SPI的半双工通信模式可以配置为包含一条时钟和一条数据线(只接受或只发送)。
- 在主机启动数据的发送前,需要从机先用软件将数据存储到其内部的发送缓冲区中,然后再启动SPI通信。
- 在只发送模式下,应用程序只需要忽略接收缓冲区,而接收管脚可以作为普通的IO使用。
- 为了达到最大的传输速度,可以使用DMA进行发送缓冲区数据的更新操作。(ADC的数据也支持DMA的数据传送)
速度测量:
数据分帧:
对于SPI通信而言,一次最多传输32 字节的数据。
SPI每次数据传输可以 8 位或 16 位为单位,每次传输的单位数不受限制。
- SPI半双工通信下的从机中的只发送模式(MISO上发送数据)
验证工作:
分为两个部分,第一是用两个单片机进行通信,测试通信的速率最大是多少;第二步是将主机换成FPGA,而从机依旧是用单片机,进行传输速度的测试。
第一步单片机的SPI通信:
主机:配置为单向只接受模式
单向只接收过程(BIDIMODE=0 且 RXONLY=1)
在此模式下,可以按如下所述简化过程(参见图 282):
- 将 SPI_CR2 寄存器中的 RXONLY 位置 1。
- 通过将 SPE 位置 1 使能 SPI:
a) 在主模式下,这会立即激活 SCK 时钟的产生,并以串行方式接收数据,直到关闭
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
上物联网嵌入式知识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新