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.

[参考译文] C28xx_CPU1:错误:(错误-1135 @ 0x8B25)

Guru**** 2034770 points
Other Parts Discussed in Thread: TMS320F28379D, DRV8305, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1392930/c28xx_cpu1-error-error--1135-0x8b25

器件型号:TMS320F28379D
主题中讨论的其他器件: DRV8305C2000WARE

工具与软件:

您好!

我正在使用 TMS320F28379D 和 DRV8305。 我使用 EPWM4、EPWM5和 EPWM6 (即 GPIO6&7、GPIO8&9、GPIO10&11)在开环中驱动三相 BLDC 电机。 但是、每当我加载并恢复程序时、都会收到以下错误消息。

C28xx_CPU1:错误:(错误-1135 @ 0x8B25)调试探针报告了错误。 确认调试探针配置和连接、重置调试探针、然后重试此操作。 (仿真包12.7.0.00130)

每当我注释掉 EPWM6的 ePWM_setTimeBasePeriod、我将从 EPWM4和 EPWM5的控制器中获取调制信号、EPWM6是恒定的高电平信号。

这可能是什么原因造成的?

Fullscreen
1
2
3
EPWM_setTimeBasePeriod(EPWM4_BASE, 2500);
EPWM_setTimeBasePeriod(EPWM5_BASE, 2500);
// EPWM_setTimeBasePeriod(EPWM6_BASE, 2500);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我已经测试了 JTAG 连接并且通过了测试、GPIO 切换等基本程序以及其他操作都可以正常运行。

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

    我已经完成了一些其他帖子,但无法解决问题,测试连接的屏幕截图:


    我也在尝试再次连接、在遇到错误后能够通过控制台中进行连接、我只得到了  
    C28xx_CPU1:GEL 输出:
    存储器映射初始化完成

    我尝试了加载程序、不过.out 文件、但在加载并再次按下"Resume"后、我再次遇到相同的错误:

    我尝试过闪烁程序、它运行正常。

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

    你(们)好

    您是否能够在失去连接时尝试仔细检查 JTAG 信号?  

    您看到的行为通常表明电机或电源造成的 EMI 过多、使得 JTAG 无法使用。 修复方法是减少 EMI 或重新路由 JTAG 信号。

    此致、

    Ben Collier

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

    您好、

    PFB JTAG 信号、TDO 和 TRST。

    加载程序后、我们将持续看到以下情况:

    绿色:TRST、黄色:TDO

    按下"恢复"后、我们看到两个通道上都有高电平信号。

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

    您好!

    您的示波器是否受带宽限制? TCK 和 TMS 是什么样子的?  

    如果您在恢复时执行单次捕获、您在 TCK 或 TDI 上没有看到任何脉冲?  

    此致、

    Ben Collier

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

    尊敬的 Benjamin:

    我们的示波器存在一些限制、因此我们仅探测 TRST 和 TDO、将探测所有四个 JTAG 信号并进行 POST。  

    同时、您能否澄清一些问题:

    1. 尽管我们遇到了 JTAG SI 问题、如果我将程序直接加载到闪存中、我可以预计我的程序正常运行吗?
    2. 我们曾尝试刷写程序、但收到错误:.cinit 的大小对于该闪存来说太大、它是 FLASHB。 所以、我们在连接器文件中进行了修改、并使其实现了 FLASHD 和编译的代码。 但是、我们无法在 GPIO 引脚上看到输出。 仅供参考、当我们在 RAM 中加载程序时、程序会正常工作、我们可以看到输出、因此代码会正常工作(不过、如前所述、仅当 GPIO115引脚为低电平时)。 在闪存中刷写程序时、我们还观察到电流消耗从0.18A 跃升至0.7A。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    [报价 userid="513473" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1392930/c28xx_cpu1-error-error--1135-0x8b25/5337496 #5337496"]
    • 尽管我们遇到了 JTAG SI 问题、如果我将程序直接加载到闪存中、我可以预计我的程序正常运行吗?
    [报价]

    这将取决于噪声的糟糕程度。

    我们尝试刷写程序、但是我们收到一个错误、.cinit 的大小对于该闪存来说太大、这是 FLASHB。 所以、我们在连接器文件中进行了修改、并使其实现了 FLASHD 和编译的代码。 但是、我们无法在 GPIO 引脚上看到输出。 仅供参考、当我们在 RAM 中加载程序时、程序会正常工作、我们可以看到输出、因此代码会正常工作(不过、如前所述、仅当 GPIO115引脚为低电平时)。 在闪存中刷写程序时,我们还观察到电流消耗从0.18A 跃升到0.7A。[/报价]

    您将需要根据程序在闪存中的位置更改您的 codestart。  

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

    您好!

    1.我很难确定您的链接器 CMD 文件是否能正常工作,我看不到任何明显的问题。

    2.我不知道为什么在下电上电后 GPIO 不能按预期工作、即使 PWM 信号是这样。  

    请尝试在尝试刷写新代码时将器件置于等待引导模式。 当程序运行时、您可能会遇到闪烁问题、因为它会产生大量噪音。  

    谢谢!

    Ben Collier

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

    您好、 

    1.我认为链接器 CMD 文件工作正常、因为下电上电后可以看到 ePWM 和 GPIO 的预期输出。

    2.  

    [报价 userid="531788" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1392930/c28xx_cpu1-error-error--1135-0x8b25/5348054 #5348054"]我不确定为什么下电上电后您的 GPIO 不能按预期工作(即使 PWM 信号正常)。  [报价]

    此处的校正是在下电上电后、我的 PWM 信号和 GPIO 正常工作。 在我之前的回复中、看到最后一个图形、它一直保持高电平、之前我无法将其设置为高电平。

    3. 现在的问题是、DRV8305没有输出、由于 JTAG 无法正常工作、如何读取故障  从 DRV8305到 SPI 寄存器数据、因为这将告诉我为什么 DRV8305没有输出、对吗?

    4.我会尝试将器件置于等待模式、然后刷写、并更新结果。

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

    尊敬的 Gautham:

    您使用 DCSM 是否正确? 等待引导模式解决方案仅在使用安全性时适用。

    谢谢!

    Luke

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

    尊敬的 Luke:

    1.  

    "您使用 DCSM 是否正确?  "

    如何验证?

    2.我已经验证过、 刚好在我对控制器输出进行编程后不符合预期、但是在下电上电后、控制器的输出符合预期、我可以看到启用 DRV8305的 EN_GATE 的 PWM 信号和 GPIO 引脚也如预期为高电平。 但是、DRV8305没有输出。 由于我无法使用 JTAG 进行连接、如何通过 SPI 读取 DRV8305的故障寄存器、从而知道为什么不从 DRV8305获取输出。 感谢任何帮助。

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

    尊敬的 Gautham:

    我的错、这个问题与 DCSM 无关。

    要澄清、现在的问题是您需要读取从 DRV8305发送到 C2000器件的 SPI 寄存器中的值、对吗? 您能否探测 SPI 引脚以检查正在发送的消息?

    谢谢!

    Luke

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

    尊敬的 Luke:

    从我之前的帖子中可以看到、当我们在 CPU RAM 中转储程序时、我们面临 JTAG 问题。因此、为了规避此问题、我已开始将程序直接刷写到闪存中。

    现在、程序在控制器中运行后、我们无法访问 JTAG、这可能是由于噪声问题(Benjamin 在之前的文章中突出显示)、因此无法查看控制器正在读取的内容。

    您能否建议使用另一种通过 SPI 读取寄存器的方法?  我目前正在尝试读取 SPI 寄存器、然后通过切换 GPIO 引脚来发送这些寄存器的值。 FIR 示例、我正在读取 DRV8305中0x01处的寄存器、然后、控制器读取的16位值、通过切换引脚来确定发生了哪种类型的故障、持续将其发送到一个 GPIO 引脚。 寄存器执行该操作。

    这是一种非常粗略的方法、这种方法对吗?

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

    您好!

    我可以在定制电路板上探测 SPI 线路(供参考)、 我使用 ***、因为 Pine 122,123,124和125连接到 DRV8305的 SPI 通道。 我的问题分为两部分。

    DRV8305数据表规定的 模式应为1、我已在代码中进行相同设置。 我观察到 MOSI 信号看起来与模式1中设置的不同、但我的 MISO 信号与模式1中相同。 您能否验证我的部分 SPI 代码并确认我从 DRV8305接收的数据是否正确?

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include "driverlib.h"
    #include "device.h"
    #include "board.h"
    #include "epwm.h"
    #include "math.h"
    //
    // Globals
    //
    #define DRV8305_FAULT_STATUS_1 0x8800 //1000 1000 0000 0000
    #define DRV8305_FAULT_STATUS_2 0x9000 //1001 0000 0000 0000
    #define DRV8305_FAULT_STATUS_3 0x9800 //1001 1000 0000 0000
    #define DRV8305_VDS_STATUS 0xA000 //1010 0000 0000 0000
    uint16_t faultStatus1;
    //
    // Some declarations
    //
    void main(void)
    {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    下面是使用示波器探测的 SCLK、MOSI 和 MISO 输出。 注:目前我只能访问2个探头。

    故障寄存器0x01 (DRV8305_FAULT_STATUS_1)  

    黄色:时钟、橙色:MOSI                               黄色:时钟、橙色:MISO

    故障寄存器0x02 (DRV8305_FAULT_STATUS_2)  

    黄色:时钟、橙色:MOSI                               黄色:时钟、橙色:MISO

    故障寄存器0x03 (DRV8305_FAULT_STATUS_3)  

    黄色:时钟、橙色:MOSI                               黄色:时钟、橙色:MISO

    故障寄存器0x04 (DRV8305_VDS_STATUS)  

    黄色:时钟、橙色:MOSI                               黄色:时钟、橙色:MISO

    2.如果上述 SPI 读数正确、

    我们在0x03中收到故障、即 IC 故障寄存器、我们得到的错误为:

    • 看门狗故障
    • 过热故障
    • VREG 欠压故障
    • 高侧电荷泵欠压2故障

    如果是这种情况、请确认、  如何解决该问题?

    此外、为什么0x01保留位为高电平、这是否正常? 因为对于0x02、保留位不为高电平

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

    您好!

    更多信息:

    如上所述、对于通道2、注释掉" EPWM_setTimeBasePeriod (EPWM6_BASE、2500) " U 相和 V 相正在工作

    [报价用户 id="513473" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1392930/c28xx_cpu1-error-error--1135-0x8b25并且每当我注释掉 EPWM_setTimeBasePeriod 用于 EPWM6时、我将调制信号从 EPWM4和 EPWM5的控制器输出、EPWM6的调制信号是一个恒定高电平信号。

    我们现在发现、在注释掉" EPWM_setTimeBasePeriod (EPWM1_BASE、2500); " U 相连续高、V 相和 W 相按预期工作、但在设置时  EPWM_setTimeBasePeriod (EPWM1_BASE、2500);  我们在 DRV8305中遇到故障、其故障寄存器如上所示。 (如果正确)

    这仅供您参考。

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

    Gautham、

    为什么要注释掉为 ePWM 设置 TBPRD 的代码? 您希望 EPWM1上的输出是什么?

    谢谢!

    Luke

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

    尊敬的 Luke:  

    我们意外发现、在注释掉通道2和1的 EPWM6和 EPWM1的 TBRD 时、我们将在其他2个通道(即通道1的 V 和 W 相位以及通道2的 U 和 V 相位)中从 DRV 获得输出。 这仅供您参考 、这样、DRV 就不会给出任何故障、而是从我们获得输出。

    若要测试定制电路板、我们尝试运行一个开环程序、 其中 ePWM1上的输出将是由 PWM 信号调制的正弦波形。

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

    您好!

    更新了:由于我们在 发生其他故障时遇到了 VCPH_UVLO2故障、因此我们 探测了 VREG 和 PVDD、并得到了图中所示的行为。 仅当 epwm1/epwm6激活时才会发生这种情况。  

    在运行其他 ePWM 时、我们在启用 EN_GATE 时不会看到这种瞬态行为。

    PVDDD 在靠近 DRV 的0欧姆电阻器附近探测、探测28V 直接电源时、压降较小

    VREG

    这是  VCPH_UVLO2故障的原因? 我们观察到的其他故障情况如何?

    如何解决此问题? 我们是否应该在 PVDD 和接地之间仅放置一个10uF 的电容器、这就足够了吗? 我们还应该如何调试该错误吗?

    PS:
    我们已有一个4.7uF 的电容器

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

    尊敬的 Gautham:

    澄清一下、ePWM 输出不存在问题、但当 EPWM1和 EPWM6运行时、系统中似乎会出现阻碍 JTAG 连接的噪声。 是这样吗?

    谢谢!

    Luke

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

    尊敬的 Luke:

    "澄清一下、ePWM 输出不存在问题、但当 EPWM1和 EPWM6运行时、系统中似乎会出现阻碍 JTAG 连接的噪声。 这是不是真的?"

    是的、您回答正确。  

    由于我 遇到 JTAG 中断、并且在使用 EPWM1和 EPWM6时无法运行程序、因此我 将 程序直接转储到闪存中。  这样做时、我可以看到控制器输出正常、ePWM 波形在 EPWM1上符合预期、但是 DRV8305中没有输出。 nFAULT 为低电平。

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

    您好!

    更新:我们确定了一个问题、 SH_A 缺少0欧姆电阻、我们填充了相同内容、现在我们将从所有三个通道中的 DRV 获得输出。

    问题:

    我们仍不确定我们的 SPI 读取是否正确、我们的 SPI 读取表明存在故障、因为0x03寄存器的某些位为高电平。 您能否通过探测的上述 SPI 信号确认 MOSI 的行为是否正确?  由于时钟下降沿与 MOSI 位的下降沿对齐、它看起来与 SPI Mode1行为不像。

    我们使用标准 SPI 库

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include "driverlib.h"
    #include "device.h"
    #include "board.h"
    #include "epwm.h"
    #include "math.h"
    #include "spi.h"
    //
    // Globals
    //
    #define DRV8305_FAULT_STATUS_1 0x8800 //1000 1000 0000 0000
    #define DRV8305_FAULT_STATUS_2 0x9000 //1001 0000 0000 0000
    #define DRV8305_FAULT_STATUS_3 0x9800 //1001 1000 0000 0000
    #define DRV8305_VDS_STATUS 0xA000 //1010 0000 0000 0000
    uint16_t faultStatus1;
    //
    // Some declarations
    //
    void main(void)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    尊敬的 Gautham:

    我会在1-2天后回复您的问题。

    Aishwarya.

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

    Gautham、

    快速浏览 DRV805 DS、看看列出的 SPI 模式与 F28379xD SPI 控制器/主模式(极性= 0、相位= 0)等效。 请仔细检查。 您是否还看过展示如何配置 SPI 的 C2000Ware 示例? 如果没有、请执行。

    此致、

    Aishwarya.

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

    您好!

    请查看下面的代码片段、这会将其配置为模式1、对吧?

      SPI_setConfig (SPIC_BASE、DEVICE_LSPCLK_FREQ、SPI_PROT_POL0PHA1、SPI_MODE_MASTER、500000、 16);

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

    Gautham、

    不同的产品涉及不同的模式编号、因此匹配时序图非常重要。 您可能需要执行以下操作:

     SPI_setConfig (SPIC_BASE、DEVICE_LSPCLK_FREQ、SPI_PROT_POL0PHA0、SPI_MODE_MASTER、500000、 16);

    Aishwarya.

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

    尊敬的 Aishwarya:

    我们将使用 DRV8305、根据该公式、我们需要在模式1下运行该器件。

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

    尊敬的 Gautham:

    Aishwarya 目前不在办公室、因此请预计她的回复会有延迟。

    此致、

    Delaney

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

    您好!

    对于延迟、我们深表歉意。 您是对的、请忽略我之前的评论。 您能否确认 SPI 同时进行读取和写入操作、除此一次性故障外、其他所有器件均按预期工作?  

    此致、

    Aishwarya.

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

    Gautham、

    检查此问题是否已解决和/或是否有任何待解决问题?

    此致、

    Aishwarya.