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   165 / 177
(#) bbalazs_ hozzászólása Jún 8, 2022 /
 
Végülis a kollega ezt javasolta:

#define ILI_WRITE_8BIT(d) {uint8_t arg = d; GPIO_OCTL(ILI_PORT_DATA) = (GPIO_OCTL(ILI_PORT_DATA) & 0xff00) | arg; ILI_WR_STROBE;}

így működik jól. Sort kerítettünk a library-k kérdésére. Valamivel tisztább a kép )
(#) sdrlab válasza bbalazs_ hozzászólására (») Jún 8, 2022 /
 
Ez technikailag ugyanaz az univerzális mód, amit én ajánlottam neked...

Viszont az arg változót ajánlatosabb 16 bitesként deklarálni, az a biztos!
(#) bbalazs_ válasza sdrlab hozzászólására (») Jún 8, 2022 /
 
Köszönöm neked is a választ, a szűk keresztmetszet itt is a tudatlanságom volt.
(#) misi93 hozzászólása Jún 8, 2022 /
 
Sziasztok!
Vannak ezek az ún.: Hoverboard-ok. azoknak a vezérlője általában valamilyen MCU. Jelen esetben STM32F103RCT6. ( nem is lényeges).
Ezt a firmware-t használom kisebb módosításokkal, jól is működik, viszont, van egy fűnyíró motorom amiben nincs Hall jeladó, csak ugye a 3 vezeték a tekercsekhez. Hogyan tudnám azt a projektet átmókolni, hogy hall-jeladó nélkül is működjön, vagy ez nem ilyen egyszerű?
Esetleg elég egy támpont is, hol nézelődjek, vagy miket kellene átírni, módosítani.
A projektben ilyet találtam
Szerintem ez az a rész amit módosítani kellene, de nem tudom, hogyan.
A segítségeteket köszönöm. (nem, várom el, hogy ,megcsináljátok helyettem, elég egy támpont mit kellene, vagy esetleg hogyan induljak el).
Azt elfelejtettem mondani, hogy a fűnyíró motor 7S akkuról ment(28V) a hoverboard vezérlő pedig 10S akkuról megy (42V), ez nem releváns, mert elvileg a vezérlő tud menni alacsonyabb feszültségről is.
A hozzászólás módosítva: Jún 8, 2022
(#) toto válasza misi93 hozzászólására (») Jún 8, 2022 /
 
Nem szívesen mondom ezt, de szerintem nem tudod egyszerűen átmókolni sensorless-re ezt a vezérlőt.
A BLDC motorok vezérlésénél a legnehezebb feladat annak megoldása, hogy megbecsülje a vezérlő, hogy pillanatnyilag hol van a forgórész. A Hall-elemes vagy egyéb szenzoros megoldásoknál ugye nincs ilyen gond, hiszen erre valók az érzékelők.
A sensorless megoldásoknál a BEMF jelet felhasználva számítják ki a motor pillanatnyi helyzetét. Ráadásul a hoverboardnál álló helyzetben is tudni kellene, hogy hol áll a motor, és álló helyzetben nincs BEMF jel. (A fűnyírónál nem gond hogy induláskor megrángatja a forgórészt, és akkor máris van némi indukált feszültség, de ennél a közlekedési eszköznél ilyenkor leesne az ember induláskor) Erre is van módszer, pl. a HFI (high frequency injection), de ez is rengeteg számítás.
Röviden, egy csomó matekot kell végeznie a vezérlőnek, épp ezért azokhoz már - amiket én láttam - legalább STM32F407-t használnak. A forráskódba belenéztem, de semmi hasonlót nem találtam.
Hoppá, most nézem, hogy azt nem is írtad, hogy a motor BLDC lenne. Nem tudom, hogy a fűnyírómotor milyen, ha nem BLDC, akkor felejtsd el, amit fentebb írtam.
A hozzászólás módosítva: Jún 8, 2022
(#) misi93 válasza toto hozzászólására (») Jún 8, 2022 /
 
Oh értem, igazából csak azért gondoltam ezt, mert az eredeti vezérlőjét ( a fűnyírónak) nem tudom életre kelteni, hoverboard vezérlőből meg van pár itthon.
Köszönöm, hogy ránéztél!
(#) benjami válasza bbalazs_ hozzászólására (») Jún 8, 2022 /
 
Ezek után esetleg érdemes megnézni a másik módszerrel is, hogy működik-e, és gyorsul-e valamennyit.
  1. #define ILI_WRITE_8BIT(d) {uint8_t arg = d; GPIO_BOP(ILI_PORT_DATA) = 0x00FF0000 | arg; ILI_WR_STROBE;}
(#) bbalazs_ válasza misi93 hozzászólására (») Jún 8, 2022 /
 
Esetleg betenni 3 hall szenzort?
(#) Jonni hozzászólása Jún 9, 2022 /
 
Sziasztok

Valaki tudja , hogy ARM cortex M4 PWM lábainak hány hertz a frekvenciája?

( NUCLEO-F302R8 panelon van az MCU , de nem találok róla dokumentációt)
(#) sdrlab válasza Jonni hozzászólására (») Jún 9, 2022 /
 
A hozzátartozó TIM előosztó, számláló határozza meg a periódus időt...
(#) vargham válasza Jonni hozzászólására (») Jún 9, 2022 /
 
A timer (PWM) perifériát a gyártó (STM) adja, nem az ARM.
Gyártói dokumentáció:
https://www.st.com/resource/en/reference_manual/rm0365-stm32f302xbc...cs.pdf
https://www.st.com/resource/en/datasheet/stm32f302r6.pdf
(#) vargham válasza sdrlab hozzászólására (») Jún 9, 2022 /
 
És az is számít, hogy az adott TIM milyen órajelről jár. Ez kerül továbbosztásra.
(#) vargham válasza Jonni hozzászólására (») Jún 9, 2022 /
 
Amúgy nem a lábnak van frekvenciája.
Attól is függ, hogy melyik timerről van szó, és honnan kap órajelet.
Használd a CubeMX-et, ott ezek láthatók és állíthatók is.
(#) Jonni válasza vargham hozzászólására (») Jún 9, 2022 /
 
Úgy is fogalmazhattam volna hogy PWM képes kimenetek . A Cube MX et meg csak ez miatt nem akartam telepiteni . De ha nincs más megoldás...
(#) bbalazs_ válasza benjami hozzászólására (») Jún 9, 2022 /
 
Kipróbáltam, 16 bitessé is definiáltam az arg-ot, így is működik!
Ismételten köszönöm mindenkinek a segítséget.
(#) Jonni válasza vargham hozzászólására (») Jún 9, 2022 /
 
Vannak itt 8 Mhz-s frekvenciák is. És ha jól látom ezt már nem is tudja kapcsolni egy IRFZ44N mosfet.
(#) vargham válasza Jonni hozzászólására (») Jún 9, 2022 /
 
Ezt a hozzászólásodat nem egészen értem. Sok vagy kevés a 8 MHz? A mellékelt képen mondjuk az látszik, hogy mindegyik timert 64 MHz-re állítottam...
Van egy órajel, amiről működhet egy timer. Ez sok esetben még tovább osztható. Ez lesz a maximális frekvencia. Aztán ahogy növeled a felbontást, úgy csökken tovább a frekvencia. (Ugyanazzal az órajellel sokkal tovább tart elszámolni 4095-ig, mint mondjuk 255-ig.)
Az IRFZ44N nem logic level FET, a VGS feszültsége legyen legalább 10 Volt. Ezt direktben ne probáld egy 3.3 Voltos mikronoktrollerrel kapcsolni, mert sosem fog teljesen kinyitni, és csak fűt, rossz esetben el is ég.
(#) vargham válasza Jonni hozzászólására (») Jún 9, 2022 /
 
Ha leírnád, hogy mi a célod az egésszel, mit szeretnél elérni, akkor segíteni is könnyebb.
(#) Jonni válasza vargham hozzászólására (») Jún 10, 2022 /
 
Kipróbáltam a CubeMX -et és ott nekem is 8 Mhz-t irt ki valamelyik végpontnál. És ezzel azt akartam mondani , hogy sok a 8 Mhz ,mert ennyit nem tud kapcsolni a mosfet . Akkor vennem kell IRLZ44N feteket mert azok legalább logikaiak.


Nem akarok halálcsillagot épiteni ,csak egy arduinonál gyorsabb , pontosabb fejlesztőpanelen akarok kisérletezni
A hozzászólás módosítva: Jún 10, 2022
(#) icserny válasza Jonni hozzászólására (») Jún 10, 2022 / 1
 
Milyen 8 MHz? A MOSFET-nek nem a Timer bemenő frekvenciáját kell kapcsolhatnia.
(#) Jonni válasza icserny hozzászólására (») Jún 10, 2022 /
 
Az igazat megvallva az eredeti kérdés az volt, hogy


Idézet:
„Sziasztok

Valaki tudja , hogy ARM cortex M4 PWM lábainak hány hertz a frekvenciája?

( NUCLEO-F302R8 panelon van az MCU , de nem találok róla dokumentációt)”
(#) sdrlab válasza Jonni hozzászólására (») Jún 10, 2022 / 1
 
Talán az alapoknál lenne érdemes kezdened, mi is az a PWM, és hogy működik?! Amíg ezzel nem vagy tisztában, az eredmény is kérdéses lesz....
(#) icserny válasza Jonni hozzászólására (») Jún 10, 2022 / 2
 
Idézet:
„Valaki tudja , hogy ARM cortex M4 PWM lábainak hány hertz a frekvenciája?”
Az attól függ, hogy milyen szoftverkörnyezetben mit állít be a programod.
A timer bemenő frekvenciáját az előosztó leosztja, a timer periódus regisztere pedig még tovább osztja ez lesz a PWM frekvencia

például 72 MHz-es bemenőjel, előosztó=51, periódus=2800, counting=up beállítással közel 500 Hz.
(#) Jonni válasza icserny hozzászólására (») Jún 10, 2022 /
 
Értem . Köszi!

Eredetileg azt hittem olyan egyszerű lesz a válasz mint amit itt írnak a nano pwm pinekről
(#) icserny válasza Jonni hozzászólására (») Jún 10, 2022 / 2
 
Az Arduino nano esetében sem a kártya, vagy a mikrovezérlő tulajdonsága a PWM frekvencia, hanem a programodhoz automatikusan hozzácsapott Arduino programkönyvárak állítanak be valamilyen alapértelmezett frekvenciát.
(#) vargham válasza Jonni hozzászólására (») Jún 12, 2022 / 1
 
Az Arduino egy NAGYON egyszerűsített környezt, egy csomó mindent elrejt. Az AVR-nél is hasonlóan kellene beállítani a PWM frekvenciát, legfeljebb kevesebb osztó meg szorzó van, mint STM32-ben.
Megpróbálhatod Arduinoval használni az STM32-t is, van hozzá támogatás. Minden sokkal egyszerűbb, cserébe kevesebb ráhatásod van a működésre.
(#) Jonni válasza vargham hozzászólására (») Jún 12, 2022 /
 
Egyelőre csak arduinoval használom.

Most elég az is...
(#) icserny válasza Jonni hozzászólására (») Jún 13, 2022 / 2
 
Idézet:
„Egyelőre csak arduinoval használom.”
Ezzel kellett volna kezdeni!!!
Mert az STM32 Arduino Core (amivel az Arduino IDE-t ki kellett egészíteni, hogy az STM32 mikrovezérlőt kezelni tudja) tartalmaz leírást is (Wiki), melynek API references fejezetében ez áll:

Van egy analogWrite(pin, value) függvény, amellyel beállíthatod a PWM frekvenciát.
Az alapértelmezett frekvencia (PWM_FREQUENCY) = 1000 Hz.
(#) Jonni válasza icserny hozzászólására (») Jún 13, 2022 /
 
Köszönöm.
(#) rolandgw hozzászólása Jún 26, 2022 /
 
Üdv!
VSCode, C/C++ Extension Pack, Raspberry Pico SDK, Linux-on. Jól működik.
Nem jövök rá, hogy a CMake-el hogy tudnám kiíratni a memória használatot? (méret, százalék)
CMakeLists.txt fájlba kellene írnom linker opciót...gondolom.
Következő: »»   165 / 177
Bejelentkezés

Belépés

Hirdetés
XDT.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