欢迎来到天天文库
浏览记录
ID:37242837
大小:770.04 KB
页数:22页
时间:2019-05-20
《【SPI】LPC1700系列Cortex-M3_ZLG》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、同步串行外设接口(SPI)LPC1700系列Cortex-M3微控制器目录1SPI简介与特性2SPI基本操作3SPI寄存器结构4SPI操作流程与示例5SPI使用注意事项SPI简介SPI是一种同步串行外设接口,允许MCU与外围设备以串行方式通信。SPI控制器使LPC1700系列Cortex-M3能与众多外设通信,从而大大增强了处理器的外设扩展能力。从机选择SSEL串行时钟SCK主机输入从机输出LPC1700MISO主机输出从机输入MOSISSELMOSIMISOSCK:指示被选择参与数据传输的从机(低电平有效):单向信号线,数据通过它由主机传输到从机:单向信号线,
2、数据通过它由从机传输到主机:用于同步SPI接口间数据传输的时钟信号SPI特性同一时刻只允许主机和一个从机进行通信SPI总线可以连接一个主机和多个从机SPI总线通信是全双工的LPC1700(主机)从机从机从机SPI总线从机从机从机目录1SPI简介与特性2SPI基本操作3SPI寄存器结构4SPI操作流程与示例5SPI使用注意事项SPI初始化
3、时钟极性、相位时钟极性控制位——CPOL该位决定了SPI总线空闲时,SCK时钟线的电平状态。CPOL=0,当SPI总线空闲时,SCK时钟线为低电平;CPOL=1,当SPI总线空闲时,SCK时钟线为高电平。时钟相位控制位——C
4、PHA该位决定了SPI总线上数据的采样位置。CPHA=0,SPI总线在时钟线的第1个跳变沿采样数据;CPHA=1,SPI总线在时钟线的第2个跳变沿采样数据。SPI初始化
5、模式介绍CPOL=0模式一:SCK空闲时为低,CPHA=0SCK前沿采样采样结果为:10101010b总线空闲时,从SCK的前沿SCK为低电平开始采样SCK10101010MOSISPI初始化
6、模式介绍CPOL=0模式二:SCK空闲时为低,CPHA=1SCK后沿采样采样结果为:01010101b总线空闲时,从SCK的后沿SCK为低电平开始采样SCK01010101MOSISPI初始化
7、模式介绍C
8、POL=1模式三:SCK空闲时为高,CPHA=0SCK前沿采样采样结果为:10101010b总线空闲时,从SCK的前沿SCK为高电平开始采样SCK10101010MOSISPI初始化
9、模式介绍CPOL=1模式四:SCK空闲时为高,CPHA=1SCK后沿采样采样结果为:01010101b总线空闲时,从SCK的前沿SCK为高电平开始采样SCK01010101MOSISPI初始化
10、帧设置帧长度:可以设置成8~16位帧格式:设置高位先发送还是低位先发送配置帧长度为8,低位先发送,情形如下所示:12345678帧长度为8帧长度低位在前帧格式SPI收发数据
11、主机发送、从
12、机接收从机选释放从择机SPI主机SPI从机主机提供时钟P0.0SSEL需发送SCKSCK数据传的数据输完成DATAMOSIMOSIDATA数据编码后发送SPI收发数据
13、主机接收、从机发送从机选释放从择机SPI主机SPI从机P0.0SSEL数据传SCKSCK需发送输完成的数据DATAMISOMISODATA目录1SPI简介与特性2SPI基本操作3SPI寄存器结构4SPI操作流程与示例5SPI使用注意事项SPI寄存器结构FPCLK时钟计数寄存器F经分频后为收PCLK(S0SPCCR)发模块提供时钟信号SPI初始化配置数据寄存器SPI控制数据移位寄存器(S0SPDR)
14、器的核心收发模块控制寄存器反映收发模块反映传输完成(S0SPCR)的状态信息的中断信息状态寄存器中断标志寄存器(S0SPSR)(S0SPINT)SPI寄存器结构SPI控制寄存器SPI传输完成Bit7:SPIFSPI中断标志寄存器SPINT[0]发生模式错误Bit4:MODF置位SPI状态寄存器目录1SPI简介与特性2SPI基本操作3SPI寄存器结构4SPI操作流程与示例5SPI使用注意事项SPI操作流程与示例
15、主机、从机初始化voidSPIMasterInit(uint8fdiv)voidSPISlaveInit(void){{S0SPCR=(1<<5)
16、主机模
17、式/从机模式S0SPCR=(0<<5)
18、(0<<7)
19、不使用中断(0<<7)
20、(0<<2)
21、帧长度为8位(0<<2)
22、(0<<6)
23、先发送高位(0<<6)
24、(1<<4)
25、时钟极性为1(1<<4)
26、(0<<3);时钟相位为0(0<<3);if(fdiv<8){}fdiv=8;设置时钟频率}S0SPCCR=fdiv&0xfe;}SPI操作流程与示例
27、数据发送uint8MSendData(uint8ucdata){IO0CLR
28、=SPI_CS;选中从机S0SPDR=ucdata;发送数据while((S0SPSR&0x80)==0);等待数据发送完成IO0SET
29、=S
30、PI_CS;释放从机re
此文档下载收益归作者所有