神农鼎 发表于 2025-12-2 21:29:14

zguox 发表于 2025-12-2 21:27
是所有与CANFD 相关的 XFR 寄存器的读取都需要读取两次吗?还是个别相关的 XFR 寄存器需要读取两次? ...

个别

zguox 发表于 2025-12-4 11:36:21

上电所有IO高阻并禁止输入,然后直接进入STOP省电模式,电流8.7uA,打开RTC,增加3.5uA,共12.2uA,万用表还有内阻,估计还要大,还有哪些模块在耗电?用STC32G12K128开RTC,共3.5uA

zguox 发表于 2025-12-9 16:17:50

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

乘风飞扬 发表于 2025-12-9 17:04:31

zguox 发表于 2025-12-9 16:17
能把CAN_RBUF05的低4位定义为该条报文的过滤ID号(0~15)吗?寄存器的定义是芯片流片完就硬件固定了?还是 ...

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

zguox 发表于 2025-12-11 11:32:17

好像带Dir16的指令都编译通不过,怎么回事?

乘风飞扬 发表于 2025-12-11 16:38:32

zguox 发表于 2025-12-11 11:32
好像带Dir16的指令都编译通不过,怎么回事?
在 Dir16 地址前面加关键字 edata
MOV   R4, edata 0350H

21cnxin 发表于 2025-12-15 14:14:53

这个CANFD能搞个视频讲解一下吗?主要是滤波,屏蔽这2个方面的文档没看明白

乘风飞扬 发表于 2025-12-15 16:25:36

21cnxin 发表于 2025-12-15 14:14
这个CANFD能搞个视频讲解一下吗?主要是滤波,屏蔽这2个方面的文档没看明白 ...

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




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



然后通过CAN_ACFCTRL寄存器选择ACF,并设置AN_ACFx筛选器的ID MASK 和ID CODE,



例子设置代码:



当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进行比较,值相同的总线报文才会被接收:



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


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

苟有恒 发表于 2025-12-17 10:28:17

编译报错:canfd.c(295): error C67: 'NULL': undefined identifier,这是什么问题

神农鼎 发表于 2025-12-17 10:40:34


www.DOUBAO.com 翻译如下



估计是 头文件要更新...
页: 1 2 3 [4] 5
查看完整版本: CAN-FD,2组, 有 DMA支持;STC32G144K246 的 2组 独立 CAN-FD 功能测试通过