一.spi介绍
spi总线一般由四个信号线组成,分别为mosi,miso,clk,cs。
MOSI为主设备输出从设备输入,MISO为主设备输入 从设备输出,clk为主设备输出到从设备时钟信号,cs为从设备片选信号。
spi工作时序模式由cpol和cpha相位关系决定。cpol为0表示时钟初始信号为低电平,为1表示时钟初始信号为高电平。cpha为0表示首个时钟变化沿采样数据,为1表示第二个时钟变化沿采样数据。所以共有四种工作模式。
qspi是对标准spi接口的扩展,增加了队列传输机制,与spi相比最大的结构特点是以80字节的RAM代替了spi的发送和接受数据寄存器。
二.rtthread中spi设备驱动开发
在驱动开发前需要从struct rt_spi_bus结构中派生出新的spi总线设备模型,根据自己的设备类型定义私有数据域。
stm32的spi总线设备模型代码如下:
struct stm32_spi
{
SPI_HandleTypeDef handle;
struct stm32_spi_config *config;
stuct
{
DMA_HandleTypeDef handle_rx;
DMA_HandleTypeDef handle_tx;
}dma;
rt_uint8_t spi_dma_flag;
struct rt_spi_bus spi_bus;
};
struct stm32_spi_config
{
SPI_TypeDef *Instance;
char *bus_name;
struct dma_config *dma_rx,*dma_tx;
};
|