Fórum témák

» Több friss téma
Fórum » ARM - Miértek hogyanok
 
Témaindító: gtk, idő: Jún 26, 2007
Lapozás: OK   157 / 157
(#) kapu48 válasza noi hozzászólására (») Márc 17, 2021 /
 
Rosszul kalkulálsz! Mert az ADC1 és ADC2 bemenetei közösek, ezért csak 2*8-al számolhatsz.
Plusz az ADC3, 8 bemenete.
Szerintem: 2.4 * 8 / 3 = 6.4

Ha ezt DMA-val olvasód be egy tömbbe, akkor már csak a kiértékeléssel kel foglalkoznod.
A hozzászólás módosítva: Márc 17, 2021
(#) kapu48 válasza kapu48 hozzászólására (») Márc 17, 2021 /
 
De itt talán érthetőbben el mutogatja: Bővebben: Link
Hozzá fűznem, hogy akár 8 csatornát is be állíthatsz egy ADC-re.
És mind a három ADC mehet egyszerre.
(#) benjami válasza noi hozzászólására (») Márc 17, 2021 /
 
Lehet, hogy szűklátókörű vagyok, de én nem látom értelmét 10ksample/sec-nél nagyobb mintavételezést használni. A belinkelt képeden egy kocka (vagy inkább négyzet) 1msec időtartamot jelent (ha jól tippelek). A 10ksample/sec az kockánként 10 mintát jelent. kizárt, hogy ez kevés legyen (szerintem semennyit nem javulna a pontosság, ha ennél magasabb mintavételi frekvenciát használsz). Ehhez meg bőven elegendő lenne az SPI ADC (szerintem létezik az 12, vagy akár még 16 bitesben is). Ezzel a módszerrel teljesen külön lehetne választani a kontrollertől a mérő részt tartalmazó műveleti erősítőket, AD átalakítókat és az egyéb ahhoz tartozó dolgokat.
(#) Peter65 válasza noi hozzászólására (») Márc 17, 2021 /
 
Szerintem előbb a feladathoz szükséges paramétereket kellene specifikálnod. Az iparban legfeljebb a 20. felharmonikusig (1kHz) szokás foglalkozni az áram felharmonikusokkal, azaz teljesen fölösleges 10ksmp-nél nagyobbal mintavételezni. Ha túlmintavételezni szeretnél a felbontás javítás/zajelnyomás miatt, akkor esetleg lehet nagyobb.
Szerintem fontold meg amit Benjamin javasolt. Én biztosan azt a megoldást választanám, hogy a hálózati feszültség szinten lenne az ADC, vagy inkább több kisebb ADC-s mikrovezérlőt használnék, amiben az egyes méréseknek az offszetelést elvégezném, az esetleges túlmintavételezést kiértékelném, és valamilyen soros felületen átküldeném az aktuális mintát.
(#) noi hozzászólása Márc 18, 2021 /
 
Köszönöm a sok hasznos hozzászólást!

Itt van egy project, ami az eredeti EmonTx megoldásban használt 4 csatornát bővíti fel 12 csatornásra, gyorsabb proceszorral (Ardiuno Due):
Bővebben: Link
Itt a 3 fázisból kettő feszültségét csak becsüli, én azt is mérném.
Van kb. 40 áramköröm a házban.

Aliexpressen nem találok releváns SPI/I2C sok csatornás ADC modult

Az OpenEnergyMonitor oldalon azt írja, hogy 2,5 KSPS-vel tud egyszerre feszültséget és áramot mérni, sima Arduinoval (ATmega328).

Ha csatornánként tudok 10 KPSP-vel mérni (ahogy javasoljátok), az elég lesz (100 mérés/fél hullám).
Tehát egy STM32F407VET6 procinak van 3 darab 12-bites ADC-je, összesen 16 csatorna (láb). Az ADC1 és ADC2 16 csatornás, az ADC3 8, csatolt képen a közösítések. Ezzel mekkora sebességet tudok elérni, csatornánként, DMA segítséggel, ha mind a 16 csatornán folyamatosan mérek? kapu48 számítását jól látom, hogy 6,4 MSPS?

És akkor a csatorna bővítés vagy külső ADC modullal (amit még nem találtam, csak MCP3008-at, külön IC-ként), vagy multiplexer, vagy több lábú STM32 (drágák), vagy több darab STM32-vel lenne megvalósítható...
(#) ha1drp válasza noi hozzászólására (») Márc 18, 2021 / 1
 
Szerintem félreérted. A kontrollerben 3 db ADC van. Ezek egyenként max. 2.4 millió konverzióra képesek másodpercenként. Egy ADC-hez több bemenetet tudsz felhasználni, de ha több bemenetet használsz, akkor a konverzió egymás után fog végrehajtódni, úgy mintha egy multiplexerrel egyesével kapcsolnád a bemeneteket az ADC elé. Természetesen ekkor az első és az utolsó mintavételezés között idő telik el, fázishiba keletkezik.
Sajnos az STM ADC-je igen összetett, jól át kell olvasni hozzá az adatlapot, meg kell érteni a különböző módokat, beállításokat. Az arduino analogRead STM függvénye nem megfelelő a feladathoz.
(#) kapu48 hozzászólása Márc 18, 2021 /
 
Ha szétszórton több helyen és lehetőleg pontosan akarsz mérni?
Akkor inkább több kisseb kártyára szavazok, szétszórva lehetőleg minél közelebb elhelyezni őket a mérendő helyhez. Hogy minél kevesebb zajt vegyenek fel a mérő vezetékek.

Például: ST STM32G4 Nucleo-32 Bővebben: Link

Aránylag olcsók, és mégis gyorsak a 170MHz
A hozzászólás módosítva: Márc 18, 2021
(#) Jonni hozzászólása Márc 19, 2021 /
 
Blue pill.
Itt azt írják, hogy
Idézet:
„Output +3.3V @ 300mA”
ezt a 300mA-t hogy kell érteni? Ennyit tudnak kiadni a digital output lábak? Egyenként? Összesen?
(#) vargham válasza Jonni hozzászólására (») Márc 19, 2021 /
 
Az a regulator szekcióban szerepel. Tehát az 5V->3V3 IC tud ennyit.
A mikrokontroller terhelhetőségéhez nyisd meg az adatlapját, az Absolut maximum ratings fejezetben megtalálod, amit keresel.
A hozzászólás módosítva: Márc 19, 2021
(#) Jonni válasza vargham hozzászólására (») Márc 19, 2021 /
 
Frekvenciafüggő a végeredmény.
16 MHz 14.9mA
72 MHz 50.3mA
(#) jefflynn válasza Jonni hozzászólására (») Márc 19, 2021 /
 
Szerintem ez az áramfogyasztása. Az valóban frekvenciafüggő.
(#) vargham válasza Jonni hozzászólására (») Márc 19, 2021 /
 
Az a CPU mag fogyasztása GPIO terhelés nélkül.
Téged a 37. oldal érdekel.
(#) Jonni válasza vargham hozzászólására (») Márc 20, 2021 /
 
Köszi. Akkor ezt elnéztem
(#) david10 hozzászólása Márc 22, 2021 /
 
Sziasztok,
Nekem is lenne egy kérdésem az ADC-vel kapcsolatban.
NUCLEO-072RB panel GND és PA0 pinek közé bekötöttem egy ellenállásosztó kimenetét amivel tápfeszültséget szeretnék mérni.
A gond az hogy nagyon pontatlanul mér a 12 bites ADC.
Ha a port kap 130mV-ot olyankor az ADC értéke (0-4095 skálán) 0 és 170 között ugrál.
Oszcillószkópom nincs, de szerintem nem a jellel van a baj mivel a feszültségosztó direkt a 470µF-os szűrőkondenzátor közé van bekötve és a feszültségosztó kimenetén (a port/GND között) is van egy 10nF-os kondenzátor, de így is ugrál a mért érték.
Ha letestelem vagy 3.3v-ra kötöm a PA0 lábat olyankor fix 0 / 4095 értéket ad vissza az ADC.
Az ADC-t polling módban használom.
Szerintetek hogyan lehetne az ADC pontosságán javítani?
A választ előre is köszönöm.
A hozzászólás módosítva: Márc 22, 2021
(#) jefflynn válasza david10 hozzászólására (») Márc 22, 2021 /
 
Két lehetőség van. Az első a hardveres probléma, kontakthiba, forrasztási hiba, ezt mi kiszűrni távolról nem tudjuk. A másik, hogy valamit elrontasz az ADC beállításakor, olvasásakor. Tedd fel a forrást, legalább azt ami GPIO-t és ADC-t inicializálja.
(#) david10 válasza jefflynn hozzászólására (») Márc 22, 2021 /
 
Köszönöm a válaszodat, sajnos HW hibának néz ki, ezért nem fogok vele itt spamelni, a TL431 által kiadott feszültséget stabilan méri.

Egy tanács arra az esetre ha más is hasonlóan járna: TL431-el és egy ellenállással érdemes építeni egy 2.5v-os tápot, azt rákötve a GPIO-ra el lehet dönteni hogy pontosan mér-e az uC.

Szerk: a TL431 által kiadott 2.5V-os jelt 3006-3009 közötti értéknek méri a 12 bites ADC, ami bőven megfelel az elvárásnak .
A hozzászólás módosítva: Márc 22, 2021
Következő: »»   157 / 157
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem