硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1838|回复: 18
收起左侧

[CAN助手] 【原创】H7-TOOL的CANFD Trace操作说明,不需要目标板额外做任何代码, 支持在线和脱机玩法(2023-05-15)

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-4-28 03:38:27 | 显示全部楼层 |阅读模式
【当前支持功能】
1、LUA小程序控制,使用灵活。
2、采用SWD接口直接访问目标板芯片的CANFD外设寄存器和CANFD RAM区实现,支持USB,以太网和WiFi方式以及内网和外网访问。
3、可以解析CANFD工作模式,波特率,采样点和是时钟误差率。
4、可以解析所有标准ID过滤器配置和所有扩展ID过滤器配置。
5、可以解析CANFD接收的Rx Buffer,Rx FIFO0和Rx FIFO1数据。
6、通过监测Tx Event FIFO解析Tx Buffer, TxFIFO/Queue的发送事件序列。
7、监测ECR错误计数器和PSR协议状态寄存器。
8、CANFD兼容经典CAN,CANFD用于经典CAN模式也是可以正常解析的。
9、CANFD基本都是采用博世的IP核,所以大家可以方便的修正移植到其他厂家的CANFD芯片监测。当前已经对STM32H7系列的CANFD1和CANFD2都进行了支持,后续会添加更多带CANFD芯片支持。当然,大家也可以自己修改添加。

【视频教程】

视频提纲:https://www.armbbs.cn/forum.php?mod=viewthread&tid=119189
B站视频:https://www.bilibili.com/video/BV1iX4y117Bv



【操作说明】

1、下载解压此文件夹

Device.7z (7.08KB)


存到上位机此路径下:

下载.png

点击这里更新LUA文件到TOOL的eMMC磁盘里面

下载 (1).png

更新完毕后,TOOL会自动重启,然后点击这里选择PC端的APP.LUA文件

下载 (2).png

下载更新后效果:

下载 (3).png

2、操作效果:

(1)首次使用点击CANFD1初始化执行按钮或者CANFD2初始化执行按钮,我们这里点击CANFD1初始化执行按钮

下载 (4).png

(2)点击工作模式按钮,解析如下:

下载 (5).png

(3)波特率解析:

下载 (6).png

(4)扩展ID过滤器和标准ID过滤器解析

下载 (7).png

(5)接收消息Rx FIFO0 ,Rx FIFO 1和Rx Buffer解析

大家的应用程序里面,如果还没有读取FIFO或者Buffer,使用H7-TOOL就可以解析出来。

下载 (8).png

(6)发送解析,Tx Event里面可以记录Tx Buffer/TxFIFO的发送事件。

程序里面使能Tx Event FIFO记录事件即可

下载 (9).png

(7)错误状态:

下载 (10).png




评分

参与人数 3金币 +40 收起 理由
missfox + 20 很给力!
Vxworks + 10 很给力!
yaq + 10 很给力!

查看全部评分

回复

使用道具 举报

0

主题

67

回帖

67

积分

初级会员

积分
67
发表于 2023-4-28 10:58:39 | 显示全部楼层
时钟误差率怎么做的,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2023-4-28 12:06:39 | 显示全部楼层
Vxworks 发表于 2023-4-28 10:58
时钟误差率怎么做的,

此贴二楼,我做了一个Lua的实现。

H7-TOOL的SWD接口监测CAN/CANFD状态实现可视化初步效果,新增时钟容错率计算
https://www.armbbs.cn/forum.php? ... 8434&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

23

主题

1403

回帖

1472

积分

至尊会员

积分
1472
发表于 2023-4-29 11:22:31 | 显示全部楼层

假期好好休息下
代码不规范,亲人两行泪!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2023-5-4 01:25:30 | 显示全部楼层
将各个功能单独封装,方便调用。

CANFD_VarInit(FDCAN1_BASE)
CANFD_Mode()
CANFD_Bitrate()
CANFD_Filter()
CANFD_Receive()
CANFD_Transmit()
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2023-5-4 12:15:33 | 显示全部楼层
eric2013 发表于 2023-5-4 01:25
将各个功能单独封装,方便调用。

CANFD_VarInit(FDCAN1_BASE)

CANFD1和CANFD2都可以正常检索吧
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2023-5-4 12:31:38 | 显示全部楼层
byccc 发表于 2023-5-4 12:15
CANFD1和CANFD2都可以正常检索吧

支持,通过函数CANFD_VarInit(FDCAN1_BASE)可以设置对应外设地址
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2023-5-4 18:00:46 | 显示全部楼层
eric2013 发表于 2023-5-4 12:31
支持,通过函数CANFD_VarInit(FDCAN1_BASE)可以设置对应外设地址

Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2023-5-12 02:39:36 | 显示全部楼层
整理帖子中,这两天准备发布,还有一期视频展示说明
回复

使用道具 举报

0

主题

67

回帖

67

积分

初级会员

积分
67
发表于 2023-5-12 09:17:30 | 显示全部楼层
eric2013 发表于 2023-5-12 02:39
整理帖子中,这两天准备发布,还有一期视频展示说明

辛苦,终于要发了
回复

使用道具 举报

8

主题

128

回帖

152

积分

初级会员

积分
152
发表于 2023-5-12 09:52:55 | 显示全部楼层
IAR等IDE, 调试查看寄存器, 使用的是一个器件描述文件的东西, 好像是DDF文件, 实现MCU内任意寄存器的查看. 这个调试是否是要做类似于IDE的这种寄存器查看功能?
如果是这样, 为啥不参考IDE的实现方式呀, 这样可以用现成的DDF文件, 一下子就和IDE一样, 支持很多器件的寄存器查看了.
那些开源的IDE环境, 应该也是有这个功能吧. 我对这个没怎么关注, 感觉硬汉为这个功能忙了好久的样子.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2023-5-12 09:56:32 | 显示全部楼层
amfy 发表于 2023-5-12 09:52
IAR等IDE, 调试查看寄存器, 使用的是一个器件描述文件的东西, 好像是DDF文件, 实现MCU内任意寄存器的查看.  ...

寄存器导出很简单,每个厂家都有提供CMSIS-SVD文件,有所有外设寄存器地址列表,难点不在这里,手动添加这些地址即可,就这些:

难点是CANFD运行机制的处理。

[Lua] 纯文本查看 复制代码
-- 初始化变量
function CANFD_VarInit(FDCAN_BASE)
        FDCAN1_CREL = FDCAN_BASE + 0x000
        FDCAN1_ENDN = FDCAN_BASE + 0x004         
        FDCAN1_RESERVED1 = FDCAN_BASE + 0x008
        FDCAN1_DBTP = FDCAN_BASE + 0x00C
        FDCAN1_TEST = FDCAN_BASE + 0x010
        FDCAN1_RWD = FDCAN_BASE + 0x014
        FDCAN1_CCCR = FDCAN_BASE + 0x018
        FDCAN1_NBTP = FDCAN_BASE + 0x01C
        FDCAN1_TSCC = FDCAN_BASE + 0x020
        FDCAN1_TSCV = FDCAN_BASE + 0x024
        FDCAN1_TOCC = FDCAN_BASE + 0x028
        FDCAN1_TOCV = FDCAN_BASE + 0x02C
        FDCAN1_RESERVED2 = FDCAN_BASE + 0x030
        FDCAN1_ECR = FDCAN_BASE + 0x040
        FDCAN1_PSR = FDCAN_BASE + 0x044
        FDCAN1_TDCR = FDCAN_BASE + 0x048
        FDCAN1_RESERVED3 = FDCAN_BASE + 0x04C
        FDCAN1_IR = FDCAN_BASE + 0x050
        FDCAN1_IE = FDCAN_BASE + 0x054
        FDCAN1_ILS = FDCAN_BASE + 0x058
        FDCAN1_ILE = FDCAN_BASE + 0x05C
        FDCAN1_RESERVED48 = FDCAN_BASE + 0x060
        FDCAN1_GFC = FDCAN_BASE + 0x080
        FDCAN1_SIDFC = FDCAN_BASE + 0x084
        FDCAN1_XIDFC = FDCAN_BASE + 0x088
        FDCAN1_RESERVED5 = FDCAN_BASE + 0x08C
        FDCAN1_XIDAM = FDCAN_BASE + 0x090
        FDCAN1_HPMS = FDCAN_BASE + 0x094
        FDCAN1_NDAT1 = FDCAN_BASE + 0x098
        FDCAN1_NDAT2 = FDCAN_BASE + 0x09C
        FDCAN1_RXF0C = FDCAN_BASE + 0x0A0
        FDCAN1_RXF0S = FDCAN_BASE + 0x0A4
        FDCAN1_RXF0A = FDCAN_BASE + 0x0A8
        FDCAN1_RXBC = FDCAN_BASE + 0x0AC
        FDCAN1_RXF1C = FDCAN_BASE + 0x0B0
        FDCAN1_RXF1S = FDCAN_BASE + 0x0B4
        FDCAN1_RXF1A = FDCAN_BASE + 0x0B8
        FDCAN1_RXESC = FDCAN_BASE + 0x0BC
        FDCAN1_TXBC = FDCAN_BASE + 0x0C0
        FDCAN1_TXFQS = FDCAN_BASE + 0x0C4
        FDCAN1_TXESC = FDCAN_BASE + 0x0C8
        FDCAN1_TXBRP = FDCAN_BASE + 0x0CC
        FDCAN1_TXBAR = FDCAN_BASE + 0x0D0
        FDCAN1_TXBCR = FDCAN_BASE + 0x0D4
        FDCAN1_TXBTO = FDCAN_BASE + 0x0D8
        FDCAN1_TXBCF = FDCAN_BASE + 0x0DC
        FDCAN1_TXBTIE = FDCAN_BASE + 0x0E0
        FDCAN1_TXBCIE = FDCAN_BASE + 0x0E4
        FDCAN1_RESERVED62 = FDCAN_BASE + 0x0E8
        FDCAN1_TXEFC = FDCAN_BASE + 0x0F0
        FDCAN1_TXEFS = FDCAN_BASE + 0x0F4
        FDCAN1_TXEFA = FDCAN_BASE + 0x0F8
        FDCAN1_RESERVED7 = FDCAN_BASE + 0x0FC
end






回复

使用道具 举报

8

主题

128

回帖

152

积分

初级会员

积分
152
发表于 2023-5-12 11:08:44 | 显示全部楼层
相当于是做了一个SWD接口的CAN调试器吗, CAN调试器这块, 确实是个大工程, 后面还要J1939和DBC字典
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2023-5-12 11:10:42 | 显示全部楼层
amfy 发表于 2023-5-12 11:08
相当于是做了一个SWD接口的CAN调试器吗, CAN调试器这块, 确实是个大工程, 后面还要J1939和DBC字典

主要是解析运行过程,了解CANFD执行情况。IDE带的只有寄存器展示,不直观。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2023-5-13 01:58:21 | 显示全部楼层

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2023-5-15 00:21:23 | 显示全部楼层
正式发布。
回复

使用道具 举报

23

主题

1403

回帖

1472

积分

至尊会员

积分
1472
发表于 2023-5-15 15:15:31 | 显示全部楼层
666, 终于发布了
代码不规范,亲人两行泪!
回复

使用道具 举报

0

主题

67

回帖

67

积分

初级会员

积分
67
发表于 2023-5-16 12:17:08 | 显示全部楼层
实测可用,感谢分享。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2023-7-12 00:14:40 | 显示全部楼层
新的2.22版本开始,eMMC磁盘将开始自带。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 00:43 , Processed in 0.229311 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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