mlab-modules / DATALOGGER01

Universal Arduino based data logger to SDcard.
https://www.mlab.cz/module/DATALOGGER01/
GNU General Public License v3.0
1 stars 2 forks source link

Continuous time marks #9

Open kaklik opened 1 year ago

kaklik commented 1 year ago

Při používání se ukazuje, že je v aktuální implementaci poměrně obtížné zkontrolovat, že daná data jsou někam nahraná a vytvořený záznam je proto možné z SDkarty smazat. Takovou kontrolu by bylo vhodné provádět automaticky.

Zaznamenané hodnoty ale musí být unikátní sériovým číslem přístroje a časem měření. Čas měření má ale potíž že je vždycky relativní k nějakému času a není tak zaručeno že na jednom konkrétním přístroji roste spojitě. Navíc může dojít k nechtěné interpretaci takové proměné, jako absolutní čas, což je v naprosté většině případů špatně.

Lepší by proto bylo mít nějakou jinou binární hodnotu, která se spojitě inkrementuje. PX4 to například řeší proměnnou "vehicle lifetime". Nejsem si jistý jak je implementována, ale jejím cílem je zabránit vzniku identických logů v čase.
Spojitá inkrementace by byla ideální, již od výroby nejlépe s nějakým unikátním prefixem (prefix ale asi může být sériové číslo přístroje).

kaklik commented 1 year ago

Částečně tyto požadavky splňuje například součáštka ds1372. Nevýhoda ale je, ze její odpočítaný čas z ní zřejmě lze smazat. Má ale sériové číslo a inkrementace přestane fungovat při hodnotě napájecího napětí pod 1.3V.

kaklik commented 1 year ago

Částečně tyto požadavky splňuje například součáštka ds1372. Nevýhoda ale je, ze její odpočítaný čas z ní zřejmě lze smazat.

Tenhle problém by mělo jít ošetřit dvěma způsoby:

  1. firmware by si poznamenával "poslední použitou" hodnotu čítače do FRAM paměti. Tím by bylo možné ztracený čítač znovu inicializovat bez kolize se staršími zaznamenanými daty.
  2. Čítač přestane čítat při hodnotě napájecího napětí pod 1.3V. Pokud by se do obvodu chytře přidala baterie, podobně jako má nyní RTC obvod, tak by ke ztrátě hodnoty čítače vůbec nemuselo dojít. Možná by stačilo 3V baterii 2032 pouze připojit přes shottkyho diodu do napájení obvodu. Zároveň by pak byla potřeba ještě dioda z napájení obvodu tak, aby baterie nemohla napájet zbytek zařízení. Takto by obvod mohl počítat čas již z výroby, kdy se článek vložený do pouzdra zaplombuje.

Obě tato řešení je navíc možné kombinovat.

kaklik commented 10 months ago

Ještě jsem nyní našel tento obvod, který má podobné vlastnosti, ale zároveň má ještě integrovanou FRAM.