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.

IWR6843ISK-ODS: download fireware over SPI without flash

Part Number: IWR6843ISK-ODS
Other Parts Discussed in Thread: MMWAVEICBOOST, IWR6843

Hello,


I was trying to download firmware over SPI but got the error code -8 when booting mmwavelink_example.exe by following all steps required in documents mentioned in the link.

What does it mean and how can I resolve it? The device used is the combination of PC+ICBOOST+IWR6843-ODS (wihout Flash), and please see the attach for the detailed configuration and log files.

Thanks.

BOARDS:
IWR6843ODS,
MMWAVEICBOOST,
ICBOOST Dial - code switch configuration:
s1.1 off
s1.2 on
s1.3 off
s1.4 on
s1.5 off
s1.6 on
s1.7 on
s1.8 off
s1.9 off
s1.10 on
s1.11 on
s1.12 on
ICBOOST FTDI_USP port connect to PC with usb cable.

[SOP2, SOP1, SOP0]->[0,0,1]

ERROR:
================= mmWaveLink Example Application ====================
====================== SPI Mode of Operation ======================
Device map 1 : SOP 4 mode successful
Device map 1 : Device reset successful
rlDeviceEnable Callback is called by mmWaveLink for Device Index [0]
mmWave Device Power on failed for deviceMap 1 with error -8
=========== mmWaveLink Example Application execution Failed ===========


trace.txt:
[12:29:47:547]: rlsOpenGenericGpioIf: Got 4 devices connected
[12:29:47:953]: rlsOpenBoardControlIf: Got 4 devices connected
[12:29:48:073]: [VER] mmWaveLink Studio Version: 1.1.5.4.22.11.18
[12:29:48:450]: rlsFindAndOpenDevice: Got 4 devices connected
[12:29:48:468]: SPI port opened (DeviceNum=0)
[12:29:48:484]: IRQ & I2C port opened (DeviceNum=1)
[12:29:48:558]: FTDI Open Successful
[12:29:48:558]: Enable Device
[12:29:48:559]: Device [0] Host IRQ High
[12:29:48:559]: Device [0] [WR]0x5678 0x8765 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0xFFFF
[12:29:48:563]: Device [0] Host IRQ Low
[12:29:48:565]: Device [0] [RD]0xDCBA 0xABCD
[12:29:48:566]: Device [0] [RD]0xA036 0x0026 0x000C 0x0000 0x0001 0x5F96
[12:29:48:569]: Device [0] [RD]0x5000 0x0018 0x1D06 0x0006 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
[12:29:48:569]: Device [0] [RD]0xF8D9

  • HI,

    Can you please share a picture of your setup?

    Regards,

    Charles O

  • hi Charles O,

    Here is my setup picture and mmwaveconfig.txt

    Thanks.

    mmwaveconfig.txt:

    #
    #For detailed view of mmWave Radar configuration structure
    #please refer
    #ti\control\mmwavelink\docs\doxygen\html\index.html
    #

    #
    #Global configuration
    #Advanced frame test enable/disable; 1 - Advanced frame; 0 - Legacy frame
    #Continuous mode test enable/disable; 1 - Enable; 0 - Disable
    #Dynamic chirp test enable/disable; 1 - Enable; 0 - Disable; This should not be enabled if Advanced chirp test is enabled
    #Dynamic profile test enable/disable; 1 - Enable; 0 - Disable
    #Advanced chirp test enable/disable; 1 - Enable; 0 - Disable; The legacy chirp API is not required if this is enabled
    #Firmware download enable/disable; 1 - Enable; 0 - Disable
    #Flash present/absent; 1 - Present; 0 - Absent
    #Calibration enable/disable; To perform calibration store/restore; 1 - Enable; 0 - Disable
    #Calibration Store/Restore; If CalibEnable = 1, then whether to store/restore; 1 - Store; 0 - Restore
    #Transport mode; 1 - I2C; 0 - SPI
    #
    LinkAdvanceFrameTest=0;
    LinkContModeTest=0;
    LinkDynChirpTest=1;
    LinkDynProfileTest=0;
    LinkAdvChirpTest=0;
    EnableFwDownload=1;
    IsFlashConnected=1;
    CalibEnable=0;
    CalibStoreRestore=1;
    TransferMode=0;
    #END

    #
    #power on master arguments, please modify if needed.
    #rlClientCbs_t: crcType 0:16Bit/1:32Bit/2:64Bit, ackTimeout
    #
    crcType=1;
    ackTimeout=1000;
    #END

    #
    #channel config parameters, please modify if needed.
    #rlChanCfg_t
    #
    channelTx=3;
    channelRx=15;
    cascading=0;
    #END

    #
    #ADC out config parameters, please modify if needed.
    #rlAdcOutCfg_t
    #
    adcBits=2;
    adcFormat=2;
    #END

    #
    #DATA format config parameters, please modify if needed.
    #rlDevDataFmtCfg_t
    #
    rxChanEn=15;
    adcBitsD=2;
    adcFmt=1;
    iqSwapSel=0;
    chInterleave=0;
    #END

    #
    #Low power config Paramters, please modify if needed.
    #rlLowPowerModeCfg_t
    #
    anaCfg=0;
    lpAdcMode=0;
    #END

    #
    #Data Path config parameters, please modify if needed
    #rlDevDataPathCfg_t
    #
    intfSel=1;
    transferFmtPkt0=1;
    transferFmtPkt1=0;
    cqConfig=2;
    cq0TransSize=64;
    cq1TransSize=64;
    cq2TransSize=64;
    #END

    #
    #LVDS clock config parameters, please modify if needed
    #rlDevDataPathClkCfg_t
    #
    laneClk=1;
    dataRate=1;
    #END

    #
    #SET HSI clock parameters, please modify if needed.
    #rlDevHsiClk_t
    #
    hsiClk=9
    #END

    #
    #LANE config parameters, please modify if needed.
    #rlDevLaneEnable_t
    #
    laneEn=15;
    #END

    #
    #LVDS Lane Config parameters, please modify if needed.
    #rlDevLvdsLaneCfg_t
    #
    laneFmtMap=0;
    laneParamCfg=1;
    #END

    #
    #Programmable Filter config parameters, please modify if needed.
    #rlRfProgFiltConf_t
    #
    profileId=0;
    coeffStartIdx=0;
    progFiltLen=14;
    progFiltFreqShift=100;
    #END

    #
    #Profile config parameters, please modify if needed.
    #rlProfileCfg_t
    #
    profileId=0;
    pfVcoSelect=2;
    startFreqConst=1439117143;
    idleTimeConst=1000;
    adcStartTimeConst=600;
    rampEndTime=6000;
    txOutPowerBackoffCode=0;
    txPhaseShifter=0;
    freqSlopeConst=621;
    txStartTime=0;
    numAdcSamples=256;
    digOutSampleRate=10000;
    hpfCornerFreq1=0;
    hpfCornerFreq2=0;
    rxGain=30;
    #END

    #
    #Profile config parameters, please modify if needed.
    #rlProfileCfg_t
    #
    profileId=1;
    pfVcoSelect=2;
    startFreqConst=1439117143;
    idleTimeConst=1000;
    adcStartTimeConst=700;
    rampEndTime=6000;
    txOutPowerBackoffCode=0;
    txPhaseShifter=0;
    freqSlopeConst=621;
    txStartTime=0;
    numAdcSamples=256;
    digOutSampleRate=10000;
    hpfCornerFreq1=0;
    hpfCornerFreq2=0;
    rxGain=30;
    #END

    #
    #Profile config parameters, please modify if needed.
    #rlProfileCfg_t
    #
    profileId=2;
    pfVcoSelect=2;
    startFreqConst=1439117143;
    idleTimeConst=1000;
    adcStartTimeConst=800;
    rampEndTime=6000;
    txOutPowerBackoffCode=0;
    txPhaseShifter=0;
    freqSlopeConst=621;
    txStartTime=0;
    numAdcSamples=256;
    digOutSampleRate=10000;
    hpfCornerFreq1=0;
    hpfCornerFreq2=0;
    rxGain=30;
    #END

    #
    #Profile config parameters, please modify if needed.
    #rlProfileCfg_t
    #
    profileId=3;
    pfVcoSelect=2;
    startFreqConst=1439117143;
    idleTimeConst=1000;
    adcStartTimeConst=900;
    rampEndTime=6000;
    txOutPowerBackoffCode=0;
    txPhaseShifter=0;
    freqSlopeConst=621;
    txStartTime=0;
    numAdcSamples=256;
    digOutSampleRate=10000;
    hpfCornerFreq1=0;
    hpfCornerFreq2=0;
    rxGain=30;
    #END

    #
    #Chirp Configuration parameters, please modify if needed.
    #rlChirpCfg_t
    #
    chirpStartIdx=0;
    chirpEndIdx=63;
    profileIdCPCFG=0;
    startFreqVar=0;
    freqSlopeVar=0;
    idleTimeVar=0;
    adcStartTimeVar=0;
    txEnable=1;
    #END

    #
    #Chirp Configuration parameters, please modify if needed.
    #rlChirpCfg_t
    #
    chirpStartIdx=64;
    chirpEndIdx=127;
    profileIdCPCFG=0;
    startFreqVar=0;
    freqSlopeVar=0;
    idleTimeVar=0;
    adcStartTimeVar=0;
    txEnable=2;
    #END

    #
    #Frame configuration parameters, please modify if needed.
    #rlFrameCfg_t
    #
    chirpStartIdxFCF=0;
    chirpEndIdxFCF=127;
    frameCount=0;
    loopCount=1;
    periodicity=20000000;
    triggerDelay=0;
    numAdcSamples=512;
    triggerSelect=1;
    #END

    #
    #Advance Frame configuration parameters, please modify if needed.
    numOfSubFrames=4;
    forceProfile=0;
    numFrames=100;
    loopBackCfg=0;
    triggerSelect=1;
    frameTrigDelay=0;
    #end

    #
    #4th sub Frame configuration parameters, please modify if needed.
    forceProfileIdx=0;
    chirpStartIdxAF=0;
    numOfChirps=1;
    numLoops=8;
    burstPeriodicity=5000000;
    chirpStartIdxOffset=0;
    numOfBurst=1;
    numOfBurstLoops=1;
    subFramePeriodicity=5000000;
    numAdcSamplesAF=256
    numChirpsInDataPacket=1
    #end

    #
    #3rd sub Frame configuration parameters, please modify if needed.
    forceProfileIdx=0;
    chirpStartIdxAF=0;
    numOfChirps=1;
    numLoops=8;
    burstPeriodicity=5000000;
    chirpStartIdxOffset=0;
    numOfBurst=1;
    numOfBurstLoops=1;
    subFramePeriodicity=5000000;
    numAdcSamplesAF=256
    numChirpsInDataPacket=1
    #end

    #
    #2nd sub Frame configuration parameters, please modify if needed.
    forceProfileIdx=0;
    chirpStartIdxAF=0;
    numOfChirps=1;
    numLoops=8;
    burstPeriodicity=5000000;
    chirpStartIdxOffset=0;
    numOfBurst=1;
    numOfBurstLoops=1;
    subFramePeriodicity=5000000;
    numAdcSamplesAF=256
    numChirpsInDataPacket=1
    #end

    #
    #1st sub Frame configuration parameters, please modify if needed.
    forceProfileIdx=0;
    chirpStartIdxAF=0;
    numOfChirps=1;
    numLoops=8;
    burstPeriodicity=5000000;
    chirpStartIdxOffset=0;
    numOfBurst=1;
    numOfBurstLoops=1;
    subFramePeriodicity=5000000;
    numAdcSamplesAF=256
    numChirpsInDataPacket=1
    #end

    #
    #Continuous mode config parameters
    #startFreqConst=1435384036;
    #txOutPowerBackoffCode=0;
    #txPhaseShifter=0;
    #digOutSampleRate=10000;
    #hpfCornerFreq1=0;
    #hpfCornerFreq2=0;
    contModeRxGain=30;
    vcoSelect=3388;
    #end

    #
    #Advanced chirp config parameters
    AdvChirp_chirpParamIdx=0;
    AdvChirp_resetMode=0;
    AdvChirp_deltaResetPeriod=0;
    AdvChirp_deltaParamUpdatePeriod=0;
    AdvChirp_sf0ChirpParamDelta=0;
    AdvChirp_sf1ChirpParamDelta=0;
    AdvChirp_sf2ChirpParamDelta=0;
    AdvChirp_sf3ChirpParamDelta=0;
    AdvChirp_lutResetPeriod=4;
    AdvChirp_lutParamUpdatePeriod=1;
    AdvChirp_lutPatternAddressOffset=0;
    AdvChirp_numPatterns=4;
    AdvChirp_lutBurstIndexOffset=0;
    AdvChirp_lutSfIndexOffset=0;
    AdvChirp_lutChirpParamSize=0;
    AdvChirp_lutChirpParamScale=0;
    AdvChirp_maxTxPhShifIntDither=0;
    #end

    #
    #Advanced chirp Profile config LUT parameters
    #Each data parameter is 4 bits
    AdvChirpLUT_ProfileConfig_LUTAddrOff=0;
    AdvChirpLUT_ProfileConfig_Data1=0;
    AdvChirpLUT_ProfileConfig_Data2=1;
    AdvChirpLUT_ProfileConfig_Data3=2;
    AdvChirpLUT_ProfileConfig_Data4=3;
    #end

    #
    #Advanced chirp Start Freq config LUT parameters
    #The Start Freq data is in GHz
    #Each data parameter is 1 or 2 or 4 bytes depending on ParamSize
    # ParamSize Size in bytes
    # 0 4
    # 1 2
    # 2 1
    AdvChirpLUT_StartFreqConfig_LUTAddrOff=4;
    AdvChirpLUT_StartFreqConfig_ParamSize=1;
    AdvChirpLUT_StartFreqConfig_ParamScale=0;
    AdvChirpLUT_StartFreqConfig_Data1=-0.000001;
    AdvChirpLUT_StartFreqConfig_Data2=0.000000;
    AdvChirpLUT_StartFreqConfig_Data3=0.000001;
    AdvChirpLUT_StartFreqConfig_Data4=-0.000001;
    #end

    #
    #Advanced chirp Freq Slope config LUT parameters
    #The Freq Slope data is in MHz/us
    #Each data parameter is 1 byte
    AdvChirpLUT_FreqSlopeConfig_LUTAddrOff=12;
    AdvChirpLUT_FreqSlopeConfig_Data1=-0.050;
    AdvChirpLUT_FreqSlopeConfig_Data2=0.000;
    AdvChirpLUT_FreqSlopeConfig_Data3=-0.050;
    AdvChirpLUT_FreqSlopeConfig_Data4=0.050;
    #end

    #
    #Advanced chirp Idle time config LUT parameters
    #The Idle time data is in us
    #Each data parameter is 1 or 2 bytes depending on ParamSize
    # ParamSize Size in bytes
    # 0 2
    # 1 1
    AdvChirpLUT_IdleTimeConfig_LUTAddrOff=16;
    AdvChirpLUT_IdleTimeConfig_ParamSize=0;
    AdvChirpLUT_IdleTimeConfig_ParamScale=0;
    AdvChirpLUT_IdleTimeConfig_Data1=0.01;
    AdvChirpLUT_IdleTimeConfig_Data2=0.02;
    AdvChirpLUT_IdleTimeConfig_Data3=0.00;
    AdvChirpLUT_IdleTimeConfig_Data4=0.01;
    #end

    #
    #Advanced chirp ADC time config LUT parameters
    #The ADC start time data is in us
    #Each data parameter is 1 or 2 bytes depending on ParamSize
    # ParamSize Size in bytes
    # 0 2
    # 1 1
    AdvChirpLUT_ADCTimeConfig_LUTAddrOff=24;
    AdvChirpLUT_ADCTimeConfig_ParamSize=0;
    AdvChirpLUT_ADCTimeConfig_ParamScale=0;
    AdvChirpLUT_ADCTimeConfig_Data1=0.02;
    AdvChirpLUT_ADCTimeConfig_Data2=0.01;
    AdvChirpLUT_ADCTimeConfig_Data3=0.00;
    AdvChirpLUT_ADCTimeConfig_Data4=0.01;
    #end

    #
    #Advanced chirp Tx Enable config LUT parameters
    #Each data parameter is 4 bits
    #b0:TX0 ; b1:TX1; b2:TX2
    AdvChirpLUT_TxEnConfig_LUTAddrOff=32;
    AdvChirpLUT_TxEnConfig_Data1=7;
    AdvChirpLUT_TxEnConfig_Data2=3;
    AdvChirpLUT_TxEnConfig_Data3=1;
    AdvChirpLUT_TxEnConfig_Data4=2;
    #end

    #
    #Advanced chirp BPM Enable config LUT parameters
    #Each data parameter is 4 bits
    #b0:TX0 ; b1:TX1; b2:TX2
    AdvChirpLUT_BpmEnConfig_LUTAddrOff=36;
    AdvChirpLUT_BpmEnConfig_Data1=7;
    AdvChirpLUT_BpmEnConfig_Data2=3;
    AdvChirpLUT_BpmEnConfig_Data3=1;
    AdvChirpLUT_BpmEnConfig_Data4=2;
    #end

    #
    #Advanced chirp Tx0 Phase Shifter config LUT parameters
    #The phase shifter data is in degrees
    #Each data parameter is 1 byte
    AdvChirpLUT_Tx0PhShiftConfig_LUTAddrOff=40;
    AdvChirpLUT_Tx0PhShiftConfig_Data1=5.625;
    AdvChirpLUT_Tx0PhShiftConfig_Data2=11.250;
    AdvChirpLUT_Tx0PhShiftConfig_Data3=16.875;
    AdvChirpLUT_Tx0PhShiftConfig_Data4=16.875;
    #end

    #
    #Advanced chirp Tx1 Phase Shifter config LUT parameters
    #The phase shifter data is in degrees
    #Each data parameter is 1 byte
    AdvChirpLUT_Tx1PhShiftConfig_LUTAddrOff=44;
    AdvChirpLUT_Tx1PhShiftConfig_Data1=0.000;
    AdvChirpLUT_Tx1PhShiftConfig_Data2=5.625;
    AdvChirpLUT_Tx1PhShiftConfig_Data3=0.000;
    AdvChirpLUT_Tx1PhShiftConfig_Data4=5.625;
    #end

    #
    #Advanced chirp Tx2 Phase Shifter config LUT parameters
    #The phase shifter data is in degrees
    #Each data parameter is 1 byte
    AdvChirpLUT_Tx2PhShiftConfig_LUTAddrOff=48;
    AdvChirpLUT_Tx2PhShiftConfig_Data1=5.625;
    AdvChirpLUT_Tx2PhShiftConfig_Data2=0.000;
    AdvChirpLUT_Tx2PhShiftConfig_Data3=5.625;
    AdvChirpLUT_Tx2PhShiftConfig_Data4=0.000;
    #end

  • Hi,

    Sorry one more question. Do you know if you have IWR6843 ES1.0 or ES2.0. The steps you are referring to in e2e have been tested on ES2.0.

    Thanks

    Yogesh

  • Hi Yogesh,

     I have IWR6843  ES2.0. 

    Thanks

  • Hi,

    Please modify mmwaveconfig.txt:

    IsFlashConnected=0;

    Let me know if this resolves the issue.

    Thanks

    Yogesh

  • Hi Yogesh,

    I have tried your method, but the problem still exists. See the attached picture please.

    Thanks.

  • Hi,

    Now the only reason that I can think of is, if the flash is not completely disconnected and it is not falling to SPI boot mode.

    Thanks

    Yogesh