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

文章目录

    • 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.mzph.cn/news/793336.shtml

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

相关文章

python怎么存储数据

在Python开发中&#xff0c;数据存储、读取是必不可少的环节&#xff0c;而且可以采用的存储方式也很多&#xff0c;常用的方法有json文件、csv文件、MySQL数据库、Redis数据库以及Mongdb数据库等。 1. json文件存储数据 json是一种轻量级的数据交换格式&#xff0c;采用完全…

【教学类-09-09】20240406细线迷宫图05(正方形)30格+动物+箭头(15CM横版一页-1份横版)

作品展示&#xff1a; 背景需求&#xff1a; 增加迷宫图的吸引力&#xff0c;起点的地方放一个小动物。 素材准备&#xff1a; 图片来自midjounery文生图&#xff08;四图&#xff09;&#xff0c;但同种动物只留1个&#xff08;如4个老鼠只保留一只老鼠&#xff09;&#xff…

哈希表2s总结

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

如何保证Redis的缓存和数据库中的数据的一致性?

Redis的缓存如何和数据库中的数据保持一致性&#xff1f; 我们都知道&#xff0c;Redis是一个基于内存的键值存储系统&#xff0c;数据完全存放在内存中&#xff0c;这使得它的读写速度远超传统的硬盘存储数据库。对于高访问频率、低修改率的数据&#xff0c;通过将它们缓存在…

intellij idea 使用git ,快速合并冲突

可以选择左边的远程分支上的代码&#xff0c;也可以选择右边的代码&#xff0c;而中间是合并的结果。 一个快速合并冲突的小技巧&#xff1a; 如果冲突比较多&#xff0c;想要快速合并冲突。也可以直接点击上图中 Apply non-conflicting changes 旁边的 All 。 这样 Idea 就会…

深入浅出 -- 系统架构之垂直架构

当业务复杂度增加、访问量逐渐增大出现高并发时&#xff0c;单体架构无法满足需求&#xff0c;可以根据业务功能对系统进行拆分&#xff0c;以提高访问效率。 垂直架构介绍 1.垂直架构一般是因为单体架构太过于庞大而进行的拆分&#xff0c;拆分后各个系统应满足独立运行互相不…

wordpress外贸独立站模板

wordpress外贸独立站模板 WordPress Direct Trade 外贸网站模板&#xff0c;适合做跨境电商的外贸公司官方网站使用。 https://www.waimaoyes.com/wangzhan/22.html

【Android Studio】上位机-安卓系统手机-蓝牙调试助手

【Android Studio】上位机-安卓系统手机-蓝牙调试助手 文章目录 前言AS官网一、手机配置二、移植工程三、配置四、BUG五、Java语言总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 AS官网 AS官网 一、手机配置 Android Studio 下真机调试 …

unity学习(82)——profiler 限制帧率

实际测试发现当玩家个数增加时&#xff0c;客户端明显变的很卡&#xff0c;想知道为什么变卡了&#xff01; 1.只有玩家自己的时候 2.两个时候感觉脚本的工作量增大了 拖了一会直接炸了&#xff01;&#xff08;数据包积压把内存搞炸&#xff0c;我第一次见&#xff09; 3.我觉…

数据库的介绍分类作用特点

目录 1.概述 2.分类 2.1.关系型数据库 2.2.非关系型数据库 2.3.分布式数据库 ​​​​​​​2.4.云数据库 3.作用 4.特点 5.应用举例 5.1.MySQL ​​​​​​​5.1.1.作用 ​​​​​​​5.1.2.特点 ​​​​​​​5.1.3.应用案例 ​​​​​​​5.2.达梦 ​​​…

上位机图像处理和嵌入式模块部署(qmacvisual之tcp服务器端)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 上面一篇&#xff0c;我们谈到了tcp客户端&#xff0c;另外一种连接方法就是tcp服务器端。事实上&#xff0c;对于第三方系统&#xff0c;大多数情…

ES10 学习

文章目录 1. Object.fromEntries()2. trimStart() 和 trimEnd()3. 数组的flat() 和flatMap()4. Symbol 对象的description 属性5. try ... catch(e){} 1. Object.fromEntries() Object.fromEntries() 方法允许你轻松地将键 值对列表转换为对象 let arr [["name",&qu…

《搜广推算法指南》(2024版) 重磅发布!

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学&#xff0c;针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 结合…

城市道路井盖破损丢失目标检测数据集VOC-1377张

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;1377 标注数量(xml文件个数)&#xff1a;1377 标注类别数&#xff1a;4 标注类别名称:["jg","jg…

(React组件基础)前端八股文修炼Day6

一 类组件与函数组件有什么异同 在React中&#xff0c;类组件和函数组件是创建组件的两种主要方式。随着React的发展&#xff0c;尤其是自Hooks在React 16.8中引入以来&#xff0c;函数组件的功能变得更加强大&#xff0c;使得它们能够更加方便地与类组件相竞争。下面是类组件…

Collection与数据结构 Stack与Queue(一): 栈与Stack

1. 栈 1.1 概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&…

代码随想录算法训练营第四十四天 |卡码网52. 携带研究材料 、518. 零钱兑换 II、377. 组合总和 Ⅳ

代码随想录算法训练营第四十四天 |卡码网52. 携带研究材料 、518. 零钱兑换 II、377. 组合总和 Ⅳ 卡码网52. 携带研究材料题目解法 518. 零钱兑换 II题目解法 377. 组合总和 Ⅳ题目解法 感悟 卡码网52. 携带研究材料 题目 解法 题解链接 1. #include <iostream> #inc…

vscode开发ESP32问题记录

vscode 开发ESP32问题记录 1. 解决vscode中的波浪线警告 1. 解决vscode中的波浪线警告 参考链接&#xff1a;https://blog.csdn.net/fucingman/article/details/134404485 首先可以通过vscode 中的IDF插件生成模板工程&#xff0c;这样会自动创建.vscode文件夹中的一些json配…

【Week-Y4】修改yolov5s中C3模块的结构,common.py文件解读

修改C3模块的结构 一、commom.py文件解析二、修改代码&#xff0c;运行train.py训练 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 &#x1f4d5;本次任务&#xff1a;将yolov5s网络模型…

交换机特性解析

​1. 端口数量和类型: RJ-45端口: 最常见的端口类型,用于连接网线。 铜缆类型: 超五类、六类、七类等,影响传输速率和距离。 PoE功能: 支持为连接的设备供电,如IP电话、无线AP等。 光纤端口: 用于连接光纤,支持更长的传输距离和更高的速率。 光纤类型: 单模、多模等,影响传…