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.

CC1310 High-Speed Communication Interfaces

Other Parts Discussed in Thread: CC1310

Eventually the CC1310 will support fast data rates (~4.4Mbps), however, the UART is capped at 3 Mbps.

As part of my design I would like to route serial data to and from the CC1310 as fast as possible, preferably at/above the max data rate available by the CC1310.

  1. Is it possible to do this with an existing communication interface in the CC1310?
  2. If not, would it be possible to route data using interrupts to GPIO pins? Then, I could communicate to an "interpreting" MCU and then to UART. Although, the extra latency may not make it worthwhile.

Thank you!

  • Hi Austin,

    I only see one possibility to stream an infinite amount of uninterrupted data to and from the CC1310 using existing hardware interfaces above about 3 Mbps.

    The UART has the speed cap you mentioned, so it can't be used. The TI-RTOS SPI driver depends on a set length, taking time to re-init between chunks, meaning you'd lose data. 

    However, if you'd use the underlying SPI DriverLib driver, the SSI peripheral, then you might have a good chance at doing this. 

    What you would do is that you would use the TI-RTOS "Power" module to set a dependency on the SSI module and a constraint on Standby, forcing the CM3 to not be able to enter low power mode. Then you would use the SSI DriverLib methods directly.

    In short, In RX you'd be listening for a RX Data Entry Done ISR, and when you get that you'd use SSIDataPut in a loop to simply send the data to the SPI as fast as possible. When every byte in that data entry is sent, you'd wait for the next ISR and continue sending data on the SPI forever.

    In TX you'd have to set up an infinite data entry and fill up the data entries using SSIDataGet continuously in a similar way.

    Hope this gives you an idea of how you could solve it.

    Please note that we have yet to officially release support for the high-speed API yet, this will be available at a later date. If you want to be an early adopter and have a good business case, please contact your local sales representative directly.

    Best regards,

    Niklas

  • Hi,Niklas,

    Could you tell us what documents can we get the information  about API for HS mode of CC1310?

    Thanks,

    Jason Hu

  • On the latest release of TI-RTOS (2.20), there is an example project that contains implementation of 4MBPS (High Speed mode or HSM) mode among other modes supported on CC13xx.
    The required patches are also part of the TI RTOS installation. Please look for "RF Packet Error Rate Test" example under RF Examples. This mode will be added to studio in future release
  • Niklas Norin said:

    However, if you'd use the underlying SPI DriverLib driver, the SSI peripheral, then you might have a good chance at doing this. 

    What you would do is that you would use the TI-RTOS "Power" module to set a dependency on the SSI module and a constraint on Standby, forcing the CM3 to not be able to enter low power mode. Then you would use the SSI DriverLib methods directly.

    Hi Niklas,

    Where can I find a example of how to "use the TI-RTOS "Power" module to set a dependency on the SSI module and a constraint on Standby"?

    Thank you!

  • Mad River: I assume that this question is tied to your other SPI rate question? Do you want to ensure that the SSI module is not turned off or increase the speed? If the first I believe you should be able to use the Power_setDependency function in TI-RTOS, if the later this will not impact speed.
  • Mad River: I assume that this question is tied to your other SPI rate question? Do you want to ensure that the SSI module is not turned off or increase the speed? If the first I believe you should be able to use the Power_setDependency function in TI-RTOS, if the later this will not impact speed.

    Hi TER,

    I would like to use the SSI driverlib instead of use the TI-RTOS SPI driver to increase the program speed.

    In my program I need to send a buffer throught the SPI peripheral. I am sending it two bytes each time:

    /* Send one word through SPI and return the received word */
    uint16_t spi_send_receive_16bits(SPI_Handle * spiHandle, uint16_t aWord)
    {
      uint16_t rxWord;
      uint16_t txWord;
    
      SPI_Transaction spiTransaction;
    
      txWord = aWord;
    
      spiTransaction.count = 2;
      spiTransaction.rxBuf = &rxWord;
      spiTransaction.txBuf = &txWord;
    
      SPI_transfer(*spiHandle, &spiTransaction);
    
      return rxWord;
    }

    Originally, I was using 3MHz. It was tooking 3,75ms to send the buffer out.

    Now, I am using 12MHz, it is taking 2,96ms to send the buffer out.

    * 3MHz = 3,75ms

    * 12MHz = 2,96ms

    I increased the bitrate 4 times and the time to send the buffer changed just a little.

    I think the problem is due to the control that the driver does to handle the transactions.

    I would like to use the SSI driverlib directly to try to reduce that time to send the buffer.

    Best regards.


  • On the latest release of TI-RTOS (2.20), there is an example project that contains implementation of 4MBPS (High Speed mode or HSM) mode among other modes supported on CC13xx.


    Hi TER,

    I could not find the example you mentioned.

    Is there a example of how to use SSI driverlib directly from TI-RTOS? How to set the peripheral power, etc?