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.

[参考译文] CCS/LAUNCXL-F2.8069万M:汽车器件实验室中的eCAN问题,即CCE位Canes寄存器未关闭

Guru**** 2574255 points
Other Parts Discussed in Thread: CONTROLSUITE, MOTORWARE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/641932/ccs-launchxl-f28069m-ecan-issue-in-motorware-lab-i-e-cce-bit-of-canes-register-is-not-turning-off

部件号:LAUNCHTXL-F2.8069万M
主题中讨论的其他部件:MOTORWAREcontrolSUITE

工具/软件:Code Composer Studio

您好,

我正在汽车器具实验室中实施eCAN传输程序3a。  

此参考来自controlSUITE和 spruh18g 第6节- 增强捕获(eCAP)模块中的"eCAan_back2back"程序。
使用来自controlSUITE的个人编辑"eCAN_back2back"程序验证CAN传输。

我将相同 的函数从先前编辑 的"eCAN_back2back"程序复制到 Motorware Lab3a中,并且使用的头文件是"Can.h",位于"C:\ti\motorware\motorware_1_01_00_18\SW\DRIVERS\CAN\src\32b\F28x\f2806x"。  验证can.h文件中结构的关系和主文件中结构调用的关系。

这是我在hal. c文件中所做的唯一更改,它与eCAan_Back2back程序类似:

//启用CAN GPIO  
GPIO_setPullup(obj->gpioHandle,gPIO_NUMBER_30,gPIO_Pullup_Enable);
GPIO_setPullup(obj->gpioHandle,gPIO_NUMBER_31,gPIO_Pullup_Enable);
gPIO_setQualification (obj->gpioHandle,gPIO_NUMBER_30,gPIO_Qual_Async);
GPIO_setMode(obj->gpioHandle,gPIO_NUMBER_30,gPIO_30_Mode_CANRXA);
GPIO_setMode(obj->gpioHandle,gPIO_NUMBER_31,gPIO_31_Mode_CANTXA);

正在使用的主要文件上载如下:

e2e.ti.com/.../can.h

e2e.ti.com/.../proj_5F00_lab03a.c

现在,当我运行Lab3a时,CAN传输不起作用,当在调试模式下观察到时,程序在以下循环中得到stucks:

//等待,直到CPU不再具有更改配置寄存器的权限


ECanaShadow.canes.all = ECanaRegs.canes.all;
} While (ECanaShadow.canes.bit.CCE !=0);//等待CCE位被清除。

 根据spruh18g 节16.10 的注释,所有 CANBTC 寄存器都使用非零值进行编程。

此外 ,还会检查Section 16.11 步骤以配置eCAN,但如果您在 提供的文件中查看这些步骤 ,则会更好。  

另外,我尝试在 程序中添加步骤6,该程序不是在“eCAN-back2back”程序中。 但这并没有什么不同。

请帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否确认您在线路661之前所做的配置是否反映在eCAN寄存器中(从寄存器视图中检查)?

    此致
    Baskaran
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复,

    我检查了注册视图。 他们的eCAN canes注册没有更新。 即使从启动CANTIOC和CANRIOC开始也没有更新。
    o ADC和PWM寄存器正在同一程序的“寄存器”窗口中更新。

    以前的"eCAan_back2back"程序也以相同的方式进行了测试。 所有注册表都将以正确的方式进行更新。

    为什么会发生这种情况? 还有什么解决方案?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果没有寄存器被写入,则可能是在PCLKCRn寄存器中没有启用eCAN模块的时钟。 同时检查EALLOW是否激活/有效。 最后,确保您的W/R操作仅在32位中完成。 您可能还需要运行SPRA876B中的一些测试用例,以查看寄存器的配置方式。