ESP32 --- part 2 -- PORTY GPIO I ICH FUNKCJE

Wiedza tajemna dla wytrwałych ...
ODPOWIEDZ
Awatar użytkownika
SunRiver
Użytkownik
Posty: 1517
Rejestracja: 08 paź 2017, 11:27
Lokalizacja: Festung Oppeln
Kontakt:

ESP32 --- part 2 -- PORTY GPIO I ICH FUNKCJE

Post autor: SunRiver »

Kontynuując opis GPIO i ich Funkcji z poprzedniej części...

8. Piny do obsługi kart SD

Co ciekawe ESP32 posiada dedykowane piny do obsługi kart pamięci.
Są to Piny:

HS2_CLK – MTMS
HS2_CMD – MTDO
HS2_DATA0 – GPIO2
HS2_DATA1 – GPIO4
HS2_DATA2 – MTDI
HS2_DATA3 – MTCK

9. PWM GPIO

Jak wspominałem mamy 2 piny DAC którymi możemy kontrolować PWM , ale Wszystkie pozostałe piny
ogólnego przeznaczenia - oczywiście poza nieszczęsnymi 6ma pinami wejść cyfrowych z punktu pierwszego
tego opisu. Wspominałem też że maksymalnie możemy wygenerować sygnał PWM o częstotliwości 80MHz.
Ponadto możemy każdy pin skonfigurować jako PWM w uproszczeniu w taki sposób:

a). Ustawiamy wybraną częstotliwość modulacji.
b). Ustawiamy cykl pracy.
c). Ustawiamy kanał PWM --- do dyspozycji mamy ich aż 16
d). Przypisujemy do kanału wybrany pin GPIO

Do szczegółów PWM na ESP32 jeszcze wrócimy ...

10. Sterowanie silnikami PWM

To taki fjuczer pozwalający sterować silnikiem poprzez wewnętrzne rejestry. Do dyspozycji mamy aż dwie wbudowane jednostki zwane MCPWM.
Przy ich pomocy możemy sterować bezpośrednio silnikami. Każda z jednostek ma trzy pary wyjść , wystarczy przypisać rejestry do Pinów GPIO.
Rejestry te to:

PWM1_OUT_IN0~2
PWM0_FLT_IN0~2
PWM1_FLT_IN0~2
PWM0_CAP_IN0~2
PWM1_CAP_IN0~2
PWM0_SYNC_IN0~2
PWM1_SYNC_IN0~2

Do nich również wrócimy ....

11. I2C

Oczywiście jak każdy mikrokontroler również ESP32 zapewnia nam dostęp do magistrali I2C
poprzez fizyczne piny , którymi są :

GPIO21 - SDA
GPIO22 - SCL

12. SPI

ESP32 udostępnia 2 kanały komunikacyjne SPI , Mamy wiec do dyspozycji VSPI i HSPI. oba są domyślnie przypisane
do określonych pinów GPIO , ale w razie potrzeby możemy je remapować na inne PINY GPIO.

-- kanał --- MOSI ------ MISO ---- SCK ------- CS
-- VSPI --- GPIO23 -- GPIO19 -- GPIO18 -- GPIO15
-- HSPI --- GPIO13 -- GPIO12 -- GPIO14 -- GPIO15

W związku z faktem iż pamięć flash ESP32 jest układem zewnętrznym która pracuje na magistrali SPI
musimy wykazać ostrożność w korzystaniu z używanych przez ten kanał pinów.
Producent wręcz pisze żeby nie używać pinów podłączonych do Pamięci FLASH do innych celów gdyż może to zakłócić
pracę układu i wręcz doprowadzić do uszkodzenia zawartości pamieci.

13. RTC

Co ciekaw mamy też rejestr RTC-GPIO przypisany do pinów których możemy użyć
do obudzenia układu z trybu uśpienia.

RTC_GPIO0 –- GPIO36
RTC_GPIO3 -- GPIO39
RTC_GPIO4 –- GPIO34
RTC_GPIO5 –- GPIO35
RTC_GPIO6 –- GPIO25
RTC_GPIO7 -- GPIO26
RTC_GPIO8 –- GPIO33
RTC_GPIO9 –- GPIO32
RTC_GPIO10 - GPIO4
RTC_GPIO11 – GPIO0
RTC_GPIO12 – GPIO2
RTC_GPIO13 – GPIO15
RTC_GPIO14 – GPIO13
RTC_GPIO15 – GPIO12
RTC_GPIO16 – GPIO14
RTC_GPIO17 – GPIO27

14. I2S

Kolejnym przydatnym fjuczerem naszego układu ESP jest interfejs I2S, który służy do odbioru i transmisji
dźwięku miedzy 2ma urządzeniami. Dysponujemy dwoma kontrolerami I2S , z których każdy pracuje w trybie half-duplkex.
Jeśli potrzebujemy pełnego duplexu możemy je połączyć ze sobą.
I2S znajdziemy na pinach : GPIO 25 i 26. Jako ciekawostka piny te możemy dołączyć do wyjść DAC dzięki
czemu uzyskamy bezpośrednie wyjście analogowe AUDIO.

15. Kontroler IR

Wbudowano w układ również Sterownik podczerwieni , można go używać do nadawania sygnałów
zdalnego sterowania w podczerwieni. Dzięki czemu możemy prosto sterować dowolnym pilotem naszym
ESP32 jak również sterować urządzeniami IR naszym ESP32.

16. PCNT zliczanie impulsów

Tu mamy do dyspozycji 8 liczników PCNT, możemy nimi zliczać zbocza narastające i opadające podanego sygnału.
Każdy z 8 liczników składa się z 16bitowego rejestru który zlicza wartości w zakresie 0 do 65535
dla obu rodzajów zbocz sygnału wejściowego. Liczniki możemy też ustawić w tryb zliczania poprzez wyzwolenie
konkretnym zboczem. Dostępny mamy też pin kontrolny pozwalający włączyć i wyłączyć zliczanie .
Co również istotne każdy pin GPIO może być wejściem LICZNIKA.

17. RESET ESP32

Nasz ESP32 posiada pin zwany EN z rezystorem Pull-UP umożliwiający włączenie i wyłączenie regulatora 3,3V
Na devkitch zwykle jest on podpięty do przycisku reset. ale możemy go używać do automatycznego resetowania
płytki, wystarczy tranzystorem dołżczyć go do GND .

-------------------------------------------------------------------------------------------------------------------------------------------
Oczywiście to nie wszystko mamy jeszcze wiele ciekawych modułów w naszym ESP32 jak CAN , ETH, SDIO, UART
do wszystkiego wrócimy w kolejnych wpisach ... o ile oczywiście będziecie zainteresowani.
ODPOWIEDZ

Wróć do „ESP32 Dla opornych”