1 / 28

32-bitni mikrokontroleri i primena - MS1BMP 5 . deo

32-bitni mikrokontroleri i primena - MS1BMP 5 . deo. 2013 Nenad Jovičić. GPIO - Portovi. 5V tolerantni ulazi Kapacitet po pinu 25mA 18 MHz u čestanost toglovanja Konfigurabilna izlazna brzina do 50 MHz Do 16 analognih ulaza Alternativne funkcije ( USARTx , TIMx , I2Cx, SPIx ,…)

apria
Download Presentation

32-bitni mikrokontroleri i primena - MS1BMP 5 . deo

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 32-bitni mikrokontroleri i primena - MS1BMP5. deo 2013 Nenad Jovičić

  2. GPIO - Portovi • 5V tolerantniulazi • Kapacitet po pinu 25mA • 18 MHz učestanost toglovanja • Konfigurabilna izlazna brzina do 50 MHz • Do 16 analognih ulaza • Alternativne funkcije (USARTx, TIMx, I2Cx, SPIx,…) • Svaki pin može da generiše spoljašnji prekid • Jedan pin može da se koristi za buđenje iz STANDBY moda (PA.00) • Jedan pin može da bude Tamper Pin (za watcdog) (PC.13) • Pinovi grupisani u 5 16-bitnih portova (GPIOA..GPIOE) • Mehanizam zaključavanja konfiguracije

  3. Configuration Mode CNF1 CNF0 MOD1 MOD0 Analog Input 0 0 VDD ON/OFF Input Floating (Reset State) 0 1 Pull - UP Pull - Down Output Push-Pull 0 0 01: 10 MHz 10: 2 MHz 11: 50 MHz ON/OFF Output Open-Drain 0 1 VSS VDD AF Push-Pull 1 0 AF Open-Drain 1 1 VSS GPIO Konfiguracije Analog Input To On-chip Peripherals 00 Alternate Function Input OFF ON Input Pull-Up(2) 1 0 Read 0 Input Data Register VDD or VDD_FT(1) Input Pull-Down(2) TTL Schmitt Trigger Input Driver I/O pin Output Driver Write OUTPUT CONTROL Bit Set/Reset Registers VSS Output Data Register Push-Pull or Open Drain Read / Write or disabled From On-chip Peripherals (2) Input Pull-Up and Input Pull-Down are differentiated by the PxODR.y bit field. Alternate Function Output

  4. Izlaznakonfiguracija • U Open-Drainmodu: “0” u Output Data registruaktivira N-MOS transistor, dok “1” u Output Data registruostavlja pin u stanjuvisokeimpedanse(P-MOS transistor se nikada ne aktivira). • U Push-pullmodu: : “0” u Output Data registruaktivira N-MOS transistor, dok “1” u Output Data registruaktivira P-MOS tranzistor. • Schmitt Trigger kolo je uključeno • Interni pull-up i pull-down otpornicisuisključeni • Stanjekoje je napinu se semplujeiupisuje u Input Dataregistarnasvaki APB2 klok • ČitanjemInput Dataregistraočitava se stanjepinakada je konfigurisan u Open-Drain modu • ČitanjemInput Dataregistraočitava se stanjepinakada je konfigurisan u Push-pullmodu

  5. Konfiguracijaalternativnefunkcije • Izlazni dajver je u Open Drain ili Push-Pull konfiguraciji • Schmitt Trigger ulaz je aktiviran • Pull-up i pull-down otpornici su deaktivirani • Podatak na pinu se sempluje u ulazni registar na svaku ivicu APB2 takta • Ako je izlaz u open drain modu očitavanje ulaznog registra daje stanje na pinu • Čitanje izlaznog registra u Push-Pull modu daje poslednje upisano stanje u registar

  6. Konfiguracijaanalognogulaza • Izlazni bafer je isključen (otkačen) • Schmitt Trigger kolo je isključeno zbog smanjenja potrošnje. • Pull-up i pull-down otpornici su isključeni • Očitavanje ulaznog registra uvek daje “0”

  7. GPIO registri • Dva 32-bitna konfiguracionaregistra (GPIOx_CRL, GPIOx_CRH) • Dva 32-bitna dataregistra (GPIOx_IDR, GPIOx_ODR) • Jedan 32-bitniset/resetregistar (GPIOx_BSRR) • Jedan 16-bitni resetregistar (GPIOx_BRR) • Jedan 32-bitni lockingregistar (GPIOx_LCKR)

  8. Port configuration register low (GPIOx_CRL) (x=A..G)

  9. Port configuration register high (GPIOx_CRH) (x=A..G)

  10. Port input data register (GPIOx_IDR) (x=A..G) Port output data register (GPIOx_ODR) (x=A..G)

  11. Port bit set/reset register (GPIOx_BSRR) (x=A..G)

  12. Port bit reset register (GPIOx_BRR) (x=A..G)

  13. Port configuration lockregister (GPIOx_LCKR) (x=A..G)

  14. Projekat GPIO • Naizmenična promena stanja dioda sa promenljivim intervalima čekanja • Gde se nalazidefinicijafunkcije STM32vldiscovery_LEDOn()? • Kojimregistrima se pristupa? • Delay() funkcija imlementira čekanje kao dummy petlju!

  15. Kako se uključuje LED3 • Podatak će biti 0x0200 • Na dresu 0x40011000 dodaje offset za BSRR koji iznosi 0xF i dobija se adresa 0x4001100F

  16. Kako se uključuje LED3 • Da li je ovo bit-banding pristup? • Na adresu 0x40011000 dodaje offset za BSRR koji iznosi 0x10 i dobija se adresa 0x4001100F

  17. Zadatak – uključiti diodu LED3 korišćenjem bit-banding-a • Testirati direktan pristup ODR registru, ipristup preko bit-banding-a. • Uraditi slično i sa LED4

  18. Alternativnefunkcije • Neophodno je konfigurisati pin shodnoalterativnojfunkcijikoja se koristi. • Primer za tajmerske module:

  19. Remapiranje alternativnih funkcija

  20. AF remap and debug I/O configuration register (AFIO_MAPR)

  21. AF remap and debug I/O configuration register (AFIO_MAPR2)

  22. Remapiranje alternativnih funkcija - oscilatori • OSC_IN/OSC_OUT pinovi su mapirani na GPIO pinovima PD0/PD1. To se može isključiti odgovarajućim bitovima u AFIO_MAPR registru. • OSC32_IN/OSC32_OUT pinovi su mapirani na GPIO pinovima PC14/PC15. To se može isključiti odgovarajućim bitovima u AFIO_MAPR registru.

  23. Remapiranje alternativnih funkcija – debug interfejs • Normalne pozicije debug pinova: • Optimizacija se vrši setovanjemdogovarajućihSWJ_CFG[1:0] bita u AFIO_MAPR registru.

  24. Systick tajmer • Fleksibilni sistemski tajmer • Sastavni deo procesorskog CORTEX-M3 jezgra. • 24-bit auto-reload brojač za posebnim prekidom. • 2 konfigurabilna izvora takta • Pogodan za realizaciju real-time operativnih sistema. • U STM32F10x seriji takt za ovu periferiju može bili ili CPU takt ili CPU/8 takt. Ovo se konfiguriše u RCC grupi registara. • S obzirom da je deo procesorskog jezgra definicije funkcija koje konfigurišu rad časovnika se nalaze u okviru core_cm3.h fajla koji obezbeđuje ARM. • Neke od high level funkcija može da obezbedi i proizvođač mikrokontrolera i one se nalaze u okviru peripheral drajver biblioteke i to u sastavu misc.h fajla.

  25. ProjekatSystick • Naizmenična promena stanja dioda sa promenljivim intervalima čekanja • Delay() funkcija ne imlementira čekanje kao dummy petlju!

  26. Realizacija preko prekida • U glavnom programu je definisana funckija koja imlementira odbrojavanje vremena • Prekidna rutina Systic_Handler() realizuje odbrojavanje vremena

  27. Inicijalizacija Systick tajmera • Inicijalizacija Systick periferije je u glavnom programu: /* Setup SysTick Timer for 1 msec interrupts */ if (SysTick_Config(SystemCoreClock / 1000)) { /* Capture error */ while (1); } • Gde se nalazi difinicija SysTick_Config() funkcije? • Gde je deklarisana konstanta SystemCoreClock? • Šta se dešava ako se ime funkcije SysTick_Handler u fajlu stm32f10x_it.c promeni? • Šta se dešava ako se slučajno dozvoli prekid periferije koji nije napisan?

  28. Zadatak • Izmeniti program/projekat Systick tako da diode trepere različitom učestanošću.

More Related