Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

AD7124-4 nastavení vzorkovací frekvence

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další)
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
ghost07



Založen: Feb 19, 2020
Příspěvky: 51

PříspěvekZaslal: pá listopad 11 2022, 19:32    Předmět: AD7124-4 nastavení vzorkovací frekvence Citovat

Ahoj, neporadí někdo jak se nastavuje vzorkovací frekvence u A/D převodníku AD7124-4?
Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ad7124-4.pdf

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? Very Happy 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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
petrfilipi



Založen: Sep 13, 2005
Příspěvky: 2642

PříspěvekZaslal: pá listopad 11 2022, 21:15    Předmět: Citovat

Zkus položit dotaz do Engineer zone u výrobce. Třeba budeš mít víc štěstí než já u firmy Bosch Sensortec, tam můj dotaz na BMX160 ani nezveřejnili.

PF
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
samec



Založen: Dec 19, 2017
Příspěvky: 4120

PříspěvekZaslal: so listopad 12 2022, 11:37    Předmět: Citovat

SF=0x3FF je oproti FS=0x000 tisíc-krát pomalší. Chyba bude niekde inde. Odkiaľ berieš CLK? (CLK_SEL v ADC_CONTROL registri)

A oprav si link na ten datašit, lebo s tou zatvorkou na konci to otvára srandovnú stránku s hláškou o prebiehajúcej odstávke/údržbe.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ghost07



Založen: Feb 19, 2020
Příspěvky: 51

PříspěvekZaslal: so listopad 12 2022, 14:39    Předmět: Citovat

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č Very Happy
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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 381

PříspěvekZaslal: ne listopad 13 2022, 8:10    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ghost07



Založen: Feb 19, 2020
Příspěvky: 51

PříspěvekZaslal: po listopad 14 2022, 17:43    Předmět: Citovat

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. Very Happy

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? Very Happy
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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další) Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

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.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.13 sekund