SPI通信协议中文版(SPIV3)

所需积分/C币:46 2019-03-14 17:20:41 641KB PDF
454
收藏 收藏
举报

SPI协议中文版,根据NXP文档“S12SPIV3.pdf”翻译,对SPI协议进行了详细说明。
这一节对SPI使用的地址空间与寄存器进行详细的说明 SPI3的内存映射如表1-1所示。列出的每个寄存器地址都是基地址与地址偏移的和。基地 址是SoC级的定义,地址偏移是定乂在模块级的。对保留位进行读操作返回O,对保岀位进 行写操作无效 1.3.1模块内存映射 表1-1SPIW3内存映射 地址 使用 0x0000 SPI控制寄存器1( SPICR1) 0x0001 SPI控制寄存器2( SPICR2) R/W 0x{00 SP波特率寄存器( SPIBR) 0x0003 SPI状态奇存器( SPISR) 0x0004 保留 0x0005 SPI数据寄存器(SPD R/W 0x0006 保留 0x0007 保留 某些位不可写 2对此寄存器的写入被忽略 3从此奇存器进行读取返回0 3.2寄存器描述 这一节按地址顺序对寄存器进行说明。每个描述包括一个带有相关数字编号的标准寄存器 图。寄存器位的详细信息以及域的功能按寄存器框图的位进行排列。 Name 5 3 00000 R SPICR1 SPIE SPE SPTIE MSTRCPOL CPHA SSOE LSBFE 0x0001 0 0 0 0 SPICR2 MODFENBIDIROE SPISWAI SPCO 00002 0 0 SPIBR SPPR2SPPR1 SPPRO SPR2 SPR1 SPRO 0x0003 SPIF SPTEF MODF 0 0 SPISR 0×0004 Reserved 0x0005 R Bit 7 6 5 2 2 ox0006 R Reserved 0x0007 Reserved Unimplemented or Reserved 图1-2SPI寄存器概要 3.2.1SPL控制奇存器1(SPCR1) Module Base 0x0000 SPIE SPE SPTIE MSTR CPOL CPHA SSOE FE LSBF Reset 0 图1-3SPI控制寄存器1( SPICR1) 读取:随时 写入:随时 表1-2 SPICR1域描述 域 措述 7|SPT中断是能位一一该位使能SP中断请求,如果SPF或MDF状态标志位被设 SPE置。 0SPI中断禁止 1SPI中断使能 6|SPI系统使能位一一该位使能SPI系统并将SPI端口引脚用于SPI系统功能。如 SPE果SPE被清0,SPI将被禁止并被追进入闲置状态, SPISR寄存器中的状态位被 复位。 0SPI禁止(低功耗) lSPl使能,端∏引脚用于SP⊥功能 5|SP发送中断使能——该位使能SP中断请求,如果SPIE标识被设置 SPTIE0SPTE中断禁止 1 SPTEF中断使能 4SPI主/从模式选择位如果SPI按主机或从机模式操作,选择该位。从主机 MsTR切换到从机或迫使SPI系统进入空闲模式。 0SPT工作在从机模式 lSP工作在主机模式 3sP时钟极性位一一该位选择一个倒置或非倒置SP时钟。要在SPI模块间传输 CPOL数据,SP模块必须有相同的CPOL值。在主机模式,这个位的更改将会中止当 前传输并迫使SPⅠ系统进入空困状态。 0选择髙有效。空闲状态SCK为低。 1选择低有效。空闲状态SCK为低。 2PI时钟相位位一一该位用于选择SPI时钟格式,在主机模式中,更改这个位将 CPHA会中止当前传输并迫使SPI系统进入空闲状态。 0数据采样发送在SCK时钟的奇数边(1、3、5、…、15) 1数据采样发送在SCK时钟的奇数边(2、4、6、…、16) SE从机选择输出使能一一仅在主机模式中可以使能S输出特征,如果 MODFEN被 设置,作用取决于表1-3的SSE。在主机模式中,史改该位将会中止当前传输 并迫使SPI系统进入空闲状态 0LSB优先使能一一该位不会影响MSB与LSB在数据寄存器中的位置。读取和与入 LSBFE|数据寄存器总是从bit7的MSB开始。在机模式中,更改该位将会中址止当前传 输并迫使SPI系统进入空闲状态。 0优先发送数据的高位 1优先发送数据的低位 表1-3SS输入/输出选择 MODFEN SSOE 主机模式 从机模式 SS不用于SPI SS输入 SS不用于SPI SS输入 S是带有MODF特征的输入|s输入 Ss作为从机选择翰出 SS输入 1.3.2.2SPI控制寄存器2( SPICR2) Module base oxooo1 70 0 0 0 MODFEN BIDIROE SPISWAI SPCO Reset 0 Unimplemented or Reserved 图14SPI控制寄存器2( SPICR2) 读取:随时 写入:随时,写入保留位无效 衣1-4 SPICR2域描述 域 描述 模式故障使能位——该位允许wDF特征被检测到ε如果SPⅠ工作在主机模式 MODFEN 并且 MODEEN被清0,SS端口不用于SPI。在从机模式中,SS仅作为输入,不受 MODEN的影响。 MODFEN对端口SS的影响请参考表1-3。在主机模式中,更改 该位将中止当前传输并迫使SPI进入空闲状态。 0SS端口不用于SPI 1SS端口带有MODF特征 3|在双向模式中使能输出—一工作在双向模式时(SPC被设置),该位控制SPI BIDIROE|的M和MS0输出缓存。在⊥机模式中该位控制Ms端口的输出缓存,在 从机模式中该位控制ⅥS0端∏的输岀缓存。主杋模式中如果SPCO被设置,对 该位的更改将公中止当前传输并迫使SPI进入空闲状态。 0输出缓存禁用 1输出缓存使能 2等待模式下的SPI停止位—一在等待模式下,该位用于低功耗模式。 SPISWAL0sP时钟在等待模式中正常工作 1在等待模式中停止产生SPI时钟 0串行引脚控制位0—该位使能双向引脚配置,如表1-5所示。在主机模式中, SPCO|对该位的更改将会中止当前传输并迫使SPI进入空闲模式。 表1-5双向引脚配置 引脚模式P(0B1 IDIROE MIS0 MOSI 主机模式 正常 0 主机输入 主札输出 双向 0 MIS0不用于SPI 主机输入 主机输入/输出 从机模式 正常 从机输出 从机输入 双向 从机输入Ms1不用于 从机输入/输出 1.3.2.3SPI波特率寄存器( SPIBR) Module base ox0002 7 3 0 0 0 SPPR2 SPPR1 SPPRO SPR2 SPR1 SPRO Reset 0 Unimplemented or Reserved 图1-5SPI波特率寄存尜( SPIBR) 读取:随时 写入:随时,写入保留位无效 表1-6 SPIBR域描述 域 描述 6:4|SP波特率预选位——这些位指定SP的波特率,如表1-7所示。在⊥机模 sPRE2:0]式中,更改这些位会中止当前传输并迫使SPl系统进入空闲状态。 2:0SPI波特率选择位一一这些位指定SPI的波特率,如表1-7所示。在主机模 SR2:0]式中,更女这些位会中止当前传输并迫使SPl系统进入空闲状态。 波特率的除数方程式如下 BaudRateDivisor-(SPPR+1).2(SPR-1 波特率可以根据以下公式计算 Baud Rate= busclock baudRateDivisor 表17可选SPI波特率示例(25Ⅶlz总线时钟) SPPR2 SPPR1SPPRO SPR2 SPR1 SPRO Baud rate Baud rate Divisor 0 0 0 0 0 12.5 MHz 0 0 0 0 4 6.25MH 0 0 0 0 0 8 3.125MHz 0 0 0 16 1.5625MHz 0 0 0 0 32 781.25kHz 0 0 39063kHz 111 128 195.31kHz 0000 0001111111 256 97.66kHz 0000000000 0 4 6.25 MHz 0000 0011 8 3.125MHz 0 16 1.5625MHz 32 781.25kHz 0 64 39063kHz 0000000000000 00110 128 195.31kHz 256 97.66kHz 8.83 kHz 10000 0 6 4.16667MHz 0 12 2.08333MHz 111 0 24 1.04167MHz 48 520.83kHz 260.42kHz 11111 00000000111 0011001 192 130.21kHz 0 384 65.10kHz 768 32.55 kHz 000 0 3.125MHz 0000 16 1.5625MHz 32 781.25kH 0 64 390.63k 0 0 128 195.31kHz 256 97.66kHz 0 1 512 48.83 kHz 1111000011110 1024 24.41kHz 0 0 0 0 2.5MH 20 0 40 625 0 0 80 312.5kHz 0 0 0 160 156.25kHz 0 0 0 320 78.13kHz 0 0 0 640 39.06 kHz 0 0 1280 19.53kHz 0 0 0 12 2.08333MHz 0 0 1.04167MHz 0 000 1 0 8 520.83kHz 0 96 260.42kH 0 0 192 130.21kHz 0 1111 384 65.10kH 0 0 768 32.55kHz 0 1536 16.28kH 0 0 0 1.78571MH 0 28 892.86kH 0 0 0 56 446.43kHz 0 0 112 223.21kHz 0 0 0 224 111.61kHz 0 1 0 448 55.80kH 0 896 27.90 kHz 0 1792 13.95kHz 1 0 0 0 16 0 0 781.25kHz 0 64 390.63kH 128 19531kHz 0 0 256 97.66kHz 1 0 512 48.83kHz 0 1024 24.41kHz 2048 12.21kHz 注意 1.3.2.4SP状态寄存器( SPLSR) Module base ox0003 7 4 3 0 SPIF 0 SPTEF MODE 0 0 0 Reset 0 0 0 Unimplemented or Reserved 图1-6SP状态寄存器( SPISR) 读取:随时 写入:无效 表18 SPISR域描述 域 描述 SHLF中断标识位——接收到的数据宇节已传输到SPI数据奇存器,置起该 SPF位。通过读取 SPISR寄存器可以清除该位(SPIF被置起),随后是对SPI数 据的读取访问。 0传输未完成 1新数据已复制到 SPIDR SPI空传中断标识位——如果置起,该位表示发送数据寄存器为空。要清除 SPTEF|该位并向发送数据寄存器写入数据, SPISR的 SPTEF读取值必须为1,然后才 可以写入SP呎R。对SPF读取不为1,此时对SP数据寄存器的写操作是被 忽略的。 0SPI数据寄存器非空 1SPI数据寄存器为空 M0|模式标识位一当配置为主机且模式故障检查被使能时,S输入变 为低时该位被置起, SPICR2寄存器的 MODFEN为被设置。请参考“1.3.2.2SPI 控制奇存器( SPICR2)”的 MODEEN位描述。通过读取SPI状态寄存器(MODF 被置起)可以自动清除该位,其后跟随着对SPI控制寄存器1的写入操作。 0模式故障未发生 1模式故障已发生 1.3.2.5SPI数据寄存器( SPIDR) Module base oxooo5 Bit 7 3 220 Bit o Reset 0 0 0 Unimplemented or Reserved 图1-7SP1数据奇存器(SP⊥DR 读取:随时,通常仅在SPIF被置起后读取 写入:随时 SPⅠ数据寄存器同时作为SPI数据的输入和输出寄存器。写入该寄存器的数据将会等待发 送。当SP配置为主机时,等待的数据会在上一次发送完成后立即发送。当SPI数据寄存器 可以接受新数据时,SPSR奇器中的SP空传标识位SPEF将会指示。 1.4功能说明 SPⅠ模块允许MCU与外设进行双工同步串行通信。软件可以轮询SPI状态标识位或可被中断 驱动的SPI操作。 SPI系统通过设置SPI控制奇仔器1的SPl使能位(SPE)进行使能。当SPE位被设置时,4 个相关的SPI引脚专用于SPI功能 从札选择(SS) 串行时钟(SCK) 主机输出/从机输入(MOSI) 主机输入/从机输出(MIS0) SPI系统的主要元件是SPI数据寄存器。主机和从机的8位数据寄存器分别连接在MOSI和 MIS0引脚上肜成一个分布式16位寄存器。当执行数据传输操作时,该16位寄存器被主机 的S时钟连续移动8位,实现主机与从机的数据交换。写入SPI数据寄存器的数据成为发向 从机的输岀数据,在传输操作完成后从主机SPI数据寄存器读取的数据是来自从机的输入 数据。 先对 SPISR进行读取操作( SPTEF=1)然后将数据写入SPⅠDR可将数据放入传输寄存器。 当传输完成后,接收的薮据凵被栘动到接收数据寄存器。在卜次传输廾始前,随时可以将数 据从该双缓存系统中读出。对该8位寄存器进行读取,该寄存器将作为SPⅠ接收数据寄存 器;对该寄存器进行写入,该寄存器将作为SPI传输数据寄存器。一个SPI寄存器地址会用 于从读数据缓存器读取数据或向传输数据寄存器写入数据。 通过SPI控制寄存器1( SPICRI)中的时钟相位控制位(CPHA)和时钟极性控制位(CPOD)对SPI 系统使用的4种时钟格式进行选择。CPOL位选择非倒置或倒置时钟。CPHA位用于控制在奇 数SCK边或偶数SCK边上采样数据,以适应两个根本不同的协议(参考1.1.3传输格式)。 SPI可以配置为主机或从机。当SPI控制寄存器1的MSTR位被置1,设置为主机模式,MSTR 位清0,选择为从机模式 1.4.1主机模式 当MSTR位置1是SPI工作在主机模式。仅主机的SPI模块可以启动发送。通过向SPI数据 寄存器写入数据可启动传输。如果位栘寄存器为空,字节数据会立即传输到位移寄存器。字 节数据在串行时钟的控制下开始从MOST引胭移出 波特率选择位SPR2、SPR和SPR0联合SPI波特率寄存器中的波特率预选位SPPR2、SPPR1 和sPPR0来控制波特率发生器确定传输速度。SCK引脚是SPI时钟输出。通过SCK引脚,主 机的波特率发生器可以控制从机外设的位移寄存器。 MOSI与MIS0引脚 在主机模式中,串行数据输出脚(MOsl)和串行数据输入脚(MIS0)的功能由SP和B⊥DROE 控制位决定。 SS引脚 如果 MODFEN和SSOE位被置起,SS脚被配置为从杋选择输出。在传输期间SS输岀转为低电 平,SPI为空闲状态时为高电平 如果MOD臥N被置起,SS0E被清零,SS脚配置为输入,用来检测模式故障。在其它主机尝试 驱动MSI和SCK线时,如果SS输入转为低电平就表示是模式故障错误。这和情况下,SPI 将立即切换至从机模式,通过清除MSR位也可以禁用从机输岀缓存MISU(或双向模式的 SIS0)。因此,结果就是所有输出被禁用,SCK、MSI和MISO作为输入。如果模式故障发生 时正在进行传输,传输被中止并且SPI被强制转为空闲模式。 该模式故障会置起SPⅠ状态寄存器( SPISR)的模式故障(WODF)标识。如果MQD标识被设 置吋,SPI的中断使能位(SPIE)是置走的,就会发起一个SPI中断序列请求 在主机模式中,当对SPI数据寄存器进行写操作时,会有半个SCK周期的延时。延时过后, SCK在主机中启动。根据SPI控制寄存器1的SP时钟相位位CPIA指定的时钟格式不同, 位移操作略有不同(参考1.4.3传输格式) 注意 在主机模式中,更改CPOL,CPHA,SSOE, LSBFE, MODFEN,SPCO, BIDIROE(SPC0置起时) SPR2-SPPR0和SPR2-SPR0将会立即中止当前传输并迫使SPI进入空闲模式。远程从机是 无法检测到这种情况的,因此,主札必须确保远程从机设置为空闲模式。 1.4.2从机模式 当SPI控制寄存器1的MSTR位清除时,SPI工作在从机模式 SCK时钟 在从机模式下,SCK是来自主机的SP时钟输入脚 MIS0与MOSI引脚 在从机模式下,串行数据输出脚(MI$0)和串行数据输入脚(MOSI)的功能由SPⅠ控制寄存 盎2的SPC0和 BIDIROE控制位决定 SS引脚 S胭是从机选择输入。在数据传输丌始前,从机的SS脚必须为低电平。SS必须保持低电 平,直到数据传输完成。如果SS变为高电平,SPI将被迫进入罕闲模式 SS输入也控制着串行数据输岀脚,如果S为髙电平(未选择),串行数据输出脚为髙阻抗, 如果SS为低电平,SPI数据寄存器的第一位被从串行数据输出脚输入。同时,如果未选择

...展开详情
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 签到王者

  • 分享小兵

关注 私信
上传资源赚钱or赚积分
最新推荐
SPI通信协议中文版(SPIV3) 46积分/C币 立即下载
1/0