Skip to content

Dead time reduction #13

@kaklik

Description

@kaklik

Aktuální implementace minimalizuje mrtvou měřící dobu tím způsobem, že hromadí co nejvíce dat v operační paměti a z nich pak vytvoří datovou zprávu kterou buď rychle odešle na UART, nebo uloží na SDkartu.

Takový přístup je do značné míry suboptimální, protože jednak neminimalizuje mrtvou dobu měření úplně a zároveň ji prodlužuje na těžko definovanou dobu, která závisí na měřených datech.

Navíc to komplikuje zacházení s formátem výstupních dat #12

Teoreticky by ale mrtvou dobu mělo jít výrazně omezit vhodnou obsluhou UART. Protože, jednak lze nastavit různou délku bufferu pro UART. Například bootloader pro mightycore má tyhle flagy, které tu velikost bufferu řídí. Velikost bufferu 128 bytes by měla stačit na většinu zpráv, kromě spektrogramů, které se posílají jen zřídka. Navíc u spektrogramů by možná bylo žádoucí, aby zprávy byly nějak komprimovány, protože zpráva spektrogramu obsahuje většinou samé nuly.

Zároveň by mělo být možné UART obsluhovat v časech, kdy probíhá ADC převod. Protože při vzorkování ADC 125 us má MCU při 8 MHz k dispozici 1000 instrukcí mezi každou hodnotou ADC. Za tu dobu může být odesláno celých 14 bitů na UART rychlostí 115200.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FirmwareIssue resolvable by firmware changeenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions