SPI与模拟量转换.ppt
《SPI与模拟量转换.ppt》由会员分享,可在线阅读,更多相关《SPI与模拟量转换.ppt(41页珍藏版)》请在三一办公上搜索。
1、第十章 SPI与模拟量转换,主要内容SPI的基本工作原理 GP32的SPI模块编程基础 A/D和D/A转换的基本问题 MC908GP32内部A/D转换模块GP32 MCU A/D转换编程实例*利用SPI进行高位扩A/D展接口*利用SPI进行高位扩D/A展接口*扩展实现D/A转换*常用传感器及采样电路简介,嵌入式技术基础与实践,10.1 SPI的基本工作原理,10.1.1 SPI的主要特性全双工。主、从工作方式。发送和接收的数据寄存器相互独立从而实现双缓存操作。主机可以设定4种工作频率(最大可达总线频率的二分之一)。从机最大工作频率等于总线频率。发送结束、接收结束、工作方式错误和溢出错误四种中断
2、标志。一个主控MCU和几个从控MCU相互连接。几个MCU相互连接构成一个多主机系统。一个主控MCU和一个或多个从属外设相互连接。,10.1.2 SPI的数据传输利用SPI进行MCU之间的数据传输时,主机的程序控制着数据传输,从机的程序配合主机工作,完成传输过程。图10-1是SPI的主-从连接示意图。具体工作过程:从主机CPU发出启动传输信号开始,此时要传送的数据装入8位移位寄存器,同时产生8个时钟信号从SPSCK引脚依次送出;在SPSCK信号的控制下,主机中8位移位寄存器中的数据依次从MOSI引脚送出,到从机的MOSI引脚送入它的8位移位寄存器;在此过程中,从机的数据也通过MISO引脚到主机中
3、。,10.1.3 SPI模块的时序 SPI是在同步信号SPSCK的控制下完成数据的传输,根据控制位CPHA和CPOL的不同,数据线和时钟线产生4种可能的时序。图10-2、图10-3、图10-4和图10-5给出了数据线与SPSCK之间的关系。图10-2 CPHA=0,CPOL=0时的数据/时钟时序图,10.1.3 SPI模块的时序图10-3 CPHA=0,CPOL=1时的数据/时钟时序图,SPSCK周期,CPOL=1,MOSIFROM MASTER,MISOFROM SLAVE,信号捕捉点,10.1.3 SPI模块的时序图10-4 CPHA=1,CPOL=0时的数据/时钟时序图,10.1.3 S
4、PI模块的时序图10-5 CPHA=1,CPOL=1时的数据/时钟时序图,10.2 GP32的SPI模块编程基础,10.2.1 SPI模块的引脚SPI模块通常引出4个引脚,分别为:SS、MISO、MOSI、SPSCK。(1)从机选择引脚SS(Slave select)若SPI工作于主机方式,置SS为高电平;若SPI工作于从机方式,当SS=0时,表示主机选中了该从机,反之则未选中该从机。(2)主出从入引脚MOSI(Master out/slave in)MOSI是主机输出、从机输入数据线。(3)主入从出引脚MISO(Master in/slave out)MISO是主机输入、从机输出数据线。(4
5、)SPI串行时钟引脚SPSCK(SPI serial clock)SPSCK用于控制主机与从机之间的数据传输。,10.2.2 SPI模块的寄存器SPI模块有3个寄存器:数据寄存器SPDR,控制寄存器SPCR,状态和控制寄存器SPSCR。(1)数据寄存器SPDR(SPI Data Register)SPDR由两个独立的数据寄存器组成:只能写入的发送数据寄存器和只能读出的接收数据寄存器,它们共用一个地址$0012。写入时,为要发送的8位数据,记为:T7T0;读出时,为接收的8位数据,记为:R7R0。,(2)控制寄存器SPCR(SPI Control Register)SPCR复位时写一次,以后不再
6、对其写入,不再更改对SPI的设置,地址是$0010,各位定义:,SPI接收中断允许位,DMA选择位,SPI发送中断允许位,SPI允许位,SPI线或模式位,时钟相位位,时钟极性选择位,SPI主机位,3SPI状态和控制寄存器SPSCR(SPI Status and Control Register)SPSCR的地址:$0011,定义为:SPI的波特率=CGMOUT/(2xBD)。上式中:CGMOUT为时钟产生模块CGM的基准时钟输出。BD是分频系数,由SPR1、SPR0位决定:SPR1、SPR0=00 01 10 11 BD=2 8 32 128,SPI接收器满标志位,错误中断允许位,SPI波特率
7、选择位,模式错误标志允许位,SPI发送器空标志位,模式错误标志位,溢出标志位,10.2.3 SPI编程基本方法(1)SPI初始化 第一步:写控制字到SPCR,确定是否允许SPI接收中断、SPI的工作方式、时钟极性、时钟相位、是否允许SPI等。第二步:写控制字到SPSCR,确定SPI的波特率。(2)发送一个数据与接收一个数据 通过SPI发送一个数据,同时通过SPI接收一个数据,作为主机方,只要将数据送入SPDR,然后检查SPSCR的SPTE位(位3),若该位为1,表示数据已送出。若同时接收对方送来的数据,则接着检查SPSCR的SPRF位(位7),若该位为1,表示要接收的数据已进入数据寄存器,可以
8、取出。,10.3 A/D和D/A转换的基本问题,1 A/D转换A/D转换模块(Analog To Digital Convert Module),即模数转换,是将电压信号转换为对应的数字信号。进行A/D转换的基本问题:(1)采样精度 数字量变化一个最小量时模拟信号的变化量,即采样位数。(2)采样速率 完成一次A/D采样所要花费的时间。(3)滤波 对采样的数据进行筛选去掉误差较大的毛刺。(4)物理量回归 把A/D采样值与实际物理量对应起来。,2 D/A转换(1)D/A转换器的转换精度有两种衡量方法分辨率:D/A转换器在理论上可达到的精度。其定义,电路所能分辨的最小输出电压VLSB(输入的n位数字
9、代码最低有效位LSB为1,其余都为0)与最大输出电压Vm(此时输入数字代码所有各位全为1)之比。转换误差:D/A转换器实际上能达到的转换精度。转换误差可用输出电压满度值的百分数表示,也可以用LSB的倍数来表示。,(2)D/A转换器的转换速度有两种衡量方法 建立时间tset是在输入数字量各位由全0变为全1或由全1变为全0时,输出电压达到某一规定值(例如取1/2LSB或满度值的0.01%)所需要的时间。转换速率SR是在大信号工作时,即输入数字量的各位由全0变为全1或由全1变为0时,输出电压uo的变化率。D/A转换器完成一次转换所需的时间应包括建立时间tset和输出电压uo的上升或下降时间,即最大转
10、换时间为:TTRmax=tset+Vomax/SR 上式中Vomax是输出模拟电压的最大值。,10.4 MC908GP32内部A/D转换模块,10.4.1 GP32 A/D转换模块寄存器1 A/D转换状态和控制寄存器ADSCR(Analog-to-Digital Status and Control Register)ADSCR主要功能是:选取要转换的通道、决定转换结束数据获取的方式、设置是连续转换还是一次转换。ADSCR的地址是:$003C,定义为:,转换完成标志位,A/D转换中断允许标志位,连续转换控制位,通道选择,10.4.1 GP32 A/D转换模块寄存器2 A/D转换数据寄存器ADR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SPI 模拟 转换
链接地址:https://www.31ppt.com/p-5449030.html