TC397 MCMCAN

寄存器

基地址

对于 MCMCAN 模块,所有寄存器的前缀为 CAN0_、CAN1_ 或 CAN2_,特定产品变体可能存在相应的模块。
寄存器分为三个不同的部分:

  • General Configuration Registers
  • User Interface Registers
  • Registers within M_CAN

在这里插入图片描述
在这里插入图片描述

CAN Clock Control Register(CLC)

时钟控制寄存器 CLC 允许程序员根据应用要求调整模块的功能和功耗。 下面的描述显示了在模块的标准接口中实现的时钟控制寄存器功能。 当模块内核连接到 CLC 时钟控制接口时,CLC 控制模块的 f(SYN) 和 f(ASYN) 模块时钟信号、睡眠模式和快速关闭模式。
在这里插入图片描述

Module Control Register(MCR)

模块控制寄存器 MCR 包含确定 MCMCAN 模块操作的基本设置。 当且仅当在写访问期间已设置 MCR.CCCE 和 MCR.CI 时,对 MCR 寄存器的最低字节的写访问才有效。 要打开或关闭时钟,必须随后复位 MCR.CCCE 和 MCR.CI 的位。 在这个序列没有发生之前,不能对相应的节点进行写访问。
为了能够更改时钟设置,需要满足以下编程顺序:

uwTemp = CANn_MCR.U;
uwTemp |= (0xC0000000 | CLKSELx);
CANn_MCR.U = uwTemp;
uwTemp &= ~0xC0000000;
CANn_MCR.U = uwTemp;
// The clock settings for CAN nodes becomes active.
// To be able to start the RAM initialization, the following programming sequence need to be met:
CANn_MCR |= 0xC0000000;
// Wait until CANn_MCR.RBUSY is 0b
// Set CANn_MCR.RINIT to 0b
// Set CANn_MCR.RINIT to 1b
// Dummy read CANn_MCR
// Wait until CANn_MCR.RBUSY is 0b
// Set CANn_MCR.RINIT to 0b
CANn_MCR &= ~0xC0000000;
// RAM initialization is finished

在这里插入图片描述
在这里插入图片描述

CC Control Register i( CCCRi (i=0-3) )

CCCRi 寄存器启用和禁用 CAN 总线参与和基本协议功能。 由于时钟域之间的同步机制,在对 CCCRi 进行写操作后,应回读寄存器,直到将设置值写入寄存器。 请记住,该寄存器还包括受硬件影响的位。

在 MCR 寄存器中启用 CAN 时钟后,应用软件必须等待 10 个主机时钟周期才能访问内核寄存器。
LDMST 或 SWAPMSK.W 指令只能在为该寄存器中的 rwh 位启用位掩码的情况下使用

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值