Noggrann termometersensor med LMT70?
Postat: 23 maj 2018, 19:30:14
Tänkte summera mina erfarenheter av att få till en noggrann termometersensor för att mäta vattentemperatur och lufttemperatur.
Mina krav var att sensorn inte skulle vara för dyr, liten nog att montera på en kabel direkt, fungera väl i -10C till +50C, vara enkel att koppla in på en uC och att den skulle ge hög upplösning och stabilitet i temperaturvärden. Gärna strömsnål!
Tidigare har jag haft mycket goda erfarenheter av https://datasheets.maximintegrated.com/ ... S18B20.pdf som jag mätt vattentemperatur med i flera år utan problem. Formfaktorn har varit den typiska man hittar på ebay i "rostfritt stål”-rör på ledning. Denna sensor är enkel att ansluta till arduino eftersom det finns flera bra kodbibliotek för 1-wire. Vad jag inte gillar med DS18B20 är att dels noggrannheten på +/-0.5C antagligen inte stämmer för de enheter jag lekt med, en DS18B20 till en annan så kan det diffa +/-1C ibland. Det kan handla om att jag köpt skräp från kina förstås. Upplösningen som går att få ur DS18B20 är ok med 0.0625°C delta i 12-bitars läge men eftersom noggrannheten ligger långt ovanför detta är det inte riktigt meningsfullt att mäta med sån upplösning. Sen så är den lite jobbig att koppla in på en uC där inga kodbibliotek för 1-wire redan finns. Den drar ungefär 1mA när den mäter vilket är för mycket för att ha igång konstant i en batteridriven tillämpning, den drar dessutom 1uA i standby.
Jag vill helt enkelt ha högre upplösning och högre noggrannhet, strömsnålare och en enklare programmering.
Då hittade jag LMT70. Specen på http://www.ti.com/product/LMT70 låter väldigt bra:
±0.05°C (typ) or ±0.13°C (max) from 20°C to 42°C
Low Power Supply Current: 9.2 µA (typ)12 µA (max)
Shutdown Current 50nA
Outputen är en spänning där exv 30 grader är 943.227mV och –5.194 mV/°C (runt 30 grader), bara att läsa med ADC och konvertera till degC
Har man bara en tillräckligt bra ADC eller en förstärkare för sitt mätområde kan man få riktigt noggrann och högupplöst temperaturdata. Kopplar man in den på en 12-bit ADC på en CC1350 uC borde det gå att få +/-0.2C noggrannhet enligt TIs application note. Det handlar ju lite om hur bra ADCn är förstås, det är små förändringar som ska mätas och en 12-bit adc kanske kan mäta med en upplösning av mV.
Strömsnål, högre upplösning och noggrannhet än en redan högupplöst och noggrann ADC på en CC1350 uC och snorenkel programmering. Det här får testas!
Nästa steg blev då att börja bygga en sensor.
LMT70 är en verkligen minimal krets med 4 bollars BGA så ett PCB behövs för att ha en chans att löda ihop den. Kolla gärna in erfarenheterna från http://elektronikforumet.com/forum/view ... =2&t=90845 inklusive mina egna. Mitt pcb kan hittas här: https://github.com/mik4el/lmt70-mini-pcb beställde detta från OSHPark som inte kan göra så små PCBs så fick göra PCBt till minsta storlek 0.25” x 0.25" och en lödstencil från OSHStencils. Jag ville ha ett litet PCB så den termiska massan av PCBt ska påverka LMT70n så lite som möjligt. Jag klippte bort de onödiga PCB-delarna och började lägga på lödpasta: Väldigt jobbigt att handha ett så litet PCB. Dags för lite komponenter. Notera att kondensatorn är 0603, LMT70n på varje kort syns knappt! Sen började helvetet med att löda på ledningar. Måste göra hålen i pcbt större så det blir mer lättjobbat eller ha så stora hål så kabeln kan lödas direkt på kortet. Tanken var att att ha en tunn kabel som sen löds ihop med den tjockare kabeln så den tjockare kabeln inte värmer upp PCBt . Var tvungen att lägga på lite smältlim så jag kunde labba med korten. Skulle kört lite epoxi istället så hade jag kommit undan med en liten mindre limklick. Fick bara till 2 av 3 kort tyvärr. Krävdes lite pill med varmluften för att få det att funka men en LMT70 hade en lödbrygga som jag inte kunde få bort. Återigen, mycket litet footprint och mycket svårjobbat. Sen på med utomhostelekabel för de fyra ledarna (TAO, GND, VDD, T_ON): Lite värmeledande epoxi (Loctite Hysol 9497) på LMT70-delen, krympslang och en kk-kontakt i andra änden så är sensorn klar: Konstruktionen känns rimlig men återstår att se hur den funkar. Jag får ju vettiga mätvärden av den men har ingen referens att jämföra med.
Så, hoppas det var intressant!
Några frågor jag har nu:
Jag undrar om ni har några tips på hur jag kan mäta och verifiera prestandan på sensorn?
Vad tror ni om LMT70, kan den göra ett bra jobb som jag tänker mig den?
Jag står som sagt Inför att göra ett nytt PCB, några tips på hur jag kan förbättra nuvarande pcbt?
Att göra och uppdatera tråden med:
Mäta mot referens
Långtidstesta
Göra nytt pcb som är enklare att jobba med och är optimerad för utomhustelekabel
Mina krav var att sensorn inte skulle vara för dyr, liten nog att montera på en kabel direkt, fungera väl i -10C till +50C, vara enkel att koppla in på en uC och att den skulle ge hög upplösning och stabilitet i temperaturvärden. Gärna strömsnål!
Tidigare har jag haft mycket goda erfarenheter av https://datasheets.maximintegrated.com/ ... S18B20.pdf som jag mätt vattentemperatur med i flera år utan problem. Formfaktorn har varit den typiska man hittar på ebay i "rostfritt stål”-rör på ledning. Denna sensor är enkel att ansluta till arduino eftersom det finns flera bra kodbibliotek för 1-wire. Vad jag inte gillar med DS18B20 är att dels noggrannheten på +/-0.5C antagligen inte stämmer för de enheter jag lekt med, en DS18B20 till en annan så kan det diffa +/-1C ibland. Det kan handla om att jag köpt skräp från kina förstås. Upplösningen som går att få ur DS18B20 är ok med 0.0625°C delta i 12-bitars läge men eftersom noggrannheten ligger långt ovanför detta är det inte riktigt meningsfullt att mäta med sån upplösning. Sen så är den lite jobbig att koppla in på en uC där inga kodbibliotek för 1-wire redan finns. Den drar ungefär 1mA när den mäter vilket är för mycket för att ha igång konstant i en batteridriven tillämpning, den drar dessutom 1uA i standby.
Jag vill helt enkelt ha högre upplösning och högre noggrannhet, strömsnålare och en enklare programmering.
Då hittade jag LMT70. Specen på http://www.ti.com/product/LMT70 låter väldigt bra:
±0.05°C (typ) or ±0.13°C (max) from 20°C to 42°C
Low Power Supply Current: 9.2 µA (typ)12 µA (max)
Shutdown Current 50nA
Outputen är en spänning där exv 30 grader är 943.227mV och –5.194 mV/°C (runt 30 grader), bara att läsa med ADC och konvertera till degC
Har man bara en tillräckligt bra ADC eller en förstärkare för sitt mätområde kan man få riktigt noggrann och högupplöst temperaturdata. Kopplar man in den på en 12-bit ADC på en CC1350 uC borde det gå att få +/-0.2C noggrannhet enligt TIs application note. Det handlar ju lite om hur bra ADCn är förstås, det är små förändringar som ska mätas och en 12-bit adc kanske kan mäta med en upplösning av mV.
Strömsnål, högre upplösning och noggrannhet än en redan högupplöst och noggrann ADC på en CC1350 uC och snorenkel programmering. Det här får testas!
Nästa steg blev då att börja bygga en sensor.
LMT70 är en verkligen minimal krets med 4 bollars BGA så ett PCB behövs för att ha en chans att löda ihop den. Kolla gärna in erfarenheterna från http://elektronikforumet.com/forum/view ... =2&t=90845 inklusive mina egna. Mitt pcb kan hittas här: https://github.com/mik4el/lmt70-mini-pcb beställde detta från OSHPark som inte kan göra så små PCBs så fick göra PCBt till minsta storlek 0.25” x 0.25" och en lödstencil från OSHStencils. Jag ville ha ett litet PCB så den termiska massan av PCBt ska påverka LMT70n så lite som möjligt. Jag klippte bort de onödiga PCB-delarna och började lägga på lödpasta: Väldigt jobbigt att handha ett så litet PCB. Dags för lite komponenter. Notera att kondensatorn är 0603, LMT70n på varje kort syns knappt! Sen började helvetet med att löda på ledningar. Måste göra hålen i pcbt större så det blir mer lättjobbat eller ha så stora hål så kabeln kan lödas direkt på kortet. Tanken var att att ha en tunn kabel som sen löds ihop med den tjockare kabeln så den tjockare kabeln inte värmer upp PCBt . Var tvungen att lägga på lite smältlim så jag kunde labba med korten. Skulle kört lite epoxi istället så hade jag kommit undan med en liten mindre limklick. Fick bara till 2 av 3 kort tyvärr. Krävdes lite pill med varmluften för att få det att funka men en LMT70 hade en lödbrygga som jag inte kunde få bort. Återigen, mycket litet footprint och mycket svårjobbat. Sen på med utomhostelekabel för de fyra ledarna (TAO, GND, VDD, T_ON): Lite värmeledande epoxi (Loctite Hysol 9497) på LMT70-delen, krympslang och en kk-kontakt i andra änden så är sensorn klar: Konstruktionen känns rimlig men återstår att se hur den funkar. Jag får ju vettiga mätvärden av den men har ingen referens att jämföra med.
Så, hoppas det var intressant!
Några frågor jag har nu:
Jag undrar om ni har några tips på hur jag kan mäta och verifiera prestandan på sensorn?
Vad tror ni om LMT70, kan den göra ett bra jobb som jag tänker mig den?
Jag står som sagt Inför att göra ett nytt PCB, några tips på hur jag kan förbättra nuvarande pcbt?
Att göra och uppdatera tråden med:
Mäta mot referens
Långtidstesta
Göra nytt pcb som är enklare att jobba med och är optimerad för utomhustelekabel