ATTINY1626 mereni teploty

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Sobota Červen 25 18:39:23 CEST 2022


No, napeti koukam vliv ma, ale tak velky ne, realna teplota je tak 24 st.

 >adm
MCU Voltage: 0x06c4 2.733 V, Cycles: 869
 >adt
Temperature: 0x08c0 +35.2 stC, Cycles: 883
 >adt
Temperature: 0x08c1 +35.2 stC, Cycles: 894
 >adt
Temperature: 0x08b8 +34.7 stC, Cycles: 911
 >adm
MCU Voltage: 0x0873 3.123 V, Cycles: 917
 >adt
Temperature: 0x08b9 +34.1 stC, Cycles: 1021
 >adt
Temperature: 0x08ba +34.1 stC, Cycles: 1030
 >adm
MCU Voltage: 0x0cca 5.077 V, Cycles: 1171
 >adt
Temperature: 0x08a7 +31.8 stC, Cycles: 1178
 >adt
Temperature: 0x08a8 +31.9 stC, Cycles: 1187

Dne 25.06.2022 v 18:33 Pavel Hudeček napsal(a):
> 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;
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list