[elektro] STM32F Flash memory inicializáslása.

hg12345 hg12345 at freemail.hu
Fri Jun 12 18:51:10 CEST 2015


Attól függ melyik STM-t haswználod, a CORTEX M4-re gyárilag megírták csak paraméterezni kell.Az STM32F373 -re keress rá ott megtalálod a library-t  Szerintem ha egy kicsit keresem az ST honlapján akkor a M3 és M0 magokra is találsz.A kivánt sebességtől is függ, milyen sebességű adatot akarsz szűrni.
elight <elight at gmail.hu> írta:
>Ez itt lehet hogy neked is lerágott csont, de azért..
>
>http://users.ece.utexas.edu/~valvano/EE345M/UM0585.pdf
>
>és én ha használnám, akkor ezt az anyagot tekinthetném referenciának..
>
>http://www.mikroe.com/chapters/view/73/chapter-3-iir-filters/
>
>Le kell tölteni a számoló programot ,
>és van valahol a neten online számolási lehetőseg is..
>
>Üdv István
>
>2015-06-12 18:24 keltezéssel, uprogc . írta:
>> Szia,
>>
>> Koszi az infot.
>> A szurot meg tudom ( tudtam;) ) tervezni, implementalni nem tudtam az adott
>> DSP fugvenyekkel,
>>
>>
>> U,
>> Szabi
>>
>> 2015-06-12 19:22 GMT+03:00 elight <elight at gmail.hu>:
>>
>>> Szia
>>>
>>>
>>> Még nem foglalkoztam ilyesmivel,
>>> ha kellett inkább betettem egy komplett digitszűrő chip-et.
>>> Azért  régebben ezt az anyagot megnézegettem...
>>>
>>> http://dsp.mit.bme.hu/userfiles/szakdolgozat/stolczenbergerszakdolgozat09.pdf
>>> de úgy döntöttem, nem lehet mindenbe belekapni
>>> egy kis sávszűrésért.. :-)
>>>
>>> Üdv István
>>>
>>>
>>> 2015-06-12 18:14 keltezéssel, uprogc . írta:
>>>> Valaki nem tudja, hogy IIR szurot hogy tudok implementalni STM32-re ?
>>>> Egy pelda kellene arra, hogy ha Matlabban kigeneralom a szurot utanna
>>> hogy
>>>> lehet implementalni.
>>>> Tavaly probalkoztam, es emlekszem hogy a DSP lib-ben levo fuggvenyek es a
>>>> Matlab altal generalt szuro sehogy sem volt osszeegyeztetheto. Valamit
>>>> general pluszba a Matlab (nem vagyok IIRben abszolute jartas)
>>>> FIRnel simman ment minden.
>>>>
>>>> Szabi
>>>>
>>>> 2015-06-12 19:09 GMT+03:00 uprogc . <uprogc at gmail.com>:
>>>>
>>>>> Szia,
>>>>>
>>>>> Koszi, a tobbi nem elekadas, felepitettem egy teljes SDR radiot mar
>>> erre a
>>>>> procira, csak akkor nem volt szukseg 8 bitet egyszerre kiirni a portra
>>> es a BSRRx
>>>>> regiszter irasokat hasznalta., Most bejott egy grafikus kijelzo,, es azt
>>>>> hittem mas port iras lehetoseg nincs.
>>>>>
>>>>>
>>>>> Szabi
>>>>>
>>>>> 2015-06-12 19:00 GMT+03:00 elight <elight at gmail.hu>:
>>>>>
>>>>>> Igen,  meg..
>>>>>>
>>>>>> IDR  -  input
>>>>>>
>>>>>> ODR - output regiszrer
>>>>>>
>>>>>> és ne felejsd s Periféria Clock regiszterében az órajelet is
>>> engedélyezni
>>>>>> mert anélkül a periféria alszik..
>>>>>>
>>>>>> És bizonyos típusoknál létezik még egy bit-bang-nak nevezett bittáblás
>>>>>> elérési  mód is.
>>>>>>
>>>>>> Azonkívül bekapcsolhatsz a portlábakra kiterjesztett módokat ,
>>>>>> UART , SPI  stb.   kezeléshez.. Van erről valahol egy kis
>>>>>> magyar nyelvű fejtágító is..
>>>>>>
>>>>>> és ez a anyag is hasznos lehet kezdéshez ,
>>>>>>
>>>>>> http://hg8lhs.ham.hu/publications/Diploma.pdf
>>>>>>
>>>>>> ha még nem ismernéd..
>>>>>>
>>>>>> Üdv István
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2015-06-11 13:24 keltezéssel, uprogc . írta:
>>>>>>> Megtalaltam:
>>>>>>>
>>>>>>> void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)
>>>>>>> {
>>>>>>>      /* Check the parameters */
>>>>>>>      assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
>>>>>>>
>>>>>>>      GPIOx->ODR = PortVal;
>>>>>>> }
>>>>>>>
>>>>>>> Tehat hasznalhato akar :  GPIOx->ODR = PortVal;
>>>>>>>
>>>>>>>
>>>>>>> Szabi
>>>>>>>
>>>>>>> 2015-06-11 14:05 GMT+03:00 uprogc . <uprogc at gmail.com>:
>>>>>>>
>>>>>>>> Sziasztok,
>>>>>>>>
>>>>>>>> Nekem is lenne egy STM32 kerdesem.
>>>>>>>>
>>>>>>>> AVRnel megszoktuk, hogy a portra siman kiirjuk az adatot, az
>>>>>> megjelenik a
>>>>>>>> kimeneten.
>>>>>>>> STM32-nel mindehez ket regiszterre van szukseg:
>>>>>>>>
>>>>>>>> GPIOD->BSRRH = GPIO_Pin_13  Low szint;
>>>>>>>> GPIOD->BSRRL = GPIO_Pin_13; High szint
>>>>>>>>
>>>>>>>> Hogy tudom parhuzamos portkent a legegyszerubben hasznalni az adott
>>>>>> portot
>>>>>>>> ? (LCD vezerles)
>>>>>>>>
>>>>>>>>
>>>>>>>> U,
>>>>>>>> Szabi
>>>>>>>>
>>>>>>>> 2015-06-10 16:13 GMT+03:00 elight <elight at gmail.hu>:
>>>>>>>>
>>>>>>>>> Megvigasz....
>>>>>>>>>
>>>>>>>>> de megvan a vigasz.. :-)
>>>>>>>>>
>>>>>>>>> unsigned char FLASH_Mem_Inited = 0;
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> valahol a main elején
>>>>>>>>> Error = EEprom_Table_Read  ( kezdőcím, hossz  );   // olvasom a
>>> táblát
>>>>>>>>> egy EE_Thumb memóriaváltozóba
>>>>>>>>>
>>>>>>>>> if ( ! ( EE_Thumb[ TEST_AA ] ==  0xAA ) &&  (EE_Thumb[ TEST_55 ] ==
>>>>>> 0x55
>>>>>>>>> ))
>>>>>>>>> {
>>>>>>>>>                      //  Ha a pattern nem található  az EEprom
>>>>>> területen ...
>>>>>>>>>                     EEprom_Table_Init ( kezdőcím, hossz );    //
>>>>>> Belevarrja
>>>>>>>>> a területbe a patternt és a kezdő adatokat.
>>>>>>>>>                     FLASH_Mem_Inited = 1;
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> És a  nyitóképernyőn   is kiírom ha initelt , hogy lássam
>>>>>>>>>
>>>>>>>>> if(  FLASH_Mem_Inited == 0 )
>>>>>>>>> {
>>>>>>>>>             Print_Status_LCD("FLASH_Read_Ok" );
>>>>>>>>> }
>>>>>>>>> else
>>>>>>>>> {
>>>>>>>>>          Print_Status_LCD("FLASH_Init  !!!" );
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> a többi már pöröghet   szokásosan..
>>>>>>>>> Az előbb teszteltem éppen, szépen lefutotta az esteket..
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Az zavart be,  PIC-nél ezeket az adatokat direkt beleírhattam az
>>> égető
>>>>>>>>> EEprom táblájába,
>>>>>>>>> itt pedig a FLASH-ba kell bele juttatni, és ahhoz kell a FLASH
>>> kezelő
>>>>>>>>> függvénye..
>>>>>>>>> Legalább is egyenlőre direkt nem értem el  , hogy a fordító tegye
>>> bele
>>>>>>>>> nekem.
>>>>>>>>>
>>>>>>>>> Üdv István
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2015-06-10 14:55 keltezéssel, hg12345 írta:
>>>>>>>>>> Hi a tömbnek érteket lehet adni induláskor, akkor nem ZI-n
>>>>>>>>> tárolja.uint8_t tomb[100]={ 1,2,3,4....};az az érték RAM-ban lesz
>>>>>> tárolva,
>>>>>>>>> nem a FLASH területen. ha eléírsz "const" akkor a tömböt a flash
>>>>>> területre
>>>>>>>>> teszi, de ennek az írását nem engedi a fordító.const uint8_t
>>>>>> tomb[100]={
>>>>>>>>> 1,2,3,4....};Ha egy ugyan ilyen pointert definiálsz a const helyet
>>>>>>>>> használhtsz __attributre__ megadott kezdőcimet is...)  uint8_t
>>>>>> *ptomb=
>>>>>>>>> (uint8_t*) tomb ;és utána már használhatód ptomb[xx] hivatkozással
>>>>>> ezért
>>>>>>>>> már nem kiabál a fordító de írni nagy valószínűséggel nem fogod
>>> tudni
>>>>>> :-)
>>>>>>>>>> elight <elight at gmail.hu> írta:
>>>>>>>>>>> Sziasztok.
>>>>>>>>>>>
>>>>>>>>>>> Egy EEprom emulációt készítettem a FLASH memoria területére.
>>>>>>>>>>>
>>>>>>>>>>> A fordítónak hogyan adhatom meg , hogy ez
>>>>>>>>>>> egy  tömb, aminek kezdeti értéke van,
>>>>>>>>>>> és a függvényeim induláskor ezeket módosíthatják vagy olvashatják
>>>>>> majd.
>>>>>>>>>>> Olyasmire gondolok, hogy a PIC-nél volt az égetőben egy EE_prom
>>>>>>>>>>> terület, amit kézzel beírtam, és égetés után azokkal
>>>>>>>>>>> a beállítási paraméterekkel indult a program.
>>>>>>>>>>> Mert most elsőre innen szemetet vagy 00 hoz le sajnos.
>>>>>>>>>>>
>>>>>>>>>>> Üdv István
>>>>>>>>>>>
>>>>>>>>>>> -----------------------------------------
>>>>>>>>>>>              elektro[-flame|-etc]
>>>>>>>>>> -----------------------------------------
>>>>>>>>>>               elektro[-flame|-etc]
>>>>>>>>> -----------------------------------------
>>>>>>>>>              elektro[-flame|-etc]
>>>>>>> -----------------------------------------
>>>>>>>              elektro[-flame|-etc]
>>>>>> -----------------------------------------
>>>>>>             elektro[-flame|-etc]
>>>>>>
>>>> -----------------------------------------
>>>>             elektro[-flame|-etc]
>>> -----------------------------------------
>>>            elektro[-flame|-etc]
>>>
>> -----------------------------------------
>>            elektro[-flame|-etc]
>
>-----------------------------------------
>          elektro[-flame|-etc]


More information about the Elektro mailing list