目录
- 概述
- GPIO
- 串口
- 1.FIFO
- 2.中断
- CANFD
- RX Buffer and FIFO Element
- TX Buffer Element
- busoff 检测
- 看门狗
- 复位原因
- 待梳理
概述
GPIO
1.如何定位IO的作用
2.读取电平必须为输入模式
串口
熟悉手册串口特性如下:
■ 数据帧大小可从4位编程到16位
■ STOP位的可编程数量,可以设置为1到4之间的半位周期
■ 仅限于FIFO模式操作
1.FIFO
每个SCB都有256字节的专用RAM,用于传输和接收操作。此RAM可以配置为三种不同的模式(FIFO、EZ或CMD_RESP)。
FIFO模式下,RAM被分成两个128字节的FIFO,一个用于发送(TX),一个用来接收(RX)。FIFO可以配置为8位x128个元素或16位x64个元素。
2.中断
初始化中 txFifoIntEnableMask=0,没有开启中断
搜索 unINTR_TX_MASK,在 Cy_SCB_UART_Transmit 中会开启发送中断
实际使用 Cy_SCB_UART_PutArray,会检查有多少FIFO可用
接收中断:
CANFD
《002-19314.pdf》中
23. CAN FD Controller
CAN FD controller主要特性
■两个可配置的接收FIFO
■多达64个专用接收缓冲器
■多达32个专用传输缓冲器
■可配置的传输FIFO
RX Buffer and FIFO Element
23.4.2 RX Buffer and FIFO Element 中
RX缓冲区和FIFO元素是一个32位字块,它保存了存储在消息RAM中的接收帧的数据和状态。
消息RAM中最多可配置64个RX缓冲区和两个RX FIFO。每个RX FIFO部分最多可配置为存储64个接收到的消息。RX缓冲器和FIFO元件的结构如图23-18所示。元素大小可以配置为通过寄存器CANFDx_CHy_RXESC存储最多64字节数据字段的CAN FD消息(RX缓冲区/FIFO元素大小配置)。
■根据元素大小的配置(由RX缓冲器/FFIFO元素大小配置(CANFDx_CHy_RXESC)定义),Rn将从n=3变化到17。
■m是n的函数,m=(n-1)×4-1。
■有效数据字节数由数据长度代码定义
在S32K144使用记录(三)(点击进入)中,也有提到相关内容Message buffer structure。
相比S32K,支持了通过FDF来区分是CAN还是CANFD
R1 [bit19:16] DLC[3:0]: Data Length Code。需要做DLC[3:0]的映射
TX Buffer Element
23.4.3 TX Buffer Element
busoff 检测
周期查询Busoff状态
static int16_t CanControllerBusOffError(uint8_t canChannel)
{
volatile stc_CANFD_CH_M_TTCAN_t* pstCanType = NULL;
switch(canChannel)
{
case 0://BCAN
pstCanType = &T2G_CANFD1_TYPE->M_TTCAN;
break;
case 1:
pstCanType = &T2G_CANFD2_TYPE->M_TTCAN;
break;
case 2://ACAN
pstCanType = &T2G_CANFD3_TYPE->M_TTCAN;
break;
case 3://ECAN
pstCanType = &T2G_CANFD4_TYPE->M_TTCAN;
break;
case 4://CCAN
pstCanType = &T2G_CANFD5_TYPE->M_TTCAN;
break;
case 5:
pstCanType = &T2G_CANFD6_TYPE->M_TTCAN;
break;
default:
break;
}
if(pstCanType->unIR.stcField.u1BO_)
{
if(pstCanType->unPSR.stcField.u1BO)
{
CanControllerReset1(canChannel);
g_driverCanManage[canChannel].busErrorAppDiableFlag = 0x01;
g_driverCanManage[canChannel].BusErrorState = 0x01;
return 0;
}
}
return 1;
}
通过查询寄存器状态,来判定。《002-19567_0H_V.pdf》中:
看门狗
在《Infineon-Traveo_II_CYT2B7_Series-DataSheet-v11_00-EN.pdf》中介绍:
复位原因
在《002-19567_0H_V.pdf》中,通过RES_CAUSE寄存器查看复位原因:
搜索 RES_CAUSE
使用while(1)测试
bit6为1,看门狗复位
正常断开稳压源,重上电
enable batAbnormal reset occurred : 40010000
disable batAPP VERSION = V 003 .000
待梳理
两个内核的关系
各自的外设和寄存器