Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
CANFD_fdcan
英飞凌Infineon
英飞凌XMC7200
Infineon XMC7200测评CAN实践
发布于 2024-08-25 13:21:50 浏览:385
订阅该版
[tocm] # 00前言 非常非常开心能够入选本次测评活动,感谢RT-Thread和Infineon!!!以前仅接触过英飞凌家TC264核心板。所以也算是第一次接触完整评估板和官方开发环境,遇到了一些困难也收获了不少,同时也深刻意识到自身的不足,离专业的开发人员还有太大太大的差距。希望以后可以不断完善不断进步。 # 01板卡介绍 XMC7200系列属于XMC7000家族的32位工业微控制器,基于多达两个arm Cortex-M7处理器内核。XMC7200系列微控制器充分利用英飞凌数十年的微控制器设计经验,提供了一种优化的解决方案,以满足当今嵌入式控制应用的性能挑战。该系列结合了ARM Cortex-M7内核的扩展功能和性能,以及强大的片上外围子系统和片上存储单元。 ![bb7ada3adfba502853d015253d283f15.png.webp](https://oss-club.rt-thread.org/uploads/20240825/b416dad49d44d5e3ee077fdcac0f0171.webp) 自带CAN FD(J19)接口,在继承传统CAN接口同时更加高速、高带宽、高检错。在高速发展的汽车、航天、工业自动化拥有更为广阔的应用前景。 ![XMC7200-Diagram.png_48553908.png](https://oss-club.rt-thread.org/uploads/20240825/20a69ea61bc60acda39355be45bf758a.png.webp) ![aff8ae633fa0cdbcf9df510b44d1a30.jpg](https://oss-club.rt-thread.org/uploads/20240825/ca6a6c9153a0f9b930d523e52ec0f49c.jpg.webp) 本文围绕CAN接口通讯进行实践。(由于作者水平有限,仅在官方例程基础上进行测试。Loopback回环测试和多设备高速通讯收发测试还望各位大佬补充完善) # 02开发工具安装 英飞凌官方IDE——ModusToolbox 英飞凌烧录工具——Cypress programmer Git代理工具——ModusToolbox_URL_Modifier 官方IDE和烧录软件安装和移植RT-Thread 在复制英飞凌其他板卡基础上进行RAM修改,编译和配置文件修改如下,对照RT-Thread现有官方文档中已经移植完成的其他型号对工程补齐,完成移植。 ```c import('RTT_ROOT') import('rtconfig') from building import * cwd = GetCurrentDir() src = [] group = [] CPPPATH = [] if rtconfig.PLATFORM in ['iccarm']: print("\nThe current project does not support IAR bulid\n") Return('group') elif rtconfig.PLATFORM in ['gcc','armclang']: src += Glob(cwd + '/TARGET_APP_KIT_XMC72_EVK/*.c') src += Glob(cwd + '/TARGET_APP_KIT_XMC72_EVK/config/GeneratedSource/*.c') CPPPATH = [cwd + '/TARGET_APP_KIT_XMC72_EVK', cwd + '/TARGET_APP_KIT_XMC72_EVK/config/GeneratedSource'] if rtconfig.PLATFORM in ['gcc']: src += [cwd + '/TARGET_APP_KIT_XMC72_EVK/COMPONENT_CM7/system_cm7.c'] src += [cwd + '/TARGET_APP_KIT_XMC72_EVK/COMPONENT_CM7/startup_cm7.c'] elif rtconfig.PLATFORM in ['armclang']: src += [cwd + '/TARGET_APP_KIT_XMC72_EVK/COMPONENT_CM7/system_cm7.c'] src += [cwd + '/TARGET_APP_KIT_XMC72_EVK/COMPONENT_CM7/startup_cm7.c'] group = DefineGroup('libs', src, depend=[''], CPPPATH = CPPPATH) Return('group') ``` ![fb56afe5667c2aa66101a6695a56f99.png](https://oss-club.rt-thread.org/uploads/20240913/73406c7ac4fbbb6f9de371395de6ebbb.png.webp) 详细可参考:https://club.rt-thread.org/ask/article/4e5abc98191c3747.html ![5388357df609d4f82cc4eea3336184d.png](https://oss-club.rt-thread.org/uploads/20240825/d25fcc59e2fe459163b348325dc822c4.png) 因为ModusToolbox创建工程需要拉取github相关内容,和总所周知的原因,国内大概率会拉取失败无法创建示例工程。所以推荐使用ModusToolbox_URL_Modifier通过第三方中继器绕过git。以下为详细步骤: https://github.com/dreamscaperia/ModusToolbox_URL_Modifier 拉取上述压缩包后解压并以管理员身份运行install.cmd,等待运行完成后即可通过代理服务器访问github。 ![1724562286538.png](https://oss-club.rt-thread.org/uploads/20240825/a1c6039d743cf4ae731beaf5a42ebbaa.png) ![1724562375530.png](https://oss-club.rt-thread.org/uploads/20240825/320ffc0193e9f06b138553b3a7b121ce.png) ![9566b9ade661c2f3e33aefde34eb90e.png](https://oss-club.rt-thread.org/uploads/20240825/831d95896aabf1edf4205d3362c26bba.png) 方便IDE建立工程。如果无法拉取压缩包可以私信我免费获取。 # 03创建工程 使用ModusToolbox IDE选择对应型号生成示例文件 ![1724563211064.png](https://oss-club.rt-thread.org/uploads/20240825/2da20a9bbf8891f1d326f3d59d61d8aa.png.webp) ![f0cd9b7b422652c851c07b947137198.png](https://oss-club.rt-thread.org/uploads/20240825/580f355681007084a8820e32f7656cca.png.webp) # 04 RT-Thread Studio完成CAN_FD实践 主函数初始化CANFD通道和中断。用户按钮和用户LED也被初始化。主循环检查按钮按下的中断标志,当它被设置时,发送一个CANFD帧。每当从其他节点接收到CANFD帧时,用户LED切换并通过串行终端记录接收到的数据。 初始化代码: ```c /* canfd interrupt handler */ void isr_canfd (void); /* canfd frame receive callback */ void canfd_rx_callback(bool rxFIFOMsg, uint8_t msgBufOrRxFIFONum, cy_stc_canfd_rx_buffer_t* basemsg); /* button press interrupt handler */ void isr_button (void); ``` 按键检测发送CAN帧代码: ```c if (ButtonIntrFlag == true) { ButtonIntrFlag = false; /* Sending CANFD frame to other node */ status = Cy_CANFD_UpdateAndTransmitMsgBuffer(CANFD_HW, CAN_HW_CHANNEL, &CANFD_txBuffer_0, CAN_BUFFER_INDEX, &canfd_context); #if USE_CAN_MODE == CAN_CLASSIC_MODE printf("CAN standard frame sent from Node-%d\r\n\r\n", USE_CAN_NODE); #elif USE_CAN_MODE == CAN_FD_MODE printf("CANFD frame sent from Node-%d\r\n\r\n", USE_CAN_NODE); #endif printf("=====================OK!!!===========================\r\n\n"); printf("================Successful reception=================\r\n\n"); } ``` 使用RT-Thread Studio编译后运行 ![192ab31366e435f86a39a9ff97491b4.png](https://oss-club.rt-thread.org/uploads/20240913/d372a87874330b150e749f3562d10845.png.webp) # 05程序现象 启动终端,设置模式和波特率。(ctrl+alt+T) ![76692597b9a04ac738662716dd3306f.png](https://oss-club.rt-thread.org/uploads/20240825/044c031f47ca943b06e37d8f674d2fe4.png) ![0d8eba23201489d3a6825d2d620f133.png](https://oss-club.rt-thread.org/uploads/20240825/52488ac431606017e214323fa7c2d1bd.png) 按下用户按钮(SW2)后观察终端窗口结果。观察到“CANFD frame sent from Node-1”说明板卡成功发送一个CANFD帧。 ![832a4f367988903b77999a86f462f65.png](https://oss-club.rt-thread.org/uploads/20240825/84a5d3c9eeaa2389b3b1f7662cc2dfbb.png) # 06总结 由于能力有限,希望各位大佬批评指正。有关CAN_FD更多实践运用还望各位大佬补充。 再次感谢RT-Thread和Infineon,非常幸运能入选本次测评活动。
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
bushiwonie
这家伙很懒,什么也没写!
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
ARTPi 的FDCAN使用官方工程如何发送数据?
2
STM32H750 FDCAN通信异常
3
ART-PI 的FDCAN功能使用
4
ART-PI FDCAN使用卡在rt_completion_wait处
5
ART PI FDCAN 死在rt_device_write
6
Art Pi FDCAN 到底能不能用呀?
7
CAN.c 与drv_fdcan.c兼容么?
8
出现这样的异常如何解决
9
能否有偿指导一下art-pi的hdcan使用
10
FDCAN报错 FDCAN报错
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
8
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
3
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部