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

STM32F4 - povezivanje periferija

[es] :: Elektronika :: Mikrokontroleri :: STM32F4 - povezivanje periferija

[ Pregleda: 1222 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

the_tosic

Član broj: 37314
Poruke: 381
*.ptt.rs.



+128 Profil

icon STM32F4 - povezivanje periferija23.02.2012. u 21:49 - pre 147 meseci
Moje pisanije u ovoj temi uzmite sa rezervom jer sam pocetnik, moje "znanje" se zasniva na nesto malo elektronike s faxa,
i nekoliko dana zezanja s discovery-em


Ok posto sam pogresno pretpostavio (Bogdan me je ispravio) da STM32 radi na 5v (a radi na 3), ovo sve nije potrebno raditi!!! Neka ovo bude uputstvo kako vezati mcu koji radi na 5v sa periferijom predvidjenom za 3.3v

Postoje dva moguca resenja:
naponski razdelnik i
open drain + pull up otpornik.

Ova dva nacina vezivanja se razlikuju kako po shemi, tako i po kodu, ispod cu dati primere kako sam ja podesio za USART BLUETOOTH modul.

Naponski razdelnik, shema i deo koda za inicijalizaciju pinova:
[att_img2]
Code:
    USART_InitTypeDef USART_InitStructure;
    GPIO_InitTypeDef  GPIO_InitStructure;
    
    //configure clock for USART
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
    //configure clock for GPIO
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
    //configure AF
    GPIO_PinAFConfig(GPIOD,GPIO_PinSource8,GPIO_AF_USART3);
    GPIO_PinAFConfig(GPIOD,GPIO_PinSource9,GPIO_AF_USART3);
     
    //configure ports, &GPIO_InitStructure); 
/************************************************/
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
/************************************************/
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
     
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
     
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
     
    USART_InitStructure.USART_BaudRate = 9600;
    /* setovanje USART_InitStructure .... */
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

    USART_Init(USART3, &USART_InitStructure);
     
    /* Enable USART */
    USART_Cmd(USART3, ENABLE);

*** napomena kod naponskog razdelnika treba paziti na otpornosti portova na koje se vezujete


Open drain, shema i deo koda za inicijalizaciju pinova:

Code:
    USART_InitTypeDef USART_InitStructure;
    GPIO_InitTypeDef  GPIO_InitStructure;
    
    //configure clock for USART
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
    //configure clock for GPIO
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
    //configure AF
    GPIO_PinAFConfig(GPIOD,GPIO_PinSource8,GPIO_AF_USART3);
    GPIO_PinAFConfig(GPIOD,GPIO_PinSource9,GPIO_AF_USART3);
     
    //configure ports, &GPIO_InitStructure); 
/************************************************/
    GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
/************************************************/
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
     
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
     
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
     
    USART_InitStructure.USART_BaudRate = 9600;
    /* setovanje USART_InitStructure .... */
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

    USART_Init(USART3, &USART_InitStructure);
     
    /* Enable USART */
    USART_Cmd(USART3, ENABLE);


*** napomena kod open drain-a treba paziti da otpornik kojim smo pull-up-ovali izlaz ne bude previse niske otpornosti, da velika struja ne bi spalila izlaz.


[Ovu poruku je menjao the_tosic dana 23.02.2012. u 23:15 GMT+1]

[Ovu poruku je menjao the_tosic dana 23.02.2012. u 23:17 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: STM32F4 - povezivanje periferija23.02.2012. u 22:06 - pre 147 meseci
Citat:
the_tosic: "Problem" moze nastati ako je periferija predvidjena za rad na 3.3V jer STM32 radi na 5V. Ako biste takvu periferiju direktno vezali na mcu velike su sanse da biste je spalili. Potrebno je izlaze STM32 sniziti na 3.3v, kod ulaza nije problem da budu 3.3v jer je prag detektovanja STM32 preko 2.5v


Ne znam cime si to merio, ali baci taj voltmetar.

STM32F4 radi na 3V !!!!

DISCOVERY plocica se napaja sa 5V koji dolaze sa USB stekera i preko U1 (LD3985M33R) generise 3V za rad ploce (da 3.0V, ne 3.3V, 3.3V je maximum na kom STM32F4 moze da radi). Na ploci se takodje nalazi LD3985M25R (2.5V regulator) a izlaz od 3V je vezan preko JP1 na VDD tako da ako skines JP1 na njega mozes da okacis ampermetar i tako meris potrosnju.


Aj sad please isprepravljaj tvoj post da bude u skladu sa svim ovim :)
 
Odgovor na temu

the_tosic

Član broj: 37314
Poruke: 381
*.ptt.rs.



+128 Profil

icon Re: STM32F4 - povezivanje periferija23.02.2012. u 22:09 - pre 147 meseci
HM nisam nicim al mi se cini da sam negde procitao :P. Oko toga izgubih 2 dana. A obrisacu onda i temu.

EDIT: posto ne mogu da obrisem temu, "ispravio" sam je, sto se mene tice, ako vidi neki moderator, tema moze da se brise...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: STM32F4 - povezivanje periferija23.02.2012. u 22:30 - pre 147 meseci
Ja mislim da nema nijedan 32bitni mcu koji radi na 5V .. svi jaci procesori su na 3v, neki su 5V tolerant a vecina nije cak ni to (ili imaju par io linija samo koje su 5v tolerant). Ideja sa novim spravama je da trose sto manje struje tako da svi spustaju napone, gomila radi na 2.5 a vec se pojavljuje mnogo elektronije koja je samo na 1V2 ili 1V8...
 
Odgovor na temu

the_tosic

Član broj: 37314
Poruke: 381
*.ptt.rs.



+128 Profil

icon Re: STM32F4 - povezivanje periferija23.02.2012. u 22:43 - pre 147 meseci
Rkoh da sam totalni pocetnik :).
Sve u svemu mozda sutra preoblicim taj prvi post, da sluzi svrsi kako sam ga zamislio.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: STM32F4 - povezivanje periferija24.02.2012. u 00:48 - pre 147 meseci
samo opusteno, ovakva tema nam treba (samo da je tacna :D ) ...
- vezivanje sa 1.8V periferijom
- vezivanje sa 3V perfiferijom
- vezivanje sa 5V periferijom ..


 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: STM32F4 - povezivanje periferija

[ Pregleda: 1222 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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