Na straně 78 začíná popis registrů, a jestli to chápu správně, tak vzorkovací frekvence se nastavuje v registru pro filtr. Ale ať nastavím do FS [10:0] cokoliv, tak stejně dostanu maximálně 1 - 2 konverze za sekundu v Low power módu. Ve Full power módu to bylo 4 - 5 SPS. Čtu data v continuous módu tak, že mám pro DOUT/^RDY pin nastavené v mikroprocesoru přerušení. Data dostávám správné, akorát z toho A/D převodníka lezou nějak pomalu.
Příklady vyzkoušených nastavení registru 0x21 (Filtr 0)
(vyčítaný kanál je namapovaný na setup 0)
0x0003FF -> 0.25 SPS (1 převod za 4 vteřiny)
0x000000 -> 1 - 2 SPS
0x060180 -> 0.5 SPS (výchozí hodnota podle datasheetu)
0x0603FF -> 0.25 SPS
0x060000 -> 1 - 2 SPS
Na začátku je v datasheetu uvedeno až 19200 SPS ve full power módu nebo 2400 SPS v low power módu, tak kde je těch zbylých 2399 SPS? Jestli to všechno sežere filtr, tak jde nějak vypnout, abych z toho dostal aspoň 100 SPS?
Naposledy upravil ghost07 dne so listopad 12 2022, 14:26, celkově upraveno 1 krát.
CLK_SEL mám nastavený na 0x00 (interní CLK bez výstupu na SPI CLK pin).
Pak mi došlo že mám v kódu inicializovaný další 2 kanály, který jsou namapovaný na setup 1. Když jsem jejich inicializaci zakomentoval, tak jsem z kanálu 0 pak četl s rychlostí kolem 200 vzorků/vteřinu.
Ano, pak jsem se taky dočetl že to pole FS je vlastně dělič
Ale pořád se to nechová předvídatelně, nebo mi něco uniká.
Až se k tomu v pondělí zase dostanu, tak můžu poslat úplnou konfiguraci všech registrů.
Zkrátka, když jsem nastavil FS na 10 (teď myslím v desítkový soustavě, takže 0x00A), tak to četlo cca 200 SPS, ale když jsem nastavil na 1, tak se to naopak zase zpomalilo na cca 150 SPS.
On se tě ani tak neptal jak máš nastavený CLK_SEL, ale jaký máš skutečný clock (signál), jestli je v pořádku… Pusť si ho na pin jestli je ok, a nebo si ho zkus dát úplně zvenku.
Já bych řekl, že otázka byla opravdu jak mám nastavený CLK_SEL (podle toho co je v závorce). Nicméně, programuju to na už hotové desce kde je SCLK pin je spojený s SPI CLK pinem u ESP32, a nevím jak nastavit aby bylo ESP32 jako slave v SPI komunikaci (tedy reagovalo na CLK z A/D převodníka). Když naopak nastavím v A/D převodníku CLK_SEL na externí, tak zase ESP32 negeneruje clk pulzy když nic neposílá nebo nepřijímá, takže ten ADC zase nic nepřevede, protože nemá clk, a nemá clk, protože od něj MCU nic nečte, a MCU od něj nic nečte, protože nemá na DOUT/^RDY 0, protože A/D převodník nemá k dispozici žádný převedený data, protože nemá clk.
Ale stejně si nemyslím že by byl problém s CLK, spíš to vypadá problém u přepínání kanálů. Momentálně s jedním kanálem z toho dostanu na nejvyšší rychlosti ve full power módu 4500 SPS (pětina z toho co uvádí datasheet).
Dobře, s tím by už šlo něco dělat. Ale problém nastává, když přidám další kanály - protože potřebuju data z více kanálů současně.
Pak to ve full power modu klesne z 4500 SPS na 910. Což není polovina jak by člověk čekal. No a po přidání třetího kanálu to klesne na 600. Asi to má něco společného se "settling time" a "dead time" při přepínání kanálu, ale nemůžu pochopit, jak s tím počítat. Uvádí tam že dead time je 95. Ale čeho? ms? us? nějaká konsanta?
Jde o to, že bych rád měl nějaký vzorec, kterým spočítám hodnotu do FS, když budu chtít vzorkovat např. 10 Hz, 20 Hz, 100 Hz...
Edit: ještě dodám že aktuálně použitý filtr je ten defaultní (sinc4)
Edit 2: nenapsal jsem, proč si myslím že je clk v pořádku, že? No myslím si to proto, že když aktivuju jen jeden kanál a nastavím FS hodnoty uvedené v tabulce v datasheetu u popisu sinc4 filtru, tak reálný data rate odpovídá hodnotě v tabulce. Ale funguje to jen pro jeden kanál.
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.