CAN-FD,2组, 有 DMA支持;STC32G144K246 的 2组 独立 CAN-FD 功能测试通过
CAN-FD,2组 独立 CAN-FD,STC的CAN-FD 有 DMA支持:STC32G144K246的 2组 独立 CAN-FD 功能测试通过,
附件是STC32G144K246的CAN-FD功能测试例子。
每组独立的 CAN-FD模块 有 16组 ID过滤器,
每组独立的 CAN-FD模块,
可以设置 16个 允许接收的 CAN ID 的数据 !
可以任意 配置成 CAN-FD 的管脚:
STC32G144K246 用户手册:
https://www.stcaimcu.com/data/do ... t/STC32G144K246.pdf
CAN-FD模块增加DMA传输功能。
DMA_CAN1T_CFG.5(Tx_adr_align)=0 时,缓冲区内每帧数据顺序排列;
DMA_CAN1T_CFG.5(Tx_adr_align)=1 时,缓冲区内每帧数据按照 DMA_CAN1T_FRM 指定长度排列,
例如:DMA_CAN1T_FRM=32,那么第一帧数据存放在缓冲区BYTE~BYTE,第二帧数据存放在缓冲区BYTE~BYTE...
DMA_CAN1T_CFG.4(tx_bmm_bw)=0 时,数据宽度8位,DMA传输总数(AMT)按照8位计算,缓冲区内每帧数据顺序排列;
DMA_CAN1T_CFG.4(tx_bmm_bw)=1 时,数据宽度32位,DMA传输总数(AMT)按照32位计算,缓冲区内每帧数据起始地址需要32位对齐,
例如:DMA传输4帧数据,每帧数据长度分别是 16 字节、15字节、14字节、13字节,
数据宽度8位时,(16+15+14+13)-1=57,DMA_CAN1T_AMT = 57;
数据宽度32位时,每帧数据长度占用4个WORD,(4+4+4+4)-1=15,DMA_CAN1T_AMT = 15;
每组独立的 CAN-FD模块 有 16组 ID过滤器,
每组独立的 CAN-FD模块,可以设置 16个 允许接收的 CAN ID 的数据 !
STC32G144K246 的
2组 独立 CAN-FD 的说明还没跟上,
大家先参照顶楼附件测试通过的程序
+
Lin 收发器, CAN-FD 收发器,要外接
请问:每组独立的 CAN-FD模块 有 16组 ID过滤器,
每组独立的 CAN-FD模块,
可以设置 16个 允许接收的 CAN ID 的数据 !,两组就能设置32个 允许接收的 CAN ID 的数据吗? 是 LQFP64的41脚Vcc和19脚Vcc内部是导通的吗?41脚Vcc只外加1个104就可以吗?8脚Core_Vcc也只外加一个104就可以了吗?电容加大有好处吗?为什么ADC_Gnd/ADC_AVRef-不引出到Gnd的相邻脚22脚,不要占用ADC3? zguox 发表于 2025-10-13 15:23
LQFP64的41脚Vcc和19脚Vcc内部是导通的吗?41脚Vcc只外加1个104就可以吗?8脚Core_Vcc也只外加一个104就可 ...
VCC是导通的,都需要接电源,不能只接电容。
Core_Vcc在功耗小的情况下可以只接104电容,功耗大的情况下需要外接1.5V电压。
至于ADC_Gnd/ADC_AVRef-位置,不管放在哪个引脚都会占用这个引脚的功能。 不同格式、不同发送周期的多个ID,先将ID数据和周期写入存储器,可以通过DMA自动计算不同周期循环发送写入存储器的多个ID报文吗? 不同格式、不同发送周期的多个ID,先将ID数据和周期写入存储器,可以通过DMA自动计算不同周期循环发送写入存储器的多个ID报文吗? zguox 发表于 2025-10-16 14:06
不同格式、不同发送周期的多个ID,先将ID数据和周期写入存储器,可以通过DMA自动计算不同周期循环发送写入存 ...
CAN-FD的DMA支持在缓冲区里存放多个不同ID,不同长度的CAN数据,并可以设置DMA传输的间隔时间。 请问,设置过滤16个ID,能快速知道当前收到的ID是通过1~16路的哪一路过滤的吗?读哪个寄存器?不用和16个ID一个一个的比较吧?
页:
[1]
2