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.
ESP32 --- part 2 -- PORTY GPIO I ICH FUNKCJE
Wiedza tajemna dla wytrwałych ...
- SunRiver
- Użytkownik
- Posty: 1517
- Rejestracja: 08 paź 2017, 11:27
- Lokalizacja: Festung Oppeln
- Kontakt:
Przejdź do
- ..:: Zestawy Developerskie i Moduły ARM
- ↳ STM32-Discovery
- ↳ STM32-Nucleo
- ↳ STM32MP1
- ↳ STM32H7xx
- ↳ STM32 Development BOARD
- ↳ FRDM-Kinetis
- ↳ Freeboard
- ↳ Raspberry Pi Pico
- ↳ CKit PSoC Cypress
- ↳ Inne ARM i nie tylko ...
- ↳ ARM Pod Lupą
- ↳ FPGA - field-programmable gate array
- ..:: Zestawy Developerskie i Moduły RISC-V
- ↳ GD32VF103
- ↳ Kendryte
- ↳ Sztuczna Inteligencja
- ↳ RISC-V Ogólnie
- ..:: IoT (Internet of Things)
- ↳ ESP8266
- ↳ ESP32
- ↳ ESP32 Dla opornych
- ↳ LVGL - dla ESP32
- ↳ Zestawy i płytki deweloperskie.
- ↳ ESP32-S2
- ↳ ESP32-S3
- ↳ M5stack
- ↳ RTL8710
- ↳ Inne moduły WIFI dla IoT
- ↳ Suplowy kącik
- ↳ IoT Hacking
- ..:: Wireless-owo
- ↳ ZigBEE
- ↳ Lora i SIgFOX
- ↳ Bluetooth , BLE
- ↳ GSM, GPRS
- ↳ Inne moduły bezprzewodowe..
- ..:: Mini Komputery
- ↳ Amlogic Khadas VIM
- ↳ Pine64
- ↳ SomLABS VisionCB
- ↳ Raspberry Pi
- ↳ Raspberry Pi ZERO
- ↳ Raspberry Pi 1
- ↳ Raspberry PI 2
- ↳ Raspberry Pi 3
- ↳ Raspberry Pi 4
- ↳ Orange Pi PC
- ↳ PC Stick
- ..:: Ogólnie technicznie ....
- ↳ Konstrukcje Robotów
- ↳ Warsztat
- ↳ Warsztat Suna
- ↳ Okiem Serwisanta
- ↳ Pomiary w elektronice
- ↳ Oldskulowy warsztat
- ↳ Technikalia
- ↳ Zagwozdki elektroniczne
- ↳ PCB CAD
- ↳ EkoTronika
- ..:: Mikrokontrolery programistycznie ...
- ↳ C dla ARM
- ↳ C dla Tensilic
- ↳ mbed
- ↳ Visual Studio Style IDE
- ↳ Inne środowiska
- ..:: PC programistycznie....
- ↳ Visual Studio C#
- ↳ ..:: Na szybciora --- z cyklu Sun Poleca C# z pieca...
- ↳ Visual Studio C++
- ↳ ..:: Na szybciora --- z cyklu Sun Poleca C++ z pieca...
- ↳ Python
- ↳ Python w plasterkach
- ↳ GoLang
- ↳ Go - Studium przypadku
- ↳ Go od kuchni
- ↳ Sztuczki i Triki w IDE dla Go
- ↳ Linux
- ..:: LTM SunDuino
- ↳ Płytki i moduły SunDuino
- ↳ ESP32
- ↳ ESP8266
- ↳ Risc-V
- ↳ STM32
- ↳ SunSOFT
- ↳ Jaskinia Xbarego
- ↳ Co nowego ...
- ↳ SoTToN IoT
- ↳ Powitalnia
- ..:: SunRiverowe Książki
- ↳ Książka MKdBP
- ↳ W labiryncie IoT
- ↳ Kody żródłowe
- ↳ Programowanie w Go. Poznaj prosty i wydajny język od Google
- ↳ Jaki masz pomysł ? - napiszmy to razem w Go
- ↳ Go Panic!: Dział Pełen Absurdów
- ..:: Po godzinach
- ↳ Nowości ze świata elektroniki
- ↳ Warto kupić i mieć pod ręką
- ↳ Nasze pasje poza elektroniką ..
- ↳ Promocje...
- ↳ Na luzie