Chapter 15 SPI.docx
- 文档编号:11038481
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:18
- 大小:869.59KB
Chapter 15 SPI.docx
《Chapter 15 SPI.docx》由会员分享,可在线阅读,更多相关《Chapter 15 SPI.docx(18页珍藏版)》请在冰豆网上搜索。
Chapter15SPI
Chapter15
SerialPeripheralInterface(S12SPIV5)
15.1Introduction
SPI模块允许全双工,串行同步通信。
软件可查SPI的状态标志或SPI可被中断驱动。
SS(SlaveSelect):
从机选择。
当工作于主机模式时,SS输入线必须接高电平;工作于从机模式时,SS输入线是选通信号输入端。
从机模式下,传输数据之前必须先设置成低电平
,并在数据传输过程中要始终保持为低电平
SPI工作模式:
1,主机模式2,从机模式3,全双工模式
TheSPImoduleallowsaduplex,synchronous,serialcommunicationbetweentheMCUandperipheraldevices.SoftwarecanpolltheSPIstatusflagsortheSPIoperationcanbeinterruptdriven.
15.1.1术语
SS
从机选择
SCK
串行时钟
MOSI
主机输入,从机输出
MISO
从机输入,主机输出
MOMI
主机输入,主机输出
SISO
从机输入,从机输出
15.1.2Features
主机模式、从机模式
可选的8位或16位转让宽度
双向模式
从机选择输出
双缓冲数据寄存器
可编程串行时钟极性和相位
等待模式中的SPI操作控制
模式错误触发CPU中断
TheSPIincludesthesedistinctivefeatures:
•Mastermodeandslavemode
•Selectable8or16-bittransferwidth
•Bidirectionalmode
•Slaveselectoutput
•ModefaulterrorflagwithCPUinterruptcapability
•Double-buffereddataregister
•Serialclockwithprogrammablepolarityandphase
•ControlofSPIoperationduringwaitmode
15.1.3ModesofOperation
运行、等待、停止模式
TheSPIfunctionsinthreemodes:
run,wait,andstop.
•Runmode
Thisisthebasicmodeofoperation.
•Waitmode
SPIoperationinwaitmodeisaconfigurablelowpowermode,controlledbytheSPISWAIbitlocatedintheSPICR2register.Inwaitmode,iftheSPISWAIbitisclear,theSPIoperateslikeinrunmode.IftheSPISWAIbitisset,theSPIgoesintoapowerconservativestate,withtheSPIclockgenerationturnedoff.IftheSPIisconfiguredasamaster,anytransmissioninprogressstops,butisresumedafterCPUgoesintorunmode.IftheSPIisconfiguredasaslave,receptionandtransmissionofdatacontinues,sothattheslavestayssynchronizedtothemaster.
•Stopmode
TheSPIisinactiveinstopmodeforreducedpowerconsumption.IftheSPIisconfiguredasamaster,anytransmissioninprogressstops,butisresumedafterCPUgoesintorunmode.IftheSPIisconfiguredasaslave,receptionandtransmissionofdatacontinues,sothattheslavestayssynchronizedtothemaster.
15.2ExternalSignalDescription
Thissectionliststhenameanddescriptionofallportsincludinginputsandoutputsthatdo,ormay,connectoffchip.TheSPImodulehasatotaloffourexternalpins.
15.2.1MOSI—MasterOut/SlaveInPin
15.2.2MISO—MasterIn/SlaveOutPin
15.2.3SS—SlaveSelectPin
ThispinisusedtooutputtheselectsignalfromtheSPImoduletoanotherperipheralwithwhichadatatransferistotakeplacewhenitisconfiguredasamasteranditisusedasaninputtoreceivetheslaveselectsignalwhentheSPIisconfiguredasslave.
15.2.4SCK—SerialClockPin
Inmastermode,thisisthesynchronousoutputclock.Inslavemode,thisisthesynchronousinputclock.
15.3MemoryMapandRegisterDefinition
15.3.2.1SPIControlRegister1(SPICR1)
SPIE:
中断使能位每次SPISR中SPIF或MODF标志位置位时,发出硬件中断请求
1—中断使能
0---中断不使能
SPE–SPI上电1—上电
0—不上电
SPTIE---SPI转换中断使能,当SPTEF标志位被置1的时候SPI就产生中断
1---SPTEF中断使能
0---SPTEF中断不使能
MSTR---SPI主/从模式选择位
1---主机模式
0---从机模式
CPOL---SPI时钟极性选择位,这一位选择一个反向的或非反向的SPI时钟,数据在SPI模块中传输,SPI模块必须使用同样的CPOL值。
1---时钟选择低电平激活,SCK空闲时为高电瓶
0---时钟选择高电平激活,SCK空闲时为低电瓶
CPHA---SPI时钟相位选择位
1---第一个时钟边沿出现在8周期数据传输的开始的地方开始传输
0---第一个时钟出现在8周期数据传输的第一个周期一半的地方开始传输
SSOE---从机选择输出使能,低电乎有效的从机选择线SS。
在主机和从机模式中具有不同的功能。
从机模式下,SS是一次数据传输开始前允许SPI工作的片选信号;主机模式下,SS可以置位MODF标志位,保证一个系统只有1个SPI接口作为主机。
最后一行不同这是从机选择输出原来:
输出
LSBFE---LSB在先使能位
1---数据以LSB在先发送
0---数据以MSB在先发送
SPI0CR1
SPI0CR1_LSBFE
SPI0CR1_CPHA
SPI0CR1_SSOE
SPI0CR1_CPOL
SPI0CR1_MSTR
SPI0CR1_SPTIE
SPI0CR1_SPE
SPI0CR1_SPIE
15.3.2.2SPIControlRegister2(SPICR2)
多了第六位:
XFRW
XFRW:
0:
8位传输宽度
1:
16位传输宽度
MODFEN---模式错误使能位,该位置位时允许SPI状态寄存器MODF标志置位。
如果MODF标志置位,MODFEN位清零并不能清零MODF标志标志。
如果SPI工作于主机模式,MODFEN位为低电平,SS引脚是无法使用SPI通信模块的。
当SPI工作于从机模式时,不管MODFEN位何值,SS引脚仅输入有效。
1---使能设置MODF错误
0---不使能设置MODF错误
BIDIROE---在全双工模式下输出使能位,这一位和SPCR1中的MSTR位一起被用做使能输出缓存当SPI被设为全双工模式时
1---输出缓存使能
0---输出缓存不使能
SPISWAI---在等待模式时,SPI停止
1---停止SPI时钟在等待模式时
0---SPI时钟照常运行在等待模式时
SPC0---连续引脚控制位,
0---普通模式
1---全双工模式
表格不同
现在:
原来:
SPI0CR2
SPI0CR2_SPC0
SPI0CR2_SPISWAI
SPI0CR2_BIDIROE
SPI0CR2_MODFEN
SPI0CR2_XFRW(前没有的)
15.3.2.3SPIBaudRateRegister(SPIBR)(波特率寄存器)
注意:
在传输数据时改变波特率会使数据改变。
SPPR2–SPPR0—SPI波特率预选择位
SPR2–SPR0----SPI波特率设置
注意:
2分频和4分频支持SPI的从机模式
SPI0BR
SPI0BR_SPR0
SPI0BR_SPR1
SPI0BR_SPR2
SPI0BR_SPPR0
SPI0BR_SPPR1
SPI0BR_SPPR2
SPI0BR_SPR
SPI0BR_SPPR
NOTE
Formaximumallowedbaudrates,pleaserefertotheSPIElectricalSpecificationintheElectricalschapterofthisdatasheet.
15.3.2.4SPIStatusRegister(SPISR)
Write:
Hasnoeffect
只能读,不能写。
SPIF---SPIF中断标志位
1---新的数据已经被拷贝到SPIDR
0---转换还没完成
SPTEF---SPI转换空中断标志位
1---SPI数据寄存器空
0---SPI数据寄存器没有空
MODF---模式错误标志位
1---模式错误已经发生
0---模式错误没有发生
SPI0SR
SPI0SR_MODF
SPI0SR_SPTEF
SPI0SR_SPIF
15.3.2.5SPIDataRegister(SPIDR=SPIDRH:
SPIDRL)
原来不分高低
Write:
Anytime
同时是SPI数据输入输出寄存器。
写入允许排队、发送。
要是SPI配置为主机,前一个传输完成队列中的数据马上进行。
当SPI数据寄存器准备接收新的数据,SPI发射SPISR寄存器中的空SPTEF标志符。
当SPIF被置位,SPIDR中接收数据是有效的。
如果SPIF被清除,数据完成接收,这个接收到的数据是从接收转移寄存器移到SPIDR,SPIF也被置位。
如果SPIF被置位,没有服务,第二个有效数据已被收到,这第二个被有效地保存接收转移寄存器中,直到另一个转换的开始。
这个数据在SPIDR不变
如果SPIF被置位,有效数据在接收转移寄存器中,在第三个转换开始前,SPIF是提供服务的。
在接收转移寄存器中的数据被转到SPIDR,SPIF仍设置。
(seeFigure15-9).
如果SPIF被置位,有效数据在接收转移寄存器中,在第三个转换开始后,SPIF是提供服务的。
在接收转移寄存器中的数据已成为无效,不转到SPIDR(seeFigure15-10).
SPI0DRH
SPI0DRH_R8_T8
SPI0DRH_R9_T9
SPI0DRH_R10_T10
SPI0DRH_R11_T11
SPI0DRH_R12_T12
SPI0DRH_R13_T13
SPI0DRH_R14_T14
SPI0DRH_R15_T15
SPI0DRL
SPI0DRL_R0_T0
SPI0DRL_R1_T1
SPI0DRL_R2_T2
SPI0DRL_R3_T3
SPI0DRL_R4_T4
SPI0DRL_R5_T5
SPI0DRL_R6_T6
SPI0DRL_R7_T7
SPI0DR
SPI0DR_R0_T0
SPI0DR_R1_T1
SPI0DR_R2_T2
SPI0DR_R3_T3
SPI0DR_R4_T4
SPI0DR_R5_T5
SPI0DR_R6_T6
SPI0DR_R7_T7
SPI0DR_R8_T8
SPI0DR_R9_T9
SPI0DR_R10_T10
SPI0DR_R11_T11
SPI0DR_R12_T12
SPI0DR_R13_T13
SPI0DR_R14_T14
SPI0DR_R15_T15
Write:
Anytime
TheSPIdataregisterisboththeinputandoutputregisterforSPIdata.Awritetothisregisterallowsdatatobequeuedandtransmitted.ForanSPIconfiguredasamaster,queueddataistransmittedimmediatelyaftertheprevioustransmissionhascompleted.TheSPItransmitteremptyflagSPTEFintheSPISRregisterindicateswhentheSPIdataregisterisreadytoacceptnewdata.
ReceiveddataintheSPIDRisvalidwhenSPIFisset.
IfSPIFisclearedanddatahasbeenreceived,thereceiveddataistransferredfromthereceiveshiftregistertotheSPIDRandSPIFisset.
IfSPIFissetandnotserviced,andaseconddatavaluehasbeenreceived,thesecondreceiveddataiskeptasvaliddatainthereceiveshiftregisteruntilthestartofanothertransmission.ThedataintheSPIDRdoesnotchange.
IfSPIFissetandvaliddataisinthereceiveshiftregister,andSPIFisservicedbeforethestartofathirdtransmission,thedatainthereceiveshiftregisteristransferredintotheSPIDRandSPIFremainsset(seeFigure15-9).
IfSPIFissetandvaliddataisinthereceiveshiftregister,andSPIFisservicedafterthestartofathirdtransmission,thedatainthereceiveshiftregisterhasbecomeinvalidandisnottransferredintotheSPIDR(seeFigure15-10).
原来的:
SPI数据寄存器具有输入输出双重功能,对该寄存器进行读操作时所访问的输入部分是双缓冲的,但写操作则直接将数据送到串行移位寄存器
注意:
当SPTEF位是高的时候再写数据寄存器
SPI0DR
15.4.7.1SPIinRunMode
15.4.7.2SPIinWaitMode
15.4.7.3SPIinStopMode
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Chapter 15 SPI