




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第14章SPI串行外设接口总线
SPI(SerialPeripheralInterface,串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外设以串行方式进行通信。外设可以是FlashRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可以直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线(INT),有的SPI接口芯片没有主机输出/从机输入数据线)。SPI串行外设接口总线相比I2C总线效率要高,因为它是双工的,但比I2C要多使用两根数据线。本章介绍SPI串行外设接口的原理、接口控制寄存器的配置和使用、SPI串行外设接口编程。本章内容较多且较复杂,同学可根据需要、精力、兴趣取舍。§14.1SPI接口及操作§14.2SPI接口寄存器§14.3MCP2515芯片介绍§14.4硬件实验电路§14.5SPI2实验程序主要内容§14.1SPI接口及操作14.1.1SPI串行外设接口的原理14.1.2SPI串行外设接口的特性14.1.1SPI串行外设接口的原理SPI接口是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM、Flash、实时时钟、AD转换器,以及数字信号处理器和数字信号解码器之间。SPI接口在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到数Mbps。SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件。接口包括以下4种信号。1.MOSI:主器件数据输出,从器件数据输入。2.MISO:主器件数据输入,从器件数据输出。3.SCLK:时钟信号,由主器件产生。4.:从器件使能信号,由主器件控制。在点对点通信中,SPI接口不需要进行寻址操作,且为全双工通信,简单高效。在多个从器件的系统中,每个从器件都需要独立的使能信号,由于SPI接口比I2C总线多两根信号线,因此硬件上比I2C系统要稍微复杂一些。SPI接口的内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如图所示,在SCLK的下降沿,数据发生改变,同时一位数据被存入移位寄存器。SPI接口的内部硬件接口如图所示。SPI接口也有其缺点:没有指定的流控制;没有应答机制来确认是否接收到数据。Exynos4412包含3个串行外设接口SPn(n=0~2)接口,每个SPI接口都有两个分别用于发送和接收的8位移位寄存器,在主设备的一个移位脉冲的驱动下,1bit数据被同步发送(串行移出)和接收(串行移入)。8位串行数据的速率由相关控制寄存器的内容决定。如果只想发送,接收到的是一些虚拟的数据;另外,如果只想接收,发送的数据也可以是一些虚拟的1。Exynos4412SPI0接口的结构框图如图所示14.1.2SPI串行外设接口的特性SPI接口具有如下特性:1.与SPI接口协议v2.11兼容;2.8位/16位/32位用于发送的移位寄存器;3.8位/16位/32位用于接收的移位寄存器;4.查询、中断和DMA传送模式。§14.2SPI接口寄存器14.2.1SPI状态寄存器14.2.2SPI时钟分频寄存器CLK_DIV_PERILn14.2.3SPI传输配置寄存器CH_CFGn14.2.4SPI发送数据寄存器(SPTDATn)14.2.5SPI接收数据寄存器(SPI_RX_DATAn(n=0~2))14.2.6SPI接口操作14.2.7SPI接口的传输格式14.2.8SPI通信模式14.2.1SPI状态寄存器SPI状态寄存器SPI_STATUSn(n=0~2)如表所示。名称位描述复位值TX_DONG
[25]主模式下发送状态0=其他情况;1=发送准备0RX_FIFO_LVL[23:15]接收FIFO数据个数0TX_FIFO_LVL[14:6]发送FIFO数据个数
RX_OVERRUN[5]接送FIFO溢出错误0RX_UNDERRUN[4]接收数据缺失错误0TX_OVERRUN[3]发送溢出错误0TX_UNDERRUN[2]发送FIFO数据缺失0RX_FIFO_RDY[1]0=接收FIFO大于触发水平;1=接收FIFO小于触发水平0TX_FIFO_rdy[0]0=发送FIFO大于触发水平;1=发送FIFO小于触发水平
14.2.2SPI时钟分频寄存器CLK_DIV_PERILnSPI时钟分频寄存器如表所示。CLK_DIV_PERILn(n=0~2)输入时钟的分频值,以配合合适的传输速度。CLK_DIV_PERIL0位描述复位值SPI0_PRE_RATIO[15:8]SPI0时钟分频因子,SCLK-SPI0=DOUTSPI0/(SPI0_PRE_RATIO+1)0SPI0_RATIO[3:0]SPI0时钟分频因子,DOUTSPI0=MOUTSPI0/(SPI0_RATIO+1)0CLK_DIV_PERIL1位描述复位值SPI1_PRE_RATIO[31:24]SPI1时钟分频因子,SCLK-SPI1DOUTSPI1(SPI1_PRE_RATIO+1)0SPI11RATIO[16:19]SPI1时钟分频因子,DOUTSPI1=MOUTSPI1/(SPI1ATIO+1)0CLK_DIV_PERIL2位描述复位值SPI2_PRE_RATIO[15:8]SPI2时钟分频因子,SCLK_SPI2=DOUTSPI0/(SPI2_PRE_RATIO+1)0SPI2_RATIO[3:0]SPI0时钟分频因子,DOUTSPI2=MOUTSPI2(SPI2_RATIO+1)014.2.3SPI传输配置寄存器CH_CFGnSPI传输配置寄存器CH_CFGn(n=0~2)是对SPI进行使能和传输配置,如接收使能、发送使能、主从关系确定,相位、极性、软件复位等,如表CH_CFGn(n=0~2)位描述复位值HIGH_SPEED_EN[6]从机模式下TX时间控制位,0=禁止;1=使能0SW_RST[5]软件复位0SLAVE[4]主从模式选择位0=主机模式;1=从机模式0CPOL[3]极性选择0=高;1=低0CPHA[2]相位选择0=方式A;1=方式B0PX_CH_ON[1]接收(RX)通道使能0=禁止;1=使能0TX_CH_ON[0]发送通道使能0=禁止;1=使能014.2.4SPI发送数据寄存器(SPTDATn)SPI发送数据寄存器SPI_TX_DATAn(n=0~2)如下表所示。发送数据寄存器中存放的是SPI接口待发送的数据。SPI_TX_DATAn(n=0~2)位描
述初
值SPI发送数据寄存器[31:0]发送数据寄存器中存放的是SPI接口待发送的数据0x0014.2.5SPI接收数据寄存器(SPI_RX_DATAn(n=0~2))SPI接收数据寄存器如下表所示。接收数据寄存器中存放的是SPI接口接收到的数据。SPI_RX_DATAn(n=0~2)位描
述初
值SPI接收数据寄存器[31:0]接收数据寄存器中存放的是SPI接口接收的数据0x0014.2.6SPI接口操作通过SPI接口,Exynos4412可以与外设同时发送/接收8位数据。串行时钟线与两条数据线同步,用于移位和数据采样。如果SPI是主设备,那么数据传输速率由主设备寄存器的相关位控制。可以通过修改频率来调整波特率寄存器的值。如果SPI是从设备,则其他主设备提供时钟,向SPIDATAn寄存器中写入字节数据,SPI发送/接收操作就同时启动。某些情况下,在向SPIDATAn寄存器中写入字节数据之前要激活nSS引脚。14.2.7SPI接口的传输格式Exynos4412支持4种不同的数据传输格式。14.2.8SPI通信模式SPI通信模式有如下3种。1.DMA模式:该模式不能用于从设备FormatB形式。2.查询模式:如果接收用的设备采用FormatB形式,DATA_READ信号应该比SPICLK延迟一个相位。3.中断模式:如果接收用的设备采用FormatB形式,DATA_READ信号应该比SPICLK延迟一个相位§14.3MCP2515芯片介绍本实验是通过编写SPI程序来控制MCP2515,MCP2515是一款独立的局域网CAN总线控制器。它本身代有9条指令,还有一个内置的状态寄存器,可以通过状态寄存器获取该芯片当前状态,MCP2515框图如下页图所示。我们主要关注MCP2515与SPI的接口及SPI驱动编程。MCP2515芯片指令集见表14-8。我们实验主要目的:1.设置SPI时钟源2.设置SPI数据传输格式和使能通道3.设置SPI工作模式4.设置GPC1相关引脚SPI工作模式指令名称格式说明复位11000000将内部基础器置为省缺状态读00000011从指定地址寄存器读数据读RX缓冲器10010mn0读取接收缓冲器时,在“n,m”指示的4个地址中一个放地址指针可以减轻读命令开销。写00000010将数据写入指定地址装载TX缓冲区01000abc装载TX缓冲区时,在a,b,c,所提示的6个地址中一个地址指针,可以减轻写命令开销。RTS10000abc指示控制器开始发送缓冲区报文,发送序列10000abc。a-TXB2请求发送,b-TXB1请求发送,c-TXB0请求发送读状态10100000读取发送/接收功能状态R状态10110000快速查询命令位修改00000101允许用户修改寄存器某位§14.4硬件实验电路Exynos4412配备3个SPI控制器,每个SPI总线控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB32-T 5102-2025 森林步道建设规范
- 现代化工业厂房产权及使用权转让合同
- 机器设备抵押贷款合同样本
- 仓储物流安全生产责任书
- Brand KPIs for neobanking Upstox in India-英文培训课件2025.4
- 2025年翻译专业研究生入学考试试卷及答案
- 2025年电气工程与自动化专业综合能力测试试题及答案
- 2025年宠物护理与驯养专业知识考试卷及答案
- 一年级数学教案
- 歌舞厅行业人才需求分析
- 房屋卫生间闭水实验情况确认单
- 处方权考试(含答案)
- 《温病学》习题集-简答题+论述题
- 世界老年人跌倒的预防和管理指南解读及跌倒应急处理-
- 越南社会主义共和国刑法
- 井下煤矿掘进工作面爆破设计方案
- 东方广场招商执行方案
- 药物分析与检验技术中职PPT完整全套教学课件
- 实习考勤表(完整版)
- 五下册八单元解读
- 基础护理知识考核试题及答案
评论
0/150
提交评论