嵌入式驱动之SPI接口
来源:互联网 发布:简单线切割3b编程 编辑:程序博客网 时间:2024/05/09 02:56
外围串行接口(SPI)是一种四线同步串行接口。数据通信在从器件选择或片选信号(CSB)为低时有效。数据由串行数据输入(MOSI),串行数据输出(MISO)和串行时钟信号(SCK)组成的三线接口进行传输。每个SPI系统由一个主机,一个或多个从机构成。主机是提供SPI时钟信号的微控制器,从机是接收SPI信号的任何集成电路。
一 下面是典型的SPI连接图
从图中可以知道下面几点:1)一个主芯片可以接多个SPI设备 2)多个SPI的SI,SO,SCK可以共用
二 引脚介绍
主机(如uP检测机等)与ASIC间使用四线串行系统实现传输。
MOSI 主机出从机入 uP —〉ASIC
MISO 主机入从机出 ASIC—〉 uP
SCK 串行时钟 uP —〉 ASIC
CSB 片选(低有效) uP—〉 ASIC
每次数据传输开始于CSB信号的下降沿,结束于其上升沿。数据传输过程中,命令和数据由SCK和CSB信号控制,并遵循下列规则:
1. 命令和数据传输时,高位在前,低位在后
2. 每个输出数据/状态位在SCK下降沿移出(MISO线)
3. SCK信号的上升沿数据输出(MOSI线)
4. 器件在CSB信号为低被选中,同时收到一个八比特命令。该命令指定了、将要进行的操作。
5. CSB信号上升沿时结束所有的数据传输,并复位内部计数器和命令字寄存器。
6. 如果接收到无效命令,则不会有数据写入IC,MISO将保持高阻直至CSB下降沿,并对串行通信重新初始化。
7. 除了表1中所列的SPI命令之外,为了能够执行其它命令,锁存器的内容须正确设置。如果其他命令输入时,锁存器的内容不正确,则数据不会传送到芯片上,并且在CSB信号下降沿到来之前,MISO线一直处于高阻态。
8. 发送完命令后,主机的的数据传送立即进行(在MOSI线),数据将写入ASIC的内部寄存器中。
9. 在SCK的上升沿,SPI命令的最后一位输入后,则在紧接的SCK的下降沿到来时,数据开始由MISO线输出。
10. 最高数据传输速率可超过1MHZ。 SPI命令可以是独立的指令也可以是指令与数据的组合。在指令与数据一起发送时,输入数据直接跟在指令之后,输出数据与主机的输入数据平行进行。
三 时序图
注意:1)极性0,表示引脚默认电流为低,有用的时候会变高,而极性1,正好相反
2)从机选择SSEL,即图1中MASTER中的SS0,SS1,SS2,SS3,会分别连接到SPI设备的CS上。默认情况下会拉高,当SPI设备可用时,对用SS会被拉低。
- 嵌入式驱动之SPI接口
- 嵌入式linux之SPI驱动
- IMX6之SPI接口驱动测试
- 4412的SPI接口驱动
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- Linux SPI总线和设备驱动架构之二:SPI通用接口层
- 嵌入式Linux驱动笔记(十三)------spi设备之RFID-rc522驱动
- 关于嵌入式开发中的SPI驱动
- solaris下安装top工具详解
- javascript与java值互相调用
- “当前不会命中断点。还没有为该文档加载任何符号。”解决办法
- Android Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
- FLEX中使用outerDocument
- 嵌入式驱动之SPI接口
- osx launchd service
- view to bitmap
- Makefile伪目标
- 高级Bash脚本编程指南(12):指定变量的类型: 使用declare或者typeset
- file_operations和block_device_operations解析
- System.map文件的作用
- 使用google custom search api
- Android高手进阶教程(五)之----Android 中LayoutInflater的使用!