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.

[参考译文] IWRL6844EVM:通过 SPI 传输 UART 数据

Guru**** 2418880 points
Other Parts Discussed in Thread: IWRL6844, SYSCONFIG

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1514597/iwrl6844evm-transfer-uart-data-over-spi

器件型号:IWRL6844EVM
主题:IWRL6844SysConfig 中讨论的其他器件

工具/软件:

您好的团队、

目前、我正在使用毫米波低功耗 SDK 中的 IWRL6844 器件毫米波演示:06_00_04_01。

我的要求是通过 SPI 传输处理后的数据。

我在中添加了 Belo 代码  MmwDemo_transmitProcessedOutputTask()

这是在路径中提供的参考中完成的: \mmwave_L_SDK_06_00_04_01\mmwave_l_sdk_06_00_04_01\examples\drivers\mcspi\mcspi_loopback\mcspi_loopback.c

构建和闪存成功、但固件在 sensorStart 0 0 0 0 命令之后卡住。

根据提供的示例、涉及的步骤如下:

引脚多路复用

2. MCSPI 打开

3. MCSPI_transactionInit

4.修改事务结构后的 MCSPI 传输。

由于引脚多路复用和驱动器打开已经完成、因此我仅添加以下代码:

    char txBuffer[10] = {'H','e','l','l','o'};
    MCSPI_Transaction spiTransaction;
    uint transferOK;
    MCSPI_Transaction_init(&spiTransaction);
    spiTransaction.channel  = gConfigMcspi0ChCfg[0].chNum;
    spiTransaction.dataSize = 8;
    spiTransaction.csDisable = TRUE;
    spiTransaction.count    = 10 / (spiTransaction.dataSize/8);
    spiTransaction.txBuf = (void *)txBuffer;
    spiTransaction.rxBuf = NULL;
    spiTransaction.args = NULL;

    transferOK = MCSPI_transfer(gMmwMssMCB.mcspiHandle, &spiTransaction);

    CLI_write("TOK: %d\n",transferOK);

我还尝试打印 transferOK 变量、控制台中不显示任何内容。

调试代码时、当在 MCSPI_Transfer () 函数内步进时、代码卡在无限循环中。

帮助解决问题、

提前感谢、

Poorneka T.

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

    尊敬的 Poorneka:

    感谢您联系我们、请允许我们的 SPI 专家在几天内审核您的问题并做出相应的答复。

    此致、

    Vignesh K.

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

    尊敬的 Vignesh:

    对此查询有任何更新?

    我又尝试了一个关于这个的实验、

    使用 CLI 命令在 SPI 模式下启用 ADC 日志记录: adcLogging 2.  并按如下方式更新了代码:

    char buffer[10] = "Hii";
    
    MCSPI_Transaction_init(&spiTransaction);
                    spiTransaction.channel  = gConfigMcspi0ChCfg[0].chNum;
                    spiTransaction.dataSize = 32;
                    spiTransaction.csDisable = TRUE;
                    spiTransaction.count    = 4;
                    spiTransaction.txBuf    = (void *)buffer;
                    spiTransaction.rxBuf    = NULL;
                    spiTransaction.args     = NULL;
                    CLI_write("SPI Raw Data Transfer start: %c\r\n",buffer[0]);
    
                    GPIO_pinWriteLow(gSPIHostIntrBaseAddrLed, gSPIHostIntrPinNumLed);
    
                    transferOK = MCSPI_transfer(gMcspiHandle[CONFIG_MCSPI0], &spiTransaction);
                    if(transferOK != 0)
                    {
                        CLI_write("SPI Raw Data Transfer Failed\r\n");
                    }
                    CLI_write("SPI Raw Data Transfer\r\n");

    我没有传输 ADC 数据、而是使用本地缓冲区更新了 SPI TX 缓冲区。

    在 CLI 打印后、代码挂起。

    以下是用于 SPI 传输的开关设置:

    等待您的回复!!

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

    嗨、Poorneka、

    很抱歉在这里回复的延迟。 您能否将 rxBuffer 声明并分配给 spiTransaction.rxBuf 并重新测试您的第一个事务?

    此致、

    Kristien

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

    您好 Kristein、

    我尝试了上述步骤。 但我的代码在 MCSPI_TRANSFER 之后挂起。 请查找用于上述实验的附加模板和配置文件:

    e2e.ti.com/.../profile_5F00_2T4R_5F00_bpm.cfg

    请确认上述的开关设置:

    S8 迷惑不解
    S7 亮起
    S5.1 迷惑不解
    S5.2 迷惑不解
    S1.1 迷惑不解
    S1.2 迷惑不解
    S1.3 亮起
    S1.4 亮起
    S1.5 亮起
    S1.6 迷惑不解
    S4.1 迷惑不解
    S4.2 迷惑不解
    S4.3 迷惑不解
    S4.4 迷惑不解
    S4.5 迷惑不解
    S4.6 迷惑不解
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Poorneka、

    请打开 S4.3、因为这会将 SPI A 多路复用到 EVM 上的 SPI A 接头。 否则、SPI 传输最终将失败。

    此致、

    Kristien

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

    嗨、Poorneka、

    请打开 S4.3、因为这会将 SPI A 多路复用到 EVM 上的 SPI A 接头。 否则、SPI 传输最终将失败。

    此致、

    Kristien

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

    尊敬的 Kristien:

    即使在更换开关 S4.3 后、我仍然面临同样的问题。

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

    嗨、Poorneka、

    您能否分享 MCSPI_transfe 函数中其故障的确切位置? 您刚才提到 代码在进入 MCSPI_Transfer() 函数时停留在无限循环中。 您是否滞留在  MCSPI_transferControllerPoll 或 MCSPI_transferPeripheralPoll 中 ?  

    我知道您在集成期间引用了 SDK 中的 MCSPI 环回示例、但您可以共享您的 SysConfig 设置还是它们与环回示例相匹配?

    由于在美国的星期一度假、可能会延迟响应。

    感谢您的耐心、

    Kristien

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

    你好 Kristien Everett 我遇到了类似的问题。 它卡在  MCSPI_Transfer 上。 您可以在这里获得支持吗?

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

    嗨、Mitraj、

    感谢您联系有关 SPI 问题的信息。 为了使论坛保持有序、您能否打开一个新主题、其中包含有关您的特定问题的信息、并在此处使用新主题进行回复? 这有助于在上下文存在差异时区分问题、并有助于进行跟踪。 一旦新线程可用、我将对其进行回复。

    此致、

    Kristien