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.

AWR2243: SOP Mode for loading from SPI & then communicating via I2C

Part Number: AWR2243

Hello,

I am looking at loading the initial configuration via flash using SPI, but then want to communicate with the processor via I2C. Is this possible?

Can you provide some more documentation on the SOP modes & how to enable the I2C functionality of the device?

Thank you.

  • Hi,

    Our AWR2243 expert will review your question and will get back to you as soon as possible

    thank you

    Cesar

  • Hello,

    Device selects communication interface SPI or I2C at boot time only which is based on SOP setting.

    AWR2243 Datasheet explains this SOP config:

    [SOP2 SOP1 SOP0] = [0 0 1] -> Functional SPI mode
    [SOP2 SOP1 SOP0] = [1 0 1] -> Flashing mode
    [SOP2 SOP1 SOP0] = [0 1 1] -> debug mode
    [SOP2 SOP1 SOP0] = [1 1 1] -> Functional I2C mode

    mmWave DFP provides an example for I2C communication, you can refer (C:\ti\mmwave_dfp_02_02_01_00\ti\example\mmWaveLink_SingleChip_Example)

    loading the initial configuration via flash using SPI,

    Do you mean loading firmware image via sFlash connected with AWR2243 device and later all the device configuration via I2C (post device boot)?

    As switching b/w SPI and I2C is not possible after device booted up. So you can flash the firmware to the sFlash connected to AWR2243 and you can skip firmware download via I2C (which would be slower compare to SPI).

    Hope I'm clear here, let me know if you have any other question.

    Regards,

    Jitendra

  • Additional Info:

    I2C address is being set by i2cAddr in this example which is being handled by FDTI Port driver (available under mmWave Studio Installation)

    C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\ReferenceCode\FTDILib\SourceCode

    Look for these functions rlsI2cWrite(), rlsI2cRead(),  rlsI2CSendByteAndCheckACK() in mmwl_port_ftdi.c file.

  • Hi Jitendra,

    Thanks for the response.

    Do you mean loading firmware image via sFlash connected with AWR2243 device and later all the device configuration via I2C (post device boot)?

    Yes, this is what I am asking for.

    From your reply, it seems this is not possible. However, I don't understand this statement: 

    As switching b/w SPI and I2C is not possible after device booted up. So you can flash the firmware to the sFlash connected to AWR2243 and you can skip firmware download via I2C (which would be slower compare to SPI).

    The reason I wanted the firmware download via SPI is because it is faster. However, there is no SPI master in the system to look at statuses after the device is initialized. This is why I am interested in I2C communication only after the initial firmware is loaded. For instance, there seems to be no way to monitor e.g. temperature sensor readings via I2C if the initial firmware is loaded via SPI.

    In order to support I2C communication to check statuses, etc.,it seems I will have to load the initial firmware using I2C as well. Do you see any alternative option?

  • I meant to say that device supports only one type of communication interface during one boot.

    So it is not possible to first load firmware over SPI and switch to I2C for any device configuration command/response within the same boot.

    There are two options for your requirement

    1. Have a sFlash on the AWR2243 board, where you need to flash the firmware/patch to this sFlash, so at every boot, device itself loads firmware from sFlash. And in this case Host application doesn't need to load the firmware. Then configure the AWR device over I2C (device booted in I2C mode).

    2. Boot the device in I2C mode (SOP:7) and load the firmware/patch over I2C as soon as AWR device is powered on. For AWR2243 ES1.1 device (which is production device), patch size is ~4KB, so loading even I2C shouldn't take long time. And in this case you don't need to spend extra on sFlash component.

    Regards,

    Jitendra