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.

ADC in cc2530

Other Parts Discussed in Thread: CC2530

Hi guys,

In cc2530 there are 4 ADC configurations namely, 7-bit,9-bit,10-bit,12-bit. The current and power consumption for each configuration is different. Now the problem statement is to design an energy efficient system in which for given temperature value, the ADC has to be operated in any of the 4 configurations. So it is required to sample these signals wisely which gives a correct estimate of actual signal along with maintaining a low-power profile.

I wanted to know are there any algorithms or related study materials for the above problem?. I am tasked up with developing the algorithm based on auto-regression in MATLAB. So please can anybody help with this?

  • You can refer to Chapter 12 ADC in CC2530 user guide.

  • Hi Chen,
    I have referred that and am well aware of programming each individual configurations. However I am developing an application which uses all the configurations energy efficiently at the same time provides an accurate result i.e. 7-bit requires less power while provides less accuracy but 12-bit requires more power but provides better accuracy. Are you aware of any such algorithms ?
  • Actually, I don't understand your question well. What algorithm are you looking for?
  • You will have to choose the config that suites you better and stick to it.

    Any changes in the ADC config during the execution will change your resolution.
    For instance:

    Let's say that you have a thermometer that goes from 0 to 100 celsius and your AVDD and AVSS goes from 0 to 3.3V

    If you use 7bits resolution, you only get values from 0 to 128, where 128 will be 3.3V that will represent 100 Celsius.
    That gives you a resolution of 0,78 celsius per ADC unit.

    If you change the configuration to 12bit, the ADC will count from 0 to 4096. That will give you 0,02 celsius per ADC unit. It's way more precise.

    You should know how much precision is enough for your system.

  • According to Anup's descriptions, he knows about ADC resolution but I am not sure about what's his question.
  • Hi guys,

    Thanks for the suggestions but I feel I am not able to convey my requirements. So I will give it another try.

    In CC2530 there is an inbuilt temperature sensor that can be directly interfaced with inbuilt ADC module. The problem statement is to read the temperature value. However this has to be done energy efficiently.

    We have in CC2530 4 different configurations namely 7,9,10,12-bit configurations. 7-bit configuration yields less accurate result while takes less amount of energy. Similarly 12-bit configuration yields most accurate result while takes more amount of energy. Now an algorithm has to be developed in MATLAB using regression procedure to decide which ADC bit configuration should be used for how much time to give a nearly accurate temperature value at the same time conserving energy.

    So can anybody throw a light on this and help me to carry forward this task? In case of any queries please post in this forum

  • Hi Anup,

    Please note that the internal temperature sensor of the CC2530 is very inaccurate. You're lucky to get +/- 10 degrees C with a single point calibration.

    Outside this it seems your question is a general question about the accuracy and energy cost of sample a signal S with some combination of different resolutions R, right?

    You also state that the amount of time an ADC configuration is used is a variable, but this is not possible with the CC2530 ADC. The ADC will take a fixed and predetermined amount of time to do the conversion (depends on the number of bits).

    For me it's very hard to imagine what you actually want to reach with your proposed algorithm. What is the goal of it? I mean, there already is a relation between accuracy and energy cost. If you want high accuracy you need to sample many bits. If you do this in one conversion of 12 or a hypothetical 2 of 6 it's the same cost of energy. If you want the best of both, simply choose the 9 or 10 bits conversion. If you really want to reach the middle you can use 9 and 10 bits successively and calculate a '9.5 bit' result (though this calculation also has an energy cost).

    Br,

    Sjef.

  • Hi Sjef,
    Thanks for the quick suggestion. It seems that you are unable to capture my idea. I'll try to elaborate it with an example. Consider that the temperature of a place is 31 degrees. Consider that with 7-bit configuration of the ADC the reading is 30.5 degrees , with 9-bit config of ADC the reading is 30.7,with 10-bit config of ADC the reading is 30.75 and with 12-bit config of ADC the reading is 30.9. Now I need to develop an algorithm where in the ADC samples the sensor values based on one of the configurations. To achieve an exact value of the temperature with the permitted tolerance we can use 12-bit ADC. But sampling the sensor values always using 12-bit ADC will consume lot of energy. Instead we sample a few times using 12-bit ADC and for some time using 7-bit ADC and for some time using 9-bit ADC and so on. This conserves the energy.

    Now what I need to do is design an algorithm that decides the number of times I can sample the temperature value using each one of the ADC bit configurations at the same time keeping a check on the overall energy consumption of ADC during this entire process.

    In simple I need to know is there any algorithm that can be used to intelligently sample the temperature values using all the configurations of ADC in CC2530 at the same time the sampling should take care of energy consumption of ADC during the entire sampling process.

    I need to design the algorithm in MATLAB using autoregression.