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/TMS570LS3137:无法读取电池样本值

Guru**** 2595805 points
Other Parts Discussed in Thread: EM1402EVM, TMS570LS3137, HALCOGEN, TMS570LS0432

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/699167/ccs-tms570ls3137-unable-to-read-cell-sample-values

器件型号:TMS570LS3137
主题中讨论的其他器件:EM1402EVMHALCOGENTMS570LS0432

工具/软件:Code Composer Studio

您好、先生、

我正在使用 TMS570Ls3137控制器和 EM1402EVM 板进行主动电池平衡。 我在 UART 通信中遇到问题、在系统上运行时无法看到电池样本值。  

我从 HALCOGEN 生成了代码、使用给定的 BQ76pl455_example_code、我尝试对其进行调试。 但它不起作用。 我正在附加 HALcogen 设置文件、您能检查一下吗、让我知道我所做的任何事情是对的还是错的吗?

e2e.ti.com/.../7331.zip

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

    请使用1个停止位、8个数据位

    sciREG->GCR1 =(uint32)((uint32) 1U <<25U)//启用传输*/
    |(uint32)((uint32) 1U << 24U)/*启用接收*/
    |(UINT32)((UINT32) 1U << 5U)//内部时钟(器件没有时钟引脚)*/
    |(uint32)((uint32)(1U-1U)<<4U)/*停止位数*/
    |(uint32)((uint32) 0U << 3U)/*偶校验、否则为奇数*/
    |(uint32)((uint32) 0U << 2U)/*启用奇偶校验*/
    |(uint32)((uint32) 1U << 1U);/*异步计时模式*/

    /**-传输长度*/
    sciREG->format = 8U - 1U;/* length */

    波特率应为250kbps

    3.在使用 SCI 从 PL455读取寄存器值之前唤醒 PL455
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    非常感谢你的帮助。

    现在、我能够在 bFrame 中获取电池样本值。

    我在 TMS570LS3137中使用 SCI/LIN、因为我无法获取 bFrame 值。 在硬件调试中、我必须知道在传输引脚上、我没有从控制器获得正确的响应。

    然后我切换到 SCI、现在 bFrame 中有一个数据、并且示波器上的发送引脚响应也是正确的。

    在 halcogen 中、我在 pinmux 中选择了 sci、并采用 NHET113_SCITX 和 NHET106_SCIRX 进行通信。

    现在、我要设置 SPI 通信以实现主动电池平衡。

    为此,我想知道 HET 中需要哪些设置,因为要观察电池的充电和放电活动,我需要 配置 GUI。

    因此,我想为此模拟 N2HET 计时器模块。  

    请在 halcogen 中帮助进行配置设置。

    谢谢你  

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

    TMS570LS3137有2个 SCI 模块。 在 HDK 上、SCI2/LIN 被路由至 Micro-USB 以与外部器件对接。 您可以使用 SCI 与 PL455连接、并使用 SCI2/LIN 与 PC 通信。 您无需使用 NHET 仿真 SCI、也无需移除 R8和 R9。

    我不知道 PL455是否支持 SPI 接口。 如果您使用 SCI2、SCI 或 SPI、则无需使用 NHET。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    感谢您提供此信息、 下一步是并行 GUI 应显示电池电压。

    我们参考 TMS570LS0432示例代码。 只有用于板对板通信的可用 SCI 端口和用于与主机 PC 通信的 N2HET

    在 TMS570LS3137中、我们通过 bFrame 中的 SCI 获得了值。 现在、SCILIN 应该通过 UART 与 PC 通信。 BQ76PL455-GUI 是否支持此接口。 如果是、我们将如何将 SCI (250kbps)与 SCI/LIN (9600)集成、以便能够向主机 PC 发送数据?

    谢谢你

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

    1.将"scilinREG"改为"sciREG"(sci.c、sci.h、reg_sci.h 除外)
    修改 host_msg 中的代码:使用 sci 函数(sciLinREG)替换 HETUART1OutChar ()函数等
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、

    我根据 SCI/LIN 更改了 API、但看不到任何输出。 因此、如果您有任何流程图、代码片段或任何与主机消息中使用的 sci 函数相关的文档。
    这将非常有帮助。

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

    您是否正在使用 TI TMS570LS3137 HDK? 您使用哪种 SCI 与 EM1402 EVM、SCI 或 SCI2 (scilin)通信? 我建议您将 SCI 用于 EM1402EVM、将 SCI2用于通过 micro-USB 端口内置的 PC。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    是的、我使用的是 TMS570LS3137 HDK。 为了与 EM1402 EVM 通信、我使用的是 SCI (250K)、而 SCI2 (9600)用于与 PC 通信。

    现在、我想让电池 GUI 与设置并行运行。  

    在 TMS570LS0432示例代码中、为了运行 GUI、它们使用 host_msg.c、并按如下方式进行连接。

    我尝试通过使用 sci 函数(sciLinREG)来修改 host_msg 中的代码以替换 HETUART1OutChar ()函数。 但是、我无法看到正确的输出。  

    我还尝试将第二个 UART 作为仿真 N2HET 计时器模块、但为此、还需要连接和 halcogen 设置。

    如果您有任何与此相关的文档、这将会有所帮助。

    谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、
    我再有一个困惑,那就是,我使用 USB (SCI/LIN)进行硬件调试,然后我又如何看到 GUI。 我是否应该首先刷写代码(而不是硬件调试),然后使用相同的 USB 进行 GUI?

    如果是,则如何刷写代码? 如何通过 CCS 创建.hex 文件?

    请建议我。

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

    您使用 JTAG 调试代码、GUI 通过 SCI 将消息发送到 MCU。 SCI 和 JTAG 消息都通过 USB 数据包传送。

    在 CCS 中、编译后、需要将代码加载到闪存中、然后从闪存中执行。

    如果将 SCI 和 SCI2用于 EM1402和 GUI、则无需 NHET 仿真 SCI。

    请确保在引脚复用中选择了 SCIRX (引脚 W3)和 SCITX (N2)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    非常感谢您的持续支持。

    我想知道在 JTAG 的哪个引脚上、应该进行发送和接收连接?

    当我使用 SCI2与 PC 通信并运行 GUI 时、我必须在主机消息中执行哪些更改?

    谢谢、

    Gargi

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

    您好、Gargi、

    在 LS3137 HDK 上、我们使用 FPTI 芯片(FT2232HL)将 SCI 数据和 JTAG 数据转换为 USB 数据包。 SCI 消息不在 JTAG 上传输。

    在原理图的第23页上,FT2232的 pin16/17/18/19连接了 CPLD,然后连接到 TMS570LS3137 JTAG 引脚。 FT2232的引脚38/39连接到 TMS570LS3137 SCITX 和 SCIRX 引脚。

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

    您好、先生、

    我对 HET 和 SCI/LIN 进行了混淆、使它们成为与 PC 通信的 UART。

    如果我将采用 HET、那么我想让任何其他调试器使用 JTAG 调试代码、或者我可以先刷写代码、那么我将能够运行 GUI?

    如果我采用 SCI/LIN、它是否支持250kbps 与 PC 通信?

    3.如果我将采用 SCI/LIN,那么所需的更改是什么,我必须在通知.c 中执行,并将 hetNotification 替换为 sciNotification。

    #pragma weak (hetNotification)
    void hetNotification (hetBASE-t * het、uint32偏移)

    /*在用户代码开始和用户代码结束之间输入用户代码。 *
    /*用户代码开始(39)*/
    if (offset=4)

    HetUART1TxISR();

    否则 if (offset=24)

    HetUART1RxISR();

    /*用户代码结束*/

    谢谢、

    Gargi

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

    SCI/LIN 支持250kbps 波特率、用于与 PC 上的 GUI 通信。 如果您使用 SCI/LIN 替换 NHET 仿真 UART、则需要修改 host_msg.c 中的代码

    将 HetUARTxx 替换为 SCI/LIN 相关函数
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更改:
    HetUART1TxStart (g_ui8HostTxBuf、xyz_size+3);
    至:
    sciSend (scilinREG、xyz_size+3、g_ui8HostTxBuf);

    在 HalCoGen SCI2配置中、启用 RX/TX 中断、并在 VIM 中启用 SCI2中断(通道13、ISR 为线性高电平中断)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    先生,你好。

      我对第二个 UART (用于 GUI 的 SCI2)的中断生成有以下疑问。

    1.我是否应该将 PL455的同一 UART 数据线连接到 SCI 和 SCI2,以便同时在 TMS570LS3137的两个 UART 中生成中断 ?

    2.我是否应该连接到 SCI 并将数据存储到其寄存器中,并通过外部连接 SCI 和 SCI2将该电芯电压数据传输到 SCI2?

    3  我是否应该连接到 SCI 并将数据存储到其寄存器中并在没有任何外部连接的情况下将该电芯电压数据传输到 SCI2 ?

    在 TMS570BMS 的当前示例代码中,在 notification.c 中,它们使用偏移(4,24) 来生成 ISR,我的困惑是当我使用 SCI 函数而不是 HET 时,如何生成 该中断?

    谢谢、

    Gargi  

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

    在您的设置中、SCI2用于与 PC GUI 连接、而 SCI 用于与 PL455之间的 TX/RX 数据。

    您不再需要 HetUART1RxISR()和 HetUART1TxISR()了。 但您必须为 SCI2编写自己的 sciNotification()。 TE HALCoGen 为 SCI2和 SCI 生成 ISR。

    RXed SCI2数据存储在 g_sciTransfer_t[1U].Rx_data 中
    RXED SCI 数据存储在 g_sciTransfer_t[0U].rx_data 中

    g_ui8HostRxBuF1和 g_ui8HostRxBuf0用于存储 HET SCI 数据、您可以将 g_sciTransfer_t[1U].Rx_data 映射到这些缓冲器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    非常感谢您迄今提供的支持。

    我对 GUI 无法正常工作有疑问。

    我已在  ACB.C 中将 g_ui8PL455Data 缓冲区映射为 g_sciTransfer_t[1U].TX_data=g_ui8PL455Data

    在逻辑分析仪的帮助下、我能够查看 SCI RX 到 SCI2 TX 的数据、并且通过 TMS570LS3137的原理图、可以清楚地看到 SCI/LIN TX 连接到 USB TX。  

    我在控制器中转储了代码、并尝试使用该代码运行 GUI。 但是、GUI 无法打开 COM 端口。

    我想知道哪里出错了?

    将 GUI 与演示并行运行的过程是什么?

    此致、  

    Gargi

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

    当时我是出差、所以很抱歉回复太晚了。 我假设您已经解决了您的问题。 谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    主席先生,还可以。 我也被同样的事情震惊了。 我们订购了 TMS570LS0432 Launchpad、现在我正在处理它。  

    我通过硬件调试来检查示例代码 EM1402EVM 的工作情况、我还注意到逻辑分析仪中的波形。

    现在、我正在处理 TMS570BMS 示例代码、并尝试使用此代码运行 GUI。

    我们在 launchpad 中进行了更改、删除了 R8和 R9、

    已将 J4-1 (NHET00、仿真 UART TX)连接至 U2 (FT2322HL)引脚39和

    J4-2 (NHET02、仿真 UART TX)到 U2 (FT2322HL)引脚38。与下面的快照类似:

    我在 HALCOGEN 中进行如下设置:

    驱动器使能:RTI、GIO、SCI/LIN、SPI1和 HET

    中断使能:RTI 比较0、1、2、3

                  高电平(GIO lnt A)

                  het1highlevel (HET 级别0)

    高级别(LIN1级别0)

    Gio Porta:J2-3作为输入(FLT_N)

    J2-8作为输出(RS_EMB1428)

    J2-9作为输出(GPIO1/CS_OE)

    J2-4作为输入(FAULT_INT)

    J2-10作为输出(GPIO0/CS_STORE)

    SCI/LIN:

    唤醒:SPI1CS3 (用作 GIO)  

    但我的 GUI 仍然无法正常工作。 如何运行 GUI?  

    请告诉我。 配置中是否需要任何其他设置。

    HET 驱动器使能已足够、或者我必须在 halcogen 中进行更多更改。

    提前感谢