版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SPI配置、时序及应用主讲:李楠SPI配置模式1STC15系列单片机进行SPI通信时,通过SPEN位、SSIG位、SS引脚和MSTR位,控制其工作模式。SPENSSIGSS引脚/P1.2MSTR主/从模式MISO/P1.4MOSI/P1.3SCLK/P1.5功能0XP1.2/SSX禁止SPIMISOP1.4MOSI/P1.3SCLK/P1.5禁止SPI1000从模式输出输入输入选择作为从设备1010从模式,未选中高阻输入输入未被选中。MISO为高阻状态,以避免总线冲突1001->0从模式输出输入输入P1.2/SS配置为输入或准双向口,SSIG为0,如果将SS驱动为低,则选择作为从设备。当SS变为低电平时,将MSTR清零主从模式的选择SPI配置模式1SPENSSIGSS引脚/P1.2MSTR主/从模式MISO/P1.4MOSI/P1.3SCLK/P1.5功能1011主(空闲)输入高阻高阻当主机空闲时,MOSI和SCLK为高阻,以避免总线冲突。用户必须将SCLK上拉或者下拉,以避免SCLK处于悬空状态
主(活动)输入输出输出作为主机激活时,MOSI和SCLK为推挽输出11P1.2/SS0从模式输出输入输入
11P1.2/SS1主模式输入输出输出主从模式的选择主从模式注意事项2作为主设备时的注意事项当CPHA为0时,SSIG必须为0不能忽略SS引脚,SS引脚必须设置为低,并且在每个连续的串行字节发送完后必须重新设置为高电平。如果在SS低电平有效时,执行对SPDAT寄存器的写操作,将会导致出现一个写冲突错误。当CPHA为1时,SSIG可以置1可以忽略SS引脚。如果SSIG为0,在连续传输之间SS引脚保持低电平有效。这种方式适合具有单个固定主设备和单个固定从设备之间驱动MISO数据线的系统。主从模式注意事项2如果SPEN为1,SSIG为0且MSTR为1,则SPI为主模式。通过P2M1和P2M0寄存器(用于设备P2端口的输入/输出模式),将SS引脚配置为输入或者准双向模式。在该模式下,另外一个主设备可以将该引脚驱动为低,从而将该器件选择为SPI从设备,并向该从设备发送数据。为了避免总线冲突,SPI执行下面的行为:清零MSTR,并且变为从设备。同时,将MOSI和SCLK强制作为输入模式,而MISO作为输出模式。将SPSTAT寄存器的SPIF标志置为1。如果已经使能SPI中断,则产生SPI中断。主从模式注意事项2在SPI中,总是由主设备发起数据传输过程。如果使能SPI,并将其设置为主设备,主设备对SPI数据寄存器的写操作将启动SPI时钟发生器和数据的传输。在数据写入SPDAT之后的0.5~1个SPI比特位时间后,在MOSI引脚上将出现数据。作为从设备时的注意事项传输完一个字节后,停止SPI时钟,将SPIF标志置1,并产生一个中断。主设备和从设备CPU的两个移位寄存器可以看作是一个16位的循环移位寄存器。当数据从主设备移位传输到从设备的同时,数据以反方向从从设备移位传输到主设备。也就是,在一个移位周期过程中,主设备和从设备相互交换数据。主从模式注意事项2SPI在发送数据时,为单级缓冲方式;而在接收数据时,为双缓冲方式。如果在发送数据的过程中,向移位寄存器写数据,则将WCOL位置1表示数据冲突在这种情况下,继续发送完当前的传输的数据,但是新写入的数据丢失。
由于主设备拥有数据传输的控制能力,因此主设备发生写冲突的情况是比较少见的但是,从设备有可能发生写冲突。这是因为当主设备启动数据传输时,从设备无法控制数据的传输过程。写冲突当从设备接收到数据时,将接收到的数据发送到一个并行读数据缓冲区。这样,就释放了移位寄存器用于接收下一个数据。必须在下一个字符完全移入之前从数据寄存器中读出接收到的数据。否则,将丢失前一个数据。SPI模块配置及时序3CPHA为0时主模式数据传输时序图通过时钟相位控制位CPHA,允许用户设置采样和改变数据的时钟边沿。此外,时钟极性比特控制位CPOL,允许用户设置时钟的极性。
CPHA为0时从模式数据传输时序图SPI模块时序3SPI模块配置及时序3
CPHA为1时主模式数据传输时序图
CPHA为1时从模式数据传输时序图SPI接口的编程要点4SPI接口的使用包括SPI接口的初始化程序和SPI中断服务程序的编写。SPI接口的初始化包括以下几个方面:①通过SPI控制寄存器SPCTL设置:SS引脚的控制、SPI使能、数据传送的位顺序、设置为主机或从机、SPI时钟极性、SPI时钟相位、SPI时钟选择。②清零寄存器SPSTAT中的标志位SPIF和WCOL(向这两个标志位写1即可清零)。③开放SPI中断(IE2中的ESPI=1,IE2寄存器不能位寻址,可以使用“或”指令)及总中断(IE中的EA=1)。在中断服务程序中首先需要将标志位SPIF和WCOL清零,因为SPl中断标志不会自动清除。SPI通讯应用——两台单片机间通讯5任务:电脑每向主单片机发送一个字节数据,主单片机的RS232串口每收到一个字节就立刻将收到的字节通过SPl口发送到从单片机中;从单片机收到这个数据后,通过SPI口送回主单片机;主单片机收到从单片机发回的一个字节,再把收到的这个字节通过RS232口发送到电脑。可以使用串口助手观察结果。SPI通讯应用——两台单片机间通讯5主单片机程序:#include"stc15w4k58s4.h"#defineFOSC18432000L#defineBAUD(256-FOSC/32/115200)
#defineSPEN0x40//SPCTL.6#defineMSTR0x10//SPCTL.4#defineSPIF0x80#defineWCOL0x40#defineESPI0x02//IE2.1
sbitSPISS=P1^1;/SPI从机选择口,连接到其它MCU的SS口SPI通讯应用——两台单片机间通讯5voidInitUart()/*************串口初始化函数******************/{SCON=0x5a;//设置串口为8位可变波特率T2L=0xd8;//设置波特率重装值T2H=0xff;//115200bps(65536-18432000/4/115200)AUXR=0x14;//T2为1T模式,并启动定时器2AUXR|=0x01;//选择定时器2为串口1的波特率发生器}/*******串口发送函数*****/voidSendUart(unsignedchardat){while(!TI);//等待发送完成TI=0;//清除发送标志SBUF=dat;//发送串口数据}/******串口接收函数******/unsignedcharRecvUart(){while(!RI);//等待串口数据接收完成RI=0;//清除接收标志returnSBUF;//返回串口数据}SPI通讯应用——两台单片机间通讯5voidInitSPI()/*************SPI初始化函数******************/{SPDAT=0;//初始化SPI数据
SPSTAT=SPIF|WCOL;//清除SPI状态位
SPCTL=SPEN|MSTR;//主机模式}/*************SPI中断函数******************/voidspi_isr()interrupt9//SPI中断服务程序9(004BH){SPSTAT=SPIF|WCOL//清除SPI状态位SPISS=1;//拉高从机的SSSendUart(SPDAT);//返回SPI数据}SPI通讯应用——两台单片机间通讯5voidmain()/**************主函数******************/{InitUart();//初始化串口
InitSPI();//初始化SPIIE2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 投资入股电站合同范例
- 承包轮胎炼油合同范例
- 农场收购合同范例
- 外包保安合同范例
- 关于增补保安合同范例
- 复垦合同范例
- 正规代销合同范例
- 商场装潢合同范例
- 最强合同范例
- 电影制作合同范例
- 酒店投资概算表(模板)精华
- GB/T 36393-2018土壤质量自然、近自然及耕作土壤调查程序指南
- GB/T 1412-2005球墨铸铁用生铁
- 新疆维吾尔自治区公共建筑节能设计标准实施细则2023
- 2022年西藏自治区中考英语真题卷(含答案与解析)
- RCS-9626CN电动机保护测控装置
- 年终总结运维报告课件
- 体育教学与信息技术
- 公司力量观后感
- 《国际法》形成性考核参考资料广东开放大学2022年10月题库
- 纯电动汽车整车控制器(VCU)策略 PPT
评论
0/150
提交评论