概述
本文分析NXP S32K1 FlexCAN的寄存器,加深对其开发、故障定位的了解。
内存映射
FlexCAN0 base address: 4002_4000h
FlexCAN1 base address: 4002_5000h
FlexCAN2 base address: 4002_B000h
偏置从 0x80 to 0x27F 分配给32个 128-bit message buffers (MBs)。
从上图可以看出,寄存器分为三组:常用组、Pretended Networking组、CAN FD组。
常用寄存器分析
MCR
Module Configuration register
全局的系统配置,如操作模式、冻结、RXFIFO使能及软件复位等。
CTRL1
指定模块与CAN bus有关的特征,如位数率、采样点、模式等。
CAN位时间相关的变量配置也可以在 CBT 寄存器中,如果CBT[BTF] 置位,此时CTRL1中这几个位域将变为只读的。
TIMER
Free Running Timer
16位自由定时器,复位后从0x0 显性计数到0xFFFF,然后回绕。
读它将导致MB解锁。
RXMGMASK
Rx Mailb