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 Sensor Controller Architecture

Other Parts Discussed in Thread: CC1310

Hi all,


I am conceptually not very clear on the purpose of the 'Sensor Controller' section in CC1310 architecture as shown in the picture below

From what I understood is that the Sensor Controller is a separate autonomous part in the silicon that can offload the task of periodically poll any attached sensor for a reading (using ADC / SPI / I2C etc), thus keeping the main M3 controller free for other important / management tasks.


Based on this understand, I have couple of questions which I am hoping can be answered


1. TI suggests using Sensor Controller Studio to write code for the Sensor Controller Engine. Why is the case? Why cant it be programmed directly from CCS?

2. How is the integration between the Sensor Controller Engine code and my main TI-RTOS code?

3. What if I do not want to use this functionality and want to directly read my sensors using the traditional approach. Is that possible ?

4. If I put my system into a low power sleep mode, would that apply to the Sensor Controller Engine as well or would it continue to operate normally even if my system goes into the mentioned low power mode?


Thanks!

  • Hi,

    The sensor controller is a little bit hard to wrap your head around at first, but once you get it, it's pretty easy.

    1. If you want to use the Sensor Controller, you need to use the Sensor Controller Studio IDE. The sensor controller uses a different instruction set from the main CPU and the IDE generates that code for you. The IDE also generates all the C source files to easily integrate the code into your project. There are more advantages listed in the documentation which you can find on the IT website.
      You can also add more peripherals to your IC if you need more (ex UART, SPI or I2C). These peripherals will be bit-banged by the sensor controller. note: if you use the sensor controller to generate a UART perihperal, you cannot use the sensor controller for anything else.
    2. The integration is quite easy.
      1. You copy the generated files into your project folder.
      2. Insert them into your project (so CCS compiles them). The only file that you do not add to your project is scif_osal_tirtos.c (it's included in one of generated header files).
      3. Choose the place where you will integrate the sensor controller.
      4. Insert two functions for the alert callbacks
        1. void scTaskAlertCallback(void) // when you send an alert from the sensor controller
        2. void scCtrlReadyCallback(void) // when your sensor controller task exits
      5. You can then manage the tasks from the location that you picked previously (you can access the variables from the structure generated by the IDE and so forth.
      6. The best way to find out what you need is to go through the tutorial and look at the examples that are provided with Sensor Controller Studio (the one that I found most useful to understand how the tasks work together is with the Task Control example)
    3. You can definitely use the driverlib to access the ADC directly, but you will be using CPU processing time. Look through the forums for example code.
    4. Another advantage of the sensor controller is that it can run while the main CPU is in sleep mode. I am not familiar with all the settings or how to handle the power modes, but I'm sure somebody here would be able to do that.

    So the best place to start is to download and install the Sensor Controller Studio and look at the examples.

    I hope this helps

    Michel

  • Hi Ankit,

    Can I close this thread out?

    Todd
  • There was a suggested answer and since there has been no active on this thread for more than a week, the suggested answer was marked as verify. Please feel free to select the "Reject Answer" button and reply with more details.