Fórum témák

» Több friss téma
Fórum » STM32 Discovery Kit programozása
Lapozás: OK   3 / 7
(#) Blade666 válasza mdemcsik hozzászólására (») Okt 17, 2014 /
 
Kártya: STM32F4 Discovery, STM32F407VG mikrovezérlővel.
Szenzor: Sharp 2Y0A02, 20-150cm távolságig. Multiméterrel rámértem, és jól működik, így csak az illesztéssel, vagy a mikrovezérlő konfigurálásában lehet hiba.
A hozzászólás módosítva: Okt 17, 2014
(#) Blade666 hozzászólása Okt 22, 2014 /
 
A gondot egy felhúzó ellenállás okozta, átraktam egy másik lábra, és működik.
(#) mdemcsik válasza Blade666 hozzászólására (») Okt 23, 2014 /
 
hova raktál felhúzó ellenállást? melyik lábra, ADC-re kötötted?
(#) Blade666 válasza mdemcsik hozzászólására (») Okt 24, 2014 /
 
Nem raktam sehova se, a kit PC0 lába van az USB PowerOn-ra kötve egy felhúzó ellenállással, ezért mértem a láb kimenetén 3V-ot, átkötöttem a szenzort PC1-re, átírtam a programot, és működik rendesen az ADC. Bár nem tartom elég stabilnak 20-30mV-okat ugrál...
(#) mdemcsik válasza Blade666 hozzászólására (») Okt 24, 2014 /
 
Ja vágom. Ilyenbe párszor én is belefutottam. Elég hasznos a referencia.
(#) hamby555 hozzászólása Okt 31, 2014 /
 
Üdv!

Valakinek van valami tapasztalata ChibiOS kapcsán?
A suliban ezt erőlteti a tanár. STM32F407 Discovery board + ChibiOS.
Előre is köszönöm.

Üdv!
(#) m.joco hozzászólása Nov 2, 2014 /
 
Sziasztok!

Nemrégiben beszereztem egy STM32F429 Discovery fejlesztőpanelt, mivel érdekelni kezdtek az ARM mikrovezérlők. Így a kezdésnél viszont felmerült egy-két dolog, ami nem világos:
A ST oldaláról letöltött előre megírt kódok között vannak "simák" és HAL jelzésűek. Mi a különbség közöttük? Mi ez a CMSIS?
Truestudio-ban ha létrehozok egy projektet, akkor a header-eket be kell inkludálnom, vagy elég csak a projekthez hozzáadni?

Üdv. mjoco
(#) vzoole válasza m.joco hozzászólására (») Nov 3, 2014 /
 
CMSIS: Cortex Microcontroller Software Interface Standard
Ez egy közös felületű szoftver réteg a Cortex mikrokontrollerekhez.
Lényege hogy a szoftvered könnyen hordozható legyen egyik chip-ről a másikra, akár különböző gyártók között is.
Pl ha egy CMSIS függvénnyel beállítod valamelyik lábat kimenetre, akkor ugyanaz a függvény hívás egy másik gyártó másik chip-jén is beállítja azt a lábat kimenetnek.

HAL: Hardver Abstraction Layer
Lényege ugyan az mint a CMSIS-nek, de ez csak az ST chip-jein belül működik.
Itt szépen leírják: HAL

Én egyiket se használom, így sokkal mélyebben nem ismerem.

Habár a Truestudio-t se használom, de mindenütt be kell include-olni a használt header-eket.
(#) Suncorgo hozzászólása Jan 6, 2015 /
 
Üdv mindenkinek!

Ezeken a discovery paneleken lévő integrált STLINK/V2-vel lehet programozni az összes 8 és 32 bites kontrollert?
Linux alól pl Eclipse-el van valakinek tapasztalata?
(#) vzoole válasza Suncorgo hozzászólására (») Jan 6, 2015 /
 
32 biteseket lehet.
(#) Suncorgo válasza vzoole hozzászólására (») Jan 6, 2015 /
 
Azért kérdezem mert néztem sima (ami csak programozó) ST-link/v2-őt kb 10 rugó. Elvileg ugyan ez a programozó van a discovery kiteken is + a teszt áramkör egy pár perifériával ami mégsem kerül ennyibe mint magába a programozó. Gondolom nem a dobozolás dob az áron ennyit.
(#) Suncorgo hozzászólása Jan 6, 2015 /
 
Erről van valamilyen tapasztalat? Érdemes megvenni? (kép)
(#) Atielektro válasza Suncorgo hozzászólására (») Jan 6, 2015 /
 
Nem ugyanaz van rajta. A discovery-n csak SWD van, azon meg JTAG is. A discovery-vel az összes STM32-öt lehet programozni, de mivel itt csak 1 vonalon csorog az adat, így jóval lassabb, mint a JTAG-es programozó, meg azon van még pár extra funkció is, de ezekkel nem vagyok tisztában. Én többnyire a discovery-ről veszem le az SWD-t és azt használom. Windows alatt uVision Keil-lel gond nélkül működik a dolog.
A hozzászólás módosítva: Jan 6, 2015
(#) Peppe válasza Suncorgo hozzászólására (») Jan 7, 2015 /
 
Nekem van ilyen. Teljesen használható jószág. JTAG SWD megy rajta. Keil, MikroC, IDE szépen megy vele. Olcsóbb mint a gyári ST-link V2 és ugyan azt tudja.
(#) Suncorgo válasza Peppe hozzászólására (») Jan 7, 2015 /
 
Ejj de jó lett volna ha ezt tegnap tudom hogy megbízható ez a kis stick. Én is felfegyverkeztem. Már csak várom hogy ideérjen. Nem a reklám helye:
STLINK/V2
STM32F103C8T6 ARM STM32 Minimum System Development Board

Első körben ezzel akarnám életre kelteni:
Texane/stlink & Eclipse

Ami még nem tiszta: Látom a kis nyákon az USB csatit viszont a kontrollernek 3.3V kell. Van benne stabilizátor?
Mik ezek a BOOT0 és BOOT1 mód? (már így is sokat olvastam de úgy látszik nem eleget... )
A hozzászólás módosítva: Jan 7, 2015
(#) Peppe válasza Suncorgo hozzászólására (») Jan 7, 2015 /
 
Az ST-link V2 nem olcsóbb mint a hazai boltokban

Kis demo panel:
Igen van rajta az alján stab ic.
Boot módokat tudod meghatározni. Igen akkor rosszat olvastál.
Gugli a barátod 'STM32 BOOT mode'
(#) Suncorgo hozzászólása Jan 7, 2015 /
 
Ebben a tutorialban teljesen másképpen állítják be a portot mint itt a hobbin lévő STM32 Discovery cikkben. Bővebben: Link

Ez lenne a CMSYS?
(#) vzoole válasza Suncorgo hozzászólására (») Jan 7, 2015 /
 
Igen.
(#) Suncorgo hozzászólása Jan 8, 2015 /
 
Tudnátok egy pár linket adni STM32 CMSIS könyvekhez? Nem baj ha angol.
pl ez megvan: kép

Vannak még hasonlók?
(#) Suncorgo hozzászólása Jan 8, 2015 /
 
Mi a különbség az alternatív push pull kimenet és a sima push pull kimenet között?
(#) vzoole válasza Suncorgo hozzászólására (») Jan 8, 2015 /
 
Alternatív push pull nincs.

Egy GPIO-nak négy különböző funkciója lehet:
-Input
-Output
-Alternate
-Analog

Az output lehet push-pull vagy open-drain.
(#) Suncorgo válasza vzoole hozzászólására (») Jan 14, 2015 /
 
#define: GPIO_MODE_AF_PP ((uint32_t)0x00000002)
Alternate Function Push Pull Mode

HAL driver doksi 350-edik oldal.
(#) Suncorgo hozzászólása Jan 19, 2015 /
 
Miért nem tudok egy egyszerű 8 bites változót létrehozni?

Fordítási hibát kapok...

  1. #include "stm32f10x.h"
  2.  
  3. GPIO_InitTypeDef GPIO_InitStructure;
  4.  
  5. int main(void)
  6. {
  7.         /* GPIOD Periph clock enable */
  8.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
  9.  
  10.   /* Configure PD0 and PD2 in output pushpull mode */
  11.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  12.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  13.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  14.   GPIO_Init(GPIOD, &GPIO_InitStructure);
  15.        
  16.         uint8_t val = 10;
  17.         val++;
  18.        
  19.         while(1)
  20.         {
  21.                
  22.         }
  23.        
  24. }


User\main.c(16): error: #268: declaration may not appear after executable statement in block
(#) benjami válasza Suncorgo hozzászólására (») Jan 19, 2015 /
 
Elolvastad a hibaüzenetet? Az a baja, hogy a változó deklarációját programutasítás után helyezted el. Tedd az elejére. Tudtommal csak C++ -ban lehet változót a függvény közepén deklarálni, a sima C-ben csak az elején.
(#) Peppe válasza Suncorgo hozzászólására (») Jan 19, 2015 /
 
a "main" cikluson kívülre kell tenni
(#) benjami válasza Peppe hozzászólására (») Jan 19, 2015 /
 
Ha egy változót függvényen kívül deklarálsz akkor globális, ha azon belül, akkor lokális változód lesz. Viszont a lokálist a függvény elején kell deklarálni.
(#) vzoole válasza Suncorgo hozzászólására (») Jan 19, 2015 /
 
Valóban van alternatív push-pull és open-drain kimenet is.
Különbség nincs a sima és alternatív között, csak annyi, hogy alternatív módban egy speciális kimenet a GPIO, így az ahhoz tartozó periféria állítja, nem pedig az ODR regiszter.

C-ben a változókat mindig a függvény elején kell deklarálni.
(#) Suncorgo hozzászólása Jan 20, 2015 /
 
Ez a fügvény elején deklarálás rémlik mikor meg a c-t tanulgattam. Viszont az AVR-ek programozásánál egyáltalán nem sírt hogy nem az elején van deklarálva a lokális változó. Érdekes.

Nézegetem az NVIC megszakítás kezelőt is. Ami nem tiszta hogy ugye van 4 prioritási szint. Gondolom ha a megszakítások egyszerre következnének be akkor a magasabb prioritású (alacsonyabb indexű) handler fut majd le előbb. Viszont mind a 4-nek van még 4 szub prioritása is. Valahogy nem értem, mi a különbség?
(#) Suncorgo hozzászólása Jan 20, 2015 /
 
Most valahogy nem indul a szimulátorom:

  1. void SystemInit (void)
  2. {
  3.   /* Reset the RCC clock configuration to the default reset state(for debug purpose) */
  4.   /* Set HSION bit */
  5.   RCC->CR |= (uint32_t)0x00000001;


rögtön a system init első sorára kapom a hibaüzenetet:
*** error 65: access violation at 0x40021000 : no 'read' permission

próbáltam megadni a memóriatérképet ini fájlban de nem akarja az igazat:
MAP 0x4000, 0x4002

pedig ezt a mikrovezérlőt támogatnia kellene a szimulátornak: Bővebben: Link

Találkoztatok már ilyen hibaüzenettel?

Kipróbálom az IAR-t. Jobb mint a KEIL uVision?
A hozzászólás módosítva: Jan 20, 2015
(#) Suncorgo hozzászólása Jan 20, 2015 /
 
Biztos hogy valami árulás van, bug vagy el van írva valami a gyári fájlokban.

A uVision 4.6-al kézi fájl hozzáadásokkal (periféria driverek, cmsis, startup, config fájlok stb.) megy a szimulátor.

A uVision 5.13-al az előző uVision verzióban létrehozott projectel működik a szimulálás.
Viszont ha végigmegyek az új project varázslón, hozzáadom a komponenseket akkor szépen mindent legenerál, nem kézzel kell hozzáadni mindent csak a main.c-vel kell foglalkozni ezután nem megy a szimulátor. Nézegetem a fájlokat a régi működő és varázslóval létrehozott projectben de eddig még nem láttam eltérést. A fájlverziók dátumok is stimmelnek. Nem értem
A hozzászólás módosítva: Jan 20, 2015
Következő: »»   3 / 7
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