Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

STM32F4 Inicijalizacija - startup code

[es] :: Elektronika :: Mikrokontroleri :: STM32F4 Inicijalizacija - startup code

Strane: < .. 1 2 3 4

[ Pregleda: 17586 | Odgovora: 77 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: STM32F4 Inicijalizacija - startup code03.03.2012. u 10:04 - pre 147 meseci
Biblioteke mogu imati gresaka (a najcesce i imaju), i dokumentacija za biblioteke takodje.
Prema_tome -> Datasheet;
 
Odgovor na temu

mradomir
mradomir
Novi Sad

Član broj: 123964
Poruke: 169
188.247.133.*



+28 Profil

icon Re: STM32F4 Inicijalizacija - startup code04.03.2012. u 16:19 - pre 147 meseci
Citat:
Odin D.: Biblioteke mogu imati gresaka (a najcesce i imaju), i dokumentacija za biblioteke takodje.
Prema_tome -> Datasheet;

Lično sam pročitao stotine datasheet-ova, ali ovo počinje polako da me nervira.
Već dva dana pokušavam da upotrebim funkciju za debug: ITM_SendChar
Ona bi trebala da pošalje karakter na Port 0, koji se vidi u Atollic-u u Debug prozoru - dole desno, SWV Console.
Code:
static __INLINE uint32_t ITM_SendChar (uint32_t ch)
{
  if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA_Msk)  &&      /* Trace enabled */
      (ITM->TCR & ITM_TCR_ITMENA_Msk)                  &&      /* ITM enabled */
      (ITM->TER & (1UL << 0)        )                    )     /* ITM Port #0 enabled */
  {
    while (ITM->PORT[0].u32 == 0);
    ITM->PORT[0].u8 = (uint8_t) ch;
  }
  return (ch);
}

Registri ITM->TCR i ITM->TER nisu dobro konfigurisani, pa ne prolazi gornji if.
Sve sam prelistao, ali objašnjenje pomenutih registara je prilično siromašno, da ne kažem nikakvo.
Pokušao sam da upisujem u njih, ali ni to ne prolazi.
PS
Mislim da je debug osnovna stvar i da ide u inicijalizaciju, odnosno ovu temu.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: STM32F4 Inicijalizacija - startup code04.03.2012. u 17:11 - pre 147 meseci
Serial Wire Viewer je real time tracer i nije podrzan uopste u LITE verziji... Vidis da za oba podrzana interface-a ima samo SWD i JTAG u ponudi, nema SWV. Obrati takodje paznju da ST-Link v2 (koji je na STM32F4DISCOVERY ploci) podrzava SWV (dok ST-Link V1 koji je na starijim plocama ne podrzava SWV).

Dakle, u ovoj fraj verziji - nista od swv-a

Inace sto se samog koda tice, koliko se ja secam (a nemam neko extenzivno iskustvno sa SWV) je da ti ne setujes DEMCR i TRCENA rucno vec kada je jezgro u debug modu ono samo setuje te flegove, iliti flegovi su read only, ti samo proveravas dal je debager zakacen ili ne
 
Odgovor na temu

mradomir
mradomir
Novi Sad

Član broj: 123964
Poruke: 169
188.247.133.*



+28 Profil

icon Re: STM32F4 Inicijalizacija - startup code04.03.2012. u 18:00 - pre 147 meseci
Ja sam razumeo da nije podržan samo printf.
Ako debuger postavlja ove bitove, onda si u pravu da ne može sa Atollic lite.
Ostaju dve opcije, da sa UART-a vučemo na još jedan USB port ili čekamo Coocox (treba da bude za desetak dana).
Inače je zgodnije pratiti izvršavanje softvera preko printf, nego u debug-u gledati sadržaj registara i promenljivih.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: STM32F4 Inicijalizacija - startup code04.03.2012. u 18:16 - pre 147 meseci
svasta nije podrzano u lite verziji ...

Prikačeni fajlovi
 
Odgovor na temu

Žerajić
student
Невесиње

Član broj: 301880
Poruke: 19
*.amres.ac.rs.



Profil

icon Re: STM32F4 Inicijalizacija - startup code24.01.2013. u 10:30 - pre 136 meseci
Ima li neko primjer projekta u kome stm32 komunicira preko spi s nekim senzorom ili sl.?
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: STM32F4 Inicijalizacija - startup code20.08.2013. u 23:44 - pre 130 meseci
Malo samo da podignem temu sa dna posto ce biti tu verovatno jos nekih pitanja sa moje strane :)

Za pocetak da li moze neko da preporuci neku pouzdanu ready-for-use biblioteku/source za klasican 2x16 LCD, sa 8 ili 4 data linije?

Sto se mene tice ja bih se vratio da se igram sa onim TI Piccolo, al' ne vredi treba da pomognem kolegi da osposobi neku konkretnu spravu sa STM32F4 Discovery modulom ... Oboje smo pocetnici na toj platformi ... Za sad sam poterao osnovno, inicijalizaciju i tajmere pa ajd da pitam za ovaj 2x16 LCD, mora da ima to negde gotovo da ne pisem sad bas ceo drajver ispocetka.
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: STM32F4 Inicijalizacija - startup code20.08.2013. u 23:51 - pre 130 meseci
ja koristim istu biblioteku za lcd vec 10 godina i radi super, lagano se
preradi za svaki mcu koji sam do sada probao..
(http://sourceforge.net/p/arhimed-sid/code/36/tree/SID/SID_GEN4.X/ lcd.c
i lcd.h)
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: STM32F4 Inicijalizacija - startup code26.08.2013. u 09:16 - pre 129 meseci
Ovaj code za display jos nisam pokrenuo, cekam ostale neke HW komponente da to sklopim i probam ...

Nego, kako moze da se koristi kod SMT32F4 flash memorija za smestanje i citanje korisnickih podataka?
Dakle slican princip kao sto je bio kod PIC sa korisnickim EEPROM, nesto gledajuci dokumentaciju mislim da je moguce ali ne znam kako konkretno to uraditi u SW. Treba mi recimo 64 x 8 bajtova ili 32 reci da cuvam.
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: STM32F4 Inicijalizacija - startup code26.08.2013. u 09:23 - pre 129 meseci
jeste moguce ali ne tako jednostavno kao eeprom :D
moras prvo da odvojis taj deo flash-a linker skriptom (da ne bi tamo
slucajno kompajler smestio neki kod), dakle napravis neki data segment u
linker skriptu, tu oznacis pocetak i duzinu segmenta i to je to. onda po
tom delu pises i isti citas kao klasican flash (imas u datasheet-u kako,
nije bas preterano jednostavno, ja sam kopirao kod iz nekog bootloadera
to kako pise i cita flash)

btw mogli bi za F4 da pravimo seriju topic-a sa imenom "STM32F4 - stagod" na primer "STM32F4 - 16x2 lcd drajver", "STM32F4 - citanje i pisanje po flash-u" i slicno kako bi lakse nalazi stvari kada nam sutra zafale, ovako vec imamo u "inicijalizaciji" brdo stvari koje sa inicijalizacijom nemaju veze
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: STM32F4 Inicijalizacija - startup code26.08.2013. u 09:28 - pre 129 meseci
Super, znaci moze ...

Jel imas neki primer za citanje i pisanje jedne lokacije?

Aha, vidim tvoj update ... Pa ok, ajd startovacu temu za ovaj Flash ...
http://www.elitesecurity.org/t...-STMF-citanje-pisanje-po-flash
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: STM32F4 Inicijalizacija - startup code26.08.2013. u 09:51 - pre 129 meseci
A jos jedno pitanje, i pored silnih izlaza za Discovery plocici meni fale izlazi :), jel moze da se skinu onih nekoliko "kockica" (codec, mems, mic) i da se oslobodi jos pinova?
Treba mi po mogucstvu vezanih 32 izlaza (dva cela porta) + jos jedno 10-ak I/O za druge neke periferije. Sve ce da budu klasicni I/O nema seriskih port ili slicno, dakle staticni 32bitni izlaz i ostalo za LCD/KB.

Pitam samo da nema neka "kvaka" oko toga slucajno ili mozda moze nekako elegantnije da se odkace ove periferije bez skidanja IC-ova :)

Malo mi je gusto sa vremenom izvrsavanja nekih interupt rutina pa gledam da mi izlazni port bude ono sto se kaze "native", da upisem dva bajta direktno i sto je brze moguce. Nekakva djunta od masine je u pitanju, barata sa cca 30kW i mora da mi bude sinhronizovana sa mrezom pa mi je taj interapt bas knap (10us) jer treba da "gadjam" poluperiodu u hiljaditi deo ugla/vremena.

[Ovu poruku je menjao mikikg dana 26.08.2013. u 11:07 GMT+1]
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: STM32F4 Inicijalizacija - startup code26.08.2013. u 11:23 - pre 129 meseci
skidanje ic-ova bi bilo super jednostavno :D ... no svi ti icovi ako se
dobro secam imaju CS tako da ako su CS-ovi van tih portova koji ti
trebaju samo disableujes icove i resen problem
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: STM32F4 Inicijalizacija - startup code29.08.2013. u 04:15 - pre 129 meseci
Jedno pitanje u vezi klokovanja sporih periferija, radim na drajveru za LCD 2x16, odprilike sam sve napravio ali tu imam jedan mali problemcic, mislim nije toliko to ni bitno ali da pitam generalno kako to moze inace da se resi.

Dakle stari problem, MCU je brebrz za periferiju koju sam vezao, tamo se barata sa milisekundama. Medutim moj program ima interapte. Ja sam ustelovao sa praznim petljama vremena potrebna za ovaj LCD ali naravno kada sam ukljucio interapte ta sva vremena su se razdesila tj postala su dosta duza sto je naravno za ocekivati jer se trosi vreme u interaptu a ovo oko LCD je u glavnoj petlji.

Kako da osmislim logiku da ipak nekako zadrzim konstantne pauze (ili potreban clock) za tu sporu periferiju?
Kao sto rekoh nije mi to strasno, radice sporije LCD ali me ipak interesuje kako to moze da se resi jer ce mi zatrebati sigurno za neku X periferiju kada budem vezivao.
Olaksavajuca okolnost mi je sto mi je interapt rutina fiksne vremenske duzine (uvek isti broj ciklusa/komandi se izvrsava) ali sta ako se to menja, ne mogu onda da prostim tamo nekim faktorom korekcije te pauze resim.

Da stavim nekako (kako) LCD rutine u neki drugi sporiji interapt?

Nadam se da razumete sta pitam jer ste se sigurno susretali sa tim problemima :)

@bodan.kecman Iskoristio sam onu tvoju LCD rutinu, prepakovao malo u ovaj STM32 fazon i evo je radi :)
Kada je malo budem uoblicio i skocako, postavicu ovde, zatrebace nekome. Napisao sam je tako da pinovi mogu da se vezu na bilo koje pinove / portove, mogu da budu razbacani po portovima ...



[Ovu poruku je menjao mikikg dana 29.08.2013. u 07:12 GMT+1]
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
Prikačeni fajlovi
 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 932
*.dynamic.isp.telekom.rs.



+81 Profil

icon Re: STM32F4 Inicijalizacija - startup code29.08.2013. u 07:27 - pre 129 meseci
Možda da pogledaš Sys Tick primer. Tu su Delay funkcije odrađene preko SysTick prekida. On se definiše na recimo 1ms pa preko njega ide sve ostalo što zavisi od vremena.
gorankg
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: STM32F4 Inicijalizacija - startup code29.08.2013. u 09:30 - pre 129 meseci
samo tako sto ces tajmig da resis preko interapta, svi drugi nacini ne
garantuju ... ja npr imam u glavnom systick nesto tipa

if (globalna_volatile_delay_varijabla) globalna_volatile_delay_varijabla--;

i onda gde mi treba delay imam nesto tipa

globalna_volatile_delay_varijabla = 100; while
(globalna_volatile_delay_varijabla);

tako ti je uvek delay isto dugacak
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: STM32F4 Inicijalizacija - startup code31.08.2013. u 11:41 - pre 129 meseci
U vezi tajmera, ne zavrsava mi posao taj tajmer od 1ms, presporo mi to. U LCD rutinama imam potrebe za dosta manjim deley od toga, tako da nema veze, icicu sa prostim praznim petljama.

Nego napravio sam ove sve bitne funkcije za LCD:

void LCD_Init_pins (void);
void LCD_Display_init (void);
void LCD_send_nibble( unsigned char n );
void LCD_send_byte( unsigned char address, unsigned char n );
void LCD_send_string (volatile char *s);
void LCD_goto_home (void);
void LCD_clear_all (void);
void LCD_cursor_control (int cursor_on_off, int blinking_on_off);
void LCD_cursor_left(int no);
void LCD_cursor_right(int no);
void LCD_goto_home_line1 (void);
void LCD_goto_home_line2 (void);

To radi bas fino i brzo. Recimo 5 karaktera (npr neki brojac) moze skoro 1000 puta u sekundi da osvezi, sto mu dodje negde oko 100 puta u sekundi za ceo 2x16 niz. To je extra, moze VU metar da se napravi ;)

Evo u prilogu biblioteka. Bacite pogled i dajte sugestije ako vidite nesto sto moze da se unapredi ili koriguje ...

Koristi se dakle vrlo prosto, npr:

Code:
    LCD_Init_pins();
    LCD_Display_init();
    
    LCD_cursor_control (1, 0);

    LCD_send_string("Init complete!");

    LCD_goto_home_line2();

        int yy;
        char dizi[10];
        
        for (yy=10000; yy<=99999; yy++) {
            
            sprintf(dizi,"%d",yy);
            
            LCD_send_string(dizi);
            
            LCD_cursor_left(5);
        }


[Ovu poruku je menjao mikikg dana 31.08.2013. u 12:51 GMT+1]
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
Prikačeni fajlovi
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: STM32F4 Inicijalizacija - startup code31.08.2013. u 11:55 - pre 129 meseci
systick ne pinga na milisekundu, to je svima beskorisno :D, mozes da ga
teras u begahercima bez problema
http://infocenter.arm.com/help...arm.doc.dui0471c/BABCDGII.html
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: STM32F4 Inicijalizacija - startup code31.08.2013. u 12:08 - pre 129 meseci
Ahaaa, nisam znao to.
Pa ok, i onako sam ove delay funkcije napravio "diskretno" pa mogu da se lako preprave (predpostavio sam da ce u nekom trenutku da se pojavi resenje ;).
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: STM32F4 Inicijalizacija - startup code31.08.2013. u 12:50 - pre 129 meseci
nisam stigao da pogledam lib ali ako se ja secam jedini delay je za
strobe EN-a a to je tipa nekoliko nop-ova tako da ne znam uopste cemu
delay tu :D osim ako si implementirao bez busy flag-a ...

systick se konfigurise sa "na koliko taktova", moze da koristi system
klok a moze da koristi neki drugi zavisi od mcu-a do mcu-a (negde ne
mzoes da biras i uvek je sistemski) tako da ako stavis
configure_systick(1) imaces interapt na 100+MHz tj na koliko ti vec radi
mcu, neces doduse moci da radis nista drugo ali :D tako da namestis mcu
da systick radi koliko cesto ti treba, idealan je za task switching i
slcne fore kada koristis rtos na primer.. ako ne koristis rtos, nema
nista bolje za delay od njega :D
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: STM32F4 Inicijalizacija - startup code

Strane: < .. 1 2 3 4

[ Pregleda: 17586 | Odgovora: 77 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.