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/IWR1443: IWR1443 ES2.0 -> ES3.0 problem

Part Number: IWR1443
Other Parts Discussed in Thread: TPS7A88

Tool/software: Code Composer Studio

We have a fully functional project running on IWR1443 ES2.0. When I attempted to convert project to IWR1443 ES3.0, going from SDK 2.0.0.4 to 2.1.0.4, I encountered a problem getting mmwave to work. 

I am currently using a meta image of RSS image and debug image that I found in the SDK and combined using scripts in the SDK. Debug works fine as expected. Only modification in my project was to the mmwave_open function as it has a new parameter in the new version of SDK. Following your example I put NULL pointer in the function call under calibration data. Doing this causes my project to crash. Creating an empty instance of the calibration data structure seems to prevent crashing but results in program being infinitely stuck in MMWave_internalLinkSync function.
After failing to modify my project, I attempted to load your example on my PCB board. I modified your example so it doesn't use any CLI interface but rather has default parameters (from the parameter file located in the project folder) hardcoded and ignoring any CLI calls. This results in the same behaviour. If I pass NULL pointer to the mmwave_open function running crashes. If I pass an empty structure program is infinitely stuck in MMWave_internalLinkSync. 
My parameters for both attempts are:
        rlCalibrationData_t calData;
        memset(&gMmwMCB.cfg.openCfg, 0, sizeof(gMmwMCB.cfg.openCfg));
        gMmwMCB.cfg.openCfg.adcOutCfg.fmt.b2AdcBits = 2;// 16b, Only Supported Mode
        gMmwMCB.cfg.openCfg.adcOutCfg.fmt.b2AdcOutFmt = 1;// Complex Data, Only Supported Mode
        gMmwMCB.cfg.openCfg.chCfg.rxChannelEn = 0x0f;// Enabling All 4 RX Antennas
        gMmwMCB.cfg.openCfg.chCfg.txChannelEn = 1;// Enabling Only 1 TX Antenna
        gMmwMCB.cfg.openCfg.chCfg.cascading = 0x0;// Single SoC "Cascade", Only Supported Mode
        gMmwMCB.cfg.openCfg.chCfg.cascadingPinoutCfg = 0x0;
        gMmwMCB.cfg.openCfg.lowPowerMode.lpAdcMode = 0;// Regular ADC Mode, Only Tested Mode by TI
        gMmwMCB.cfg.openCfg.freqLimitLow  = 770U;
        gMmwMCB.cfg.openCfg.freqLimitHigh = 810U;
        gMmwMCB.cfg.openCfg.disableFrameStartAsyncEvent = false;
        gMmwMCB.cfg.openCfg.disableFrameStopAsyncEvent  = false;
        gMmwMCB.cfg.openCfg.useCustomCalibration        = false;
        gMmwMCB.cfg.openCfg.customCalibrationEnableMask = 0x0;
        memset(&calData, 0, sizeof(calData));

        /* Open the mmWave module: */
        if (MMWave_open (gMmwMCB.ctrlHandle, &gMmwMCB.cfg.openCfg, &calData, &errCode) < 0)
Can you point me to the problem, please? Thanks in advance.
  • Hi Tomislav,

    You are correct in passing the NULL as the calibration mask parameter. Can you confirm you have passed it as follows?

    if (MMWave_open (gMmwMCB.ctrlHandle, &gMmwMCB.cfg.openCfg, NULL, &errCode) < 0)

    Can you provide any more information for when this happens? This is not expected behavior and I'll need more information in order to assist you.

    Have you tried  this software on an ES2.0 device by chance?

    Cheers,

    Akash

  • Hi Akash,

    we have solved the problem and it seams that it was not SW related but HW related one. The ES3.0 chip is having somewhat greater peaks on RF subsystem init on the +1.3V RF voltages and any voltage drop on this power bank when RF is initialized is causing such problem. Simple improving of decoupling and checking with oscilloscope that there is no significant voltage drop on RF init solved the problem.

    Note for the all developing HW about decoupling:

    - we are using TPS7A88 to power the RF portion of IWR chip

    - voltage is very clean and performance of the chip with this power supply are very good

    - TPS7A88 is sensitive on input decoupling and it creates high voltage drops on output if input decoupling is not sufficient and very close to the IC

    - it is very recommended to use ceramic and bigger tantalum capacitor on the input to guaranty proper operation of the system specially if you have input voltage incoming from other board (like in our system) or over cable. In this case only ceramic capacitors require quite large values due to the ESR characteristics and high current peak during the init of IWR so simple and effective solution is combination of ceramic and tantalum, at least for our case. It was proven on temperature range -40°C to +85°C termo-chamber for proper operation and stability.