1 / 42

Mikrokontrolery PIC

Mikrokontrolery PIC. Wykład 3 2 /42. Rodzina PIC MID Range - inne peryferia. PIC - MidRange - Peryferia 3 /42.

mayten
Download Presentation

Mikrokontrolery PIC

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. Mikrokontrolery PIC

  2. Wykład 3 2/42 Rodzina PIC MID Range- inne peryferia

  3. PIC - MidRange - Peryferia 3/42 • Porty równoległe: • PORTA, PORTB, PORTC, PORTD, PORTE, PORTF, PORTG, GPIO; • sterowane są rejestrami TRISxx; • ich linie mają zwykle funkcje alternatywne;

  4. PIC - MidRange - Peryferia 4/42 • Port równoległy PSP (Parallel Slave Port) • 8-bitowy port dostępny do odczytu i zapisu z zewnątrz; • jako alternatywna funkcja PORTD i PORTE; • bufory portów pracują w standardzie TTL; • zewnętrzny (nadrzędny) procesor steruje odczytem i zapisem poprzez sygnały strobu /RD i /WR oraz sygnał wyboru /CS; • sterowanie pracą PSP poprzez rejestr sterujący TRISE; • w rej. sterującym są bity sygnalizujące pełny bufor wejściowy (IBF) lub wyjściowy (OBF), zamazanie poprzedniego bajtu wejściowego (IBOV); • może zgłaszać przerwania;

  5. PIC - MidRange - Peryferia 5/42 struktura PSP

  6. PIC - MidRange - Peryferia 6/42 • Timer/licznik 1 • 16-bitowy licznik widziany jako para rejestrów TMR1H i TRM1L; • zlicza w górę; • posiada własny preskaler (:1, :2, :4, :8); • posiada własny oscylator kwarcowy (kwarc zewn.); • może pracować w 3 trybach: - synchronicznym czasowym (licznik cykli maszynowych); - synchronicznym licznikowym (licznik impulsów zewnętrznych); - asynchronicznym licznikowym. • przepełnienie (0FFFFh0000h) powoduje ustawienie flagi TMR1IF i może być przyczyną przerwania (jeśli bit TMR1IE=1); • dodatkowy rejestr sterujący T1CON w SFR.

  7. PIC - MidRange - Peryferia 7/42

  8. PIC - MidRange - Peryferia 8/42 Rejestr sterujący T1CON: TMR1ON - bit włączający timer/licznik 1 gdy =1 TMR1CS - wybór źródła zliczanych impulsów (gdy =0 - główny generator taktu) T1SYNC - włączenie synchronizacji zliczanych impulsów (tylko dla imp. zewn.) T1OSCEN - włączenie (gdy =1) lokalnego generatora impulsów T1CKPS1, T1CKPS0 - sterowanie preskalerem: 00 - :1 01 - :2 10 - :4 11 - :8 flaga przepełnienia - przerwania TMR1IF jest zlokalizowana w rejestrze PIR1 flaga zezwolenia na przerwania TMR1IE jest zlokalizowana w rejestrze PIE1

  9. PIC - MidRange - Peryferia 9/42 Przykład zastosowania TMR1: dzięki własnemu oscylatorowi TMR1 działa także podczas stanu SLEEP i może zgłaszać przerwania zegarowe do obsługi wyświetlaczy i klawiatur.

  10. PIC - MidRange - Peryferia 10/42 • Timer/licznik 2 • 8-bitowy licznik widziany jako rejestr TMR2; • posiada 8b rejestr wzorca PR2, z którym porównywany jest stan TMR2; • zlicza w górę od 00h do wartości z PR2, zrównanie się wartości powoduje zerowanie licznika i ponowne zliczanie; • posiada własny preskaler (:1, :4, :16); • posiada własny postskaler (:1, :2, ... , :16); • zlicza impulsy z głównego generatora taktu (fOSC); • przepełnienie w postskalerze powoduje ustawienie flagi TMR2IF i może być przyczyną przerwania (jeśli bit TMR2IE=1); • może służyć jako generator taktu dla portu szeregowego SSP; • dodatkowy rejestr sterujący T2CON w SFR; • wpis do rejestrów TMR2 lub T2CON zeruje preskaler i postskaler; • w trybie SLEEP TMR2 nie pracuje.

  11. PIC - MidRange - Peryferia 11/42

  12. PIC - MidRange - Peryferia 12/42 Rejestr sterujący T2CON: TMR2ON - bit włączający timer/licznik 2 gdy =1 T2CKPS1, T2CKPS0 - sterowanie preskalerem: 00 - :1 01 - :4 1x - :16 TOUTPS3,TOUTPS2,TOUTPS1,TOUTPS0 - sterowanie postskalerem: 0000 - :1 0100 - :5 1000 - :9 1100 - :13 0001 - :2 0101 - :6 1001 - :10 1101 - :14 0010 - :3 0110 - :7 1010 - :11 1110 - :15 0011 - :4 0111 - :8 1011 - :12 1111 - :16 flaga przepełnienia - przerwania TMR2IF jest zlokalizowana w rejestrze PIR1 flaga zezwolenia na przerwania TMR1IE jest zlokalizowana w rejestrze PIE1

  13. PIC - MidRange - Peryferia 13/42 • Moduł CCP (Capture/Compare/PWM) • mikrokontroler może zawierać więcej niż jeden taki układ; • współpracuje z 16b TMR1 luhb 8b TMR2; • posiada 16b rejestr zatrzaskująco/porównujący widziany jako rejestry CCPRnH i CCPRnL; • posiada własny preskaler (:1, :4, :16); • dodatkowy rejestr sterujący CCPnCON w SFR; • w trybie SLEEP nie pracuje.

  14. PIC - MidRange - Peryferia 14/42 Praca w trybie zatrzaskiwania: • zapamiętuje bieżący stan TMR1 pod wpływem zbocza na pinie CCPn (dowolnego, narastającego: co 4-tego lub co 16-tego); • zatrzaśnięcie wartości ustawia flagę CCPnIF w rejestrze PIRx i może być przyczyną przerwania (jeśli bit CCPnIE w rejestrze PIEx);

  15. PIC - MidRange - Peryferia 15/42 Praca w trybie porównywania: • porównuje bieżący stan TMR1 z wartością pamiętaną w CCPRnH i CCPRnL; • zrównanie się wartości ustawia flagę CCPnIF w rejestrze PIRx i może być przyczyną przerwania (jeśli bit CCPnIE w rejestrze PIEx); • zrównanie się wartości może zmieniać stan wyjścia CCPn i generować sygnał trygera zerującego licznik TMR1 albo inicjującego konwersję A/C.

  16. PIC - MidRange - Peryferia 16/42 • Praca w trybie PWM: • współpracuje z TMR2; • okres przebiegu wyznacza wartość rejestru PR2; • 10-bitowy współczynnik wypełnienia wpisuje się do CCPRnL i bitów DCnM1 DCnM0 (najmłodszych); • 8b TMR2 poszerza się o 2 młodsze bity z preskalera lub generatora taktu • koniec okresu zliczania TMR2 powoduje przepisanie CCPRnL do CCPRnH

  17. PIC - MidRange - Peryferia 17/42 Rejestr sterujący CCPnCON: DCnM1, DCnM2 - 9 i 8 bit współczynnika wypełnienia dla PWM CCPnM3, CCPnM2, CCPnM1, CCPnM0 - wybór trybu pracy:0000 - moduł wyłączony i wyzerowany; 0100 - zatrzaskiwanie na każdym zboczu opadającym0101 - zatrzaskiwanie na każdym zboczu narastającym0110 - zatrzaskiwanie na co 4-tym zboczu narastającym0111 - zatrzaskiwanie na co 16-tym zboczu narastającym1000 - zrównanie się wartości TMR2 i CCPRn ustawia flagę CCPnIF i wyjście CCPn=11001 - zrównanie się wartości TMR2 i CCPRn ustawia flagę CCPnIF i wyjście CCPn=01011 - zrównanie się wartości TMR2 i CCPRn ustawia flagi CCPnIF oraz SE, wyjście CCPn bez zmian.

  18. PIC - MidRange - Peryferia 18/42 • Uniwersalny port szeregowy USART • może pracować w trybie asynchronicznym w pełnym dupleksie; • transmisja znaków 8- i 9-bitowych z 1b startu i 1b stopu; • odbiornik jest podwójnie buforowany; • może pracować w trybie synchronicznym półdupleksowym jako master lub slave (wtedy RX = we/wy danych, TX = we/wy zegara); • posiada własny generator taktujący sterowany wartością z rej. SPBRG; • nadajnik ma rej. danych TXREG i rej. sterujący TXSTA; • odbiornik ma rej. danych RCREG i rej. sterujący RCSTA; • może zgłaszać przerwanie flagami RCIF, TXIF.

  19. PIC - MidRange - Peryferia 19/42 Praca w trybie asynchronicznym - nadawanie

  20. PIC - MidRange - Peryferia 20/42 Rejestr sterujący nadajnika TXSTA: CSRC - wybór źródła zegara taktującego dla transmisji synchronicznej (1 - master); TX9 - gdy =1 włącza transmisję 9-bitową; TXEN - włączenie nadawania; SYNC - gdy =1 włącza tryb synchroniczny; BRGH - wybór szybkości transmisji (gdy =1 transmisja szybka); TRMT - stan rejestru przesuwającego TSR (=1 gdy pusty); TX9D - 9 bit danych do wysłania;

  21. PIC - MidRange - Peryferia 21/42 Praca w trybie asynchronicznym - odbiór

  22. PIC - MidRange - Peryferia 22/42 Rejestr sterujący nadajnika RCSTA: SPEN - włączenie (gdy =1) modułu USART; RX9 - wybór ramki 8 (=0) lub 9 (=1) bitów; SREN - dla trybu synchronicznego: ustawiony - włącza odbiór jednej ramki; CREN - gdy =1 włącza ciągły odbiór danych; ADDEN - gdy =1 włącza wykrywanie adresu i odblokowuje przerwania gdy dziewiąty bit ramki =1; FERR - gdy =1 sygnalizuje błąd odbioru ramki OERR - gdy =1 sygnalizuje przekroczenie czasu przy odbiorze; RX9D - 9 bit odebranych danych;

  23. PIC - MidRange - Peryferia 23/42 • Interfejs szeregowy SSP • transmisja danych 8-bitowych; • może pracować jako SPI w trybie master lub slave; • może pracować jako I2C; • obsługiwany jest przy pomocy 3 rejestrów sterujących: SSPCON, SSPCON2 i SSPSTAT, rejestru adresu SSPADD oraz rejestru danych SSPBUF;

  24. PIC - MidRange - Peryferia 24/42 • Praca w trybie SPI: • realizuje 4 tryby pracy SPI; • dostępne jest wejście /SS (slave select) przy pracy w trybie slave; • po zakończeniu transmisji bajtu może zgłaszać przerwanie flagą SPIF; • tryb master podczas SLEEP nie działa; • odebranie znaku w trybie slave powoduje wyjście ze SLEEP.

  25. PIC - MidRange - Peryferia 25/42 praca w trybie master

  26. PIC - MidRange - Peryferia 26/42 • Praca w trybie I2C: • pracuje przy 100kHz i 400kHz; • realizuje wszystkie mechanizmy pracy układu slave; • dopuszcza 7- i 10-bitowe adresowanie; • może zgłaszać przerwania przy bitach START i STOP; • w trybie master rejestr SSPADD służy do programowania szybkości transmisji;

  27. PIC - MidRange - Peryferia 27/42 • Port BSSP - Basic Synchronous Serial Port • może pracować jako SPI; • może pracować jako I2C w trybie slave (tryb master wymaga wsparcia programowego); • wykorzystuje rejestry: SSPSTAT, SSPCON, SSPBUF; • może zgłaszać przerwanie flagą SSPIF w rej. PIR, jeżeli bit zezwolenia SSPIE w rej. PIE jest ustawiony.

  28. PIC - MidRange - Peryferia 28/42 • Port MSSP - Master Synchronous Serial Port • może pracować jako SPI; • może pracować jako I2C w trybie master oraz slave; • w trybie slave akceptuje także wywołanie typu komunikat; • wykorzystuje rejestry: SSPSTAT, SSPCON1, SSPCON2, SSPBUF; • może zgłaszać przerwanie flagą SSPIF w rej. PIR, jeżeli bit zezwolenia SSPIE w rej. PIE jest ustawiony.

  29. PIC - MidRange - Peryferia 29/42 • Programowalne źródło napięcia odniesienia • zwykle przeznaczone do współpracy z komparatorem; • nie działa w trybie SLEEP; • sterowane rejestrem VRCON; • włączane/wyłączane bitem VREN; • może być wewnętrznie dołączone do komparatora lub do końcówki zewn.; • wartość napięcia VREF określają bity VRR i VR3..VR0: przy VRR=1 VREF = (VR3..VR0):24*VDD przy VRR=0 VREF = VDD:4 + (VR3..VR0):32*VDD

  30. PIC - MidRange - Peryferia 30/42 Vref:

  31. PIC - MidRange - Peryferia 31/42 • Komparatory • zestaw dwóch komparatorów, których wejścia są dołączone do końcówek zewn.; • sterowane rejestrem CMCON; • mogą pracować niezależnie lub być ze sobą połączone; • mogą zgłaszać przerwania; • w trybie SLEEP nie działają;

  32. PIC - MidRange - Peryferia 32/42 • 8-bitowe przetworniki A/C • kompensacyjne; • 8/4 multipleksowanych kanałów wejściowych; • wykorzystuje rejestry: ADRES, ADCON0, ADCON1; • możliwy jest wybór częstotliwości taktowania przetwornika: fOSC:2 fOSC:8 fOSC:32 albo z wbudowanego RC • posiada bit włączający zasilanie; • może zgłaszać przerwanie;

  33. PIC - MidRange - Peryferia 33/42

  34. PIC - MidRange - Peryferia 34/42 • 10-bitowy kompensacyjny przetwornik A/C • 8 multipleksowanych kanałów wejściowych; • wykorzystuje rejestry: ADRESH, ADRESL, ADCON0, ADCON1; • możliwy jest wybór częstotliwości taktowania przetwornika: fOSC:2 fOSC:8 fOSC:32 albo z wbudowanego RC • może zgłaszać przerwanie; • może pracować w trybie SLEEP;

  35. PIC - MidRange - Peryferia 35/42

  36. PIC - MidRange - Peryferia 36/42 • 16-bitowy przetwornik A/C z przetwarzaniem U/t • 16 multipleksowanych kanałów wejściowych; • wykorzystuje rejestry: ADCAPH, ADCAPL, ADTMRH, ADTMRL, ADCON0, ADCON1, SLPCON; • posiada precyzyjne źródło napięcia odniesienia i czujnik temperatury; • może zgłaszać przerwanie; • może pracować w trybie SLEEP;

  37. PIC - MidRange - Peryferia 37/42

  38. PIC - MidRange - Peryferia 38/42 • Pamięć EEPROM • od 64 do 256 bajtów zależnie od typu; • czas zapisu maks. 10ms (zależy od temperatury i napięcia zasilania)

  39. PIC - MidRange - Peryferia 39/42 • Moduł obsługi LCD • obsługuje wyświetlacz o 4 wspólnych elektrodach i do 32 segmentach; • obsługiwany poprzez 3 rejestry sterujące: LCDCON, LCDSE i LCDPS i do 16 rejestrów danych LCDnn; • może funkcjonować w trybie SLEEP;

  40. PIC - MidRange - Peryferia 40/42 struktura modułu obsługi LCD

  41. PIC - MidRange - Przerwania 41/42 • System przerwań MidRange: • przy większej liczbie wbudowanych peryferii występują rejestry: PIR (PIR1, PIR2) - rejestr zgłoszenia przerwań; PIE (PIE1, PIE2) - rejestr indywidualnego maskowania przerwań; • wspólny wektor obsługi - od adresu 004h; • maskowalny - indywidualne flagi maskowania + flaga globalna GIE; • zablokowany po RESET; • powrót z procedury obsługi rozkazem RETFIE, ustawiającym także GIE=1; • przerwania mogą „budzić” mikrokontroler z trybu SLEEP; • przerwania mają swe flagi sygnalizacyjne. Jeżeli podczas rozkazu kasującego bit GIE pojawi sie przerwanie, to bit ten może pozostać ustawiony. Aby mieć pewność jego wyzerowania zaleca się sekwencję rozkazów: LOOP BCF INTCON,GIE ;wylacz GIE BTFSC INTCON,GIE ;czy GIE=0 GOTO LOOP ;skok jesli nie ; tu przechodzi gdy OK

  42. PIC - MidRange - Przerwania 42/42

More Related