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   78 / 177
(#) kapu48 válasza cpt.zoltan.simon hozzászólására (») Nov 22, 2016 /
 
(#) SBahadurD válasza cpt.zoltan.simon hozzászólására (») Nov 23, 2016 /
 
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
(#) cpt.zoltan.simon válasza SBahadurD hozzászólására (») Nov 24, 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".
(#) SBahadurD válasza cpt.zoltan.simon hozzászólására (») Nov 24, 2016 / 1
 
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.
(#) silent15 hozzászólása Nov 25, 2016 /
 
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!
(#) zenetom válasza silent15 hozzászólására (») Nov 25, 2016 /
 
Szerintem nem jó a link..
A hozzászólás módosítva: Nov 25, 2016
(#) silent15 válasza zenetom hozzászólására (») Nov 25, 2016 /
 
Valamiért nem tudtam kijavítani, itt a javított;
link
(#) icserny válasza silent15 hozzászólására (») Nov 25, 2016 /
 
(#) cimopata válasza cimopata hozzászólására (») Nov 27, 2016 /
 
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.
(#) Kovidivi válasza cimopata hozzászólására (») Nov 27, 2016 /
 
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.
(#) wbt válasza cimopata hozzászólására (») Nov 27, 2016 /
 
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?
(#) rolandgw válasza silent15 hozzászólására (») Nov 27, 2016 /
 
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
(#) silent15 válasza rolandgw hozzászólására (») Nov 27, 2016 /
 
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
(#) cimopata válasza wbt hozzászólására (») Nov 28, 2016 /
 
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.
(#) kapu48 hozzászólása Dec 1, 2016 /
 
Help!
Ezek szerint: C library function - printf()
Bővebben: Link
  1. unsigned int TimingIncrement;   //      Növekedés
  2. printf("LEDs3-6 ms = %u\n", TimingIncrement);
  3. Mit jelent ez a hiba üzenet?
  4. incompatible implicit declaration of built-in function 'printf' main.c  /STM32F4_Discovery_SysTick/src  line 155        C/C++ Problem
(#) kapu48 válasza kapu48 hozzászólására (») Dec 1, 2016 /
 
Hiányzott a kódból ez:
  1. #include <stdio.h>

(#) csabeszq hozzászólása Dec 10, 2016 /
 
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
(#) cpt.zoltan.simon válasza csabeszq hozzászólására (») Dec 10, 2016 /
 
Csinálnál róla egy leírást? Linux vagy Win alatt nyomod?
(#) csatti2 válasza csabeszq hozzászólására (») Dec 10, 2016 / 1
 
É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).
(#) benjami válasza csabeszq hozzászólására (») Dec 10, 2016 /
 
É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.
(#) rolandgw válasza benjami hozzászólására (») Dec 10, 2016 /
 
Kicsit macerás, de egy jó leírás sokat segít:
Bővebben: Link
(#) csabeszq hozzászólása Dec 11, 2016 /
 
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):
  1. cd ~/src
  2.   git clone https://github.com/gnuarmeclipse/openocd.git
  3.   cd openocd
  4.   ./bootstrap
  5.   ./configure
  6.   make
  7.   sudo make install


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)
  1. openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg

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

debug.png
    
(#) kapu48 válasza csabeszq hozzászólására (») 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
(#) kit6263 hozzászólása Dec 11, 2016 / 1
 
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 !!!
(#) csabeszq válasza kapu48 hozzászólására (») Dec 11, 2016 /
 
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
(#) benjami válasza csabeszq hozzászólására (») 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).
(#) Lucifer válasza kit6263 hozzászólására (») Dec 11, 2016 /
 
Igen az pont a lenti dolgokat csinálja meg next-next-finish jelleggel.
(#) kapu48 válasza csabeszq hozzászólására (») Dec 11, 2016 /
 
É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
(#) benjami válasza kapu48 hozzászólására (») Dec 11, 2016 / 1
 
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.
Következő: »»   78 / 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