RH850P1X芯片学习笔记-Clocked Serial Interface H (CSIH)

news2024/11/20 10:40:31

文章目录

    • Features of RH850/P1x-C CSIH
      • Units
      • Register Base Address
      • Clock Supply
      • Interrupt Requests
      • Hardware Reset
      • External Input/Output Signals
      • 数据一致性检查
    • Overview
      • Functional Overview
      • Functional Overview Description
      • Block Diagram
    • Registers
      • List of Registers
      • CSIHnCTL0 — CSIH control register 0
      • CSIHnCTL1 — CSIH control register 1
      • CSIHnCTL2 — CSIH control register 2
      • CSIHnMCTL1 — CSIH Memory control register 1
      • CSIHnMCTL2 — CSIH Memory control register 2
      • CSIHnTX0W — CSIH transmit data register 0 for word access
      • CSIHnTX0H — CSIH transmit data register 0 for half word access
      • CSIHnRX0W — CSIH receive data register 0 for word access
      • CSIHnRX0H — CSIH receive data register 0 for half word access
      • CSIHnMRWP0 — CSIH memory read/write pointer register 0
      • CSIHnSTR0 — CSIH status register 0
      • CSIHnSTCR0 — CSIH status clear register 0
      • CSIHnMCTL0 — CSIH Memory control register 0
      • CSIHnCFGx — CSIH Configuration register (x = 0 to 7)
      • CSIHnBRSx — CSIH baud rate setting register (x = 0 to 3)
      • PMMAnCTL — PMM control register
      • PMMAnTCTLx — PMM TG control register (x = 0 to 7)
      • PMMAnTTXm — PMM TG transmit buffer (x = 0 to 7)
      • PMMAnRX — PMM TG receive buffer
      • PMMAnTCNTx — PMM TGx counter (x = 0 to 7)
      • PMMAnSTR0 — PMM TG status register 0
      • PMMAnSTR1 — PMM TG status register 1
      • PMMAnSTC — PMM TG status clear register
    • Interrupt Sources
      • Overview
      • General interrupt delay
      • CSIHTIC (communication interrupt)<br>
        • CSIHTIC in direct access mode
        • CSIHTIC in FIFO mode
        • CSIHTIC in job mode
        • CSIHTIR in direct access mode
        • CSIHTIR in dual buffer mode
        • CSIHTIRE (reception error interrupt)
        • CSIHTIJC (job completion interrupt)
    • Operation
      • Master/slave connections
      • Transmission clock selection
    • Operating Procedures
      • Procedures in direct access mode
        • Transmit/receive in master mode when job mode is disabled
      • Transmit/receive in master mode when job mode is enabled
    • Priority Management Module (PMM)
      • Transfer groups
        • TG structure
      • Block Diagram
      • Functional Overview

Features of RH850/P1x-C CSIH

CSIH其实就是SPI

该模块是时钟串行接口(CSIH),具有以下附加功能。

•灵活的空闲状态控制方式

•静默模式

•采样点修改功能

•优先级管理模块(PMM)功能

由于优先级管理模块功能是上述功能中一个比较大的附加功能,所以在CSIH基本功能介绍之后,将对其进行单独介绍。

Units

该微控制器具有以下数量的CSIH单元。

每个CSIH单元有一个通道接口。


每个通道各有8个片选

Register Base Address

下表列出了CSIH基址。

CSIH寄存器地址通常作为基址的偏移量给出

Clock Supply

下表列出了CSIH和CSIH提供的时钟。


一般SPI时钟为160M

注:若为P1M-C,则必须满足P1H-C以下时钟条件

CLK_HSB < CLKP_C < (3 × CLK_HSB)

在P1H-CE的情况下,必须满足以下时钟条件

CLK_HSB <= CLKP_C < (3 * CLK_HSB)

Interrupt Requests

下表列出了CSIH中断请求

Hardware Reset

下表列出了CSIH复位源。CSIH由这些复位源初始化

External Input/Output Signals

数据一致性检查

下表列出了CSIHnSO引脚函数复用的端口引脚,以及CSIHnSO引脚函数是否支持数据一致性检查。请参见16.5.12错误检测,了解数据一致性检查的详细信息

Overview

Functional Overview

•三线串行同步数据传输

•全双工操作(同时发送和接收),仅接收模式或仅发送模式

•可选择主模式和从模式

•时钟和数据的相位可选的每个芯片选择

•数据传输与MSB或LSB首先选择每个芯片选择

•传输数据长度可选择从2到16位在1位单位为每个芯片选择

•EDL(扩展数据长度)功能,用于传输超过16位的数据

•最大传输速度:

—主模式:20mhz

—in slave mode: 20mhz

•波特率可选择由BRG(波特率发生器)输出(在主模式)或由从时钟

•发送模式,接收模式和发送/接收模式可选

•缓冲区大小为128字(1字是数据32位+ ECC 7位)

•内存模式可选(FIFO,双缓冲区,传输缓冲,和直接访问)

•内置握手功能

•错误检测(数据一致性检查,奇偶校验,超时,溢出和溢出)

•AUTOSAR JOB启用控制位

•RCB(广播隐性配置)位用于广播

•LBM(回环模式)功能自检

•四种不同的中断请求信号。(INTCSIHnTIC, INTCSIHnTIR, INTCSIHnTIR,INTCSIHnTIJC)

•IDLE状态控制功能。

•静默模式通信,延长空闲时间

•自动生成芯片选择输出信号与可配置的激活电平

•数据传输没有激活芯片选择

•每个芯片选择的传输速度是可选择的四个预定义波特率(在主模式)或时钟输入信号从主(在从模式)

•对所有CSIH寄存器的完全DMA支持(SPI接口应该由多个总线主机访问,而无需显式的sw同步)

Functional Overview Description

时钟串行接口使用三种信号进行通信:

•传输时钟CSIHTSCK(主模式输出,从模式输入)

•数据输出信号CSIHTSO

•数据输入信号CSIHTSI

附加信号可用于外部控制和监测。

•CSIHTSSIZ:从机选择输入信号

•CSIHTRYO: Ready/busy输出信号(握手信号)

•CSIHTRYI:就绪/忙输入信号(握手信号)

•CSIHTCSS[7:0]:芯片选择信号

•CSIHTDCS:数据一致性检查信号

一般用到的就四根线,时钟,数据输出,数据输入,片选
数据传输采用位方式和串行方式,与传输时钟同步。

下表显示了用于设置CSIH的最重要的寄存器。

Block Diagram

框图显示了CSIH的主要组件。


在主模式下,传输时钟CSIHTSCK由内置波特率发生器产生(BRG)。在从模式下,传输时钟由外部源提供。

内置内存可以配置为FIFO、双缓冲区(单独的发送和接收缓冲区)或仅发送缓冲区。也可以绕过它进行数据传输和接收,而不需要缓冲。

回环电路将CSIH完全从端口断开,并支持内部自检。

可以预配置4种不同的波特率,可以为每个CS单独选择

Registers

List of Registers

CSIHnCTL0 — CSIH control register 0

该寄存器控制操作时钟并启用/禁用发送/接收以及用于发送和/或接收的存储部分。它强制在当前作业结束时停止通信


CSIHnPWR:控制操作时钟

0:停止操作clock0。

1:提供操作时钟。

将CSIHnPWR清零复位内部电路,停止运行,复位CSIH切换到备用状态。内部电路不提供时钟。如果CSIHnPWR在通信过程中被清除,正在进行的通信将立即中止。

CSIHnTXE:使能发送

0:表示禁止传输

1:表示使能传输

CSIHnRXE:使能接收

0:表示无法接收

1:表示开启接收功能。

CSIHnJOBE:在当前作业结束时停止通信(发送CSIHnEOJ = 1的数据后通信结束):

0:未请求停止通信。

1:停止通讯。

CSIHnMBS:绕过内存传输和/或接收数据。

0:内存模式

CSIH存储器用于传输和/或接收数据。

1:直连模式

CSIH内存被绕过。

CSIHnCTL1 — CSIH control register 1

这个寄存器指定中断时间和中断延迟模式。它启用/禁用扩展数据长度控制、数据一致性检查、环回模式、握手功能和作业模式。它选择每个芯片选择信号的主动输出电平以及最终数据传输后芯片选择信号的行为。


CSIHnSLRS:设置接收数据输入的内部采样时间。

0:标准采样点

1:移位采样点

在主模式下,该位将接收数据的设置时间放宽通信时钟的半个时钟周期。在从模式下,该位无效。

当通信速度大于5Mbps(不含5Mbps)时,

CSIHnSLRS位应该设置为1。

CSIHnISCE:空闲状态控制模式使能位

0:ISC mode disabled,两次传输之间的行为将由CSIHnCFGx.CSIHnIDLx位中的设置控制。

1:ISC mode enabled,两次传输之间的行为将由CSIHnTX0W.CSIHnISC位中的设置控制。

当使能idle state control时,CSIHnCFGx.CSIHnIDLx bit必须为0

此位只能在CSIHnCTL0.CSIHnPWR = 0时写入

CSIHnSME:使能静默模式,1使能

CSIHnCKR:CSIHSCK时钟反转功能

0: CSIHSC的默认电平为高

1: CSIHSC的默认电平为低


CSIHnSLIT:选择INTCSIHnTIC中断的时间。

0:正常中断定时(传输后产生中断)

1:一旦CSIHnTX0寄存器的内容被转移到移位寄存器,就会产生中断(该功能仅在直接访问模式下激活)。

CSIHnCSLx(x = 0 to 7):配置片选信号的激活电平,0低电平,1高电平

CSIHnEDL:使能扩展数据长度模式(EDL),1使能

CSIHnJE:使能job模式,1使能

CSIHnDCS:使能数据一致性检查,1使能

CSIHnCSRI:定义最后一次数据传输后的芯片选择信号行为。

0:芯片选择信号保持活动电平。

1:芯片选择信号返回非活动电平

CSIHnLBM:是否激活环回模式,1激活。环回模式下,数据输入与输出直接相连

CSIHnSIT:选择中断延迟模式。

0:表示无延迟。

1:所有中断都产生半时钟延时

CSIHnHSE:启用/禁用握手模式。

0:关闭握手功能。

1:开启握手功能。

CSIHnSSE:启用/禁用slave选择功能。

0:忽略输入信号CSIHnSSIZ。

1:输入信号CSIHnSSIZ被识别。

如果不使用从选择功能,则必须将该位设置为0

CSIHnCTL2 — CSIH control register 2

这个寄存器为四个波特率发生器选择工作模式和输入时钟


CSIHnPRS[2:0]:这些位选择操作模式和参考时钟值。

三个bit都为1时,表示从模式,其他值表示分频

通过CSIHnCFGx.CSIHnBRSSx[1:0]选择CSIHnBRSy四个波特率中的一个,通过CSIHnBRSy.CSIHnBRSy设置波特率


下表显示了当CSIHnPRS[2:0]位值为α时,波特率设置CSIHnBRSy[11:0]与CSIHnBRSSx[1:0]位选择的波特率之间的关系。


当CLKP_C = 80MHz时,主模式下的“快速波特率”为20.0Mbps (CLKP_C/4)
13.3Mbps (CLKP_C/6)在Slave模式。

CSIHnMCTL1 — CSIH Memory control register 1

这个寄存器选择条件来产生中断请求,CSIHTIC和CSIHTIR在FIFO模式下。

CSIHnFES[6:0]:选择在FIFO模式下生成CSIHTIC中断(传输数据为空)的条件。

当要在FIFO中传输的未发送数据的数量(CSIHnSTR0.CSIHnSPF[7:0])等于CSIHnMCTL1.CSIHnFES[6:0]时,FIFO空标志(CSIHnSTR0.CSIHnMF位)被设置为1,并且产生CSIHTIC中断请求
CSIHnFFS[6:0]:选择在FIFO模式下生成CSIHTIR中断(接收数据full)的条件

当FIFO中接收到的数据的数量(CSIHnSTR0.CSIHnSRP[7:0])等于CSIHnMCTL1.CSIHnFS[6:0]时,FIFO满标志(CSIHnSTR0.CSIHnFF位)被设置为1,并且产生CSIHTIR中断请求

CSIHnMCTL2 — CSIH Memory control register 2

该寄存器控制双缓冲或仅传输缓冲模式下存储器的操作,并触发在缓冲模式下开始通信。


CSIHnBTST:提供缓冲区传输的启动触发器。

0:不操作。

1:发出start transfer命令。

此位只能在双缓冲模式和仅传输缓冲模式下使用。

CSIHnND[7:0]:指定每种内存模式的数据数量。

读取值表示剩余的通信数据数。

数据传输完成后,该数值会自动递减(直连模式下不会递减


CSIHnSOP[6:0]:选择要发送的数据的指针

CSIHnTX0W — CSIH transmit data register 0 for word access

这个寄存器存储传输数据。此外,它还指定了通信中断请求、作业结束、扩展数据长度和芯片选择激活。

CSIHnCIRE:在双缓冲区或仅传输缓冲区模式下启用通信中断请求CSIHTIC,或在FIFO模式下启用作业完成中断CSIHTIJC请求

0:不请求中断。

1:请求中断。传输后产生中断CSIHTIC或CSIHTIJC。

CSIHnEOJ:指定job的结束。

0:表示job不结束。job还在继续。

1:表示job结束数据。

此位仅在启用作业模式时有效(CSIHnCTL1.CSIHnJE = 1)。

从模式下,该位必须设置为0

CSIHnEDL:指定关联数据是否需要扩展数据长度(EDL)选项。
0:正常
1:启用扩展数据长度。


CSIHnSFN[1:0]:将决定插入的虚拟帧的数量,以延长传输数据后的空闲时间

00:传输后不插入虚拟帧。

01:传输后会插入两个虚拟帧(32位)。

10:传输后会插入4个虚拟帧(64位)。

11:8个虚拟帧(128位)在传输后插入

CSIHnISC:空闲状态控制位决定芯片选择信号在传输结束后是否变为非活动状态。

0:传输结束后CS信号输出电平没有变化。

1:传输结束后,CS信号变为非激活状态。

CSIHnCSx(x = 0 to 7):激活一个或多个芯片选择信号。

0:激活芯片选择x进行关联传输。

1:取消激活关联传输的芯片选择x

CSIHnTX[15:0]:存储传输数据。

CSIHnTX0H — CSIH transmit data register 0 for half word access

这个寄存器存储传输数据。这个寄存器与寄存器CSIHnTX0W.的15位到0位相同

CSIHnRX0W — CSIH receive data register 0 for word access


CSIHnRPE:指示是否检测到接收数据奇偶校验错误。

0:关联接收数据未检测到奇偶校验错误。

1:关联接收数据校验错误。

CSIHnTDCE:是否检测到传输数据一致性错误。1表示检测到

CSIHnCSx(x = 7 to 0):显示哪个芯片选择信号被激活。

CSIHnRX[15:0]:存储接收到的数据

CSIHnRX0H — CSIH receive data register 0 for half word access

这个寄存器存储接收到的数据。这个寄存器与寄存器CSIHnRX0W的15到0位相同

CSIHnMRWP0 — CSIH memory read/write pointer register 0

该寄存器设置从双缓冲区或仅传输缓冲区读取和写入的指针。


CSIHnRRA[6:0]:选择缓冲区的读指针。


CSIHnTRWA[6:0]:选择发送缓冲区的读写指针。

CSIHnSTR0 — CSIH status register 0

该寄存器指示CSIH的状态。


CSIHnSRP[7:0]:反映以FIFO方式接收的数据包数

CSIHnSPF[7:0]:反映FIFO模式下未发送数据的个数。(CPU/DMA写入CSIH的数据数就是要传输的数据数。)


CSIHnTMOE:FIFO模式下的超时错误标志。

指示FIFO模式下是否检测到超时错误。

0:未检测到超时错误。

1:表示检测到超时错误。

CSIHnOFE:FIFO模式溢出错误标志。

指示FIFO模式是否检测到溢出错误。

0:未检测到溢出错误。

1:检测到溢出错误


CSIHnTSF:传输状态标志。

0:空闲状态

1:传输正在进行或准备中


CSIHnFLF:在FIFO模式下表示缓冲区已满的标志。

0: FIFO缓冲区未满。

1: FIFO缓冲区已满。

CSIHnSTCR0.CSIHnPCT清除该位。


CSIHnEMF:在FIFO模式下,缓冲区为空的标志。

0: FIFO缓冲区不为空。

1: FIFO缓冲区为空

该位由CSIHnSTCR0.CSIHnPCT设置为1

CSIHnDCE:数据一致性检查错误标志。

0:未检测到数据一致性错误。

1:检测到数据一致性错误

通过将1写入CSIHnSTCR0.CSIHnDCEC来清除该位。

CSIHnPE:奇偶校验错误标志

0:未检测到校验错误。

1:表示检测到校验错误。

通过将1写入CSIHnSTCR0.CSIHnPEC来清除该位。

CSIHnOVE:溢出错误标志(在双缓冲区模式下固定为0)。

0:未检测到溢出错误。

1:表示检测到溢出错误。

通过将1写入CSIHnSTCR0.CSIHnOVEC来清除该位

CSIHnSTCR0 — CSIH status clear register 0

该寄存器清除CSIHnSTR0状态寄存器的状态标志


CSIHnTMOEC:控制清除超时错误标志命令。写1清除

CSIHnOFEC:控制溢出错误标志清除命令,写1清除

CSIHnPCT:控制FIFO指针清除命令。写1清除FIFO buffer

CSIHnDCEC:控制数据一致性错误标志清除命令,写1清除

CSIHnPEC:控制奇偶校验错误标志清除命令。写1清除

CSIHnOVEC:控制溢出错误标志清除命令。写1清除

CSIHnMCTL0 — CSIH Memory control register 0

这个寄存器选择内存模式和超时设置


CSIHnMMS[1:0]:选择内存模式,0-FIFO,1-Dual buffer,2-仅发送缓冲模式

CSIHnTO[4:0]:选择FIFO模式下的超时设置

CSIHnCFGx — CSIH Configuration register (x = 0 to 7)

这8个寄存器指定每个芯片选择信号CSIHTCSSx,使用的波特率发生器,奇偶校验,数据长度,广播的隐性配置,串行数据方向,时钟和数据相位,空闲强制配置,空闲时间,保持时间,数据间时间和设置时间

从模式下,CSIHnCFG0寄存器的传输协议设置有效

•CSIHnPS0[1:0]:奇偶校验使用

•CSIHnDLS0[3:0]:数据长度选择

•CSIHnDIR0:数据方向

•CSIHnCKP0, CSIHnDAP0:时钟和数据相位

除上述位之外,其他位都应设置为0,寄存器CSIHnCFG1-7也应全为0


CSIHnBRSSx[1:0]:选择波特率寄存器

CSIHnPSx[1:0]:选择发送或接收芯片选择信号x的奇偶校验。0-无校验,1-校验位为0,2-添加奇校验,3-添加偶校验

CSIHnDLSx[3:0]:为芯片选择信号x选择数据长度。

CSIHnRCBx:为芯片选择x选择广播的隐性配置:

0:优先(优先级更高)

1:隐性(优先级较低)

CSIHnDIRx:选择芯片选择信号x的串行数据方向。LSB/MSB


CSIHnCKR=0时,时钟默认电平为高电平,为1时为低电平

CSIHnSLRS=0时,使用标准采样点,为1时使用采样点偏移,波特率超过5M时必须选择为1

CSIHnCKPx为0,表示CSIHnSCK初始电平为CSIHnCKR设置的电平,为1时翻转

CSIHnDAPx为0表示数据捕获在时钟后边沿,为1表示在前边沿

后边沿可以这么理解:当时钟默认电平为高电平时,后边沿就是上升沿,当时钟默认电平为低电平时,后边沿是下降沿

CSIHnCTL1.CSIHnCKR = 1时,禁止设置CSIHnCKPx=1


当CSIHnSLRS = 1时,使用采样点偏移,实际就是偏移半个时钟周期,数据捕获再取反一下即可,原先后边沿捕获的,变成前边沿捕获

CSIHnIDLx:为chip select x选择空闲强制配置:
0:如果CSIHnTX0W.CSIHnCSx两次连续传输的设置是不同的,两次传输之间所有的CSIHTCSS0到7都是一次取消激活。如果CSIHnTX0W.CSIHnCSx连续两次传输的设置相同,两次传输之间没有不活动时间

1:不管CSIHnTX0W.CSIHnCSx设置的两次连续传输,所有的CSIHTCSS0到7之间的两次传输都是一次停用。

此位仅在主模式下可用。

当CSIHnCTL1.CSIHnJE = 1和CSIHnTX0W.CSIHnEOJ = 1,即使CSIHnCFG0 ~ 7.CSIHnIDLx = 0,空闲状态肯定插入。


CSIHnIDx[2:0]:选择芯片选择信号x的空闲时间

CSIHnHDx[3:0]:指定芯片选择信号x在传输时钟周期中的保持时间

CSIHnINx[3:0]:指定芯片选择信号x在传输时钟周期中的数据间延迟时间。

CSIHnSPx[3:0]:指定在传输时钟周期中芯片选择信号x的设置时间

CSIHnBRSx — CSIH baud rate setting register (x = 0 to 3)

这个寄存器设置每个芯片选择信号的波特率。

CSIHnCFGx.CSIHnBRSSx[1:0]位,四种波特率设置中的一种可以为每个芯片选择信号。(x = 0 ~ 7)

PMMAnCTL — PMM control register

这个寄存器控制操作时钟。

PMMAnPWR:控制操作时钟:

0:停止运行时钟

1:提供操作时钟

PMMAnTCTLx — PMM TG control register (x = 0 to 7)

该寄存器控制优先级管理模块的操作


PMMAnSTx:启动触发器使能TG

0:没有影响

1:启动触发器,使能TG

通过设置PMMAnSTx位,PMMAnTTXm寄存器将被清除,以避免使用旧数据。

PMMAnSPx:停止触发器,关闭TG

0:没有影响

1:停止触发器,关闭TG

PMMAnTGLGx[7:0]:指定TGx的数据包数量(32位(数据+控制位))。

如果帧长为256,则应设置“00H”。

Max.TG长度:256

PMMAnPRIOx[2:0]:指定TG的优先级

000B:最高优先级

:

101B:最低优先级


PMMAnMD:指定传输模式

0:仅传输模式(Tx)

1:收发模式(Tx/Rx)

PMMAnTOx[1:0]:指定触发器选项

00B:触发不启用

01B:软件触发

10B:硬件触发

11B:硬件和软件触发

PMMAnSWTx:软件触发设置TGx为挂起模式
该位在启用模式下有效。当在Disable模式下,将1同时写入PMMAnST位和该位时,该位也是有效的。

PMMAnHWTx[5:0]:选择硬件触发源

将100011或更多的号设置为PMMAnTCTL.PMMAnHWTm[5:0]禁止使用。

注意:1. 只有当TG处于禁用模式时,才允许写入PMMAnTCTLx寄存器中的PMMAnSPx和PMMAnSWTx位以外的其他位。

2. 当TG在Disable模式时,PMMAnSTx和PMMAnSWTx位同时被设置为1,切换到Pending模式。

3.如果同时写入PMMAnSTx和PMMAnSPx,则忽略PMMAnSTx位,因为PMMAnSPx位具有高优先级

PMMAnTTXm — PMM TG transmit buffer (x = 0 to 7)

发送缓存区


传输路径的TGx数据缓冲区

PMMAnRX — PMM TG receive buffer

接收缓存区


接收路径的数据缓冲区
在仅传输模式下,数据不存储在PMMAnRX寄存器中

PMMAnTCNTx — PMM TGx counter (x = 0 to 7)

这个寄存器是计数器,它指示剩余的数据传输到TGx的PMMA。


计数器,显示剩余的数据传输到PMMA为TGx

将加载PMMAnTGLGx[7:0]的值,当PMMAnCTLx.PMMAnSTx设置位。

每次数据被转发到CSIHnTX0W寄存器时,该寄存器的值-1。

PMMAnSTR0 — PMM TG status register 0

这个寄存器显示TG的状态


PMMAnENx:表示模式已启用或禁用

0:关闭TGx功能

1:开启TGx功能

PMMAnAFx:显示TGx是否被设置为激活状态

0:表示TGx状态不是active。

1:设置TGx为active状态

PMMAnPFx:指示TGm是否设置为status pending

0:表示TGx不是pending状态

1:设置TGx为status pending。

PMMAnSTR1 — PMM TG status register 1

这个寄存器表示TG的发送/接收状态


PMMAnRFx:TGx的接收路径状态

0:不是所有的数据都被TGx接收。

1: PMM对TGx的接收处理已经完成

PMMAnTFx:显示TGx的发送路径状态

0:不是所有的数据都以TGx传输。

1: PMM对TGx的传输处理已经完成

PMMAnSTC — PMM TG status clear register

这个寄存器清除TG的发送/接收状态


写1清除

Interrupt Sources

CSIH可以生成以下中断请求:

•CSIHTIC(通信中断)

•CSIHTIR(通信中断)

•CSIHTIRE(错误中断)

CSIHTIJC(job完成中断)

Overview

当检测到错误时,会生成错误中断CSIHTIRE。其他中断的产生取决于内存模式、作业模式,在作业完成中断CSIHTIJC的情况下,还取决于操作模式

作业完成中断CSIHTIJC仅在启用作业模式时生成(CSIHnCTL1.CSIHnJE = 1).

General interrupt delay

在主模式下,所有由主模式产生的中断都可以延迟半个传输时钟周期CSIHTSCK。

延时由设置位CSIHnCTL1.CSIHnSIT = 1.指定

下面的例子说明了中断延迟函数,假设设置为:

CSIHnCTL1.CSIHnSIT = 1(中断延迟启用)

CSIHnCFGx.CSIHnCKPx = 0,CSIHnCFGx.CSIHnDAPx = 0(标准时钟和数据相位),

CSIHnCFGx.CSIHnDLSx[3:0] = 1000B(数据长度8位)。


中断延迟半个时钟周期产生

CSIHTIC (communication interrupt)

根据内存模式和作业模式的不同,这个中断是根据下表所示的条件产生的

CSIHTIC in direct access mode

下面的示例显示了直接访问模式下的CSIHTIC行为。

这些例子假设:

•主模式

•直接访问模式

•无一般中断延迟(CSIHnCTL1.CSIHnSIT = 0)

•标准时钟和数据相位(CSIHnCFGx.CSIHnCKPx = 0, CSIHnCFGx.CSIHnDAPx = 0)

•数据长度8位(CSIHnCFGx.CSIHnDLSx[3:0] = 1000B)

•正常CSIHTIC中断时间(CSIHnCTL1.CSIHnSLIT = 0)


如果启用了作业模式(CSIHnCTL1.CSIHnJE = 1),作业结束,因为数据被发送到

CSIHnT0W.CSIHnEOJ = 1,请求通信停止(CSIHnCTL0.CSIHnJOBE = 1),则CSIHTIC被作业完成中断CSIHTIJC取代。

还可以将CSIHTIC设置为在CSIHnTX0寄存器空闲时发生下一个数据。这可以通过设置CSIHnCTL1.CSIHnSLIT = 1来指定。

CSIHTIC in FIFO mode

下面的例子显示了FIFO模式下的CSIHTIC行为

这个例子假设:

•主模式

•FIFO模式

•无一般中断延迟(CSIHnCTL1.CSIHnSIT = 0)

•标准时钟和数据相位(CSIHnCFGx.CSIHnCKPx = 0, CSIHnCFGx.CSIHnDAPx = 0)

•数据长度8位(CSIHnCFGx.CSIHnDLSx[3:0] = 1000B)

CSIHTIC in job mode

下面的示例显示了作业模式下的CSIHTIC行为。

这个例子假设:

•主模式

•启用作业模式(CSIHnCTL1.CSIHnJE = 1)

•无一般中断延迟(CSIHnCTL1.CSIHnSIT = 0)

•标准时钟和数据相位(CSIHnCFGx.CSIHnCKPx = 0, CSIHnCFGx.CSIHnDAPx = 0)

•数据长度8位(CSIHnCFGx.CSIHnDLSx[3:0] = 1000B)

•正常CSIHTIC中断时间(CSIHnCTL1.CSIHnSLIT = 0)


在作业模式下生成CSIHTIC的规则如下表所示

CSIHTIR in direct access mode

下面的示例显示了直接访问模式下的CSIHTIR行为。

这些例子假设:

•主模式

•直接访问模式

•无一般中断延迟(CSIHnCTL1.CSIHnSIT = 0)

•标准时钟和数据相位(CSIHnCFGx.CSIHnCKPx = 0, CSIHnCFGx.CSIHnDAPx = 0)

•数据长度8位(CSIHnCFGx.CSIHnDLSx[3:0] = 1000B)

CSIHTIR in dual buffer mode

下面的示例显示了双缓冲区模式下的CSIHTIR行为。

这个例子假设:

•主模式

•双缓冲模式

•无一般中断延迟(CSIHnCTL1.CSIHnSIT = 0)

•标准时钟和数据相位(CSIHnCFGx.CSIHnCKPx = 0, CSIHnCFGx.CSIHnDAPx = 0)

•数据长度8位(CSIHnCFGx.CSIHnDLSx[3:0] = 1000B)

CSIHTIRE (reception error interrupt)

错误中断包括:

FIFO overflow error-FIFO溢出错误

Parity error-校验错误

Data consistency error-数据一致性错误

Time-out error-超时错误

Overrun error-溢出错误

导致生成CSIHTIRE的错误类型在寄存器CSIHnSTR0中被标记。

另外,奇偶错误标志和数据一致性错误标志附加到中的接收数据CSIHnRX0W

CSIHTIJC (job completion interrupt)

CSIHnCTL1.CSIHnJE = 1时使能job mode,当CSIHnCTL1.CSIHnJE = 0时,CSIHTIJC不会生成

根据内存模式的不同,这个中断是根据下表所示的条件产生的

Operation

Master/slave connections


可以通过片选控制多个从机

Transmission clock selection

在主模式下,传输波特率可通过以下位数选择:

• CSIHnCTL2.CSIHnPRS[2:0]

• CSIHnBRSy.CSIHnBRSy[11:0] (y = 0 to 3)

• CSIHnCFGx.CSIHnBRSSx[1:0] (x = 0 to 7)

而CSIHnCTL2寄存器中的设置决定传输时钟CSIHTCLK,一个芯片选择专用的预分频器,由CSIHnCFGx控制。CSIHnPSCLx[1:0],允许为不同的芯片选择产生不同的波特率。


当CSIHnBRSy.CSIHnBRSy[11:0]被清除时,时钟停止

波特率计算公式为:

CSIHTSCK = CLKP_C / (2^α × k × 2)

Operating Procedures

下面的示例和过程按照存储方式的顺序描述如下:

•直接访问模式

•仅传输缓冲模式

•双缓冲模式

•FIFO模式

Procedures in direct access mode

提供了两个用于主机的示例,一个禁用了作业模式,另一个启用了作业模式。

Transmit/receive in master mode when job mode is disabled

以下程序是基于以下假设:

•传输数据长度为8位(CSIHnCFGx.CSIHnDLSx[3:0] = 1000B).

•传输方向为MSB优先(CSIHnCFGx.CSIHnDIRx = 0).

•标准时钟和数据相位(CSIHnCFGx.CSIHnCKPx = 0, CSIHnCFGx.CSIHnDAPx = 0)

•无一般中断延迟(CSIHnCTL1.CSIHnSIT = 0)

•未启用作业模式(CSIHnCTL1.CSIHnJE = 0).

•正常CSIHTIC中断时间(CSIHnCTL1.CSIHnSLIT = 0)

•直接访问模式(CSIHnCTL0.CSIHnMBS = 1)

Transmit/receive in master mode when job mode is enabled

以下程序是基于以下假设:

•传输数据长度为8位(CSIHnCFGx.CSIHnDLSx[3:0] = 1000B).

•传输方向为MSB优先(CSIHnCFGx.CSIHnDIRx = 0).

•标准时钟和数据相位(CSIHnCFGx.CSIHnCKPx = 0, CSIHnCFGx.CSIHnDAPx = 0)

•无一般中断延迟(CSIHnCTL1.CSIHnSIT = 0)

•启用作业模式(CSIHnCTL1.CSIHnJE = 1).

•正常CSIHTIC中断时间(CSIHnCTL1.CSIHnSLIT = 0)

•直接访问模式(CSIHnCTL0.CSIHnMBS = 1)

•两个作业,每个作业发送三个数据包

Job完成后会设置CSIHnTX0W.CSIHnEOJ = 1

Priority Management Module (PMM)

CSIH优先级管理模块(PMM)是带有传输组的CSIH模块的附加模块&优先处理能力。PMM将处理多达8个TG,具有6个可配置的优先级。每个TG将能够产生两个DTS触发器,可用于从本地或全局RAM加载传输数据,并将接收数据存储到本地或全局RAM中。(DTS配置必须在软件中完成)。PMM将使不同的应用程序能够同时使用相同的CSIH,而无需任何软件同步。

Transfer groups

CSIH通信将由传输组(TG)处理。

每种TG具有以下属性:

•配置了一个或多个作业

•可设置6个优先级

•DTS触发器专用于接收路径和发送路径使用。

-即使在另一个传输组(TG)正在传输时也可以更改

-可以在不影响其他传输组(TG)的情况下进行更改

-可以由具有更高优先级的传输组(TG)在作业之间暂停

—三种类型的触发器

硬件触发

软件触发

硬件和软件触发器

TG structure

Block Diagram

框图显示了PMM的主要组件。

Functional Overview

•每个CSIH实例一个PMM

•支持多达8个传输组,每个组有六个可配置的优先级级别

•三个中断请求信号

  • PMMTIC:数据传输到TG的CSIH完成
  • PMMRIC: CSIH和PMM的数据接收完成(Tx/Rx模式)。
    数据传输完成(仅Tx模式)。
  • PMMTIJC: TG被PMMAnSPm bit终止。
    每个TG都具有以下功能

    •产生DTS触发信号的接收和发射路径

    •软件和硬件触发TG转移的启动

    •可选择的硬件触发源从多个输入信号

    •开启/关闭TG

    •支持TG长度达256 × 32bit(数据+控制位)

    •支持CSIH的EDL功能

    •可配置的作业长度由EOJ位在Tx数据的控制位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1570153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode - 127双周赛

目录 一&#xff0c;3095. 或值至少 K 的最短子数组 I 二&#xff0c;3096. 得到更多分数的最少关卡数目 三&#xff0c;3097. 或值至少为 K 的最短子数组 II 四&#xff0c;3098. 求出所有子序列的能量和 一&#xff0c;3095. 或值至少 K 的最短子数组 I 本题需要知道一个知…

武汉星起航电子商务有限公司挂牌展示,为合作伙伴提供全方位支持

随着跨境电商领域市场竞争愈演愈烈&#xff0c;武汉星起航亚马逊一站式孵化平台悄然崭露头角。从2017年起&#xff0c;武汉星起航便立足亚马逊自营店铺&#xff0c;积累了丰富的实战运营经验。2020年正式成立后&#xff0c;公司以跨境电商为核心&#xff0c;凭借专业的运营团队…

复杂度的讲解

1.算法效率 如何衡量一个算法的好坏&#xff1f;从两个维度&#xff0c;时间和空间&#xff08;算法运行的快慢&#xff0c;消耗的空间大不大&#xff09;。因为计算机硬件领域的高速发展&#xff0c;如今计算机的存储量已经达到了一个很高的程度&#xff0c;所以现在我们一般…

12种常见的软件架构风格

什么是软件架构&#xff1f; 软件架构是定义软件系统的高级结构和组织的过程。它涉及识别和选择正确的组件&#xff0c;决定它们之间如何交互&#xff0c;以及确定它们应该如何组织以实现特定的目标。软件架构的目标是创建一个可维护、可扩展和安全的系统&#xff0c;能够满足…

车载电子电器架构 —— 软件下载

车载电子电器架构 —— 软件下载 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无…

【Qt】:常用控件(三:按钮类)

常用控件&#xff08;三&#xff09; 一.Push Button二.Radio Buttion三.Check Box 一.Push Button 使⽤ QPushButton 表⽰⼀个按钮.这也是当前我们最熟悉的⼀个控件了.QPushButton继承⾃QAbstractButton .这个类是⼀个抽象类.是其他按钮的⽗类. QAbstractButton 中,和 QPushBu…

基于java+SpringBoot+Vue的网上订餐系统设计与实现

基于javaSpringBootVue的网上订餐系统设计与实现 开发语言: Java 数据库: MySQL技术: Spring Boot JSP工具: IDEA/Eclipse、Navicat、Maven 系统展示 前台展示 菜品浏览与选择&#xff1a;用户可以浏览不同的菜品分类&#xff0c;并选择心仪的菜品。 订单创建与管理&…

做抖店的新手朋友!别再盲目跟风个人店了!开通完根本做不起来!

哈喽~我是电商月月 想做抖音小店的朋友们一定要分清个人店和个体店的区别 个人店铺的限制真的太多了&#xff01;真的不好做&#xff01; 一&#xff0e;首先我们要知道两种的区别 个人店不需要营业执照&#xff0c;身份证就能开启 个体店则需要办理营业执照【营业执照的办…

设计模式——建造者模式03

工厂模式注重直接生产一个对象&#xff0c;而建造者模式 注重一个复杂对象是如何组成的&#xff08;过程&#xff09;&#xff0c;在生产每个组件时&#xff0c;满足单一原则&#xff0c;实现了业务拆分。 设计模式&#xff0c;一定要敲代码理解 组件抽象 public interface …

算法设计与分析实验报告c++实现(排序算法、三壶谜题、交替放置的碟子、带锁的门)

一、实验目的 1&#xff0e;加深学生对分治法算法设计方法的基本思想、基本步骤、基本方法的理解与掌握&#xff1b; 2&#xff0e;提高学生利用课堂所学知识解决实际问题的能力&#xff1b; 3&#xff0e;提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 1、 编…

JDI LCD 驱动时序介绍

1. 引言 绝大多数 STM32 MCU 都可应用于图形界面&#xff0c;而且很多系列还内置图形硬件 LTDC&#xff0c;支持驱动 RGB 接口的 LCD。但是存在少数类型的 LCD&#xff0c;如 JDI 屏&#xff0c;除了 STM32L4P5 支持外&#xff0c;其它 MCU 只能根据屏的接口时序要求&#xff…

DNS和HTTP

DNS应用层协议 域名解析系统 使用IP地址&#xff0c;来描述设备在网络上的位置 IP地址并不适合来进行传播网站&#xff0c;就采用了域名的方式来解决网站传播的问题。如www.baidu.com这样类似的就很容易让人记住。其域名就直接代表了这个网站。而且有一套自动的系统会将域名解…

LeetCode 2192.有向无环图中一个节点的所有祖先:拓扑排序

【LetMeFly】2192.有向无环图中一个节点的所有祖先&#xff1a;拓扑排序 力扣题目链接&#xff1a;https://leetcode.cn/problems/all-ancestors-of-a-node-in-a-directed-acyclic-graph/ 给你一个正整数 n &#xff0c;它表示一个 有向无环图 中节点的数目&#xff0c;节点编…

AFCI 应用笔记二之数据采集

1. 简介 基于监督学习的神经网络算法需要大量数据作为输入&#xff0c;模型完全由数据驱动&#xff0c;其数据质量是算法有效的必要条件&#xff0c;所以如何高效的采集到数据&#xff0c;以及正确的标注或分析是极其重要的&#xff0c;如果第一步有问题&#xff0c;后续的所有…

如何删除 iPhone 上的 iCloud 激活锁

Apple 在 iPhone 上通过不同的安全屏障来保护您的数据。 iCloud 激活锁可阻止外部人员访问您的手机。您可以通过打开“查找我的 iPhone”功能来激活此锁。 使用安全协议似乎是无害的&#xff0c;直到你到达门的另一边。如果您购买了带有激活锁的二手 iPhone 或忘记了 iCloud 凭…

eBay买家号注册下单容易死号?是什么原因导致?

随着电子商务的迅猛发展&#xff0c;跨境电商平台eBay日益成为众多消费者和商家的首选。然而&#xff0c;自去年下半年以来&#xff0c;eBay推出的新规则给买家号的注册带来了前所未有的挑战。许多新用户反映&#xff0c;在注册eBay买家号后&#xff0c;往往遭遇刚注册就被冻结…

哈希表2s总结

3.哈希表 哈希表非常常用&#xff0c;字典一般会用来保存处理过后的输入输出信息&#xff0c;集合也可以用来去重&#xff0c;这部分是重点&#xff0c;但是还是那句话&#xff0c;这种题目是不会或者说很少考原题的&#xff0c;主要还是学习知识&#xff0c;所以题目看一下答…

JS详解-手写Promise!!!

前言&#xff1a; 针对js的深入理解&#xff0c;作者学习并撰写以下文章&#xff0c;由于理解认知有限难免存在偏差&#xff0c;请大家指正&#xff01;所有定义来自mdn。 Promise介绍&#xff1a; 对象表示异步操作最终的完成&#xff08;或失败&#xff09;以及其结果值. 描…

基于SpringBoot+Vue光影视频平台(源码+部署说明+演示视频+源码介绍)

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通…

ChernoCPP 2

视频链接&#xff1a;【62】【Cherno C】【中字】C的线程_哔哩哔哩_bilibili 参考文章&#xff1a;TheChernoCppTutorial_the cherno-CSDN博客 Cherno的C教学视频笔记&#xff08;已完结&#xff09; - 知乎 (zhihu.com) C 的线程 #include<iostream> #include<th…