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   70 / 177
(#) icserny hozzászólása Jún 11, 2016 /
 
Csináld magad ST-Link/V2 - lusta ember módjára: A fillérekért kapható STM32F103C8T6 kártyából (bluepill) pillanatok alatt ST-LINK V2 (SWD only!) programozót varázsolhatunk egy 100 ohmos ellenállás és négy drót segítségével.
1. Kössük össze a B12 és a B14 lábakat egy 100 ohmos ellenállással!
2. Kössük össze a target áramkörrel: B14 - SWDIO, B13 - SWCLK, GND - GND, 3V3 - VCC

Én az ebben a cikkben hivatkozott firmware-t töltöttem a programozóként használt STM32F103C8T6 mikrovezérlőbe. Ezután az STM32 ST-Link Utility letöltőprogram segítségével programoztam fel egy XNUCLEO-F411RE kártyát kísérlet gyanánt. De létezik már CMSIS-DAP firmware is, szóval lehet válogatni, van választék.

Megjegyzés: A fentebb ismertetett minimalista összeállítás csak STM32 programozásra alkalmas (SWD only). STM8 programozáshoz más lábakat és több ellenállást kell felhasználni. A fentebb belinkelt cikkben található ehhez egy komplett kapcsolás.

Felhasználói kérésre módosítva-
A hozzászólás módosítva: Szept 27, 2019
Moderátor által szerkesztve
(#) icserny hozzászólása Jún 14, 2016 / 2
 
Texas Instruments EK-TM4C123GXL (Tiva Launchpad) kártyára portoltam az usb_dev_keyboard (HID billentyűzet) mintapéldát (CCS 6.1.1 és Tivaware 2.1.2.111). Sajnos, ehhez a kártyához nem tettek közzé ilyen mintaprogramot, ezért a dk-tm4c123g kártya mintapéldáját "vettem kölcsön" a Tivaware mintapélda gyűjteményéből. A hardver különbségek (máshová van kötve a LED és a nyomógomb, nincs grafikus kijelzőm, stb) miatt szükséges változtatások után sem akart USB-re kapcsolódni a kártyám. A végső áttörést az hozta meg, hogy a
  1. // Initialize the USB stack for device mode.
  2. USBStackModeSet(0, eUSBModeDevice, 0);

programsort kicseréltem erre:
  1. // Initialize the USB stack for device mode.
  2. USBStackModeSet(0, eUSBModeForceDevice, 0);


Így már működik! Ha valaki Tiva Launchpad kártyával szenved, figyeljen erre az apróságra!
A hozzászólás módosítva: Jún 14, 2016
(#) icserny válasza icserny hozzászólására (») Jún 15, 2016 /
 
Még egy kis magyarázat az előzőekhez: Az EK-TM4C123G kártyán gyárilag nincsenek beültetve az R25 és R29 jelű átkötések, emiatt nem működik az USB_ID és VBUS monitorozás. Így nem csoda, hogy elrőltetés (azaz a FORCE tag beiktatása) nélkül nem érzékeli a szoftver az USB-re csatlakozást. Bővebben: Tiva C USB Mode Force Device
A hozzászólás módosítva: Jún 15, 2016
(#) kameleon2 hozzászólása Jún 16, 2016 /
 
Sziasztok! Programoztam már pár mikrokontrollert, de az STM világa annyira más, hogy muszáj kérdeznem. Van egy STM F103C8T6 mikrokontrollerrel szerelt ilyen boardom és egy ilyen eszközöm. Tudok velük valamit kezdeni, vagy csak célbadobni lesz jó? Mert hiába a vas, egyszerűen nem találok értelmes, fehér ember számára írt programot és leírást, hogyan lehetne a könyvtámasz funkción kívül bármit is kezdeni velük. Letöltöttem egy c mintaprogramot, de bármilyen ST által ajánlott programba betöltöttem, csak megnyitni és editálni tudtam, lefordítani, letölteni - nem. Tudom, hogy én vagyok alulinformált, de nincs egy normális leírás ezekhez a cuccokhoz? Sok angol oldalt végigszenvedtem - az ST oldalát is, de mintha kínai lenne az angol leírás is és kifejezetten marslakóknak.
(#) icserny válasza kameleon2 hozzászólására (») Jún 16, 2016 /
 
Keil MDK 5 tudja kezelni az Ulink2 eszközt programletöltésre és nyomkövetésre. Az ingyenes változat 32 k-ra limitált. Ahogy a fentebb linkelt lapon is mondják, az alaprendszer telepítése után a Pack Installer segítségével külön kell felrakni a gyártó/típus-specifikus csomagokat. A Keil5/ARM/Boards/ST/ mappában keress egy szimpatikus mintaprojektet!
(#) kapu48 válasza kameleon2 hozzászólására (») Jún 16, 2016 /
 
AZ STM32F103C8T6-ben 64K flash ram van.
Ami már magában is csak minimális feladatokra elég!
Most ezt még megfelezni a Keil kedvéért nagy luxus!
Igaz, hogy az egyik legjobb IDE, de a legdrágább is, és nehezen tanulható!

Másik lehetőség az Ardunio alá is lehet már telepíteni az STM32F103xx kezelő rendszert!
Ingyenes! Kezel minden Flash méretű STM32F103xx korlátozás nélkül.
Az Ulinknek elég 2 vezetéke a programozáshoz, amennyiben tud ST-link-ként üzemelni?

A programról bővebben keres rá: Maple Quickstart Guide
Bővebben: Link

Arduino for STM32
(#) icserny válasza kapu48 hozzászólására (») Jún 16, 2016 /
 
Az ingyenes Keil által nyújtott kódméret a kezdéshez bőségesen elég. Ulink2-t egyébként lehet mással használni?

Később ha megjön az étvágy, egy pár dolláros beruházással lehet másik programozót szerezni, vagy készíteni, s akkor lehet váltani. Újabban az Atollic Truestudio már nem korlátoz, érdemes azzal is próbálkozni.

Az Arduinoval el lehet játszadoznii (kíváncsiságból én is telepítettem az STM bővítményt hozzá), de az ARM Cortex M3 MCU megismeréséhez nem a legalkalmasabb eszköz. Egyébként pedig a használatához még egy bootloadert is rá kell varázsolni a mikrovezérlőre. Ezen az oldalon vagy a GitHUBról szerezhető be.
(#) kapu48 válasza icserny hozzászólására (») Jún 16, 2016 /
 
Ezt jó, hogy említetted: "Újabban az Atollic Truestudio már nem korlátoz"!

Már megyek is letölteni!

Egyébként bármilyen már meglevő Diskoveri borard, amin van ST-link jó az STM32Fxxx-eseket programozni, arduinó alól.
A hozzászólás módosítva: Jún 16, 2016
(#) cimopata válasza kameleon2 hozzászólására (») Jún 17, 2016 /
 
Nekem Keil 5 van egyenlőre elég volt eddig a 32k.
Máshol a http://www.coocox.org/ ajánlották limitálás nélkül.
(#) kameleon2 válasza cimopata hozzászólására (») Jún 18, 2016 /
 
Sziasztok! Köszönöm a tippeket. Letöltögetem őket és próbálkozom.
(#) gtk hozzászólása Jún 18, 2016 /
 
Sziasztok. Valaki probalkozott 32F4-et kivaltani 32F7-el ? Mennyire lab -es periferia kompatibilisek ?
(#) gtk hozzászólása Jún 18, 2016 /
 
Sziasztok. STM32L152 USARTon probalok break condition-t generalni. Mas megoldast nem talaltam, atvaltok GPIO-ra, aztan vissza USARTra. USARTrol GPIOra az atvaltas problema mentes, viszont amikor vissza valtok USARTra, akkor van egy tuske a TX labon. Debgerrel kinyomoztam a hiba forrasat, ez pedig a AFR[2] regiszter irasakor tortenik. A library erre vonatkozo kodjat manualisan optimalizaltam sebessegre, most rovidebb ideig tart az impulus, de eltuntetni sajnos nem sikerult. Az AFR[2] indexeleset kiveve mindent optimalizaltam sebessegre. Valakinek van meg otlete ?
(#) cpt.zoltan.simon válasza kameleon2 hozzászólására (») Jún 18, 2016 /
 
Hol laksz?
3 óra alatt megmutatok annyit hogy meg legyen a kezdő lökés
(#) kameleon2 válasza cpt.zoltan.simon hozzászólására (») Jún 18, 2016 /
 
Szia! Biatorbágyon. Minden segítség jól jön. Nem vagyok teljesen kezdő, de most ez kicsit olyan, mintha repülőt kellene vezetnem B kategóriás jogsival, ráadásul minden megtett kilométerért busás vámot kell fizetnem. Több programnyelvben írtam már programokat. Mikrokontrollert is programoztam és programozok. De azok még hardverközeli eszközök. Beadok az elején 2db 1Ft-ost és kiad egy 2Ft-ost. Ezek az STM procik nekem kicsit olyanok, mintha szőrszálakból kellene parókát ragasztani - leírás nélkül. Azt sem tudom hol van az eleje, hol a hátulja. Letöltögettem pár programot, de alapvető hardveres dolgokat nem találok. Hol lehet a programozót beállítani, portot stb. Miért nem tudok egy sima 5 soros programot lefordítani?... stb. Hogyan tudok egyetlen I/O portot végre működésre bírni? Miért kell 500MB-1GB szoftver egy 32k-s programhoz?
(#) Balázs válasza kameleon2 hozzászólására (») Jún 19, 2016 /
 
Idézet:
„Ezek az STM procik nekem kicsit olyanok, mintha szőrszálakból kellene parókát ragasztani - leírás nélkül.”
A mikrokontroller-specifikus adatlapok böngészése előtt én az javasolnám, hogy kerülj tisztába az ARM architektúrával. Ezen a szinten már nincs túl sok különbség az egyes gyártók termékei között (mivel az ARM csak "írja" a processzormagokat, aztán eladja őket gyártásra), ezért ha architekturálisan átlátod a dolgot, akkor ugyanúgy fogod tudni programozni az éppen kezedbe akadó Cortex-M kontrollert, függetlenül attól, hogy az ST, a Freescale, az NXP, vagy éppen a Texas Instruments gyártotta.

Idézet:
„Miért nem tudok egy sima 5 soros programot lefordítani? Hogyan tudok egyetlen I/O portot végre működésre bírni?”
Ebben is segítene az ARM architektúra ismerete. Itt az egyszerű AVR, PIC stb. mikrovezérlőkkel ellentétben hierarchikus buszrendszer van (AHB-APB), az egyes buszoknak külön órajelük van, ezeket konfigurálni kell, aztán lehet egyesével engedélyezni és beállítani a perifériákat, beleértve a GPIO-t is. Szóval gyanús, hogy az a program, ami elfért öt sorban, ezt nem csinálja meg. De nem akarom azt sugallni, hogy bonyolult, mert nem az. És ehhez érteni kell, mert amikor ezek az IC-k lassan olcsóbbak, mint egy kis nyolcbites PIC, akkor érthető, hogy utóbbiak ipari jelentősége egyre csökken. Egyébként az STM Discovery fejlesztőkártyák nagyon népszerűek, sok példakód található hozzájuk, rajtuk van a debugger is, meg egy csomó periféria, az áruk is igen kedvező (megfelelő forrásból vásárolva), talán jobban jártál volna első körben egy olyannal. De a példakódokat mindenképp tudod használni.

Idézet:
„Miért kell 500MB-1GB szoftver egy 32k-s programhoz?”
Kisebb mikrokontrollereknél sincs ez másként: az Atmel Studio telepítője 898 MB, a Michrochip MPLAB-X 554 MB. De ennek a nagy része a szövegszerkesztő. Ha nagyon mazochista lennél, néhány megabájt is elég lenne a fejlesztéshez. A profi fejlesztőkörnyezetek is a standard eszközöket használják (gcc, make stb.), csak nyújtanak hozzá egy kényelmes felületet. Tehát akár írhatnád a forrásfájlokat és a makefile-t Notepadban, és futtathatnál mindent parancssorból, csak hamar elmenne tőle a kedved.
Ha sokat programozol, akkor valószínűleg ismerős az Eclipse. Én ezt használom, mert megszoktam, és kényelmes, hogy ugyanazt a környezetet használhatom C++, Java, ARM stb. programozásra. Hátránya, hogy kicsit körülményes manuálisan összelapátolni a szükséges komponenseket, és van is egy-két nyűgje. A másik, amit már említettek korábban, az a CooCox. Ezt is próbáltam, telepítés után egyből működött is a Discovery kártyával, nem is kellett semmi mást felrakni. Vagy ha az Atollic újabban tényleg nem korlátoz, akkor az is nagyszerű. Én a kódméret-limites fejlesztőkörnyezetektől tartózkodnék. Egy beágyazott operációs rendszer, egy FAT fájlrendszer-kezelés SD kártyához, egy kis GUI, és már ki is nőtted. Még ha most nem is célod az ilyesmi, ha egy későbbi projektben mégis kevésnek bizonyulna, akkor nagyon nem lesz kedved új programot keresni, és megtanulni használni...
(#) Balázs válasza gtk hozzászólására (») Jún 19, 2016 /
 
Az utasításkészlet visszafelé kompatibilis, és az ST honlapja szerint lábkompatibilitás is van. Ez utóbbiról bővebben nem tudok nyilatkozni, mert F7-est egyelőre csak fejlesztőpanelen használtam. HAL szinten programozva sok különbséget nyilván látni. A táblázat szerint a perifériák többsége regiszterszinten kompatibilis.
(#) Balázs válasza Balázs hozzászólására (») Jún 19, 2016 /
 
Idézet:
„HAL szinten programozva sok különbséget nyilván látni.”

Nyilván nem látni, bocs.
A hozzászólás módosítva: Jún 19, 2016
(#) kameleon2 válasza Balázs hozzászólására (») Jún 19, 2016 /
 
Köszönöm a válaszokat! A Texas Launchpad volt az első olyan hardver, ami kicsit macerásabb szoftver hátteret használt, de úgy látom az megvan ARM-hez is - Ez az IAR . De valóban limites -igaz ezt még legalább tudtam használni, mert jók voltak a leírások. A Parallax propellerhez elég volt egy fapados 6,5Megás program és minden azonnal működött. Ezért sajnálom, hogy ennyire túlbonyolítják már a hardveres eszközök programozását is - szoftverrel. Már akkor is csóváltam a fejem, amikor az első Pentiumos alaplapokhoz HTML telepítőt adtak. Szerintem nem túl átgondolt megoldás. - Persze moroghatok én, ha a világ nem efelé halad.
(#) gtk válasza Balázs hozzászólására (») Jún 19, 2016 /
 
A kodban CMSIS van hasznalva. Ha at akarom tenni a kodot F7-re, akkor a CMSIS fuggvenyeket is le kell cserelni, vagy azok parameter kompatibilisek ? Vagy ez a CMSIS verziojatol fugg ? Nem kovettem azota a verziokat, azt hiszem en az 1.1.0-at hasznaltam. Koszi.
A hozzászólás módosítva: Jún 19, 2016
(#) Balázs válasza gtk hozzászólására (») Jún 19, 2016 /
 
A könyvtárakat nyilván le kell cserélni, mert teljesen más az utasításvégrehajtás és a memóriakezelés, viszont én közvetlenül a CMSIS-t már régen nem használtam, úgyhogy példákat mondani nem tudok. A HAL-ból kiindulva azt tartom valószínűnek, hogy (legalábbis a kompatibilis perifériáknál) maguk a függvények változatlanok lesznek, csak az inicializáló struktúráknak lesz néhány plusz mezője a bővebb funkciók miatt. Egyébként bivalyerős mikrokontrollerek ezek az F7-esek, grafikus és DSP jellegű feladatokra kiválóan használhatók.
A hozzászólás módosítva: Jún 19, 2016
(#) cpt.zoltan.simon válasza kameleon2 hozzászólására (») Jún 19, 2016 /
 
IO portot úgy kell működésre bírni hogy a Reset and Clock Control (RCC) rész azt hiszem AHB1ENB regiszterében a megfelelő port-ot táppal-órajellel ellátod és bekapcsolod. ARM-nál a perifériák 80%-át fel kell kapcsolni. Utána konfigurálod a port-ot és megy is.

  1. //Init the STATUS LED PF6
  2. RCC->AHB1ENR |= (1<<5); //Enable PortF if still not
  3. GPIOF->MODER    |= (1<<12); //Output:                   PF[6]
  4. GPIOF->BSRRL |= (1<<6); //PF6 ON
(#) kameleon2 válasza cpt.zoltan.simon hozzászólására (») Jún 19, 2016 /
 
Ha idáig eljutnék - az már maga a boldogság Lehet, hogy tényleg a Discovery lesz a megoldás a gyorsabb eredmény érdekében.
(#) rolandgw válasza kameleon2 hozzászólására (») Jún 19, 2016 /
 
Inkább ezt szerintem ,ha már úgy is van egy F103-asod.
(#) kameleon2 válasza rolandgw hozzászólására (») Jún 21, 2016 /
 
Szia! Értem. Akkor ez a változat USB-n keresztül programozható Arduinó keretrendszerrel? Feltételezem akkor ez már tartalmaz egy saját Arduino-t értő szoftvert?
(#) rolie válasza kameleon2 hozzászólására (») Jún 21, 2016 / 1
 
Szia!
Ez egy fejlesztőpanel és egy ST-LINK/V2 programozó egyben. A marás mentén eltörhető, így külön-külön is használható. A programozó részén vannak jumperek, amiket ha leveszel külső eszközt is programozhatsz.
Az Arduino keretrendszerbe integrálható ARM támogatás F103-mal szerelt panelekhez, ehhez itt egy leírás, valamint az egész fórum erről szól.
Pőre és olcsó fejlesztőeszközzel is tele az eBay, erre lehet bootloadert tenni, utána USB-n közvetlenül programozható.
A fentebb linkelt Nucleo board az fdh-nál is megrendelhető, ahogy néztem kicsit olcsóbb is.
Többféle processzorral szerelt Nucleo kapható eltérő képességekkel, de a közösségi támogatás talán ehhez az F103 szériához a legjobb.
Bővebben: Link, Bővebben: Link
(#) rolandgw válasza kameleon2 hozzászólására (») Jún 21, 2016 /
 
Itt az Arduino az Uno-val kompatibilis csatlakozásra vonatkozik.Inkább az Atollic-ot próbáld ki, itt az UM1727-ben megtalálod,hogy tudod a kész projekteket megnyitni.
(#) gtk válasza gtk hozzászólására (») Jún 21, 2016 / 1
 
A megoldas hogy az AF config elott nem szabad H szintre huzni az I/O-t.
(#) kameleon2 válasza rolie hozzászólására (») Jún 22, 2016 /
 
Köszönöm! Azért látom mindenkinek megvan a maga favoritja itt is
(#) rolie válasza kameleon2 hozzászólására (») Jún 22, 2016 /
 
Nemrég az egyetemen kezdtem el ismerkedni én is arm procikkal, F446RE-vel szerelt Nucleo boardunk van pár, illetve saját gyártású panel F103C8T6-tal. Először a System Workbench for STM32 Eclipse alapú környezetben kezdtük programozni, de nem túl egyszerű és bugos is, hamar hanyagoltuk. Gyors eredményeket lehet elérni az mbed.org online compiler segítségével, itt azonban csak adott hardverekre tudunk fejleszteni. Ennek használatáról készítettem egy alapozót a labormérésekhez.
Az Arduinoba pár napja kalapáltam bele az ARM támogatást és az STM32Duino okosságait. Ma sikerült a saját hardverre lefordítani a bootloadert ami a saját hardverünkkel is remélhetőleg kompatibilissé teszi a dolgokat. A puding próbája holnap következik (főleg hogy az eddig Atmelre működő könyvtárak ezután is működnek-e).
Túl nagy tapasztalatom a programozásával még nekem sincs, de a fórumtársak is felvonultattak jópár lehetőséget amiből kedvedre válogathatsz.
(#) cimopata hozzászólása Jún 26, 2016 /
 
Üdv.

STM32 procival játszok továbbra is. Kérdésem hogy most tűnt csak fel az adatlapban a bemeneteket védő dióda nem VDD-re hanem VDD_FT re van felhúzva. Ez az után tűnt fel hogy a kísérleti panelemen 12V-os bemenet és a proci bemenet közé tettem egy 10k ellenállást mondván a belső dióda majd megfogja 3,8V körül de 8,6V-ot mérek. Az látom hogy Vdd_ft magasabban lehet de hogy ennyivel? Elviseli ezt még a bemenet?
Következő: »»   70 / 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