Fórum témák
» Több friss téma |
Van egy csomó feladat, amire nem elég a 32 bit. Csak azokat nem mikrokontrollerekkel szokták megoldani.
Már a 32 bites busz is akkora címteret tesz lehetővé, aminek teljes kihasználása mikrokontrollerek esetében jelenleg egyszerűen nem reális.
PIC-ek között is érdemes körülnézni, tapasztalatom szerint alacsonyabb fogyasztás érhető el mint ARM kontrollerrel. Csatti2 jól mondja, erre így nehéz válaszolni. Jó lenne tudni, mi a feladat, milyen teljesítmény kell hozzá, milyen perifériákat használnál, lehet-e altatni a kontrollert vagy folyamatosan kell mennie stb...
Pedig igyekeztem, hogy ne legyen full katyvasz, de lényeget láttad így is nem jó a kód.
Az spi kijelzőt nem hajtod non-stop csak frame update-kor meg nem 17*2 byteokat küldesz latch-onként. Én SRAM1-re 10-20k tömböt megállás nélkül söpörtem ki DMA-n maga a kód futott így is csak a MIDI UART-ja ha IT-vel ha DMA-ra (magasabb prioritéssal) raktam valahogy mindig adatvesztés történt és mivel DMA-val sem ment így bus foglaltságra gyanakodtam így átraktam ezt a tömböt SRAM2-be, aztán így se volt teljes a kép így megállítottam a DMA periodikusan. Mivel még ekkor is folyamatosan változott a kód nem tudom, hogy a kód volt a hibás vagy a rossz volt hw kihasználás, de most már más a kód bőven csak tesztelni nem tudok, mert épp a haverom teszteli MIDI oldalról. Persze én is át szoktam állítani az optimalizációt Release-ben, de magam felé elvárás, hogy 2 hw-t (ráadásul mindkettő DMA-val megy) használó kódnak ne "számítson" már az optimalizáció. (-o0-án szerint a GCC katasztrófa, nem teljesen értem, hogy nincs optimalizáció a fordító miért ilyen "hülye") F7-tel pötyögtem már egy kicsit grafikus könyvtár szerűt fejlesztettem rajta mert F746-is kithez jobb kijelzőt adnak mint F429-eshez de ott nem foglalkoztam a cache-el mivel SDRAM-ba ment minden de, gondolom chache-nél DMA előtt cache flush vagy hasonló kell.
Én MZ/MX-re nézve nem éreztem, hogy optimális lenne low-energyre 1 mA alá sosem mentem velük, de a 32MM lehet jobb ezen a téren, de azt meg csak breaboardon használtam. (mondjuk már 2 éve nem néztem a tájékukra az MPLAB X tönkre tett)
De szerintem, ha alacsony energiafogyasztás akkor Silicon Labs nekik a kit-jeik többségén direkt lehet is mérni a fogyasztást és a legtöbb example is arról szól, hogy hogyan tudsz energia optimalizáltan kódót írni. A silabs eredetileg nem gyártott controllert, hanem megvették az energy micro-t a régi név talán utal arra, hogy mi a fő cél ezekben a controllerekben.
A PIC32-t nem ismerem, mert amikor szükségem lett 32 bites teljesítményre, akkorra már annyira megutáltam az MPLAB X-et és az ICD3-at, hogy ARM-ra váltottam. Kisebb PIC-eket használok, azoknak elég jól vissza lehet fogni a fogyasztását.
A PIC programozást nem ismerem és még az is baj , hogy ahhoz kell külön programozó + kicsit macerás (arduino-hoz nem kell). A lényeg az lenne olyan mcu-t használjak ami a legjobb fogyasztást éri el ha pl elemről kell táplálni. Altatni nem akarom. Az stm32 teljesítménybe is nagyon jó állítólag (feladat még nincs egyelőre csak a lehető legkisebb fogyasztású kontrollert keresem)
Idézet: „Altatni nem akarom.” Miért? Összességében az számít a leginkább, hogy mennyit tud aludni a CPU. Idézet: „feladat még nincs” Pedig az sokat számít. Feladathoz érdemes megoldást találni, és nem fordítva.
Én fordítva csinálom . Bármi legyen a cél hardware, plusz fogyasztást még akkor sem akarok ha csak milliwatt-os különbségek vannak.
Szerintem ezt az oldalt kerested.
Az általad említett Cortex M0-nál korszerűbb (nagyobb teljesítményű és kisebb fogyasztásúak) az M0+ sorozat (pl. STM32L0 sorozat, vagy az NXP (leánykori nevén Freescale) Kinetis KL25Z sorozat. Nyilván számít a csíkszélesség is (az STM32U5 sorozatnál írják, hogy 40 nm-es technológiával készül). "Altatni nem akarom" Pedig az energiatakarékos módok az altatást különböző szintjeit jelentik.
Urak, kérdésem lenne. Hoverboardokban használt gd32f103c6t6 vagy c8t6 chipekről lenne szó.
Eddig a kettős meghajtásban az rct 64 lábúak simán programozhatóak voltak st-linkkel. Ezek az egymotoros meghajtók a fenti chipekkel viszont furcsaságokat produkálnak. Egy c8t6-os simán ment, szépen forgatta a kereket, míg a párját (teljesen identikus másik panel) nem is látja a programozó. Nem tud csatlakozni. Ezek önálló egységek... A másik fajta egymotoros paneleken levő c6t6-osakat pedig nem tudja olvasni - írásvédettségre hivatkozva - míg ha kiütöm ezt, akkor tudja...csak éppen a program nem indul el valamiért. Ellenőriztem, jól írja be, legalábbis a flash-t. Utána ismét hibát jelez olvasásra. Mindkét board így viselkedik. Később vettem észre csak, hogy 32f130-as környezetben fordítottam mindent, a c8t6 - ben mégis tökéletesen teszi a dolgát ugyanaz a program. Okozhat ez ilyen hibát? A config byte-ok ugyanott vannak? Tudom és megkaptam már párszor, hogy miért nem a gd hivatalos cuccait használom - de a neten mindenkinek működik ez a klón is. Valami ötlet, hogy mi okozhat ilyen hibát? Mit ellenőrizzek még?
Biztos, hogy GD? Én a CS32F103C8T6 mikrokontrollerrel jártam így. (Sajnos ilyennel küldték STM32 helyett, és későn vettem észre.)
Ez van rászitázva - nincs okom, hogy ne higgyem el.
Nekem eddig nincs jó tapasztalatom a Kínából érkezett STM32 és klónjaival.
Pár éve még rendben voltak. Aztán elkezdték GD majd CS mikrokontrollerekkel kiváltani őket a termékekben. Némelyek még azt is megteszik, hogy lecsiszolják, és rászitáznak mást. Így fordulhatott elő, hogy a szitázás alapján STM32 bluepill nem programozható. A korábbiakkal összehasonlítva gyanúsan más a szitázás kinézete. Szóval ez egy tipp, hogy miért viselkedik az egyik így, a másik úgy.
Sziasztok! Javaslatot szeretnék kérni.
STM32 IC-ket nézegetem, ebből kellene olcsó modul, minél több ADC lábbal. Eddig ezt találtam: Ali: STM32F407VGT6 Ez 3 darab ADC-t tartalmaz, 16 darab 12-bites megosztott csatornán, 2,4 MSPS sebességgel. Ára középárfolyamon 2814 HUF (3 darab esetén). Tudtok ettől olcsóbbat, több csatornával? Szeretném az itthoni 230 Voltos hálózat áramköreit monitorozni. Sajnos a kész eszközök drágák, és kevés csatornásak. Arduino alapok vannak hozzá írva (emonTx, ATmega328-ra), de fenti sokkal gyorsabb processzor. Egyelőre 37 áramköröm van, +3 csatorna kell a 3 fázis feszültség monitorhoz. Áram és feszültség transzformátorokkal akarom kapcsolni a modult a hálózatra. Előre is nagyon köszi!
Megjegyezném, hogy az F407VG-nek csak 25 pinje használható ADC-ként.
A F407ZET-nek viszont 32 pinjére választható ADC bemenet. A nagyobb lábszám miatt az utóbbi ezért jobb választás le3nne! Bővebben: Link
Közben fejlemények vannak
Ami nem csatlakozott, az egyszerűen hibás chip volt, kicseréltem és megjavult - de ezek mind 130-asok voltak, így nem csoda,hogy fut rajta a 130-asra fordított progi. Egy kollegám hívta fel a figyelmemet erre, én vak voltam Szóval valószínű más tipusra írt progit akartam futtatni, már eleve a kortex más (m0 vs. m3).
Nem tudom mi a célod a hálózati áram és feszültség monitorozásával. Amire fel szeretném hívni a figyelmedet, hogy a kommersz trafók viszonylag nagy amplitúdó és fázis hibát visznek bele a mérésbe. Pontos méréshez ezeket ki kell kompenzálni, vagy más, pontosabb leválasztási megoldást kellene keresni.
Sziasztok.
Nézegettem ezt a nucleo panelt. Van hozzá adatlap de azt nem találom , hogy cn7 és cn10 , 40 pines konnektor lábainak mi a szerepe?
Csak saját részre, hobbiból, mert szeretek mérni. Kíváncsi vagyok, mi eszi meg a sok áramot, hol lehetne javítani a fogyasztáson. Illetve lehetne riasztás, ha valamely készülék bekapcsolva felejtődött. Azt láttam, hogy kalibrálni kell ezeket a trafókat. Szoftveresen fogom finomhangolni. Ha 3%-ig beleférek a pontosságba, azt még el tudom fogadni.
Amit találtam ezekhez specit, abban az F407Vx-hez 16 csatornát ír, az F407Zx-hez pedig 24 csatornát. Tudnál linkelni egy olyan specit, amiben 25/32 pin(channel) van?
(tegnap óta az általam linkelt board-hoz a posta 4-ről 66 dollárra ment fel )
Ha kevés az analóg csatorna miért nem használsz cd4067 vagy hasonló analóg multiplexert?
Használd a CubeMX vagy az MCU selector szoftvert! Mindenféle paraméterre lehet szűrni az STM32 MCUkat.
Igazad van 24 ADC pin van. Figyelmetlen voltam és bele számoltam az ADC_EXTIxx-ket is.
Amit tudok ajánlani bővítőt: MCP3008, 8 csatornás ADC, SPI vezérléssel. Nekem ez bevált, jobb mint az I2C-s bővítések.
Az MCP3008 sajnos nem jó nekem, mert csak 10 bites, és lassú (200 ksps max. sampling rate at VDD = 5V• 75 ksps max. sampling rate at VDD = 2.7V). Ahhoz, hogy power factort is számolhassak, minél nagyobb frekvencián kell a mintavételezést csinálni.
A CD4067 multiplexer jó lehet, ott a leglassabb verzió 60 nanosec, tehát 16,6 mega per sec a kapcsolása. Ami az STM32 2,4 MSPS-e felett van.
A multiplexer nem mér csak kapcsolgatja a bemeneteket, utána még ki kel várni az ADC mérés idejét. Ami 12 biten több mint 10 biten.
(Szerintem 10 bit is bőven elég, a 12 biten már a zaj is jóval nagyobb. Ezért több mérés átlagát kel venni, a pontosság kedvéért.) De ha már van 3 + 1 ADC, nem kel kivárni a mérés időt, ha aktiválod a megszakítást, vagy még jobb DMA-ra fűzni a sorozatos beolvasást. Mérhetsz egyszerre 4 bemeneten, közben ki értékelheted az adatokat A hozzászólás módosítva: Márc 17, 2021
"cn7 és cn10 , 40 pines konnektor lábainak mi a szerepe? "
Kivezeti a mikrovezérlő lábait. A 64 vagy még több lábúaknál fontos ez különösen.
Most ez komoly, hogy az 50Hz-et megasample/sec nagyságrenddel akarod mintavételezni? Én lehet hogy abban gondolkodnék, hogy egy SPI-is ADC-t galvanikus leválasztás nélkül megfelelő osztókkal ráakasztanék a 3 fázisú mérendő áramkörre, az SPI-t meg optocsatolókkal oldanám meg, és így a kontroller már galvanikusan független lenne.
Tudtommal ez a 2,4 MSPS eloszlik a csatornákon, tehát pl. ennek a 16-od részét tudom elérni (=150 KSPS), mert belül multiplexel. Az igaz, hogy ezekben van 3 ADC, de a 3. csak 8 csatornás. Az áram görbe pedig tud érdekes lenni egy DC-vel táplált terhelés esetén, ahol jól jön a nagyobb felbontás. például
Ha direkt ADC-vel akarom mérni az ármot, akkor azt invazív kell megoldanom, mangán-réz sönttel. Itt az opto és a csatlakozók árát kell párba állítanom a CurrentTransformer-rel. |
Bejelentkezés
Hirdetés |