ATTINY1626 mereni teploty

Pavel Hudeček edizon na seznam.cz
Sobota Červen 25 18:33:37 CEST 2022


Taky jsem na to kdysi narazil a finální odpověď byla, že kalibrační 
hodnoty jsou pro jiné napájecí napětí. Myslím že pro 3,0 V a já měl 5. 
Takže je potřeba si ten offset a násobící koeficient udělat vlastní.

PH

Dne 25.06.2022 v 16:24 Jaroslav Buchta napsal(a):
> Zkousim pouzit interni senzor a pri aplikaci vypoctu podle DS dostavam 
> teplotu o cca 10 stC vyssi.
>
> Necekam zazraky, ale kdyz uz maji ve flash korekcni koeficienty z 
> vyroby, tak bych cekal, ze to okolo bezne pokojove teploty bude 
> fungovat lib, zvlast, kdyz v DS je odchylka tusim max 3 stupne.
>
> Nenapada nekoho, kde je chyba? Algoritmus vypoctu mam trosku upraveny 
> a je tam akumulace ADC 16x ale puvodni podle DS  funguje stejne. MCU 
> bezi na 2MHz a netrpi samoohrevem. Jinak ADC funguje na ostatni mereni 
> skvele a presne podle vypoctu.
>
>
>
>                         case 3:        // temperature measurement
>                             adctemp_raw = 
> (uint16_t)ADC_0_get_conversion_result();
>                             {
>                                 int8_t sigrow_offset = 
> SIGROW.TEMPSENSE1; // Read signed offset from signature row
>                                 uint8_t sigrow_gain = 
> SIGROW.TEMPSENSE0; // Read unsigned gain/slope from signature row
>                                 uint16_t adc_reading = adctemp_raw >> 
> 6; // 10-bit MSb of ADC result with 1.024V internal reference
>                                 adc_temp = (float)(adc_reading - 
> sigrow_offset);
>                                 adc_temp *= (float)sigrow_gain; // 
> Result might overflow 16-bit variable (10-bit + 8-bit)
>                                 adc_temp /= 256.0F;
>                                 adc_temp -= 273.15F;
>                             }
>                             break;


Další informace o konferenci Hw-list