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/TMS570LS0432:如何向 PL455a 发送 UART 消息

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/673391/ccs-tms570ls0432-how-to-send-a-uart-message-to-pl455a

器件型号:TMS570LS0432
主题中讨论的其他器件:BQ76PL455A

工具/软件:Code Composer Studio

您好!

我正在尝试从 TMS570LS0432 Launchpad 向 bq76pl455a 发送消息。

在 CCS 示例代码中、有几行使用了变量"nSent"。

但我无法理解它是如何通过 UART 发送的。

示例:

void main (void)
{
/*用户代码 begin (3)*/
systemInit();
gioInit();
sciInit();
sciSetBudrate (scilinREG、BAUDRATE);
rtiInit();
vimInit();

_enable_IRQ ();

WakePL455();

CommClear ();

CommReset();

//初始化局部变量
int nSent、nRead、nTopFound = 0;
int nDev_ID、nGrp_ID;
字节 bFrame [132];
uint32 wTemp = 0;

/**代码示例
*以下命令序列是 bq76PL455通信示例文档中的消息示例。
*每个消息示例都引用了文档中的部分。
//

唤醒所有器件
//唤醒提示音将唤醒所有已处于关断状态的器
件,关机将关闭所有已处于唤醒状态的器件//。 最少的唤醒和断电次数将是
//板数量的一半、以涵盖最坏情况下已唤醒或关断的板组合。
for (nDev_ID = 0;nDev_ID < TOTALBOARDS>>1;nDev_ID++){
nSent = WriteReg (nDev_ID、12、0x40、1、FRMWRT_ALL_NR);//发送广播断电命令
delayms (5);//~5ms
WakePL455 ();
delayms (5);//~5ms
}

//屏蔽客户校验和故障位
nSent = WriteReg (0、107、0x8000、2、FRMWRT_ALL_NR); //清除所有故障摘要标志

//清除所有故障
nSent = WriteReg (0、82、0xFFC0、2、FRMWRT_All_NR);//清除所有故障摘要标志
nSent = WriteReg (0、81、0x38、1、FRMWRT_All_NR); //清除系统状态寄存器中的故障标志

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

    我是否必须添加指令才能使用变量 nSent?

    从 TMS570到 PL455的所有通信似乎都是可以的...

    调试会话的打印屏幕:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我在调试会话中点击挂起(Pauze)按钮时、它总是在打印屏幕的272行停止。
    所以没有回应、但我认为首先必须发送。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Harold、

    Nsent 是针对 SCI TX 的数据包大小(字节)、以及针对 SCIN RX 接收到的字节。 sciSend (...) 和 sciReceive (..) 在 PL455函数中被调用(第190行...) 以写入和读取 PL455寄存器。

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

    你好、先生。 王

    如何提供发送(字节)指令?

    使用的是什么?

    它是否已经在 pl455的示例代码中?

    此致、

    Harold

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

    您好 Harold、

    BMS TI 设计应包含源代码。

    TMS570 UART 数据发送和数据接收功能位于 sci.c 中

           sciSend (sciBASE-t * sci、uint32长度、uint8 *数据);

           sciReceive (sciBASE-t * sci、uint32 length、uint8 * data);

    2. 要将数据写入 PL455,名为 writeReg (...)的函数 和 writeFrame (..) 在 pl455.c 中进行了调用和定义

    3. writeFrame (..) 调用 sciSend (scilinREG、bPktLen、pFrame);将 pFrame 写入 pl455

    e2e.ti.com/.../7446.pl455.c

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

    感谢您的回复、

    如果我要发送此消息:

    Nsent = WriteReg (0、82、0xFFC0、2、FRMWRT_All_NR)

    发送正确的指令是什么?

    谢谢、此致、

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

    这是清除所有故障标志的正确命令。 如果对 PL455的登记册有任何疑问、请将问题发布到:

    e2e.ti.com/.../