云途HA SPI外设介绍
GaoSheng Lv4

首先来看HA的DS手册中对SPI外设的描述:
image
SPI外设的电路系统框图如下所示:
1743079265174
通过RM手册的IPC章节可知,SPI模块的外设功能时钟是可选的
image
首先是IPC的DIV分频,是一个四位,范围从0-15;
image
image
实际上还需要通过PRESCALE来计算SPI的分频,但是在配置SPI过程中你只需要写你预期的波率即可,底层驱动中会自动通过一个SPI_SetBaudRate的函数来计算出对应的分频值
image
image
全双工通信方式可以通过中断通信,DMA 通信,阻塞通信三种方式进行
云途的SPI传输有三个API(本文最关键的部分):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SPI_DRV_MasterTransfer
功能:执行非阻塞(异步)的 SPI 数据传输。
函数发起传输后立即返回,不等待传输完成。
用户需要通过调用 SPI_DRV_MasterGetTransferStatus 来检查传输状态。
如果需要终止传输,可以调用 SPI_DRV_MasterAbortTransfer。

SPI_DRV_MasterTransferBlocking
执行阻塞(同步)的 SPI 数据传输。
特点:
函数会一直阻塞,直到传输完成或超时。
如果传输在指定的超时时间内未完成,函数将返回 STATUS_TIMEOUT。

SPI_DRV_MasterTransferPolling
执行轮询(Polling)模式的 SPI 数据传输。
特点:
函数会主动轮询硬件状态寄存器,直到传输完成。
不依赖中断或 DMA,完全由软件控制传输过程。
函数会阻塞当前线程,直到传输完成。

SPI本身是支持一主多从时分复用的,这些SCK和SIN,SOUT线都是接在一起的,SPI从机设备的生产厂商各自不同,不能保证每家都有这个设计。临时凑在一起,总归会有比较大的风险(若当其中一个从机的发送数据信号线为高电平而另一个从机为低电平时,就会出现局部短路,进而损坏电路。)所以还是建议保守一点好,有几个从机,就配置几个SPI,这样能保证每个从机之间互不影响。

而多PCS设计的作用更多在于PCB布线的方便,从多个可选的PCS引脚中就近选择一个可用的PCS接到SPI从机设备上,对应在软件上,一旦确定下来某个SPI外设使用确定的PCS引脚,在整个程序的运行周期中就不再改动了。

CONT这个寄存器值得关注一下,置1后,PCS的状态将由SPI->TXCFG配置控制pcs结束,即需要软件去重新写SPI->TXCFG才会拉高pcs。具体表现为在传输完一帧后,是否需要重新拉高pcs。
image
3c6fa3f3d49e32c551955a69a184a73
CONT置1:9040e6fbd3f1a3a4f563662deec5495
CONT置0:acf91cda2189269f5e8953f8abd2678

https://mp.weixin.qq.com/s/cEGljK0pNDIvzAf7W_zqbQ
YTM32B1HA0xRM V1.2

本站由 提供部署服务