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/AWR1443BOOST:尝试向 MMW 演示添加 SPI 功能时出错

Guru**** 2587365 points
Other Parts Discussed in Thread: AWR1443

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/617609/ccs-awr1443boost-errors-while-trying-to-add-spi-functionality-to-the-mmw-demo

器件型号:AWR1443BOOST
Thread 中讨论的其他器件:AWR1443

工具/软件:Code Composer Studio

之前、我尝试使用功耗优化/电平感应演示将范围值通过 SPI 传输到 MSP432。 不过、我发现该演示在短距离处不准确、因为它不执行初始直流校准、而是针对低功耗应用而制作的。 因此、我使用 MMW 演示、现在想通过 SPI 传输范围值、但每次我添加 SPI 功能时、我都会得到此错误:

MASTER_R4:在长度为0x7ff0的第0页0x180d0处写入内存块时发生故障:(错误-1065 @ 0x0)无法访问器件内存。 验证内存地址是否在有效内存中。 如果错误仍然存在、请确认配置、对电路板进行下电上电和/或尝试更可靠的 JTAG 设置(例如、较低的 TCLK)。 (仿真包6.0.576.0)
MASTER_R4:文件加载器:验证失败:目标写入0x000180D0失败
MASTER_R4:GEL:文件:C:\Users\Saady\workspace_v7\mmwNew\Debug\xwr14xx_mmwNew_MSS.xer4f:加载失败。

我尝试 使用 R4F 链接器 cmd 将程序存储器升级到0x0002FF00、直到我添加 SPI。

请提供任何帮助。

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

    您能否确认您使用哪个 SPI 实例进行开发?

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

    您好!

    使用 TI RTOS 的3引脚模式 SPI 进行 IM 通信。

    nt32_t Init_SPI (void){
    
    SPI_Params spiParams;
    SPI_Handle spiHandle;
    内部32_t 错误代码;
    
    
    /*设置 PINMUX 以显示 MibSpiA */
    Pinmux_set_OverrideCtrl (SOC_XWR14XX_PINR8_PADAD、PINMUX_OUTEN_RETAK_HW_CTRL、PINMUX_INPEN_RETAK_HW_CTRL);
    Pinmux_Set_FuncSel (SOC_XWR14XX_PINR8_PADAD、SOC_XWR14XX_PINR8_PADAD_SPIA_MOSI);
    
    Pinmux_set_OverrideCtrl (SOC_XWR14XX_PINP5_PADAE、PINMUX_OUTEN_RETAK_HW_CTRL、PINMUX_INPEN_RETAK_HW_CTRL);
    Pinmux_Set_FuncSel (SOC_XWR14XX_PINP5_PADAE、SOC_XWR14XX_PINP5_PADAE_SPIA_MISO);
    
    Pinmux_set_OverrideCtrl (SOC_XWR14XX_PINR9_PADF、PINMUX_OUTEN_RETAK_HW_CTRL、PINMUX_INPEN_RETAK_HW_CTRL);
    Pinmux_Set_FuncSel (SOC_XWR14XX_PINR9_PADF、SOC_XWR14XX_PINR9_PADF_SPIA_CLK);
    
    Pinmux_set_OverrideCtrl (SOC_XWR14XX_PINR7_PADAG、PINMUX_OUTEN_RETAK_HW_CTRL、PINMUX_INPEN_RETAK_HW_CTRL);
    Pinmux_Set_FuncSel (SOC_XWR14XX_PINR7_PADAG、SOC_XWR14XX_PINR7_PADAG_SPIA_CS);
    
    Pinmux_set_OverrideCtrl (SOC_XWR14XX_PINP6_PADAA、PINMUX_OUTEN_RETAK_HW_CTRL、PINMUX_INPEN_RETAK_HW_CTRL);
    Pinmux_Set_FuncSel (SOC_XWR14XX_PINP6_PADAA、SOC_XWR14XX_PINP6_PADAA_SPI_host1_INTR);
    
    /*初始化 SPI */
    spi_init();
    
    if (SOC_SPIOutputCtrl (socHandle、0、1、&errCode)< 0)
    {
    /*调试消息:*/
    System_printf ("调试:SoC_SPIOutputCtrl 失败、出现错误[%d]\n"、错误代码);
    返回(0);
    }
    
    /*设置默认 SPI 参数*/
    spi_Params_init (&spiParams);
    
    #ifdef IR_SPI_master
    spiParams.mode = SPI_master;
    spiParams.U.masterParams.bitrate = 1000000;
    spiParams.U.masterParams.numSlaves= 1;spiParams.U.Params.avasiveParams.bitrate = 1000000
    ;spiParams.SpmasterParams.U.Spu.Params.Spu.Params=0 Prof
    = 1;spiUrgmaster.Url.Param.Param.Param.Spu.Param //MIBSPI_RAM_MAX_Elemm;
    spiParams.U.masterParams.slaveProf[0].dmaCfg.txDmaChanNum = 1U;
    spiParams.U.maParfg.slavePROF[0].dmaCams.POLDMANum = 0U;
    spiParams.frameFormat = SPI_0_SPI_0_spi_PHPST_PRAP_SpiParams.slaveProb.dspi_Spi_Phas.spi_params.ped.
    
    #else
    spiParams.mode = SPI_SLAVE;
    spiParams.frameFormat = SPI_POL0_PHA0;
    spiParams.U.slaveParams.dmaCfg.txDmaChanams.= 1U;spiParams.U.slaveParams.dmaCfg.rxDmaChanNum
    = 0U;
    #endif
    
    /* spiPdmaHandle 和 spiPdmaParams.pin1 = SPI1pinSpiPdParams.pin1;SpiPdPardmaSpin1 =
    
    
    
    Spin1 Pard_Pard_PdmaSpin1;Spin1 PdmaTMPrg.PdSpinPdSpinPdSpinPdM = 1 PdSp
    
    
    //默认数据大小(在 SPI_Params_init 中设置)为16位
    // params.dataSize = 8;
    
    spiHandle = SPI_open (0、&spiParams);
    if (spiHandle ==空)
    {
    System_printf ("错误:无法打开 SPI 实例\n");
    返回(0);
    }
    
    返回(1);
    
    } 

    谢谢

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

    您好!

    AWR1443具有大小为128KB 的程序存储器。 在您添加 SPI 之前、程序大小小于128KB、因此它可以正常工作、并且当您将 SPI 添加到应用程序时、程序存储器会超过128KB、在这种情况下、通过 JTAG 下载映像时、它会尝试写入超出存储器限制、因此失败。

    要使其作为一个选项工作、您可以按照将常量段移动到 AWR1443的 L3存储器。

    /* R4F_linker.cmd */

    .const :{}>L3_RAM  

    /* MMW\main.c */

    /*! L3 RAM 缓冲器*/

    uint8_t gMmwL3[SOC_XWR14XX_MSS_L3RAM_SIZE - SIZE _ON_CONST];
    #pragma DATA_SECTION (gMmwL3、".l3ram");

    在上面的更改中、您需要注意 L3存储器堆大小、演示需要执行 处理(这取决于您的配置文件配置)、但您仍可以使用 size_for_Const 来分配.const 段。

    此致、

    Jitendra Gupta

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

    我如何知道要为 size_for_Const 分配的大小?

    谢谢