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.

LMP92066: Calculate LUTs for LMP92066 DAC

Part Number: LMP92066

Hi team ,

       We are using LMP92066 DAC , In these we are able to get internal temperature sensor output . but how we can give the temp output to LUT ( look up table ) ? how to calculate LUT using 12 bit temp output ?

  • Hi Nikhil,

    Looks like a duplicate post:e2e.ti.com/.../3626307

    Section 8.3.2.1 and Section 9.2.1.2 of the LMP92066 datasheet cover this is pretty deep detail, so I recommend that you start there.  Note that this DAC is designed to vary the DAC voltage based on the temperature sensor input.  That means that you must know what you want the dac output transfer function should look like against temperature.  You might be able to find this in your power amplifier's datasheet or you will need to characterize the PA's drain current across temperature to determine your desired curve.

    Thanks,

    Paul

  • hi Team ,

       Thanks for reply .

        We are following below formulae ( attched screenshots ) to calculate LUTs (DEL0  to DEL38) registers .

        I have some douts on these :-

       1) While calculating DEL  registers  Formulae , what is the value of round parameter .

      2) the output of DEL registers ( DEL0 to DEL38 )  are 4 bit using formulae , but actual register is 8 bit , so how we can fill DEL registers (8 bit) ?

      3) After filling some values in LUTs  registers , we are getting some values in DAC0L and DAC0M , DAC1M and DAC1L    is these fine ?  

       

  • Hi Nikhil,

    1. ROUND just means to round the calculated value to the nearest integer.  For example, lets say the baseline value for the DAC (DAC output at 24°C) should be 2.43V.

    BASE = round((2.43V×4096/5V) = round(1990.656) = 1991.

    2. The delta value for each 4°C section is 4 bit, but there are two channels.  Each register store 4 bits for DAC0 and 4 bits for DAC1.

    3. DACxM and DACxL are the DAC outputs as calculated by the ALU from the baseline value and the delta values.

    For example, lets say you want the baseline value (@24°C) to be 2.43V, and you want the output to increase 1 LSB / °C for the entire temperature range for both channels.  You would set the BASE value to be 1991, and the del(x) value would be 0x4.  The DELxx registers would be 0x44 for both channels.

    Once you program that to the LUT, you can read the DACxM and L registers.  If the current temperature was 44°C, then you would see DACxM and DACxL = 1991 + 1LSB×(44°C-24°C) = 2011.

    Thanks,

    Paul

  • Hi ,

      Thanks for the reply .

      Here we are calculating like these :-

      1) for eg. if teperature is 20 . then 

         cG(20) = pBUFF(20) = V DAC (20) = 2.2715832 

         fpDEL(20)= cG(21) - cG(20) =  0.003968518

         DEL(20) =  (0.003968518 * 4096  / 5 )  = 3.251009946  .   

       so for above value we are considering as approx  3  integer , so for DEL(20)  register we are assigning 0x33 value (  for DAC0 and DAC1) .

     2)   But for DEL (19) , DEL(21) , DEL(22),...  registers we are getting near by values (means  integer 3)  so there also we are assigning same value to registers  0x33 .

     3 ) Is these correct method we are following to calculate DEL(0)  to DEL(38) ?  

    4) from previous reply "del(x) value would be 0x4"  how you calculated del(x)= 0x44  with considering of base value ?

    5)  can you please give a example of taking a any temperature value ? 

  • hi team , 

              Please reply on these , we are not able to crack it .

  •   1) for eg. if temperature is 20 . then 

         cG(20) = pBUFF(20) = V DAC (20) = 2.2715832 

         fpDEL(20)= cG(21) - cG(20) =  0.003968518

         DEL(20) =  (0.003968518 * 4096  / 5 )  = 3.251009946  .   

       so for above value we are considering as approx  3  integer , so for DEL(20)  register we are assigning 0x33 value (  for DAC0 and DAC1) .

    This is correct.  You would then continue this calculation for the other DEL registers.

     2)   But for DEL (19) , DEL(21) , DEL(22),...  registers we are getting near by values (means  integer 3)  so there also we are assigning same value to registers  0x33 . 

    I recommend that once you use your calculated value for the cG(x) registers, that way that rounding errors from sequential ranges can be accounted for. 

     3 ) Is these correct method we are following to calculate DEL(0)  to DEL(38) ?  Yes

    4) from previous reply "del(x) value would be 0x4"  how you calculated del(x)= 0x44  with considering of base value? I did not say that del(x) = 0x44, I said that the register DELxx 0x44, where xx is the register name.  For example, if DAC0's del(21) = 0x4 and the DAC1's del(21) = 0xA, then register DEL21 (register 0x57) would be 0xA4.  

    5)  can you please give a example of taking a any temperature value ? I am not sure what you mean - how to read the temperature sensor value? It is located in registers 0x00 and 0x01.

  • Hi team ,

         thanks for the reply ,

     1) Is DELxx register value is different for DAC0 and DAC1 ?

      2) Can you please give a example to calculate DEL(15)  with calculations  (for both channel) ? 

  • Hi Nikhil,

    1. The DELxx register is 8 bits wide.  4 bits are used for the DAC0 coefficient and 4 bits are used for the DAC1 coefficient.  Both coefficients are put in the same register.  

    2. The calculation is the same for del(15) as all the others.  Let's review some aspects of the device:

    1. This device is designed to store a user-defined transfer function to adjust the DAC output based on the measured temperature.  The LMP92066 does not know which PA you are using, or the ideal transfer function - it must be programmed.

    2. The way the transfer function is stored is that you provide a baseline value for the DAC which is the DAC output at 24°C.  You should think of this as the ideal output at room temperature for your PA.  The device will then increase or decrease the output when the temperature changes based on the rates programmed in the DELxx registers.  Think of the units of those register as LSB/4°C.  For example, if the del(x) value is 8LSB/4°C, you are saying that for every 1°C increase in temperature you would like the DAC to increase the output by 2LSB.  When the temperature is 28°C, you would have the DAC = BASELINE+8LSB.  

    Now for the next 4°C you can store a different rate, for example 4LSB/4°C.  Now you are saying that between 28°C and 32°C the output should increase by 1LSB/°1C.  So at 32°C the DAC = BASELINE+8LSB(24°-28°)+4LSB.

    3. This behavior continues as the device gets hotter than 24°C.  The math is similar for when the device gets colder, but you are reducing the BASELINE from room temperature.  

    Thanks,

    Paul

  •    Hi Team , 

          Thanks for reply . Thanks for clearing my doubt . i have small question about transfer function .

          

          1) What is is the meaning of these constant (eg. 5.1 x 10^-10 ,....) in above transfer function ?  If i get these means its easy to calculate a transfer function  for other power amplifier curve ( vdac vs temp ) ?

         2) How  calculated these transfer function from given curve ?

         3) How to take these constants according to vdac vs temp curve of PA?

         

           Thanks in advance !!

             

          

  • Hi Paul ,

        Can you please reply on above post  . so will get clear idea regarding transfer function .

         thanks in advance .

  •  I have created an excel sheet to help convey how this works.  The values that you can adjust are highlighted as blue and green text.

    Think of the baseline values as the anchor point, where the transfer function will pivot around.  The baseline value will always be the DAC output at 24°C.  All of the other fields just set the slope of the line segments.  I have marked them as columns "del(xx) DAC0" and "del(xx) DAC1".  The polarity field sets if the slow will be positive or negative, though always monotonic.

    Please take a look at the attached excel sheet.

    LMP92066 LUT Calculator.xlsx