![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SPI总线驱动
jwq2011
这个作者很懒,什么都没留下…
展开
-
Linux spi驱动分析(一)----总线驱动
一、SPI总线驱动介绍 SPI总线总共需要四根线,包括MOSI、MISO、CLK和CS。本文首先从SPI设备注册开始来讲述SPI总线驱动。 二、设备注册 在系统启动的时候,会按照顺序执行一些初始化程序,比如device_initcall和module_init等宏。这些宏是按照顺序执行的, 比如device_initcall的优先级高于module_转载 2015-11-17 18:08:58 · 399 阅读 · 0 评论 -
Linux spi驱动分析(四)----SPI设备驱动(W25Q32BV)
一、W25Q32BV芯片简介 W25X是一系列SPI接口Flash芯片的简称,它采用SPI接口和CPU通信,本文使用的W25Q32BV容量为32M,具体特性如下: 1.1、基本特性 该芯片最大支持104MHz的时钟,供电电压范围在2.7~3.6V,SPI的片选信号CS低有效,在操作芯片的时候, 需要将/WP和/HOLD管脚接电源。转载 2015-11-17 21:30:54 · 903 阅读 · 0 评论 -
Linux spi驱动分析(三)----spiddev分析
一、spidev简单介绍 如果在内核中配置spidev,会在“/dev”目录下产生设备节点,通过此节点可以操作挂载在该SPI总线上的设备,接下来将从驱动层和应用层 来分析程序。 二、spidev驱动层 2.1、驱动注册 分析一个设备驱动,一般都是从module_init和module_exit处开始,本文也不例外,程序如下: 点击转载 2015-11-17 21:26:44 · 448 阅读 · 0 评论 -
Linux驱动修炼之道-SPI驱动框架源码分析(上)
来自:http:/http://blog.csdn.net/lanmanck/article/details/6895318 SPI协议是一种同步的串行数据连接标准,由摩托罗拉公司命名,可工作于全双工模式。相关通讯设备可工作于m/s模式。主设备发起数据帧,允许多个从设备的存在。每个从设备 有独立的片选信号,SPI一般来说是四线串行总线结构。 接口: SCLK——Seri转载 2015-11-24 10:46:27 · 340 阅读 · 0 评论 -
Linux驱动修炼之道-SPI驱动框架源码分析(中)
这篇来分析spi子系统的建立过程。 嵌入式微处理器访问SPI设备有两种方式:使用GPIO模拟SPI接口的工作时序或者使用SPI控制器。使用GPIO模拟SPI接口的工作时序是非常容易实现的,但是会导致大量的时间耗费在模拟SPI接口的时序上,访问效率比较低,容易成为系统瓶颈。这里主要分析使用SPI控制器的情况。 这个是由sys文件系统导出的spi子系统在内核中的视图了。 首先了解一下Linu转载 2015-11-24 10:50:03 · 344 阅读 · 0 评论 -
Linux驱动修炼之道-SPI驱动框架源码分析(下)
这篇文档主要介绍spi数据传输过程。 当应用层要向设备传输数据的时候,会通过ioctl向设备驱动发送传输数据的命令。如图,向SPI从设备发送读写命令,实际的读写操作还是调用了主机控制器驱动的数据传输函数。transfer函数用于spi的IO传输。但是,transfer函数一般不会执行真正的传输操作,而是把要传输的内容放到一个队列里,然后调用一种类似底半部的机制进行真正的传输。这是因为,spi转载 2015-11-24 10:53:26 · 403 阅读 · 0 评论 -
Linux spi驱动分析(二)----SPI核心(bus、device_driver和device)
一、spi总线注册 这里所说的SPI核心,就是指/drivers/spi/目录下spi.c文件中提供给其他文件的函数,首先看下spi核心的初始化函数spi_init(void)。程序如下: 点击(此处)折叠或打开 static int __init spi_init(void) { int status; buf转载 2015-11-17 21:21:51 · 617 阅读 · 0 评论