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/LAUNCHXL-F28379D:在空闲线多处理器模式下使用 SCIB 通过 UART 对 Booster Pack 进行编程

Guru**** 2531430 points
Other Parts Discussed in Thread: BOOSTXL-CC3120MOD

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/859219/ccs-launchxl-f28379d-using-scib-in-idle-line-multiprocessor-mode-for-programming-booster-pack-over-uart

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件:BOOSTXL-CC3120MOD

工具/软件:Code Composer Studio

大家好、我正在尝试编写一些代码、以便能够使用我的 Launchpad 通过 UART 对 Boostxl-cc3120MOD 进行编程。 为此、我需要配置 SCIB、以便在空闲线多处理器模式下通过引脚18和19进行通信。 虽然小型 USB 工作正常、但使用 SCIA 时、SCI 模块无法通过 launchpad 上的引脚输出任何内容、我遇到了一些问题。 我在下面发布了我的代码、如果对我缺少的内容有任何建议、我们将不胜感激。  

谢谢!

device_init();
SYSCTL_setLowSpeedClock (SYSCTL_LSPCLK_PRESALE_1);

//
//禁用引脚锁定并启用内部上拉。
//
DEVICE_initGPIO();

//
// SCI Rx 引脚。
//
GPIO_setMasterCore (19、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_19_SCIRXDB);
GPIO_setDirectionMode (19、GPIO_DIR_MODE_IN);
GPIO_setPadConfig (19、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (19、GPIO_QUAL_异 步);

//
// SCI Tx 引脚。
//
GPIO_setMasterCore (18、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_18_SCITXDB);
GPIO_setDirectionMode (18、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (18、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (18、GPIO_QUAL_异 步);

//
//初始化中断控制器和矢量表。
//
interrupt_initModule();
interrupt_initVectorTable();

//
//初始化 SCIA 及其 FIFO。
//
SCI_performSoftwareReset (SCIB_BASE);

//
//为回声配置 SCIA。
//
HWREGH (SCIB_BASE + SCI_O_CCR)&&~μ A (SCI_CCR_ADDRIDLE_MODE);
SCI_setConfig (SCIB_BASE、DEVICE_LSPCLK_FREQ、921600、(SCI_CONFIG_WLEN_8 |
SCI_CONFIG_STOP_ONE |
SCI_CONFIG_PAR_NONE));
SCI_resetChannels (SCIB_BASE);
SCI_resetRxFIFO (SCIB_BASE);
SCI_resetTxFIFO (SCIB_BASE);
SCI_clearInterruptStatus (SCIB_BASE、SCI_INT_TXFF | SCI_INT_RXFF);
SCI_enableModule (SCIB_BASE);
SCI_performSoftwareReset (SCIB_BASE);


MSG ='A';
HWREGH (SCIB_BASE + SCI_O_CTL1)|=(SCI_CTL1_TXWAKE);
receivedChar[0]=(HWREGH (SCIB_BASE + SCI_O_CTL1));
receivedChar[1]= HWREGH (SCIB_BASE + SCI_O_CCR);

while (循环计数器)
{
HWREGH (SCIB_BASE + SCI_O_CTL1)=接收到的字符[0];
SCI_writeCharBlockingFIFO (SCIB_BASE、msg);
while (HWREGH (SCIB_BASE + SCI_O_CTL1)=receivedChar[0]){}

if (SCI_getRxFIFOStatus (SCIB_BASE)!=SCI_FIFO_RX0)
{
receivedChar[0]= SCI_readCharBlockingFIFO (SCIB_BASE);
receivedChar[1]= SCI_readCharBlockingFIFO (SCIB_BASE);

if (receivedChar[0]= 0x00 && receivedChar[1]=0xCC)
{
loopCounter = 0;
}
}

SCI_performSoftwareReset (SCIB_BASE);
ESTOP0; 

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

    您好 Benjamin、

    那么、我相信您正在将 J1J3-J2J4接头用于 BoosterPack 连接吗?

    器件是否未接收到任何内容、或者发送到 BoosterPack 是否存在问题?

    它是否会被卡住?

    从 SCIA 迁移到 B 时、哪些不起作用?

    此致。

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

    您好、

    是的、我使用 J1-4进行连接。 很抱歉、如果我不清楚、但现在的主要问题是、当使用 SCIB 时、Tx 线(引脚4)看起来根本不会传输、当我尝试与 Booster Pack 通信时、它只保持在~3.3V。 这通过使用范围进行确认。 我还尝试了 SCIC、但结果相同。 通过 FTDI 向 USB 发送信号时、SCIA 工作正常(我可以与我的 Windows 应用通信)。 因此、我想知道我是否遗漏了一些东西、这些东西会使 SCIB Tx 通过电路板上的引脚发送信号。

    谢谢!

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

    您好、

    只需轻拍线程

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

    您好,

    [引用用户="Benjamin Maxwer"] SCIB、Tx 线(引脚4)似乎根本不进行传输、当我尝试与 Booster Pack 通信时、它被保持在~3.3V。 [/报价]

    用于 SCI B 或 SCIC 的 GPIO 是否会被 CC32xx 保持在高电平?

    [引用 user="Benjamin Maxwer"]我想知道我是否缺少一些可以使 SCIB Tx 通过板上的引脚发送信号的东西。

    我刚尝试在 SCIB 上使用内部回送示例而不使用外部 GPIO,它工作正常。

    我只是将所有内容都改为使用 SCIB 而不是 SCIA。

    因此,我现在看到的唯一变化是 GPIO,它们符合预期的 GPIO 映射。  

    此致。

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

    我设法让它开始发送、谢谢!

    根据 http://www.ti.com/lit/ug/spruhm8i/spruhm8i.pdf 第19.4.2节、我仍然无法通过在发送前设置 Tx WAKE 位来发送中断信号。

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

    您好!

    在设置 TXWAKE 之后、在发送地址之前、是否必须按照无关字节的步骤将字节写入 SCITXBUF、以便传输空闲时间?

    此致。

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

    我想、如果我错了、你可以纠正我的问题:我将 IDLE/addr 位设置为0 (空闲线路模式)、然后我复位通道、FIFO 缓冲器、清除中断和软件复位、接下来我设置 TWAKE 位、 然后、我向 TXBUF 寄存器写入一个任意字节、并等待 TXWAKE 位被设置回零。  

    当查看具有示波器的电路板上的 TX 引脚时、将保持高逻辑(3V)、即无空闲时间。 如果我将 TX 引脚配置为仅拉低的 GPIO、我可以在休息后从 Booster Pack 获取一个信号、但在读取 C2000板上的信号时遇到问题。  有关详细信息、请访问 https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/p/861523/3194071#3194071。

    谢谢

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

     您好 Benjamin、

    对延迟答复表示歉意。

    我正在与内部团队核实这方面的信息。

    我将在收到他们的回复后立即回复。

    此致。

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

    您好 Benjamin,

    只是想检查一下您是否能够取得一些进展。

    在内部获得一些数据存在一些延迟。

    此致。

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

    您好 Benjamin、

    块启动用于发送空闲时间(SCITXD GPIO 为高电平)、时间恰好超过10位、因为用户不会不必要地使用外部软件计时器发送更长的空闲时间。 空闲时间表示 SCITXD/SCIRXD 高电平。 您在 TXWAKE 之后观察到的3V 是正确的、是预期的。

    另一方面、RX 侧的中断检测用于检测 SCIRXD GPIO 长时间停留在"0"时的任何总线挂起/错误情况。 这两种方法彼此不同。  

    请尝试用一个虚拟字节后跟地址字节来填充 TXFIFO。 您将看到、在 TXWAKE 位变为低电平后、在~11个空闲位周期(GPIO =高电平)开始之后、SCITX 模块将发送地址字节。 在 SCIRX 侧  、即使设置了睡眠位、也会被该块唤醒、以开始接收 地址字节、并触发中断 、以便在 多处理器模式下将其与自己的地址进行比较。

    此致、

    日惹市 S