This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
您好!
我们尝试在 AM263PCC 评估板项目中、使用 MCAN (mcan_external_read_write_am263px-cc_r5fss0-0_freertos_ti-arm-clang)和 Enet (enet_cpsw_socket_am263px-cc_r5fss0-0_freertos_ti-arm-clang)实现某种 CAN 转以太网关功能。 我使用的是 CCS 版本12.8.1、安装的 SDK 为 am263px_10_00_00_35。 每个项目都可以按预期进行编译和运行。
我们现在使用了 Enet 示例项目作为网关项目的基础、并添加了我们认为添加 CAN 功能(例如 syscfg 中的 EDMA、MCAN、MCSPI 和 PMIC 驱动程序)所必需的东西、以及 mcan_transceivers.c 和 mcan_external_read_write.c 文件(第二个文件稍微适应我们的需求)。 工程在内核 r5fss0-0上运行。
我们知道、要使多路复用器进入正确的状态、需要一些 I2C 通信、甚至需要设置 PMIC 来激活 CAN 收发器的电源。
我们甚至尝试了在 Enet 示例中不可用但在 MCAN 示例中可以找到的存储器段。
此项目编译无问题。 在 CC 板上运行时、在激活 DPL-Init 函数中的中断后、我们收到异常中断。 查看 CPSR、SPSR_ABT 和 DFSR 中的信息、我们转到引发问题的后台访问。
您有什么建议吗? 我们可以根据需要轻松提供项目。
提前感谢!
您好、Wega、
感谢您对当前实施情况的详细说明。
您是否能够成功使用 MCAN 外部读取/写入示例?
此示例应考虑必要的电路板配置(PMIC/I2CMux)。
您能否提供发生中止异常的 DPL-Init 函数? 其他项目文件也将帮助我们继续调试该问题。
此致、
Zackary Fleenor
尊敬的 Zackary:
感谢您的答复。
我们对 MCAN 工程(syscfg 和 mcan_external_read_write.c 中 MCAN 的比特率配置)进行了一些修改、以将其作为传统 CAN 工程运行、因为我的测试设备不支持 CAN FD 帧格式。 MCAN 工程按预期运行。 我们尝试合并修改过的 CAN 项目和 ENET。
我和您分享修改后的 MCAN 项目和 CAN 以太网通信项目(HPSN_POC)。
此致、
就是这样
/cfs-file/__key/communityserver-discussions-components-files/908/HPSN_5F00_POC.zip
嘿、Wega、
很好理解、很高兴知道 MCAN 项目本身就在按预期工作。 这让我同意您关于存储器分配/访问的最初假设。
在没有深入了解您共享的这些项目文件的情况下、最高级别的系统配置是什么? 所有内容是在单个内核上运行、还是分布在 R5实例中?
此致、
Zackary Fleenor
尊敬的 Zackary:
工程在单核 r5fss0-0上运行。
您好!
我将与 Zackary 一起帮助调试这个项目。
请给我几天时间来设置和测试您的项目文件。 我会尽快让您知道任何问题/评论。
谢谢!
Susan
您好!
我正在寻找正确的硬件来运行您的示例。
同时、您能否检查合并项目的 MCAN 多路复用器是否正确配置为 MCAN (IO 扩展器的 FSI_MUX_SEL GPIO 配置为逻辑低电平输出)?
此外、对于合并项目、 在导入 MCAN 部分之前、您是否检查 enet_cpsw_socket_am263px 示例是否与您的设置一致?
此外、我知道您将使用 CCS 来构建和调试项目、对吗?
此致、
Susan
您好、Susan:
感谢您的反馈。 让我来回答您的问题:
1.我 无法在合并项目中检查 MCAN 多路复用器的正确配置。 我在运行代码时没有看到。 我卡在 System_init()中、可能是在 EDMA_init()中。
2.在添加 MCAN 功能之前、我能够运行 enet_cpsw_socket_am263px。 我就是这样开始的。 导入 Enet 项目、根据我的需要进行修改并运行该项目。 首先、我添加了 MCAN。
3.是的、我使用 CCS 进行构建和调试。
此致、
就是这样
您好!
我不知道这是否会立即解决您的问题、但您能否继续并确保将 UART0引脚设置为在 SysConfig 文件中使用 A7和 A6? 我注意到、将您的配置设置为任意模式、而不是设置为 UART0_RXD 和 UART0_TXD。 在上面的合并项目中。
我看到它们设置的方式:
应如何设置它们:
Zackary 和我今天正在查看您的内存配置、以了解我们是否可以为您解决该问题。 确认:您要使此项目在单个内核上保持运行、对吗?
谢谢!
Susan
您好、Susan:
您是对的、UART0引脚设置错误。 必须在故障排除过程中发生。 我现在已正确配置和测试了它们、但遗憾的是、这并没有解决问题。
您很高兴看到这个。 可以从单个内核开始。
我在 AM263x LP 上进行了相同的合并。 ENET 是相同的、只是 MCAN 的配置不那么复杂、因为您没有为 MCAN 收发器供电的 PMIC。 这意味着不需要 MCSPI 接口和 EDMA。 不过、它在 AM263x LP 上运行。
您好!
您是否能够提供适用于 AM263x LP 的版本的项目文件? 或至少是 SysConfig 文件(和版本)?
它可能会帮助我们弄清内存配置发生了哪些变化。
谢谢!
Susan
完全可以!
/cfs-file/__key/communityserver-discussions-components-files/908/AM263xLP.zip
它是使用 SDK 版本 mcu_plus_sdk_am263x_09_01_00_41生成的。
大家好、Susan 和 Zackary、
在 AM263Px CC 上运行 ENET-CAN 通信。初始化 PMIC 时发现信号量超时。 我从 PMIC_init ()开始逐步执行代码、一直到 MCSPI 读取/写入交互。 这最终会在 RTOS 中的某些函数中得到深入介绍。 似乎有人控制着与 PMIC 的通信。 可能是 ENET? 我有直觉、认为 PMIC、CAN、SPI 和 EDMA 的驱动程序功能应该在代码的后面部分执行。 因此、不是在 main 中初始化所有驱动程序
我更改为只在 main 中初始化 i2c 和 UART、这也是 ENET 所需的。
PMIC、CAN、SPI 和 EDMA 的其他驱动器功能移至 空洞 initCAN ( 空洞 *pvParameters)
不确定我的结论是否正确、但现在它有效。 如果您有更好的建议、请告诉我。
此致、
就是这样
您好!
仔细查看您的项目、我们基本上能够跟踪驾驶员打开的问题。 我仔细查看了您的 AM263-LP 版本、发现 AM263P-CC 版本缺少 mcan_external_read_write.c 文件。 您是否在其他地方配置 MCAN 读写?
谢谢!
Susan
MCAN 所需的所有功能都位于 cantasks.h 中。不需要 mcan_external_read_write.c。 因此、我从工程中删除了该文件。
您好!
抱歉、在我询问 mcan_external_read_write.c 文件之前、我未能看到您关于驱动程序的回复。 我们已将该问题追踪到 Drivers_pmicOPEN ()内 MCSPI 读/写信标的内存损坏。
我咨询了我们的软件团队、可以肯定的是、以错误的顺序打开驱动程序可能会导致此类中止问题。 我想看看他们是否有比你在这里有更好的解决方案。
此致、
Susan