当前位置: 首页 > news >正文

S32K144入门笔记(二十五):FlexCAN初始化序列

文章目录

  • 初始化模块典型过程

初始化模块典型过程

对于配置、改变或者初始化FlexCAN模块来说,必须在冻结模式下操作。且在每次复位后,FlexCAN模块必须被重新初始化。
一个典型的初始化过程大致如下:

  • 配置MCR寄存器
    a. 通过设置 IRMQ 启用每个 MB 和接收队列的单独过滤功能。
    b. 通过设置 WRNEN 启用警告中断。
    c. 如果需要,通过设置 SRXDIS 禁用帧自接收。
    d. 通过设置 RFEN 启用 Rx FIFO。
    e. 如果启用了 Rx FIFO 且需要 DMA,则设置 DMA。
    f. 如果需要伪装网络模式,则设置 PNET_EN。
    g. 通过设置 AEN 启用中止机制。
    h. 通过设置 LPRIOEN 启用本地优先级功能。

  • 初始化控制 1 寄存器(CTRL1),并可选择初始化 CAN 位定时寄存器(CBT)。同时初始化 CAN FD CAN 位定时寄存器(FDCBT)。
    a. 确定位定时参数:PROPSEG、PSEG1、PSEG2 和 RJW。
    b. 可选择确定位定时参数:EPROPSEG、EPSEG1、EPSEG2 和 ERJW。
    c. 确定 CAN FD 位定时参数:FPROPSEG、FPSEG1、FPSEG2 和 FRJW。
    d. 通过对 PRESDIV 字段进行编程来确定位速率,并可选择对 EPRESDIV 字段进行编程。
    e. 通过对 FPRESDIV 字段进行编程来确定 CAN FD 位速率。
    f. 确定内部仲裁模式(LBUF)。

  • 初始化消息邮箱
    a. 必须初始化所有消息缓冲区的控制和状态字。
    b. 如果启用了 Rx FIFO,则必须初始化 ID 过滤器表。
    c. 应根据需要初始化每个消息缓冲区中的其他条目。

  • 初始化Rx独立掩码寄存器(RXIMRn)

  • 设置中断屏蔽位
    – IMASK寄存器
    –CTRL1/CTRL2寄存器

  • 如果虚拟网络模式使能,配置选择性唤醒需要的寄存器

  • 清除MCR中的HALT位

相关文章:

  • LeetCode 1169 查询无效交易
  • 【嵌入式系统设计师】知识点:第3章 嵌入式硬件设计
  • HCIP【路由策略技术(详解)】
  • 1️⃣ 智能体基础入门教学(2025年全新版本)
  • 国内 windows powershell 安装 scoop
  • Llama 4 家族:原生多模态 AI 创新的新时代开启
  • 消息队列基础概念及选型,常见解决方案包括消息可靠性、消息有序、消息堆积、重复消费、事务消息
  • 企业网站模板源码 免费网站模板下载
  • 基础算法模拟(超详细)
  • 【spring02】Spring 管理 Bean-IOC,基于 XML 配置 bean
  • Java面试黄金宝典37
  • Spring 中的事务
  • 设计模式简述(六)代理模式
  • APS相关知识
  • 鸿蒙版(ArkTs) 贪吃蛇,包含无敌模式 最高分 暂停和继续功能
  • 语法: result=labs( value);
  • 每日习题:20250407
  • NO.69十六届蓝桥杯备战|基础算法-递归初阶|汉诺塔问题|占卜DIY|FBI树(C++)
  • jsoncpp的使用
  • deepseek生成PPT 提示词模板
  • htp免费域名注册网站/百度推广助手手机版
  • 付公司网站建设费用会计分录/seo推广一个月见效
  • 东坝地区网站建设/网络推广平台有哪些?
  • 金华高端网站建设/2345网址导航怎么下载
  • 上海网站推荐/产品推广策划方案怎么做
  • wordpress网址的域名怎么改/沈阳seo整站优化