CH58x/59x SPI0讲解

前言:

SPI收发分为首字节模式和DMA收发数据模式。

首字节模式:主机发送数据长度不固定,可以将主机发送的第一个字节配置为长度。从机先接收第一个字节,然后通过DMA接收剩余的数据。

DMA接收数据:主机发送数据长度固定,从机接收数据长度固定。

产品开发,建议使用DMA收发数据。长度建议固定,不固定自行补充。

讲解:

1、流程:

  • 主机发送:写数据-->DMA-->FIFO-->移位寄存器1-->MOSI线。其中数据填入DMA为手动操作完成,其余为芯片硬件完成。
  • 从机接收:MISO线-->移位寄存器2-->FIFO-->DMA-->读数据。其中从DMA读数据为手动操作完成,其余为芯片硬件完成。

2、典型寄存器:

寄存器(位) 功能 举例
RB_SPI_IF_DMA_END

数据装载DMA完成,但是不代表数据传输完成。因为DMA是独立于SPI,所以不能代表数据已经传输完成。

接收数据,可作为接收完成标志

SPI从机DMA接收数据时,可通过该标志位判断数据可以进行接收。但是从机DMA发送时,该标志位置位仅代表数据填入DMA完成,但是此时数据还没有完全填入fifo或者MISO总线。需要通过RB_SPI_IF_CNT_END判断从机填入数据完成。
RB_SPI_IF_CNT_END

数据传输完成

发送数据,可作为发送完成标志

 
R8_SPI0_CLOCK_DIV

时钟分频系数,基于主频(默认60M)

SPI主机配置,从机可不进行配置

分频系数为4,则SPI主频为系统主频/分频系数,即15Mhz
     

3、通信方式:

CH57x/58x/59x系列芯片使用DMA只能半双工,因为FIFO方向同一时刻只能配置为输入或输出。

需要用全双工只能使用单字节,即 R8_SPI0_BUFFER。(字节传入到发送的移位寄存器时,接收的移位寄存器已经收到数据)。

补充:

SPI驱动屏幕时,驱屏的效果与分辨率有关,例如240*240的屏幕,SPI主频为30M,则对应的驱动帧数计算:30M/240/240/8/2=32帧。与屏幕的尺寸无关。如果只需要点亮屏幕,则帧数无所谓。

posted @ 2023-08-28 15:58  SweetTea_lllpc  阅读(288)  评论(0编辑  收藏  举报