Hirdetés

Új hozzászólás Aktív témák

  • Janos250

    őstag

    válasz Teasüti #7779 üzenetére

    Egy kis kiegészítés az ESP32 soros portjaihoz:
    Van UART0, UART1,UART2
    Mindháromnak van RXD,TXD,CTS,RTS, de DSR és DTR csak az UART0-nak. Én eddig még csak az RXD,TXD-t használtam.
    Az ESP periféria kezelése kétféleképp történik:
    1. "GPIO matrix":
    Ezzel bármelyik periféria kapcsolható bármelyik lábhoz, egy un. GPIO matrixon keresztül. Ezt úgy kell elképzelni, mint pl. a klaviatúra mátrixát.
    Tehát a mátrixnak vannak sorai, ami a perifériák jelei. Vannak oszlopai, ami a 34 láb ("GPIO pad"), amik sajnos nem folytonos számozásúak: (0-19, 21-23, 25-27, 32-39).
    Ha a megfelelő jel és a láb (pad) kereszteződésébe teszel egy pöttyöt, akkor a jel és a láb hardveresen össze lesz kapcsolva.
    2. "IO_MUX":
    Ezzel 5 gyors jel (Ethernet, SDIO, SPI, JTAG, UART) közvetlenül (bypass) kapcsolható a lábakhoz, de itt előre definiált, hogy melyik jel melyik lábhoz kapcsolódik.
    Ez gyors, mert elkerüli (bypass) a GPIO matrixot.

    Mi következik nekünk ebből az UARTokra vonatkozóan?
    Ha az UARTok példányosításánal nem adunk meg lábat, akkor a gyors bypass szerinti láb rendelődik hozzá az alábbiak szerint:
    U0TXD -> GPIO1
    U0RXD -> GPIO3

    U1TXD -> GPI010
    U1RXD -> GPIO9

    U2TXD -> GPI017
    U2RXD -> GPI016
    Ezzel a következő a bajunk:
    A mai lapokon az ESP-WROOM-32 fémházas hibrid áramkör van (ne is vegyen senki meg olyat, amin nem ez van), tartalmazza többek között az ESP32-t és plusz memóriát.
    Ennek a plusz memóriának a címzéséhez használja többek között a GPIO9-et, és a GPIO10-et.
    Ezért az UART1 soros portot más lábakra kell rakni, a másik kettő meg maradhat a hardveres kiosztáson.
    Ezért kell megadni a soros1-hez a felhasználni kívánt lábakat:
    pl: Serial1.begin(57600, SERIAL_8N1, Serial1_RXPIN, Serial1_TXPIN) ;

Új hozzászólás Aktív témák