
SPI
文章平均质量分 62
SPI
四季帆
汽车电子、bsp
展开
-
SPI配置
经常会提及SPI分为四种模式以上模式仅针对SPI的时钟(SCK)来区分CPOL也就是时钟的极性,用来表示SPI总线在空闲时SCK是低电平还是高电平,低电平为0,高电平为1;CPHA也就是时钟的相位,用来决定何时进行信号采样,在第一个跳变沿还是第二个跳变沿,在第一个跳变沿采样则为0,在第二个跳变沿采样则为1。......原创 2022-07-26 20:00:00 · 3486 阅读 · 2 评论 -
Linux SPI总线(4) - SPI协议驱动层
以ymu836这款音频处理芯片的驱动为例:static struct spi_driver ymu836_spi_driver = { .driver = { .name = "ymu836", .owner = THIS_MODULE, .of_match_table = ymu836_of_match, }, .probe = ymu...原创 2021-08-04 17:21:38 · 921 阅读 · 0 评论 -
Linux SPI总线(3) - SPI控制器驱动层
1. 简介控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能:申请必要的硬件资源,例如中断,DMA通道,DMA内存缓冲区等等; 配置SPI控制器的工作模式和参数,使之可以和相应的设备进行正确的数据交换工作; 向通用接口层提供接口,使得上层的协议驱动可以通过通用接口层访问控制器驱动;配合通用接口层,完成数据消息队列的排队和处理,直到消息队列变空为止。2. SPI控制器驱动以imx6dl 这款SoC为例,其spi...原创 2021-08-04 17:04:54 · 956 阅读 · 0 评论 -
Linux SPI总线(2) - SPI通用接口层
1. 简介由前面的博客可知,SPI通用接口层说白了就是一个中间层,承上启下,为协议驱动和控制器驱动提供一系列的标准接口API、标准数据结构,所以SPI通用接口层可以说是SPI总线的一个核心层了。SPI通用接口层的代码集中在:/drivers/spi/spi.c中。2. SPI通用接口层初始化这一部分向系统注册了一个名为spi的总线类型,同时也为SPI控制器注册了一个名为spi_master的设备类。struct bus_type ...原创 2021-08-02 12:51:02 · 1542 阅读 · 0 评论 -
Linux SPI总线(1) - 概述
1. 定义SPI 是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是:CS 片选信号SCK 时钟信号MISO 主设备的数据输入、从设备的数据输出脚MOSI 主设备的数据输出、从设备的数据输入脚因为在大多数情况下,CPU或SOC一侧通常都是工作在主设备模式,所以目前的Linux内核版本中,...转载 2021-07-31 18:04:42 · 795 阅读 · 0 评论