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.

[参考译文] UCD3138FW_LLC:UCD3138FW_LLC:我应该在哪里添加 DTC 中断处理?

Guru**** 2564410 points
Other Parts Discussed in Thread: UCD7138, UCD3138A, UCD3138ALLCEVM150, UCD3138

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1431024/ucd3138fw_llc-ucd3138fw_llc-where-should-i-add-the-dtc-interrupt-processing

器件型号:UCD3138FW_LLC

工具与软件:

大家好!

我想使用由 UCD3138A 控制的 UCD7138的 DTC 功能、因此我需要自定义 UCD3138FW_LLC 固件。

我想在 CIMINT_ALL_DTC 发生时添加一个中断过程。 但是、我不知道应该在哪里添加它。 它是否应该被添加到 interrupts.c 文件中的 fast_interrupt()函数中?

我能找到 CIMINT 的原因在任何成员的联合或斯特里特?

如果您有任何 CIMINT 示例代码、我将不胜感激。

此致、

YUKIOOYAMA.

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

    你好、Yukiooyama、

    您能帮助您使用哪种固件吗?
    是否有任何 EVM 参考、PMPXXXXX 或 TIDAXXX 编号?

    此致
    Hemanth

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

    您好 Hemanth-San、

    它如上所述为UCD3138FW_LLC

    https://www.ti.com/tool/UCD3138FW_LLC

    该固件适用于 UCD3138ACCEVM149 + UCD3138ALLCEVM150 、 但我 尚未获取。

    https://www.ti.com/tool/UCD3138ACCEVM149

    https://www.ti.com/tool/UCD3138ALLCEVM150

    BR

    YUKIOOYAMA.

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

    您好、Yukio-San、


    您可以将 DTC 过程添加到 interrupts.c 文件中的 fast_interrupt()或 standard_interrupt.c 文件中的 standard_interrupt()。
    对于快速中断、必须为 Fiq 启用中断屏蔽。 在 main.c 中添加以下代码片段将会启用该功能。


    disable_fast_interrupt();
    //配置 FIQ
    write_firqpr (0x00080000);//中断矢量索引19被分配给 DTC 中断
    //启用中断
    enable_fast_interrupt();
    完成此操作后、您可以在 interrupts.c 文件中的 FAST_INTERRUPT 中编写中断过程。 下面是示例代码片段。
    void fast_interrupt (void)


    寄存器 int32 fiq_number;
    volatile uint32 read_scrap;
    FIQ_NUMBER = CimRegs.FIQIVEC.all;//读取时清除
    if (FIQ_NUMBER == 19)// DTC 中断索引

    //中断处理

    }
    READ_SAMP = CimRegs.INTREQ.ALL;//读取时清除
    //如果需要、请清除 DTCSTAT 寄存器中的标志位
    }
    }
    对于待机中断、您必须启用 IRQ 的中断屏蔽。 通过在 main.c 中添加以下代码片段、可以将其启用。
    disable_interrupt();
    //配置 IRQ
    write_reqmask (0x00080000);//中断矢量索引19被分配给 DTC 中断
    //启用中断
    enable_interrupt();
    完成此操作后、您可以在 standard_interrupt.c 文件中编写中断过程。 下面是示例代码片段。
    void standard_interrupt (void)


    寄存器 Int32 IRQ_NUMBER;
    volatile uint32 read_scrap;
    IRQ_NUMBER = CimRegs.IRQIVEC.all;// Read (读取时清除)
    if (IRQ_NUMBER == 19)// DTC 中断索引

    //中断处理

    }
    READ_SAMP = CimRegs.INTREQ.ALL;//读取时清除
    //如果需要、请清除 DTCSTAT 寄存器中的标志位
    }
    }

    有关更多详细信息、请参阅 TI 的应用手册" 使用 UCD7138和 UCD3138A 实现高级同步整流控制 "(www.ti.com/lit/an/slua737b/slua737b.pdf)第5.2节和 UCD3138 TRM (www.ti.com/lit/ug/sniu028d/sniu028d.pdf)页码 532.
    有关 CIMIN 模块的更多信息、请参阅 TRM (www.ti.com/lit/ug/sniu028d/sniu028d.pdf)的第18节。

    此致
    Hemanth

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

    您好 Hemanth-San、

    感谢您的解释。 我将尝试按照这些步骤操作、并对其进行设置。

    我希望这块板子能顺利运作。 谢谢你。

    此致、

    YukioOyama

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

    由纪生

    当然、感谢您的响应。


    此致
    Hemanth