欢迎来到天天文库
浏览记录
ID:38603376
大小:431.00 KB
页数:41页
时间:2019-06-16
《《SPI与模拟量转换》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十章SPI与模拟量转换主要内容SPI的基本工作原理GP32的SPI模块编程基础A/D和D/A转换的基本问题MC908GP32内部A/D转换模块GP32MCUA/D转换编程实例*利用SPI进行高位扩A/D展接口*利用SPI进行高位扩D/A展接口*扩展实现D/A转换*常用传感器及采样电路简介《嵌入式技术基础与实践》10.1SPI的基本工作原理10.1.1SPI的主要特性①全双工。②主、从工作方式。③发送和接收的数据寄存器相互独立从而实现双缓存操作。④主机可以设定4种工作频率(最大可达总线频率的二分之一)。⑤从
2、机最大工作频率等于总线频率。⑥发送结束、接收结束、工作方式错误和溢出错误四种中断标志。⑦一个主控MCU和几个从控MCU相互连接。⑧几个MCU相互连接构成一个多主机系统。⑨一个主控MCU和一个或多个从属外设相互连接。10.1.2SPI的数据传输利用SPI进行MCU之间的数据传输时,主机的程序控制着数据传输,从机的程序配合主机工作,完成传输过程。图10-1是SPI的主-从连接示意图。具体工作过程:从主机CPU发出启动传输信号开始,此时要传送的数据装入8位移位寄存器,同时产生8个时钟信号从SPSCK引脚依次送出;
3、在SPSCK信号的控制下,主机中8位移位寄存器中的数据依次从MOSI引脚送出,到从机的MOSI引脚送入它的8位移位寄存器;在此过程中,从机的数据也通过MISO引脚到主机中。图10-1SPI全双工主-从连接移位寄存器移位寄存器MISOMISO主MCUMOSIMOSI波特率发生器从MCUSPSCKSPSCK10.1.3SPI模块的时序SPI是在同步信号SPSCK的控制下完成数据的传输,根据控制位CPHA和CPOL的不同,数据线和时钟线产生4种可能的时序。图10-2、图10-3、图10-4和图10-5给出了数据线
4、与SPSCK之间的关系。图10-2CPHA=0,CPOL=0时的数据/时钟时序图SPSCK周期CPOL=0MOSIFROMMASTERMISOFROMSLAVE信号捕捉点10.1.3SPI模块的时序图10-3CPHA=0,CPOL=1时的数据/时钟时序图SPSCK周期CPOL=1MOSIFROMMASTERMISOFROMSLAVE信号捕捉点10.1.3SPI模块的时序图10-4CPHA=1,CPOL=0时的数据/时钟时序图SPSCK周期CPOL=0MOSIFROMMASTERMISOFROMSLAVE信号
5、捕捉点10.1.3SPI模块的时序图10-5CPHA=1,CPOL=1时的数据/时钟时序图SPSCK周期CPOL=1MOSIFROMASTERMISOFROMSLAVE信号捕捉点10.2GP32的SPI模块编程基础10.2.1SPI模块的引脚SPI模块通常引出4个引脚,分别为:SS、MISO、MOSI、SPSCK。(1)从机选择引脚SS(Slaveselect)若SPI工作于主机方式,置SS为高电平;若SPI工作于从机方式,当SS=0时,表示主机选中了该从机,反之则未选中该从机。(2)主出从入引脚MOSI(
6、Masterout/slavein)MOSI是主机输出、从机输入数据线。(3)主入从出引脚MISO(Masterin/slaveout)MISO是主机输入、从机输出数据线。(4)SPI串行时钟引脚SPSCK(SPIserialclock)SPSCK用于控制主机与从机之间的数据传输。10.2.2SPI模块的寄存器SPI模块有3个寄存器:数据寄存器SPDR,控制寄存器SPCR,状态和控制寄存器SPSCR。(1)数据寄存器SPDR(SPIDataRegister)SPDR由两个独立的数据寄存器组成:只能写入的发送
7、数据寄存器和只能读出的接收数据寄存器,它们共用一个地址$0012。写入时,为要发送的8位数据,记为:T7~T0;读出时,为接收的8位数据,记为:R7~R0。(2)控制寄存器SPCR(SPIControlRegister)SPCR复位时写一次,以后不再对其写入,不再更改对SPI的设置,地址是$0010,各位定义:SPI接收中断允许位DMA选择位SPI发送中断允许位SPI允许位SPI线或模式位时钟相位位时钟极性选择位SPI主机位数据位D7D6D5D4D3D2D1D0定义SPRIEDMASSPMSTRCPOLCP
8、HASPWOMSPESPTIE复位001010003.SPI状态和控制寄存器SPSCR(SPIStatusandControlRegister)SPSCR的地址:$0011,定义为:SPI的波特率=CGMOUT/(2xBD)。上式中:CGMOUT为时钟产生模块CGM的基准时钟输出。BD是分频系数,由SPR1、SPR0位决定:SPR1、SPR0=00011011BD=2832128SPI接收器满标志位错误中断允许位
此文档下载收益归作者所有