Periaatteessa vehje on varsin simppeli, prosessorina on MSP430F169 6 MHz kellotaajuudella. Tietokoneliitäntää varten laitoin vehkeeseen USB-sarjaportin FT232-piirillä. RTC:n halusin olevan mahdollisimman tarkka, joten en käyttänyt tavallista kellokidettä, vaan Dallasin TCXO-oskillaattorilla varustettua RTC:tä DS3231. DS3231 speksattu heitto on ±2 ppm 0-40 asteen lämpötiloissa, eli suomeksi ~±1 min/vuosi. RTC antaa myös 1 Hz signaalin MCU:lle loggauksen aikaista ajanlaskennan kellopulssia varten.
Powerointi on pienellä muuntajalla, kun sähköä kuitenkin on yleensä tarjolla. Tämän vuoksi en kovin suureen tehonkulutuksen optimointiin ryhtynyt, vaikka käyttämällä mainittua kellokidettä RTC:nä, virrankulutus olisi varmasti mahdollista saada ainakin 1-2 dekadia pienemmäksi. Superkonkka varmistaa toiminnan lyhyen sähkökatkoksen aikana (ohjelma ei menetä ajantajuaan, eikä logattuja mutta vielä flashaamattomia tietoja). Tietenkin yksi mahdollisuus olisi ollut AC-muuntajasta ottaa verkkosynkka, mutta siinäkin on ongelmansa.
Flash-muistina on Atmelin 32 Mbit (4 megatavua) Dataflash, johon mahtuu 4 kilon sektori/päivä-varauksella vajaat 3 vuotta dataa. Mitään hienoa filesysteemiä en edes harkinnut, koska se ei oikeastaan olisi tuonut paljoakaan lisäarvoa, vehkeen toiminta kun on aika simppeli noin periaatteessa.
Softassa mutkikkuutta tuo se, että vehkeen loggaustoiminto ei saa häiriintyä jos dataa käy purkamassa. Tietenkin helpommalla olisi varmaankin päässyt käyttämällä jotain tarkoitukseen sopiva RTOSia, esim µC/OS II. Mutta tosimieshän tekee tietenkin kaiken itse
SPI- ja I2C-rutiineita debugatessa asiallinen skooppi oli kyllä ihan suorastaan välttämätön (tai sitten en vaan osaa koodata oikein
Sokerina pohjalla laitteeseen on mahdollista kytkeä 1-wire-lämpötila-antureita, joten aion laajentaa systeemiä siten, että myös ulkolämpötilaa voidaan logata samalla. Sähköenergian mittauksesta 1 min resoluutiolla jää sen verran tilaa 4k sektoriin, että kaksi anturia 5 min näytteistyksellä mahtuisi, jos lämpötila tallennetaan 8 bitin tarkkuudella.
Ja sitten muutama kuva:
Jaa niin, puuttuuhan tuosta vielä vaihtoehtoinen oskillaattori reaaliaikakellolle, ds32kHz, mutta sitä ei näillä näkymin tule laitettua. Testasin nopeasti ilman flashille tallennusta, miltä data näyttää, tulos. Idea näyttäisi toimivan ihan ok.
Että tämmöistä tällä kertaa, kiitos jos jaksoitte lukea jaaritteluani tänne asti
t. Janne
Edit: kuvia lisätty & päivitetty




