Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Continuous time marks #9

Open
kaklik opened this issue Dec 11, 2022 · 3 comments
Open

Continuous time marks #9

kaklik opened this issue Dec 11, 2022 · 3 comments

Comments

@kaklik
Copy link
Contributor

kaklik commented Dec 11, 2022

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
Copy link
Contributor Author

kaklik commented Dec 11, 2022

Čá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
Copy link
Contributor Author

kaklik commented Jan 9, 2023

Čá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
Copy link
Contributor Author

kaklik commented Oct 19, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant