1 / 39

MS1BMP

MS1BMP. 32-bitni mikrokontroleri i primena Part 4. – Tajmeri & ADC. Autor : Nenad Jovičić. Tajmeri TIM12, TIM13, TIM14. 16-bitni brojač na gore . 16-bitni preskaler za ulazni takt.

enye
Download Presentation

MS1BMP

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. MS1BMP 32-bitni mikrokontroleri i primena Part 4. – Tajmeri & ADC Autor: NenadJovičić

  2. Tajmeri TIM12, TIM13, TIM14 • 16-bitni brojač na gore. • 16-bitni preskaler za ulazni takt. • 1 (tim13 I tim 14) ili 2 (tim12) nezavisna kanala koji mogu da rade u izlaznom (output comapre), ulazno (input capture), PWM ili pojedinačnom impulsnom modu. • Mogućnost sinhronizacije sa ostalim tajmerima. • Prekid zahtev za sledeće događaje: • Input capture • Output compare • Reload tajmera, inicijalizacija (softverska ili spoljašnja) • Nije podržan DMA prenos.

  3. TIM12 - Interna struktura

  4. TIM13, TIM14 – Interna struktura

  5. Tajmeri TIM15, TIM16, TIM17 • 16-bitni brojač na gore. • 16-bitni preskaler za ulazni takt • 1 (tim15)ili 2 (tim16, tim17) nezavisna kanala koji mogu da rade u izlaznom (output comapre), ulazno (input capture), PWM ili pojedinačnom impulsnom modu. • Mogućnost sinhronizacije sa ostalim tajmerima. • Prekid zahtev za sledeće događaje: • Input capture • Output compare • Reload tajmera, inicijalizacija (softverska ili spoljašnja) • Podržan je DMA prenos • Uvek postoji jedan komplementarni izlaz. • Brojač ponavljanja.

  6. TIM15

  7. TIM16, TIM17

  8. Osnovni tajmeri (Basic Timer)TIM6 i TIM7 16-bitni brojač na gore. 16-bitni preskaler za ulazni takt. Mogućnost startovanja DAC-a. Prekid i DMA zahtev overflow događaj. Podržan je DMA prenos. Uvek postoji jedan komplementarni izlaz. Brojač ponavljanja.

  9. ADC 12-bitna rezolucija. Nekoliko različitih izvora prekida: End of Conversion, End of Injected Conversion, Analog Watchdog Event. Jednostruki i kontiualni mod konverzije. Automatska konverzija sekvence kanala. Auto-kalibracija. Vreme konverzije programabilno za svaki kanal ponaosob. Eksterni trigeri. Diskontinulani mod konverzije. Vreme konverzije do 1.7uS na 24MHz taktu. DMA prenos podržan. Veza sa integrisanim analognim temperaturnim senzorom.

  10. ADC –Interna struktura

  11. Modovi konverzije • Prema načinu startovanja konverzije modovi su: • Jednostruki mod (single conversion) • Posle svake konverzije ADC se zaustavlja uz generisanje dozvoljenih prekida ili DMA zahteva. • Kontinulani mod (continuous conversion) • Nakon konverzije generišu se prekidi ili DMA zahtevi ali se automatski startuje nova konverzija. • Diskontinualni mod (discontinuous conversion) • Može se zadati konačan broj konverzija (n<=8) nakon čijeg izvršavanja se ADC zaustavlja.

  12. Modovi konverzije • Prema broju kanala koji se konvertuju modovi su: • Single channel – konvertuje se samo jedan kanal i to u single ili kontinualnom modu • Scan mode – konvertuje se sekvenca kanala, i to i jednostrukom modu (single conversion), kontinualnom modu ili diskontinulanom modu. U ovom modu moguće je definisati do 16 proizvoljnih rageluarnih kanala ili do 4 injektovana kanala.

  13. Analog Watchdog

  14. Injektovana konverzija (Injected conversion) Postoji mogućnost da se nakon ili u toku konverzije regularne grupe kanala ubaci tj. injektuje grupa injektovanih kanala. Injekcija može da bude podešena tako da se aktivira samo na eksterni triger, ili može da se vrši nakon svake konverzije regularne grupe. Na ovaj način je moguće očitavati do 20 analognih naponskih ulaza.

  15. Projekat ADC Periodično se korišćenjem osnovnog tajmera TIM7 generiše prekid u kome se startuje ADC i očitava rezultat konverzije. Osnovni tajmer radi sa učestanošću AD konvertor je podešen tako da radi u najbržem modu u kome semplovanje traje 1.5 ciklus. Vrsi se akvizicija kanala 14.

  16. Glavni program - Inicijalizacija takt Pogledati datasheet!!! port ADC NVIC

  17. Inicijalizacija ADC-a ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1,ADC_SampleTime_1Cycles5); ADC_Cmd(ADC1, ENABLE); ADC_ResetCalibration(ADC1); while(ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while(ADC_GetCalibrationStatus(ADC1));

  18. ADC_InitTypeDef (stm32f10x_adc.h)

  19. ADC Trigger source (stm32f10x_adc.h)

  20. Konfiguracija regularnog kanala ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_1Cycles5);

  21. SMPR1 registar

  22. Glavni program – inicijalizacija tamjera TIM7 Inicijalizacija svih tajmera se odvija preko istih funkcija!!!!

  23. TIM_TimeBaseInitTypeDef (stm32f10x_tim.h)

  24. Inicijalizacija tajmera U zavisnosti od izabranog tajmera neki delovi se ne inicijalizuju!!! A neki se inicijalizuju... TIM_TimeBaseInit(TIM7, &TIM_TimeBaseInitStruct);

  25. Inicijalizacija prekida tajmera TIM_ITConfig(TIM7, TIM_IT_Update, ENABLE);

  26. Pokretanje tajmera TIM_Cmd(TIM7,ENABLE);

  27. Prekid Tajmera

  28. DMA 12 kanala (7 za DMA1 kontrleri 5 za DMA2 kontroler) SMT32F100 imajedankontroler DMA1 Mogući su prenosi u u svim kombinacijama između meorije i periferija. Podržan prenos za tajmere, ADC, SPI, I2Cs, USART i DAC Podržan prenos 8, 16 i 32-bitnih podataka. Podržani cirkularni baferi!

  29. DMA - struktura

  30. DMA prenos Prenos se sastoji iz 4 faze Kanali su prioritirani sa 4 različita prioriteta.

  31. Preklapanje DMA i CPU DMA se preklapa sa CPU-om tako da nikada ne dolazi do potpunog blokiranja jednog ili drugog.

  32. Svaki DMA kanal ima tri prekida: • Transfer završen • Transfer na pola • Greška u transferu • fe

  33. Projekat ADC_DMA AD konvertor je podešen tako da radi u najbržem modu u kome semplovanje traje 1.5 ciklus. Vrsi se akvizicija kanala 14. ADC nakon svake konverzije generiše DMA zahtev. Tajmer TIM1 radi u PWM modu i trigeruje ADC. DMA konvertor prenosi podatke iz ADC-a u kružni bafer u memoriji.

  34. Inicijalizacija DMA U main-u mora da se deklariše adresa, jer se simbol iz stm32f10x_adc.c ne vidi!!! Da je kojim slučajem definisan u stm32f10x_adc.h ne bi bilo potrebe

  35. DMA_InitTypeDef stm32f10x_tim.h)

  36. Inicijalizacija ADC-a

  37. ADC funkcije

  38. Dozvola PWM izlaza

  39. Zadatak • Podesiti DMA kontoler tako da se generiše prekid nakon prenosa celog jednog bafera. • Hint: • potražiti u fajlu stm32f10x_dma.h funkcije koje podešavaju prekid. • Napisati prekidnu rutinu • Brisati flag u prekidnoj rutini • ....

More Related