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/AWR1843BOOST: How to increase transfer data size via SPI driver

Part Number: AWR1843BOOST
Other Parts Discussed in Thread: AWR1843

Tool/software: Code Composer Studio

I want to increase transfer data size from 64 bytes to 256 bytes via SPI driver on MasterMode.

Please tell me how to modify it.

  • Hi,
    Are you trying to use in multibuffered mode or in without buffer?
    Transfer size is max 16 bit where in buffered mode you can utilize 256BYtes of SPI_RAM for transmission and to receive the data at SPI_ram first then read by the application to the local memory.

    Regards,
    Jitendra
  • Dear Jitendra,

    I'm working on transmitting the data on SPI but don't know the mode and still have some questions.
    What I want to do is just transmitting the data continuously with 20MHz.

    Q1. Does AWR1843 SPI driver support both "Multi buffered mode" and "without buffer mode"?

    Q2. Would you mind telling me how I can check the current mode?
    Is there any register to indicate the mode?

    Q3. Would you tell me how to use "Multi Buffered Mode"?
    I read the driver source code but couldn't understand how to use.
    If you provide the sample code, that would be very helpful for me.

    Q4. In my understanding so far, there are two modes: one is "multi buffered mode" and the other is "without buffer mode".
    Multi buffered mode can transmit 256 bytes at once, and without buffer mode can transmit 64 bytes with 8 bit or 128 bytes with 16bit.
    Is my understanding correct?

    Q5. I would like to transmit the data on SPI continuously. In this case, would you mind telling me how to implement this kind of function?

    Best Regards,
    chunzhou
  • Hi Chunzhou,

    Q1: Device support both of the SPI modes, however mmWave SDK SPI driver is using it as Buffered mode (master/slave).

    Q2: with the SPI driver it is already set to multi buffered mode. (mibspi_dma.c: MIBSPI_initMaster/MIBSPI_initSlave : ptrMibSpiReg->MIBSPIE[0] =1)

    Q3: register mentioned in above statement.

    Q4: In Multibuffered mode there is temporary 256Bytes of Rx/Tx buffer where data gets stored till application go and read/write on it. and when the SPI clock is available for specific no. of bytes those no. of bytes go out or in. But SPI transfer size can be 8/16 bits at each transfer over external SPI line either buffered/non-buffered.

    Q6: To transfer any data over SPI you need to initiate the transfer, and with current SPI driver every transfer of data is a blocking call (i.e. transfer will completed then only API returns). So in case you want to send continuously data over SPI then better to create a TASK with a loop calling SPI_transfer function but at every iteration update the buffer so that new data goes out (as required).


    Regards,
    Jitendra