ATTINY1626 mereni teploty

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Sobota Červen 25 16:24:04 CEST 2022


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