S32K-LPSPI中文手册

低功耗串行外设接口(LPSPI)

46.1 芯片专用LPSPI信息

46.1.1 实例化信息

下表总结了该模块在产品系列中每个芯片的实现。

每个模块的芯片选择的确切数量取决于封装。 并非所有芯片选择都可用于不同的封装。 LPSPI2不支持任何TRGMUX相关功能,例如TRGMUX的HREQ源或TRGMUX的任何触发器。
器件上的所有LPSPI实例都有所有记录的LPSPI寄存器。
该设备不支持低泄漏和等待模式。 有关可用功率模式的详细信息,请参见在可用低功率模式下的模块操作。

46.2 介绍

46.2.1 总览

LPSPI是一种低功耗串行外围设备接口(SPI)模块,它支持作为主设备和/或从设备的SPI总线的有效接口。 LPSPI可以在停止模式下继续运行,只要有适当的时钟可用,并且可以通过FIFO寄存器访问的DMA卸载来降低CPU开销。

46.2.2 特征

LPSPI支持以下功能:

  • 字大小= 32位
  • 命令/发送4个字的FIFO
  • 接收4个字的FIFO
  • 主机请求输入可用于控制SPI总线传输的开始时间

46.2.3 框图

46.2.4 运行模式

LPSPI模块支持下表中描述的芯片模式。
表46-2. LPSPI模块支持的芯片模式

芯片模式LPSPI操作
Run正常操作
Stop如果Doze使能位(CR [DOZEN])清零并且LPSPI使用的外部或内部时钟源在停止模式下仍可工作,则可以继续工作。
Debug (the core is in Debug/Haltedmode)如果设置了调试使能位(CR [DBGEN]),则可以继续操作。

46.2.5 信号说明

SignalDescriptionI/O
SCK串行时钟。 在从模式下输入,在主模式下输出。I/O
PCS[0]外围芯片选择。 在从模式下输入,在主模式下输出。I/O
PCS[1] / HREQ外围芯片选择或主机请求。 当HREN = 1和HRSEL = 0时,选择主机请求引脚。 在从机模式下输入或用作主机请求时,在主机模式下输出。I/O
PCS[2] / DATA[2]四数据传输期间,外围芯片选择或数据引脚2。 在从模式下输入,在主模式下输出,在四数据接收传输中输入,在四数据传输传输中输出。I/O
PCS[3] / DATA[3]四数据传输期间,外围芯片选择或数据引脚3。 在从模式下输入,在主模式下输出,在四数据接收传输中输入,在四数据传输传输中输出。I/O
SOUT / DATA[0]串行数据输出。 可以配置为串行数据输入信号。 在四数据和双数据传输中用作数据引脚0。I/O
SIN / DATA[1]串行数据输入。 可以配置为串行数据输出信号。 在四数据和双数据传输中用作数据引脚1。I/O

46.3 内存映射和寄存器

46.3.1 LPSPI寄存器说明

46.3.1.1 LPSPI内存映射

LPSPI0 base address: 4002_C000h
LPSPI1 base address: 4002_D000h
LPSPI2 base address: 4002_E000h

46.3.1.2 版本ID寄存器(VERID)
46.3.1.2.1 偏移

46.3.1.2.2 图表

46.3.1.2.3 位域
位域功能
31-24 MAJOR主要版本号;该只读字段返回模块规范的主要版本号。
23-16 MINOR次版本号;该只读字段返回模块规范的次要版本号。
15-0 FEATURE模块识别号;该只读字段返回功能集编号。 0000000000000100b-支持32位移位寄存器的标准功能集。
46.3.1.3 参数寄存器(PARAM)
46.3.1.3.1 偏移

46.3.1.3.2 图表

46.3.1.3.2 位域
位域功能
31 - 16保留
15 - 8 RXFIFO接收FIFO大小;设置接收FIFO中的最大字数,即2^RXFIFO。
7 - 0 TXFIFO发送FIFO大小;设置发送FIFO中的最大字数,即2^TXFIFO。
46.3.1.4 控制寄存器(CR)
46.3.1.4.1 偏移

46.3.1.4.2 图表

46.3.1.4.3 位域
位域功能
31 - 10保留
9 【RRF】复位接收FIFO
0b-无效果
1b-接收FIFO复位
8 【RTF】复位发送FIFO
0b-无效果
1b-发送FIFO复位
7 - 4保留
3【DBGEN】调试启用
0b-在调试模式下模块被禁用
1b-在调试模式下启用了模块
2【DOZEN】Doze模式启用 启用或禁用Doze模式
0b-在Doze模式下启用了模块
1b-在Doze模式下模块被禁用
1 【RST】软件重置 复位除控制寄存器外的所有内部逻辑和寄存器。 保持设置直到被软件清除。
0b-主逻辑未复位
1b-主逻辑复位
0 【MEN】模块启用
0b-模块被禁用
1b-启用模块
46.3.1.5 状态寄存器(SR)
46.3.1.5.1 偏移

46.3.1.5.2 图表

46.3.1.5.3 位域
位域功能
31 - 25保留
24【MBF】模块忙标志 【0b-LPSPI空闲】【1b-LPSPI忙】
23 -14保留
13【DMF】数据匹配标志 表示接收到的数据已与MATCFG配置的MATCH0和/或MATCH1字段匹配。【0b-尚未收到匹配数据】【1b-已收到匹配数据】
12【REF】接收错误标志 当接收器FIFO溢出时,该标志将置位。 设置此标志后,建议首先结束传输,清空接收FIFO,清除此标志,然后从头开始重新传输。【0b-接收FIFO没有溢出】【1b-接收FIFO溢出】
11【TEF】发送错误标志 当发送FIFO欠载时,该标志将置位。 设置此标志后,建议先结束传输,清除此标志,然后从头开始重新传输。【0b-尚未发生发送FIFO欠载】【1b-发生发送FIFO欠载】
10【TCF】传输完成标志 当LPSPI返回空闲状态且发送FIFO为空时,此标志将设置为主模式。【0b-所有传输尚未完成】【1b-所有传输已完成】
9【FCF】帧完成标志 当PCS取反时,此标志将在每次帧传输结束时设置。【0b-帧传输尚未完成】【1b-帧传输已完成】
8【WCF】字完成标志 当对接收到的单词的最后一位进行采样时,该标志将置位。【0b-传输字未完成】【1b-传输字已完成】
7 - 2保留
1【RDF】接收数据标志 【只要接收FIFO中的字数大于RXWATER,就会设置接收数据标志】【0b-接收数据未准备好】【1b-接收数据准备就绪
0【TDF】发送数据标志 只要发送FIFO中的字数等于或小于TXWATER,就会置位发送数据标志。【0b-不要求发送数据】【1b-请求发送数据】
46.3.1.6 中断使能寄存器(IER)
46.3.1.6.1 偏移

46.3.1.6.2 图表

46.3.1.6.3 位域
位域功能
31 - 14保留
13【DMIE】数据匹配中断使能 【0b-禁止中断】【1b-允许中断】
12【REIE】接收错误中断使能 【0b-禁止中断】【1b-允许中断】
11【TEIE】发送错误中断使能 【0b-禁止中断】【1b-允许中断】
10【TCIE】传输完成中断使能 【0b-禁止中断】【1b-允许中断】
9【FCIE】帧完成中断使能 【0b-禁止中断】【1b-允许中断】
8【WCIE】字完成中断使能 【0b-禁止中断】【1b-允许中断】
7 - 2保留
1【RDIE】接收数据中断使能 【0b-禁止中断】【1b-允许中断】
0【TDIE】发送数据中断使能 【0b-禁止中断】【1b-允许中断】
46.3.1.8 配置寄存器0(CFGR0)
46.3.1.8.1 偏移

46.3.1.8.2 图表

]

46.3.1.8.3 位域
位域功能
31 - 10保留
9【RDMO】仅接收数据匹配 启用后,将丢弃所有未设置DMF的接收数据。 设置DMF后,将忽略RDMO配置。 当LPSPI空闲且DMF清零时,应设置RDMO。 禁用RDMO时,请先清除RDMO,再清除DMF,以确保不会丢失接收数据。【0b-接收到的数据照常存储在接收FIFO中】【1b-除非设置了DMF,否则丢弃接收到的数据】
8【CIRFIFO】循环FIFO使能 使能后,发送FIFO读取指针将保存到临时寄存器。 发送FIFO将照常排空,但是一旦LPSPI空闲且发送FIFO为空,则将从临时寄存器中恢复读取的指针值。 这将导致发送FIFO的内容反复循环循环。【0b-循环FIFO被禁用】【1b-启用循环FIFO】
7 - 3保留
2【HRSEL】主机请求选择 选择主机请求输入的源。 当通过LPSPI_HREQ引脚启用了主机请求功能时,将禁用LPSPI_PCS [1]功能。【0b-主机请求输入是引脚LPSPI_HREQ】【1b-主机请求输入是输入触发 】
1【HRPOL】主机请求极性 配置主机请求引脚的极性。【0b-低电平有效】【1b-高电平有效 】
0【HREN】主机请求启用 在主机模式下使能时,仅当主机请求输入有效时,LPSPI才会启动新的SPI总线传输。 LPSPI繁忙时,主机请求输入将被忽略。【0b-主机请求被禁用】【1b-启用主机请求】
46.3.1.9配置寄存器1(CFGR1)
46.3.1.9.1 偏移

46.3.1.9.2 功能

仅当禁用LPSPI时,才应写入CFGR1。

46.3.1.9.3 图表

46.3.1.9.4 位域
位域功能
31 - 28保留
27【PCSCFG】外围芯片选择配置 如果执行4位传输,则必须设置PCSCFG。【0b-PCS [3:2]被启用】【1b-PCS [3:2]被禁用】
26【OUTCFG】输出配置 配置输出数据在两次访问之间是否处于三态(LPSPI_PCS被否定 【0b-芯片选择取反时,输出数据保留最后一个值】【1b-当芯片选择取反时,输出数据为三态】
25-24【PINCFG】引脚配置 配置在单个位传输期间哪些引脚用于输入和输出数据 【00b-SIN用于输入数据,SOUT用于输出数据】【01b-SIN用于输入和输出数据】【10b-SOUT用于输入和输出数据】【11b-SOUT用于输入数据,SIN用于输出数据】
23-29保留
18-16 【MATCFG】匹配配置 配置将导致DMF设置的条件 注意:语法:* 是布尔AND,+是布尔OR 【000b-比赛被禁用】【001b-保留】【010b-010b-如果第一个数据字等于MATCH0或MATCH1,即(第一个数据字= MATCH0 + MATCH1),则启用匹配】【011b-011b-如果任何数据字等于MATCH0或MATCH1,即(任何数据字= MATCH0 + MATCH1),则启用匹配】【100b-100b-如果第一个数据字等于MATCH0并且第二个数据字等于MATCH1,即[[第一个数据字= MATCH0)* (第二个数据字= MATCH1)],则启用匹配】【101b-101b-如果任何数据字等于MATCH0并且下一个数据字等于MATCH1,即[(任何数据字= MATCH0)* (下一个数据字= MATCH1)],则启用匹配】【110b-110b-如果(第一个数据字和MATCH1)等于(MATCH0和MATCH1),即[[第一个数据字* MATCH1)=(MATCH0 * MATCH1)],则启用匹配】【111b-111b-如果(任何数据字和MATCH1)等于(MATCH0和MATCH1),即[[任何数据字* MATCH1)=(MATCH0 * MATCH1)],则启用匹配】
15-12保留
11-8【PCSPOL】外围芯片选择极性 配置每个外围芯片选择引脚的极性【0000b-PCSx低电平有效】【0001b-PCSx高电平有效】
7-4保留
3【NOSTAIL】没有失速 在主机模式下,当发送FIFO为空或接收FIFO已满时,LPSPI将停止传输,以确保不会发生发送FIFO欠载或接收FIFO超载。 将该位置1将禁用此功能。【0b-当发送FIFO为空或接收FIFO已满时,传输将停止】【1b-传输不会停止,从而允许发生发送FIFO欠载或接收FIFO超载】
2【AUTOPCS】自动PCS LPSPI从器件通常要求PCS在帧之间取反,以便正确操作。 当CPHA = 1时,将该位置1将导致LPSPI在每个传输字的末尾生成内部PCS信号。 当该位置1时,SCK必须在每个字之间至少保持4个LPSPI功能时钟周期(由PRESCALE配置分频)空闲,以确保正确操作。 在主模式下,该位被忽略。【0b-自动PCS生成已禁用】【1b-启用自动PCS生成】
1【SAMPLE】采样点 置位时,LPSPI主器件将在延迟的LPSPI_SCK边沿上对输入数据进行采样。 这样可以缩短采样数据时的设置时间。 具有延迟LPSPI_SCK沿的主模式下的输入数据建立时间等于从模式下的输入数据建立时间。 在从机模式下,该位被忽略。【0b-在SCK边缘采样的输入数据】【1b-在SCK延迟沿上采样的输入数据】
0【MASTER】主模式 在主模式或从模式下配置LPSPI。 该位直接控制LPSPI_SCK和LPCPI_PCS引脚的方向。【0b-从模式】【1b-主模式】
46.3.1.10数据匹配寄存器0(DMR0)
46.3.1.10.1偏移

46.3.1.10.2 图表

46.3.1.10.3 字段
位域功能
31-0【MATCH0】匹配0值 启用接收数据匹配后,将其与接收到的数据进行比较。
46.3.1.12时钟配置寄存器(CCR)
46.3.1.12.1偏移

46.3.1.12.2 功能

CCR仅在主机模式下使用,并且在启用LPSPI时不能更改。

46.3.1.12.3 图表

46.3.1.12.4 字段
位域功能
31-24【SCKPCS】SCK到PCS的延迟 配置主模式下从最后一个SCK边沿到PCS取反之间的延迟。 延迟等于LPSPI功能时钟的(SCKPCS + 1)个周期除以PRESCALE配置,最小延迟为1个周期。
23-16【PCSSCK】PCS到SCK的延迟 在主模式下配置从PCS声明到第一个SCK沿的延迟。 延迟等于LPSPI功能时钟的(PCSSCK + 1)个周期除以PRESCALE配置,最小延迟为1个周期。
15-8【DBT】转移之间的延迟 在主模式下配置从PCS否定到下一个PCS声明的延迟。 延迟等于LPSPI功能时钟的(DBT + 2)个周期除以PRESCALE配置,最小延迟为2个周期。 请注意,一半的延迟发生在PCS声明之前,另一半发生在PCS否定之后,完整的命令字只能在中间进行更新。 还配置主模式下从连续字传输的最后一个传输字的SCK沿到下一个传输字的第一个SCK沿的延迟。 延迟等于LPSPI功能时钟的(DBT + 1)个周期除以PRESCALE配置,最小延迟为1个周期。
7-0【SCKDIV】SCK分频器 在主模式下配置SCK引脚的分频比。 SCK周期等于LPSPI功能时钟的(SCKDIV + 2)个周期除以PRESCALE配置,最小周期为2个周期。 如果周期是奇数个周期,则周期的前半部分将比后半部分长一个周期。
46.3.1.13 FIFO控制寄存器(FCR)
46.3.1.13.1 偏移

46.3.1.13.2 图表

46.3.1.13.3 字段
位域功能
31-24保留
23-18保留
17-16【RXWATER】接收FIFO水印 只要接收FIFO中的字数大于RXWATER,就会设置接收数据标志。 写入等于或大于FIFO大小的值将被截断。
15-8保留
7-2保留
1-0【TXWATER】发送FIFO水印 只要发送FIFO中的字数等于或小于TXWATER,就会置位发送数据标志。 写入等于或大于FIFO大小的值将被截断。
46.3.1.14 FIFO状态寄存器(FSR)
46.3.1.14.1偏移

46.3.1.14.2 图

46.3.1.14.3 字段
位域功能
31-24保留
23-19保留
18-16【RXCOUNT】接收FIFO计数 返回当前存储在接收FIFO中的字数。
15-8保留
7-3保留
2-0【TXCOUNT】发送FIFO计数 返回当前存储在发送FIFO中的字数。
46.3.1.15发送命令寄存器(TCR)
46.3.1.15.1 偏移

46.3.1.15.2 功能

写入发送命令寄存器或发送数据寄存器会将数据按写入顺序推入发送FIFO。 在该条目到达FIFO的顶部之后,将对命令寄存器的写操作进行标记,并使命令寄存器更新。 这允许对命令字和发送数据本身的更改进行交织。 更改命令字将导致使用新命令字执行所有后续的SPI总线传输。

  • 在主模式下,除非设置了TXMSK,否则写新命令字不会启动新传输。 传输通过发送FIFO中的发送数据或新的命令字(设置了TXMSK)启动。 LPSPI_PCS取反时,硬件将清除TXMSK。
  • 在主模式下,如果在现有框架完成之前更改了命令字,则现有框架将终止,然后命令字将更新。 如果设置了新命令字的CONTC并将命令字写入帧大小边界,则可以在连续传输期间更改命令字。
  • 在从机模式下,仅当LPSPI空闲且没有SPI总线传输时,才应更改命令字

读取发送命令寄存器将返回命令寄存器的当前状态。 从发送FIFO加载发送命令寄存器的同时读取发送命令寄存器可能会返回错误的寄存器值。 建议在发送FIFO为空时读取发送命令寄存器,或者多次读取寄存器并比较返回值。

46.3.1.15.3 图

46.3.1.15.4字段
位域功能
31【CPOL】时钟极性 该字段仅在帧之间更新。0b-SCK的无效状态值很低。1b-SCK的无效状态值为高。
30【CPHA】时钟相位 该字段仅在帧之间更新。0b-在SCK的前沿捕获数据,并在其后沿进行更改。1b-在SCK的上升沿更改数据,并在随后的沿捕获数据。
29-17【PRESCALE预分频值 预分频器应用于所有SPI总线传输的时钟配置寄存器。 该字段仅在帧之间更新。000b-除以1。001b-除以2。010b-除以4。011b-除以8。100b-除以16。101b-除以32。110b-除以64。111b-除以128。
26保留
25-24【PCS】外围芯片选择 配置用于传输的外围芯片选择。 该字段仅在帧之间更新。00b-使用LPSPI_PCS [0]进行传输01b-使用LPSPI_PCS传输[1]10b-使用LPSPI_PCS [2]进行传输11b-使用LPSPI_PCS传输[3]
23【LSBF】LSB优先 0b-数据首先传输MSB。1b-数据首先传输LSB。
22【BYSW]字节交换 对于从FIFO读取的每个发送数据字和存储到FIFO的每个接收数据字,字节交换将[31:24]的内容与[7:0]和[23:16]的内容与[15:8]交换 与匹配寄存器比较) 【0b-禁用字节交换】 【1b-启用字节交换】
21【CONT】连续转移 在主模式下,连续传输将使PCS在帧大小的末尾保持有效,直到接收到开始新帧的命令字为止 在从模式下,当连续传输使能时,LPSPI将仅发送第一个FRAMESZ位,此后它将假设32位移位寄存器发送接收到的数据。【0b-禁用连续传输】【1b-启用连续传输】
20【CONTC】连续命令 在主机模式下,该位允许在连续传输中更改命令字。 初始命令字必须启用连续传输(CONT = 1),连续命令必须将该位置1(CONTC = 1),并且连续命令字必须加载在帧大小边界上。 例如,如果连续传输的帧大小为64位,则必须在64位边界上加载连续命令字 【0b-开始新传输的命令字】【1b-继续传输的命令字】
19【RXMSK】接收数据掩码 置位时,接收数据被屏蔽(接收数据未存储在接收FIFO中)。【0b-正常传输】【1b-接收数据被屏蔽】
18【TXMSK】传输数据掩码 置位时,发送数据被屏蔽(发送FIFO不会加载任何数据,输出引脚为三态)。 在主机模式下,该位将启动新的传输,该传输不能被另一个命令字中止,并且在传输结束时该位将被硬件清除 【0b-正常传输】【1b-屏蔽传输数据】
17-16【WIDTH】传输宽度 必须为2位或4位传输设置RXMSK或TXMSK 【00b-一位传输】【01b-两位传输】【10b-四位传输】【11b-保留】
15-12保留。 软件应仅向该位写入零。
11-0帧尺寸以等于(FRAMESZ +1)的位数配置帧大小。•最小帧大小为8位。•如果帧大小大于32位,则将帧分为多个32位字; 每个字都从发送FIFO装入并分别存储在接收FIFO中。•如果帧的大小不能被32整除,则发送FIFO的最后一次加载和接收FIFO的存储将包含其余位。 例如,一个72位的传输将包含3个字:第一个和第二个字是32位,而第三个字是8位。•最小字长为2位; 不支持33位(或类似)的帧大小。
46.3.1.16发送数据寄存器(TDR)
46.3.1.16.1偏移

46.3.1.16.2功能

写入发送命令寄存器或发送数据寄存器会将数据按写入顺序推入发送FIFO。

46.3.1.16.3图

46.3.1.16.4字段
位域功能
31-0【DATA】传输资料 发送数据的8位和16位写入都将使写入的数据扩展为零,并将数据压入发送FIFO。
46.3.1.17接收状态寄存器(RSR)
46.3.1.17.1 偏移

46.3.1.17.2 图

46.3.1.17.3字段
位域功能
31-2保留
1【RXEMPTY】接收FIFO空 0b-RX FIFO不为空。1b-RX FIFO为空。
0【SOF】帧开始 指示这是在LPSPI_PCS声明之后接收到的第一个数据字。0b-LPSPI_PCS断言后接收到后续数据字。1b-在LPSPI_PCS声明后接收到的第一个数据字
46.3.1.18接收数据寄存器(RDR)
46.3.1.18.1偏移

46.3.1.18.2图

46.3.1.18.3字段
位域功能
31-0【DATA】接收数据

46.4功能描述

46.4.1时钟和复位

46.4.1.1功能时钟

LPSPI功能时钟与总线时钟异步,如果在低功耗模式下保持启用状态,则LPSPI可以在主模式和从模式下执行SPI总线传输和低功耗唤醒。 LPSPI用预分频器对功能时钟进行分频,并且所产生的频率必须至少比SPI外部时钟(LPSPI_SCK)频率快两倍。

46.4.1.2外部时钟

LPSPI移位寄存器由LPSPI_SCK时钟直接提供时钟,该时钟在主机模式下内部产生或在从机模式下外部提供

46.4.1.3总线时钟

总线时钟仅用于总线访问控制和配置寄存器。 总线时钟频率必须足以满足LPSPI寄存器(包括FIFO)的数据带宽要求

46.4.1.4芯片复位

LPSPI的逻辑和寄存器在芯片复位时复位为默认状态。

46.4.1.5软件重置

LPSPI在控制寄存器中实现软件复位位。 CR [RST]会将所有逻辑和寄存器重置为默认状态,CR本身除外。

46.4.1.6 FIFO复位

LPSPI实现了只写控制位,该位将复位发送/命令FIFO(CR [RTF]和接收FIFO(CR [RRF]),复位后FIFO为空。

46.4.2主模式

46.4.2.1发送和命令FIFO

发送和命令FIFO是组合的FIFO,它既包含发送数据又包含命令字。 通过写入发送命令寄存器将命令字存储到发送/命令FIFO中。 通过写入发送数据寄存器将发送数据字存储到发送/命令FIFO。

当命令字位于发送/命令FIFO的顶部时,可能发生以下动作:

  • 如果LPSPI在帧之间,则将命令字从FIFO中拉出并控制所有后续传输。
  • 如果LPSPI忙,并且现有的CONT位清零或新的CONTC值清零,则SPI帧将在现有字的末尾完成,而忽略FRAMESZ配置。 然后将命令字从FIFO中拉出并控制所有后续传输(或直到命令字的下一次更新)。
  • 如果LPSPI忙,并且现有的CONT位置1并且新的CONTC值被设置,则在现有帧的最后一个LPSPI_SCK脉冲(基于FRAMESZ配置)期间,将命令字从FIFO中拉出,并且帧继续使用 其余帧(或直到下一次更新命令字之前)的新命令值。 设置CONTC时,仅更新命令字的低24位。

可以通过读取发送命令寄存器来读取现有命令字的当前状态。 写入命令后(假设FIFO为空),至少需要三个LPSPI功能时钟周期才能更新发送命令寄存器,并且必须使能LPSPI(设置CR [MEN])。

除非将TXMSK位置1,否则写入发送命令寄存器不会启动SPI总线传输。 设置TXMSK时,直到现有帧的末尾(基于FRAMESZ配置)将不加载新的命令字,并且在传输结束时将TXMSK位清零。

下表描述了由命令字控制的属性

字段描述传输期间修改
CPOL配置LPSPI_SCK引脚的极性。 CPOL值的任何变化都会在LPSPI_SCK引脚上引起转换。N
CPHA配置传输的时钟相位。N
PRESCALE配置用于对LPSPI功能时钟进行分频的预分频器,以生成SPI总线传输的时序参数。 结合PCS更改PRESCALE,可使LPSPI以不同的频率连接到不同的从设备。N
PCS配置哪个LPSPI_PCS声明要进行传输,LPSPI_PCS的极性是静态的,由PCSPOL配置。 如果设置了PCSCFG,则不应选择PCS [3:2]。N
LSBF配置是否首先发送/接收LSB(位0)或MSB(32位字的位31)。Y
BYSW在发送和接收数据时,在每个32位字上启用字节交换。 当与将数据组织为大Endean的设备连接时很有用。Y
CONT配置为使PCS在帧之间保持断言的连续传输(由FRAMESZ配置)。 需要新的命令字来使PCS取反。 还支持在帧大小绑定处更改命令字。Y
CONTC表示这是现有连续传输的新命令字。 如果未在帧边界上将其写入发送/命令FIFO,则会忽略CONTC位。Y
RXMSK屏蔽接收数据,不存储到接收FIFO或执行接收数据匹配。 对于半双工传输或配置在接收数据匹配期间比较哪些字段很有用。Y
TXMSK屏蔽发送数据,以便不从发送FIFO提取数据,并且输出数据引脚为三态(除非由OUTCFG配置)。 对于半双工传输很有用。Y
WIDTH配置每个LPSPI_SCK脉冲移位的位数。•1位传输支持半双工或全双工数据格式的传统SPI总线传输。•2位和4位传输对于与QuadSPI存储设备接口非常有用,并且仅支持半双工数据格式(还必须设置TXMSK或RXMSK中的至少一种)。Y
FRAMESZ以等于(FRAMESZ +1)的位数配置帧大小。•最小帧大小为8位。•如果帧大小大于32位,则将帧分为多个32位字; 每个字都从发送FIFO装入并分别存储在接收FIFO中。•如果帧的大小不能被32整除,则发送FIFO的最后一次加载和接收FIFO的存储将包含其余位。 例如,一个72位的传输将包含3个字:第一个和第二个字是32位,而第三个字是8位。•最小字长为2位; 不支持33位(或类似)的帧大小。Y

当数据被写入发送FIFO,HREQ引脚被置为有效(或被禁止)并且使能了LPSPI时,LPSPI将启动SPI总线传输。 SPI总线传输使用传输命令寄存器中配置的属性和时钟配置寄存器中的时序参数来执行传输。 一旦达到FRAMESZ配置,或当新的发送命令字位于发送/命令FIFO的顶部时,SPI总线传输结束。 仅在下次LPSPI空闲时检查HREQ输入(完成当前传输并且发送/命令寄存器为空)。

发送/命令FIFO还支持循环FIFO功能。 这使LPSPI主控器可以(周期性地)重复一段短的数据传输,该传输可以适合发送/命令FIFO,而无需其他FIFO访问。 启用循环FIFO后,将保存FIFO读取指针的当前状态,并且状态标志不会更新。 一旦发送/命令FIFO被认为是空的并且LPSPI处于空闲状态,则FIFO读取指针将与保存的版本一起恢复,因此当启用循环FIFO模式时,发送/命令FIFO的内容不会被永久从FIFO中拉出。

46.4.2.2接收FIFO和数据匹配

接收FIFO用于在SPI总线传输期间存储接收数据。 设置RXMSK时,将丢弃接收数据,而不是将其存储在接收FIFO中。

接收数据在帧的末尾写入接收FIFO。 在多字或连续传输期间,接收数据也会在从发送FIFO读取新的发送数据的同时写入接收FIFO。 如果在连续传输期间发送FIFO为空,则仅在写入发送FIFO或写入命令寄存器以结束帧之后,才将接收数据写入接收FIFO。

接收数据支持接收数据匹配功能,该功能可以将接收到的数据与两个字之一或被屏蔽的数据字进行匹配。 数据匹配功能也可以配置为仅比较自帧开始以来的第一个或两个接收到的数据字。 由于RXMSK位已被丢弃的接收数据不能导致数据匹配设置,并且将延迟第一个接收到的数据字的匹配,直到接收到所有被丢弃的数据。 接收器匹配功能也可以配置为使用CFGR0 [RDMO]控制位丢弃所有接收数据,直到检测到数据匹配为止。 在数据匹配后清除CFGR0 [RDMO]控制位时,在清除SR [DMF]之前清除CFGR0 [RDMO]以允许接收所有后续数据。

46.4.2.3时序参数

下表列出了用于所有SPI总线传输的时序参数,这些时序参数相对于LPSPI功能时钟除以PRESCALE配置。 尽管在LPSPI繁忙时无法更改时钟配置寄存器,但是可以在两次传输之间使用命令寄存器更改PRESCALE配置,以支持与不同频率的不同从器件的接口。

字段描述最小最大
SCKDIV将LPSPI_SCK时钟周期配置为(SCKDIV + 2)周期。 当配置为奇数个周期时,LPSPI_SCK周期的前一半比后一半长一个周期。0(2个周期)255(257个周期)
DBT将PCS否定与下一个PCS声明之间的最小延迟配置为(DBT + 2)个周期。 在两次传输之间更新命令字时,命令字更新与LPSPI_PCS引脚上的任何更改之间至少要有(DBT / 2)+1个周期。0(2个周期)255(257个周期)
DBT将帧的最后一个SCK边缘与连续帧的第一个SCK边缘之间的连续传输期间的延迟配置为(DBT + 1)周期。 当外部从机要求在SPI总线传输的不同字之间存在较大延迟时,这很有用。0(1个周期)255(256个周期)
PCSSCK将PCS声明与第一个SCK边沿之间的最小延迟配置为(PCSSCK + 1)个周期。0(1个周期)255(256个周期)
SCKPCS将最后一个SCK边沿和PCS声明之间的最小延迟配置为(SCKPCS + 1)个周期。0(1个周期)255(256个周期)
46.4.2.4引脚配置

可以通过PINCFG配置将LPSPI_SIN和LPSPI_SOUT引脚配置为交换方向,甚至在同一引脚上支持半双工传输。

OUTCFG配置可用于确定LPSPI_PCS取反时输出数据引脚(例如:LPSPI_SOUT)是否将处于三态,或者仅保留最后一个值。 当在单个位传输模式下使用相同的数据引脚或在2位和4位传输模式下使用任何数据引脚配置半双工传输时,当LPSPI_PCS取反时,必须将输出数据引脚配置为三态。

PCSCFG配置用于禁用LPSPI_PCS [3:2]功能,并将其用于四数据传输。 执行四数据传输时必须启用此选项。

46.4.2.5时钟环回

可以将LPSPI主设备配置为使用两个时钟之一来采样输入数据(例如LPSPI_SIN),可以直接使用LPSPI_SCK输出时钟,也可以使用该时钟的延迟版本。 LPSPI_SCK的延迟版本被LPSPI_SCK引脚输出延迟加上LPSPI_SCK引脚输入延迟所延迟,并通过设置CFGR1 [SAMPLE]进行配置。 启用LPSPI_SCK的环回版本可以缩短从设备输入数据的建立时间

请参考器件数据手册,了解主环回模式下的特定输入建立时间。

  • 9
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值