找回密码
 立即注册
楼主: 乘风飞扬

CAN-FD,2组, 有 DMA支持;STC32G144K246 的 2组 独立 CAN-FD 功能测试通过

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:265
  • 最近打卡:2025-12-15 13:45:56

812

主题

1万

回帖

2万

积分

管理员

积分
21247
发表于 2025-12-2 21:29:14 | 显示全部楼层
zgu*** 发表于 2025-12-2 21:27
是所有与CANFD 相关的 XFR 寄存器的读取都需要读取两次吗?还是个别相关的 XFR 寄存器需要读取两次? ...

个别
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-12-11 11:32:17
已绑定手机

0

主题

25

回帖

254

积分

中级会员

积分
254
发表于 2025-12-4 11:36:21 | 显示全部楼层
上电所有IO高阻并禁止输入,然后直接进入STOP省电模式,电流8.7uA,打开RTC,增加3.5uA,共12.2uA,万用表还有内阻,估计还要大,还有哪些模块在耗电?用STC32G12K128开RTC,共3.5uA
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-12-11 11:32:17
已绑定手机

0

主题

25

回帖

254

积分

中级会员

积分
254
发表于 7 天前 | 显示全部楼层
能把CAN_RBUF05的低4位定义为该条报文的过滤ID号(0~15)吗?寄存器的定义是芯片流片完就硬件固定了?还是芯片由系统程序再定义寄存器?如果能定义为过滤ID号,就不用16个ID再一 一比较才知道是哪路ID的报文,数据就方便按ID号分配存储空间。之前用过的CAN收发处理IC就有过滤ID号
截图202512091603187349.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:583
  • 最近打卡:2025-12-15 09:02:58
已绑定手机

49

主题

2363

回帖

8404

积分

论坛元老

积分
8404
发表于 7 天前 | 显示全部楼层
zgu*** 发表于 2025-12-9 16:17
能把CAN_RBUF05的低4位定义为该条报文的过滤ID号(0~15)吗?寄存器的定义是芯片流片完就硬件固定了?还是 ...

寄存器功能是芯片设计完就固定了
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-12-11 11:32:17
已绑定手机

0

主题

25

回帖

254

积分

中级会员

积分
254
发表于 5 天前 | 显示全部楼层
好像带Dir16的指令都编译通不过,怎么回事?
截图202512111131582346.jpg
截图202512111132064117.jpg
截图202512111132142927.jpg
截图202512111137329655.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:583
  • 最近打卡:2025-12-15 09:02:58
已绑定手机

49

主题

2363

回帖

8404

积分

论坛元老

积分
8404
发表于 5 天前 | 显示全部楼层
zgu*** 发表于 2025-12-11 11:32
好像带Dir16的指令都编译通不过,怎么回事?

在 Dir16 地址前面加关键字 edata
  1. MOV     R4, edata 0350H
复制代码

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-12-15 08:47:47

5

主题

24

回帖

947

积分

高级会员

积分
947
发表于 昨天 14:14 | 显示全部楼层
这个CANFD能搞个视频讲解一下吗?主要是滤波,屏蔽这2个方面的文档没看明白
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:583
  • 最近打卡:2025-12-15 09:02:58
已绑定手机

49

主题

2363

回帖

8404

积分

论坛元老

积分
8404
发表于 昨天 16:25 | 显示全部楼层
21cn*** 发表于 2025-12-15 14:14
这个CANFD能搞个视频讲解一下吗?主要是滤波,屏蔽这2个方面的文档没看明白 ...

规格书对CANFD的过滤/筛选功能有所介绍:

截图202512151553282848.jpg


应用流程介绍
首先使能需要开启的筛选器组,每个AE_n可以设置一组筛选规则:

截图202512151559127584.jpg

然后通过CAN_ACFCTRL寄存器选择ACF,并设置AN_ACFx筛选器的ID MASK 和ID CODE,
截图202512151601357639.jpg
截图202512151601589982.jpg

例子设置代码:
截图202512151603187549.jpg


当CAN控制器从CAN总线收到报文后,对已使能的筛选器组进行对比,符合筛选规则的报文被接收,不符合筛选规则的报文被丢弃。
ID Mask等于1的位不需要进行对比,ID Mask等于0的位需要跟ID Code进行对比,值相同才符合筛选规则。
例如,当ID Mask的bit28~bit3都设置为1,bit2/bit1/bit0设置为0/0/0,那么总线报文ID的bit2~bit0就得跟ID Code内容的bit2~bit0进行比较,值相同的总线报文才会被接收:

截图202512151604337611.jpg

例子筛选器应用介绍
在 canfd.h 头文件里面设置需要使能的筛选器组,然后设置每组筛选器组的ID Code(29位)、ID Mask(29位)跟ID类型(标准帧、扩展帧、标准帧+扩展帧):
截图202512151607488323.jpg

在 canfd.c 文件"astcAFCfg"数组里面开启需要使能的筛选器组设置:
截图202512151623062154.jpg
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-12-16 06:50 , Processed in 0.113476 second(s), 79 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表