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   116 / 176
(#) don_peter válasza csatti2 hozzászólására (») Ápr 1, 2018 /
 
  1. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOG | RCC_APB2Periph_GPIOE |
  2.                          RCC_APB2Periph_GPIOF | RCC_APB2Periph_AFIO, ENABLE);

Az FSMC init résznél van, szóval ezzel nincs gond.
A hozzászólás módosítva: Ápr 1, 2018
(#) don_peter válasza csatti2 hozzászólására (») Ápr 1, 2018 /
 
No meglett a baj, bár még kicsit kusza a dolog, de már tudok beírni.
Az érdekesség még az, hogy ahová nem írok adatot, oda is íródik, amit nem értek.
Itt figyelni kell arra, hogy mekkora egy szektor? Mármint meg van adva, hogy mekkora egy adott terület amit írni kell? (LAP méret)

AsynchronousWait-ot kellett még kikapcsolni és azonnal lehetett írni a címet.
Még egy kérdés, ha az egész 1MB tárhelyet akarom használni azt hogyan tudom megoldani?
Mert gondolom simán nem deklarálhatok egy 1MB-os változót.
Vagy itt csak a címre hívatkozva kell eltárolni az adatot és nem változóként felvenni?

Pl.:
  1. *(u16 *) ((u32)0x64000000 + 0x00) = 0x1111;
  2. *(u16 *) ((u32)0x64000000 + 0x01) = 0x2222;
  3. ...stb

Ha jól értem.

ui: ja és most már megy 50MHz-en is.
Levettem a sebességet, 3 0 3-ra mint, ahogy nálad is van.
Most szépen működik..
Örülök neki nagyon.......
A hozzászólás módosítva: Ápr 1, 2018
(#) csatti2 válasza don_peter hozzászólására (») Ápr 1, 2018 /
 
De, deklarálhatsz egy 1MB-os változót. Ezért mutattam a section-os példát. Valahogy be lehet állítani IAR-nél is biztosan.

*(u16 *) ((u32)0x64000000 + 0x02) = 0x2222;

Nem kell figyelni semmiféle szektorra. Ha jól konfiguráltad, ugyanúgy kezelheted mint a beépített SRAM-ot. pl. használhatod DMA-val MEM2PERI -módban is. Változókat deklarálhatsz, amik ezen a területen helyezkednek el, stb. (lásd ismét section).

Örülök, hogy megoldódott...
A hozzászólás módosítva: Ápr 1, 2018
(#) don_peter válasza csatti2 hozzászólására (») Ápr 1, 2018 /
 
Nekem az egész területet kell egyben kezelnem.
8MB-os SRAM-ot rendeltem, az lesz majd rajta és abba tolom be az adatot.
Kell majd a DMA is, de az később, mert gondolom az nem lesz egyszerű.
Most gyakorlok ezzel az 1MB-os SRAM-al, és majd tovább lépek lassan.

A lényeg, hogy nem lesz aprózva a meómra terület, mindig csak egyben az egész vagy egy része lesz írva, de mindig az elejétől.
(#) csatti2 válasza don_peter hozzászólására (») Ápr 1, 2018 /
 
Akkor egyszerű, simán kezded a terület kezdőcímétől és folyamatosan tologatod a címet, ahogy feltöltöd. Egyébként a DMA elég egyszerű és közben nagyon hasznos.
(#) don_peter válasza csatti2 hozzászólására (») Ápr 1, 2018 /
 
Na akkor ennek örülök..
Akkor majd a DMA-val kereslek majd, mert kelleni fog.
Köszi az eddigi türelmed és segítséged.
(#) csatti2 válasza don_peter hozzászólására (») Ápr 1, 2018 /
 
Szívesen.
(#) don_peter hozzászólása Ápr 2, 2018 /
 
Úgy létszik új MCU, új hibák..
Idézet:
„Warning[Pe223]: function "FSMC_SRAM_WRITE" declared implicitly D:\STMARM\SRAM\app\main.c 75”

Nem igazán értem ezt a sort.
Mi lehet a gond?

Amit tudok:
FSMC_SRAM_WRITE deklarálva van a hozzátartozó FSMC header állományban.
Tehát a prototípus létrehozva, FSMC c állományban pedig megírtam a hozzátartozó rutint is.
Nem értem pontosan mit akar még a fordító, vagy mit vár el a prototípus deklaráláson kívül.
Előre is köszi.
(#) killbill válasza don_peter hozzászólására (») Ápr 2, 2018 /
 
Es #include-olod is a main.c-ben azt a header file-t, amiben a prototipus van az FSMC_SRAM_WRITE fuggvenyhez?
A hozzászólás módosítva: Ápr 2, 2018
(#) don_peter válasza killbill hozzászólására (») Ápr 2, 2018 /
 
Termesztésen, ezért sem értem miért keresi.
IAR-t használok, környeztek.

Main: (a file elején)
  1. #include "includes.h"
includes.h fájlon belül:
  1. #include "fsmc_sram.h"
fsmc_sram.h fájlon belül:
  1. void FSMC_SRAM_Write(u16 data, u32 WriteAddr);
fsmc_sram.c fájlban:
  1. // Egy adat beírása
  2. void FSMC_SRAM_Write(u16 data, u32 WriteAddr)
  3. {
  4.   *(u16 *) (Bank2_SRAM3_ADDR + WriteAddr) = *data;
  5. }
Main hívás:
  1. FSMC_SRAM_WRITE(0x00, 0xFFFF);


Minden elvileg úgy van, ahogyan elvárna azt, de még is valami hibádzik..
A hozzászólás módosítva: Ápr 2, 2018
(#) killbill válasza don_peter hozzászólására (») Ápr 2, 2018 / 1
 
A a kis- és nagybetű megkülönböztetendő.
(#) don_peter válasza killbill hozzászólására (») Ápr 2, 2018 /
 
Köszi a rávilágítást. Figyelmetlen voltam.
(#) don_peter hozzászólása Ápr 8, 2018 /
 
Srácok, STM32F407-hez keresek letölthető példa progikat.
Tetszene ha le tudnám tölteni a teljes példa könyvtárat, de egyelőre nem találom.
Valaki esetleg tudna segíteni a letöltésben?
Előre is köszi..
(#) kapu48 válasza don_peter hozzászólására (») Ápr 9, 2018 /
 
Libraries and tutorials for STM32Fxxx series by Tilen Majerle.
Bővebben: Link

STM32F407VG
Bővebben: Link
A hozzászólás módosítva: Ápr 9, 2018
(#) don_peter válasza kapu48 hozzászólására (») Ápr 9, 2018 /
 
Egy nagyobb pakk nem létezik ehhez?
Van az IAR IDE-ban egy letöltő rész ott szerepel az összes, de a 4GB amit lehúzott és feltelepített automatikusan, abban egy darab példa sincs.. Fura.
STM32F407ZET6-om van, gyári fejlesztő panelon. Számít, hogy melyik típusra töltök le példa programot? Mármint amit te linkeltél az a VG végződésű én pedig ZE-t használok. (144 pin)

A második linken rengeteget kotortam, de csak linkek vannak, letöltés nem igen vagy nem az ami érdekes lenne. Mutatok pár képet a letöltött 4GB-os "example" csomagról.
Az érdekessége, hogy látja, hogy letöltöttem, de minden könyvtár üres.
A példa könyvtárat megnéztem külön is, sajna üres.
(#) vargham válasza don_peter hozzászólására (») Ápr 9, 2018 / 1
 
Idézet:
„Egy nagyobb pakk nem létezik ehhez?”

Léteik. Letöltöd a CubeMX-et. Telepíted az F4 device pack-t. A telepítési könyvtárban lesz egy halom minta projekt. De közvetlenül is letöltheted.
(#) kapu48 válasza don_peter hozzászólására (») Ápr 9, 2018 / 1
 
Japán oldal, de a Google fordító jól boldogúl vele.
Sok példaprogrammal.
Bővebben: Link
Áramkör STM32F407ZET6_sch.pdf

adatlap datasheet.zip

Mintaforrás és utasítások Minta forrása

STM32F407_example_manual.pdf
(#) cimopata hozzászólása Ápr 11, 2018 /
 
STM32F030-el szerintetek megoldható olyan hogy beállítok az ADC-n egy megszakítást ha a jel meghaladja a megadott értéket akkor az watchdog megszakítás indítson egy DMA adatátvitelt memória-memória irányában úgy hogy beleírnék egy adott beállítás értéket a timer1 kimeneteket vezérlő kapuzás regiszterébe hogy azonnal tiltsa a PWM kimenetet?

Tudom hogy van ilyen bemenet hogy direkt aktív brake input ami azonnal tiltaná a PWM kimeneteket, csak azzal az a baj hogy logikai és amúgy is foglalt a láb.

A túláramvédelmet szeretném gyorsítani a jelenlegi ciklikus árammérés nem a leggyorsabb.
(#) don_peter válasza kapu48 hozzászólására (») Ápr 12, 2018 /
 
Köszi srácok, ez sokat fog segíteni..
Esetleg azt megtudjátok mondani, hogy milyen kijelzőt látok a fejlesztő panelen? (pontos típus érdekelne, vennem kellene belőle)
Amúgy majdnem ugyan ez van nekem is, ami persze 32F407-et illeti, csak az enyémen felül van az SD kártya slot.
Nekem ez van: Bővebben: Link
A hozzászólás módosítva: Ápr 12, 2018
(#) csatti2 válasza don_peter hozzászólására (») Ápr 12, 2018 /
 
Szerintem ez való hozzá, de azért ellenőrizd a lábkiosztást.
https://www.aliexpress.com/item/3-2-inch-TFT-LCD-screen-with-resist...9.html
(#) csatti2 válasza don_peter hozzászólására (») Ápr 12, 2018 / 2
 
Szerintem egyébként nekem is ez van meg.

Az eladó annak idején adott egy csomó dokumentációt hozzá, ha érdekel leszedheted őket az otthoni fájlszerveremről az alábbi linken keresztül.

http://gofile.me/2rInO/Ij0oBo9ZR
(#) don_peter hozzászólása Ápr 12, 2018 /
 
Köszi srácok, ezzel el leszek egy darabig..
Amúgy pont azt nézem, hogy a TFT és a FLASH, SD ramok is az FSMC lábakat használják.
Szerintetek nem lesz ütközés, ha mind két esetleg mind 3 perifériát használnám, ugyan azon a lábakon? Sanszos, hogy az SD és FLASH nem fog össze férni, na de a kijelző?
(#) csatti2 válasza don_peter hozzászólására (») Ápr 12, 2018 /
 
Ha több FSMC-n csatlakoztatott perifériád van, akkor azok értelemszerűen a chip select lábak állapotától függően aktívak (ezeket a mikrokontroller automatikusan kezeli). Bár külső flash-ből csak SPI-osat használtam eddig, de TFT kijelzőt párhuzamosan külső SRAM-mal már használtam gond nélkül FSMC buszon keresztül (az SRAM többek között videopufferként is funkcionált). Attól függően milyen címre hivatkozol, a hardver automatikusan beállítja a chip select-et és az address line-okat, majd utána írja/olvassa a data line-okat. Ezért simán lehet olyan DMA utasítást készíteni, ami a külső SRAM tartalmát áttolja a TFT-re a CPU használata nélkül.
(#) don_peter válasza csatti2 hozzászólására (») Ápr 12, 2018 /
 
Köszi, akkor szerencsére hasonlóan működik mint a PIC-es téma.
Flash és SRAM-ot már használtam 32F103ZE6T-vel, ahogyan nézem nem lesz nagy különbség a kettő eszköz közt. (32F103 és 32F407)
DMA még kiesik egyelőre, ismerkedem elsőnek a környezettel.
(#) kapu48 válasza csatti2 hozzászólására (») Ápr 12, 2018 /
 
Köszönjük!
Ment 1 mancs, az önzetlen megosztásért.

(#) don_peter válasza kapu48 hozzászólására (») Ápr 12, 2018 /
 
Most volt időm megnézni a letöltött állományt.
Ez milyen IDE-hez való példa programok?
IAR-t használok, ehhez szerintem ez nem lesz jó sajna.., vagy van valami trükk?
A hozzászólás módosítva: Ápr 12, 2018
(#) kapu48 válasza don_peter hozzászólására (») Ápr 12, 2018 /
 
A legtöbbje EMBED uVizion, Rövidek és a demó verzió is elég.
Kezdésnek ezt ajánlom.

Később, ha már van kevés gyakorlatod, portól hatód Atolic TrueStudiora őket.
Ez teljesen free az ST32 procikra.
A CubeMX-el pedig kiválaszt hatol, a fenti kettőn kívül még számos IDEt.
Elkészíti neked az alapbeállításokat, a projectben.
(#) kapu48 válasza don_peter hozzászólására (») Ápr 13, 2018 /
 
Pontosítok. Erről beszélek: Bővebben: Keil

Csak regisztrálásba kerül a Lite verzió.
(#) icserny válasza kapu48 hozzászólására (») Ápr 13, 2018 /
 
Azt is mondjuk el hozzá, hogy a Lite verzió méretkorlátos (32 K), bár ez Péternek az IAR után nem lesz meglepő. A professzionális változat 7 napig próbálható ki.
(#) roleez hozzászólása Ápr 13, 2018 /
 
Sziasztok!

Egyenként húzom ki a hajszálaim.
Discovery1 (stm32f429zit) boardon valamit nagyon benézek, mert a GPIOA port 2-es (A2)
pinjét állítanám be, de semmi.
Ominózus progrész: (gyakorlatilag más nincs)

GPIO_InitTypeDef GPIO_InitStructure;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_SetBits(GPIOA,GPIO_Pin_2);

Mit böktem el?
Roland
Következő: »»   116 / 176
Bejelentkezés

Belépés

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