Fórum témák
» Több friss téma |
Igen, SDIO -ban használom. Elm Chan FatFS fájlrendszerével. Itt lehet megnézni.
Az oldalon vannak példaalkalmazások, onnan szedtem le egy STM32-set. CMSIS-t használok, mivel Cortex mikrovezérlőre fejlesztek. De a CMSIS-nek amúgy nincs köze a perifériákhoz. A letölthető pédaprogram pedig használja az ST sztenderd periféria könyvtárát. Meg hasznos lehet elolvasni az SD kártya szabványt is. Abból követhető, hogy pédaprogram mit miért csinál. De igazából a használathoz mindegy. A hozzászólás módosítva: Nov 23, 2016
Áh... Ez a baj. Nem használok CMSIS-t, nincs kedvem megtanulni.
Egyébként mi a véleményed a CubeMX-ről? Szép lassan mintha kezdene jó lenni, egyre több helyen ütközök bele, mint a CMSIS "váltótársára".
Cube MX hatalmas nagy overhead, és számomra kicsit túl van bonyolítva. Viszont az összekatintgatós része (lábkiosztás, órajelezés) nagyon hasznos. De az is CMSIS-t használ.
CMSIS = Cortex Microcontroller Software Interface Standard. Ennek semmi köze ahhoz, hogy milyen perifériakönyvtárakat használok. Sőt, még ahoz sem, hogy milyen mikrovezérlőt. Hisz a CMSIS az ARM-Cortex M magnak a kezelésére van. Nem a perifériákhoz. Szerintem te a Standard Pheripherial Library-vel kevered... Annyi csak a különbség, hogy a CMSIS tartalmaz egy device.h és egy device_system.c/h fájlt. Itt a device helyére az adott típus neve van beírva. De ezek sem perifériakezelő függvények. Ezenkívül még a startup kódban lehet annyi eltérés, hogy a perifériák megszakításvektorának más a sorrendje, de ennyi. Én általában nem használok SPL (standard peripherial library)-t, csak a nagyon bonyolult moduloknél. Egy kicsit sem hiszem el, hogy ezen van mit komolyan megtanulni. Sokkal kevesebb idő "magtanulni", mint mondjuk egy SDIO interfész működést.
Sziasztok!
Tanácsot szeretnék kérni, hogy miként kezdjem el az STM programozást. Több példaprogramot találtam, és az Atollic TrueSTUDIO-ban is van pár, viszont nem fejtik ki hogy mi miért van, tudnátok küldeni valami irodalmat(többet) magyar(angol) nyelven, ami az elejétől esetleg leírja. Van egy ilyenem és egy F411 Discovery boardom, azokat szeretném beüzemelni. Köszönöm a segítséget!
Szerintem nem jó a link..
A hozzászólás módosítva: Nov 25, 2016
Valamiért nem tudtam kijavítani, itt a javított;
link
Idő közben megmértem a F030-asom ACD mérés szórását. A bemenet a 3,3V tápról volt 10k potival leosztva 100nF bemenőkondival és 1us mintavétellel +/-8-10LSB volt a hiba 20 fokon a tápot LD1117AS33TR stabilizálta.
Ha esetleg valakinek a későbbiekben szüksége lesz ilyen infóra.
Elemmel kellett volna ilyen tesztet végezni, a referencia feszültség szintén elemről levéve. Most csak inkább a stabilizátorod zaját mérted meg.
Szia!
Ott valami nagyon el van baltázva. Kb. 2 hónapja mérési jegyzőkönyvet kellett ácsolnom analóg bemenet=>STM ADC hibájáról. +-1-2 bit volt a mért érték, tehát általában 1.3bit volt mérhető. A panelen kapcsolóüzemű táp és elég átlagos OPA hajtotta. (ez alapján nem kellett külső ADC a készülékbe, ez volt a mérési sorozat célja; igazolni, hogy jó az a feladatra) 8-10bit véletlen szerű (tehát matekból nem szűrhető) hibát anno 10 éve egy híres gyártó 24-bites SD-ADC-jénél mértem, nem is használtuk. Ha a referenciafeszed osztod le, akkor is ekkora a hiba?
Szerintem kezdésnek elég lenne az M0/M0+ és egy Nucleo. Fordítónak Atollic vagy Keil. A Keil L0/F0 esetén teljes értékű, nincs 32k korlát.
Keil Getting started
Ezekhez az eszközökhöz csak azért ragaszkodnék, mert az egyetemen is ez lesz/van használva és szeretnék megismerkedni velük
A referenciafesz egyben a tápfesz, itt nincs külön ref táp. AZ volt 3,295V. Amit a tááp ingadozik azt követi az ADC bemenete mivel 10k potival van leosztva neki a fesz.
Help!
Ezek szerint: C library function - printf() Bővebben: Link
Hiányzott a kódból ez:
Idő közben megváltoztattam a negatív véleményem az ARM chipekről. A doksik alapján nagyon jó perifériái vannak, a DMA meg tényleg fantasztikus.
Összeraktam eclipse alatt egy környezetet és megy minden. Elég fusi munka volt az indulás, de már látom a fényt az alagút végén. Kicsit más érzés, amikor az STDERR/STDOUT keresztül jön az eclipse-ig, nyomogatom a debuggert és látom, hogy melyik változónak mennyi az értéke. Nem szoktam ehhez hozzá, simán berakom a breakpoint-ot és megáll a chip ahol szeretném. Emellett az st-link sem 50 vezetékkel megy. 4 vezetéket feldugok, van debug, van programozás, van minden. Bedugom az st-linket USB-re, abba belemegy egy dupont kábel, amit rákötök a chipre és kész. Csak összeütni a környezetet az volt eléggé kiábrándító. Miután viszont elindult, hát egyre pozitívabb a véleményem róla. A hozzászólás módosítva: Dec 10, 2016
Csinálnál róla egy leírást? Linux vagy Win alatt nyomod?
Én EMBitz-et használok (Win10 alatt). Ez egy GCC alapú teljesen ingyenes IDE (saját továbbfejlesztett GCC fordítót használ alapértelmezetten, de támogatja az alap GCC-t és a keil fordítóját is, ezeket nem próbáltam).
A népszerűbb ARM-okhoz template-ket tartalmaz (pl. STM-hez F4-es sorozattal bezárólag), így a projekt létrehozása után egyből fordítható forrást kapunk. Támogatja a debuggolást is. Ráadásul az eclipse-hez képest sokkal kisebb méretű. Indításkor megtévesztően fapadosan néz ki, de nagyon sok mindent tud (egy visual studio-val persze nem ér fel).
Én is az Eclipse-t használom Win7-64bit alatt. Linux alól is próbálkoztam vele, de ott sajnos nem sikerült életre keltenem, valószínűleg verzió problémák miatt. A környezet összerakása tény, hogy nem volt egyszerű, de ha azon túl vagy, és szokod is egy kicsit, kezd használhatónak tűnni.
Kicsit macerás, de egy jó leírás sokat segít:
Bővebben: Link
Linux alatt csináltam, de akkora varázslás, hogy a lépéseit git-repóba is feltöltöttem.
1. arm-none-eabi-gcc telepítése. Itt favágram, mert egyébként is volt Arduino rendszerem, a board manager-en telepítettem az arduino zero panelt. Ide installálódott: ~/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1 . Ha van értelmesebb megoldásod, megoszthatod. 2. Installáltam Linux alatt az eclipse-t, C/C++ environmenttel 3. Az openocd debugger lefordítása Linuxon (több forkja is van a lenti git url működött nekem):
4. Arm eclipse plugin telepítése: - eclipse megnyit - web böngésző: http://gnuarmeclipse.github.io/plugins/install/ - van egy olyan, hogy install gomb. Azt drag & droppal belevarázsolod az eclipse-be 5. Miután települt, az eclipse-ben Install new software - device gdb-t is telepíteni kellett eclipse-ben 6. Az openocd rule-ját telepíteni kell a /etc/udev/rules.d-be (99-openocd.rules) 7. Az openocd rule-ok a plugdev csoportot tartalmazzák, ha nem létezik, csinálj plugdev csoportot és add hozzá magadat tagnak 8. Próbáld ki az openocd-t (blue pill board-ra írom le) Ha képes az stlink-hez kapcsolódni (plug-dev csoport) megnyerted a meccset. Innentől már nem lehet veszíteni. 9. Létrehozol eclipse-ben új C++ projektet STM32F10x-re. Legyen a blinky. A PC12-es portot nekem PC13-ra kellett cserélnem, hogy villogjon. Semihosting-ot be kell mindenképpen állítani. Eszméletlen lassú, de legalább a trace üzeneket átjönnek. Az fprintf iszonyatos lassú, ne használd. Létrehozol egy debugger konfigurációt (kép csatolva), utána elindul a debugger. 10. elindítod a debug-ot és az első sornál meg kell állnia Linkek: ---------------------------- http://gnuarmeclipse.github.io/ http://gnuarmeclipse.github.io/openocd/install/ http://gnuarmeclipse.github.io/plugins/install/ A hozzászólás módosítva: Dec 11, 2016
Húú! Linux?
Rossz álmaimban se jöjjön elő ezek után! Még te fáztál pár hete az ARM-ok programozásától? A hozzászólás módosítva: Dec 11, 2016
Nem értem mire jó a mazo...
http://www.openstm32.org ST által támogatott... a CubeMx project-et generál hozzá....fordul...műkszik gond nélkül !!!
A szomszéd nője mindig zöldebb.
Csomószor mondtam, hogy most elég a Linuxból befejeztem, Windows újraindít, félóra múlva megint Linux. A Windows az semennyire nem áll kézre. Egyébként meg túl olcsó és túl jók az STM32F103C8T6 képességei ahhoz, hogy figyelmen kívül hagyjam. A 12 bites 1 MBPS-es ADC-re gondolok, amit kis trükkel 2 MBPS-re fel lehet tornázni, emellett DMA-zik is. Nem minden IC tudja ezt 700 Ft-ért. Megérte a fáradtságot nekiülni és végigszenvedni az egészet. A hozzászólás módosítva: Dec 11, 2016
Igen, az erre épülő minimum modult a 2$ alatti árával én sem bírtam kihagyni.
A Microchip is gondoskodik arról, hogy a régi felhasználóik új utat keressenek (pl. az antioptimalizálót tartalmazó ingyenes C fordítójukkal, a hibáktól hemzsegő jó drágán árult chipekkel, meg az Atmel felvásárlásával).
Igen az pont a lenti dolgokat csinálja meg next-next-finish jelleggel.
És még ezt fel sem fedezted?:
SysTick timer This timer is dedicated for OS, but could also be used as a standard downcounter. It features: ● A 24-bit downcounter ● Autoreload capability ● Maskable system interrupt generation when the counter reaches 0 ● Programmable clock source 16bits TIM1 - TIM4! Még a beépített RTC-is hasznos dolog! ...! A hozzászólás módosítva: Dec 11, 2016
A SysTick felhasználásához írtam egy kis egyszerű modult, ami maximum 6db. callback függvényt képes hívni meghatározott időközönként, valamint felfelé és lefelé számláló timereket is definiálhatunk benne (6-6darabot).
Tudom hogy létezik futás közben dinamikusan bővíthető és szűkíthető hasonló feladatot ellátó C++ osztály, de annak sokkal több az erőforrásigénye, meg a használata is bonyolultabb. |
Bejelentkezés
Hirdetés |