Changes between Version 3 and Version 4 of esp32_tips


Ignore:
Timestamp:
May 5, 2017 11:39:48 PM (3 years ago)
Author:
kishida
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • esp32_tips

    v3 v4  
    88== ピンアサイン ==
    99
    10 [https://espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf ESP32 Datasheet(PDF)]より抜粋
     10[https://espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf ESP32 Datasheet(PDF)]より抜粋。
     11より詳しく各ピン別の機能を見る際は[https://espressif.com/sites/default/files/documentation/esp32_pinout_v1_0.pdf ESP32 Pinout]を参照してください。
    1112
    1213||**Name**||**No.**||**Type**||**Function**||
     
    5152||GND||39||P||Ground||
    5253
    53 *がついているピン(IO6~11)はモジュール内部でSPIフラッシュメモリに接続されているため、他の用途での利用は推奨されません。
     54*がついているピン(IO6~11)はモジュール内部でSPIフラッシュメモリに接続されているため、他の用途での利用は推奨されません。また、後述するピンマトリクス機能においても、IO6~11を別の機能に割り当てることは推奨されません。
    5455
    55 == 周辺機能のピン割当 ===
     56== GPIOマトリクス機能について ==
    5657
    57 [https://espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf ESP32 Datasheet(PDF)]より抜粋
     58各種ペリフェラルを説明する前に、本機能について少し説明します。Arduinoからは離れた話なので、Arduinoとして少し使うぶんには気にしなくとも問題ありません。詳細については、説明しきれない部分が多いため、以下の資料を御覧ください。
    5859
    59 Wikiのフォーマッティングの都合上少し見にくくなっています。詳しくはPDFでご確認ください
     60[https://espressif.com/sites/default/files/documentation/esp32_pinout_v1_0.pdf ESP32 Pinout]の`Note.12`にある通り、内蔵ペリフェラル用の信号は設定によって好きなピンに再割り当てすることが可能です
    6061
    61 ||Interface||Signal||Pin||Function||
    62 || |||| ||||
    63 || ||ADC1_CH0||SENSOR_VP|| ||
    64 || ||ADC1_CH3||SENSOR_VN|| ||
    65 || ||ADC1_CH4||IO32|| ||
    66 || ||ADC1_CH5||IO33|| ||
    67 || ||ADC1_CH6||IO34|| ||
    68 || ||ADC1_CH7||IO35|| ||
    69 || ||ADC2_CH0||IO4|| ||
    70 || ||ADC2_CH1||IO0|| ||
    71 || ||ADC2_CH2||IO2|| ||
    72 || ||ADC2_CH3||IO15|| ||
    73 || ||ADC2_CH4||IO13|| ||
    74 || ||ADC2_CH5||IO12|| ||
    75 ||ADC||ADC2_CH6||IO14||Two 12-bit SAR ADCs||
    76 || ||ADC2_CH7||IO27|| ||
    77 || ||ADC2_CH8||IO25|| ||
    78 || ||ADC2_CH9||IO26|| ||
    79 || |||| ||||
    80 ||Ultra Low Noise||SENSOR_VP||IO36||Provides about  60dB gain by using larger capacitors on PCB||
    81 ||Analog Pre-Amplifier||SENSOR_VN||IO39|| ||
    82 || |||| ||||
    83 || ||DAC_1||IO25|| ||
    84 ||DAC||DAC_2||IO26||Two 8-bit DACs||
    85 || |||| ||||
    86 || ||TOUCH0||IO4|| ||
    87 || ||TOUCH1||IO0|| ||
    88 || ||TOUCH2||IO2|| ||
    89 || ||TOUCH3||IO15|| ||
    90 || ||TOUCH4||IO13|| ||
    91 || ||TOUCH5||IO12|| ||
    92 || ||TOUCH6||IO14|| ||
    93 ||Touch Sensor||TOUCH7||IO27||Capacitive touch sensors||
    94 || ||TOUCH8||IO33|| ||
    95 || ||TOUCH9||IO32|| ||
    96 || |||| ||||
    97 || ||HS2_CLK||MTMS|| ||
    98 || ||HS2_CMD||MTDO|| ||
    99 || ||HS2_DATA0||IO2|| ||
    100 ||SD/SDIO/MMC Host||HS2_DATA1||IO4|| ||
    101 ||Controller||HS2_DATA2||MTDI||Supports SD memory card V3.01 standard||
    102 || ||HS2_DATA3||MTCK|| ||
    103 || |||| ||||
    104 || ||PWM0_OUT0~2|| ||||
    105 || ||PWM1_OUT_IN0~2|| ||||
    106 || ||PWM0_FLT_IN0~2|| ||||
    107 || ||PWM1_FLT_IN0~2|| ||Three channels of 16-bit timers generate PWM waveforms; each  has a pair of output signals.  Three fault detection||
    108 || ||PWM0_CAP_IN0~2|| ||signals.  Three event capture signals.  Three sync signals.||
    109 || ||PWM1_CAP_IN0~2|| ||||
    110 ||Motor PWM||PWM0_SYNC_IN0~2||Any GPIOs*|| ||
    111 || ||PWM1_SYNC_IN0~2|| ||||
    112 || |||| ||||
    113 || ||ledc_hs_sig_out0~7|| ||16 independent channels @80 MHz clock/RTC CLK. Duty accuracy: 16 bits.||
    114 ||LED PWM||ledc_ls_sig_out0~7||Any GPIOs*|| ||
    115 || |||| ||||
    116 || ||U0RXD_in|| ||||
    117 || ||U0CTS_in|| ||||
    118 || ||U0DSR_in|| ||||
    119 || ||U0TXD_out|| ||||
    120 || ||U0RTS_out|| ||||
    121 || ||U0DTR_out|| ||||
    122 || ||U1RXD_in|| ||||
    123 || ||U1CTS_in|| ||||
    124 || ||U1TXD_out|| ||||
    125 || ||U1RTS_out|| ||||
    126 ||UART||U2RXD_in||Any GPIOs*||Two UART devices  with hardware flow-control and DMA||
    127 || ||U2CTS_in|| ||||
    128 || ||U2TXD_out|| ||||
    129 || ||U2RTS_out|| ||||
    130 || |||| ||||
    131 || ||I2CEXT0_SCL_in|| ||||
    132 || ||I2CEXT0_SDA_in|| ||||
    133 || ||I2CEXT1_SCL_in|| ||||
    134 || ||I2CEXT1_SDA_in|| ||||
    135 || ||I2CEXT0_SCL_out|| ||||
    136 || ||I2CEXT0_SDA_out|| ||||
    137 ||I2C||I2CEXT1_SCL_out||Any GPIOs*||Two I2C devices  in slave or master  modes||
    138 || ||I2CEXT1_SDA_out|| ||||
    139 || |||| ||||
    140 || ||I2S0I_DATA_in0~15|| ||||
    141 || ||I2S0O_BCK_in|| ||||
    142 || ||I2S0O_WS_in|| ||||
    143 || ||I2S0I_BCK_in|| ||||
    144 || ||I2S0I_WS_in|| ||||
    145 || ||I2S0I_H_SYNC|| ||||
    146 || ||I2S0I_V_SYNC|| ||||
    147 || ||I2S0I_H_ENABLE|| ||||
    148 || ||I2S0O_BCK_out|| ||||
    149 || ||I2S0O_WS_out|| ||||
    150 || ||I2S0I_BCK_out|| ||||
    151 || ||I2S0I_WS_out|| ||||
    152 || ||I2S0O_DATA_out0~23|| ||||
    153 || ||I2S1I_DATA_in0~15|| ||||
    154 || ||I2S1O_BCK_in|| ||||
    155 || ||I2S1O_WS_in|| ||||
    156 || ||I2S1I_BCK_in|| ||||
    157 || ||I2S1I_WS_in|| ||||
    158 || ||I2S1I_H_SYNC|| ||||
    159 || ||I2S1I_V_SYNC|| ||"Stereo  input and output from/to the audio codec, and parallel LCD data  output"||
    160 ||I2S||I2S1I_H_ENABLE||Any GPIOs*|| ||
    161 || ||I2S1O_BCK_out|| ||||
    162 || ||I2S1O_WS_out|| ||||
    163 || ||I2S1I_BCK_out|| ||||
    164 || ||I2S1I_WS_out|| ||||
    165 || ||I2S1O_DATA_out0~23|| ||||
    166 || |||| ||||
    167 || ||RMT_SIG_IN0~7|| ||Eight channels of IR transmitter and receiver for various waveforms||
    168 ||Remote  Controller||RMT_SIG_OUT0~7||Any GPIOs*|| ||
    169 || |||| ||||
    170 || ||SPIHD||SHD/SD2|| ||
    171 || ||SPIWP||SWP/SD3|| ||
    172 || ||SPICS0||SCS/CMD|| ||
    173 || ||SPICLK||SCK/CLK|| ||
    174 || ||SPIQ||SDO/SD0|| ||
    175 || ||SPID||SDI/SD1|| ||
    176 || ||HSPICLK||IO14|| ||
    177 || ||HSPICS0||IO15|| ||
    178 || ||HSPIQ||IO12|| ||
    179 || ||HSPID||IO13|| ||
    180 || ||HSPIHD||IO4|| ||
    181 || ||HSPIWP||IO2|| ||
    182 || ||VSPICLK||IO18||"Supports Standard SPI, Dual SPI, and Quad SPI that can be connected to the external flash and SRAM"||
    183 ||Parallel QSPI||VSPICS0||IO5|| ||
    184 || ||VSPIQ||IO19|| ||
    185 || ||VSPID||IO23|| ||
    186 || ||VSPIHD||IO21|| ||
    187 || ||VSPIWP||IO22|| ||
    188 || |||| ||||
    189 || ||HSPIQ_in/_out|| ||"Standard SPI consists of clock,"||
    190 || ||HSPID_in/_out|| ||"chip-select, MOSI and MISO. These SPIs can be connected to LCD and other external devices.  They support  the following features:"||
    191 || ||HSPICLK_in/_out|| ||? both master  and slave modes;||
    192 || ||HSPI_CS0_in/_out|| ||? 4 sub-modes of the SPI format transfer that depend on the clock phase (CPHA) and clock polarity (CPOL) control;||
    193 || ||HSPI_CS1_out|| ||? CLK frequencies  by a divider;||
    194 || ||HSPI_CS2_out|| ||? up to 64 bytes of FIFO and DMA.||
    195 || ||VSPIQ_in/_out|| ||||
    196 || ||VSPID_in/_out|| ||||
    197 ||General Purpose||VSPICLK_in/_out|| ||||
    198 ||SPI||VSPI_CS0_in/_out||Any GPIOs*|| ||
    199 || ||VSPI_CS1_out|| ||||
    200 || ||VSPI_CS2_out|| ||||
    201 || |||| ||||
    202 || ||MTDI||IO12|| ||
    203 || ||MTCK||IO13|| ||
    204 || ||MTMS||IO14|| ||
    205 ||JTAG||MTDO||IO15||JTAG for software debugging||
    206 || |||| ||||
    207 || ||SD_CLK||IO6|| ||
    208 || ||SD_CMD||IO11||SDIO interface that conforms  to the industry standard SDIO 2.0 card specification.  On ESP-WROOM-32 these pins are connected to the integrated  SPI flash.||
    209 || ||SD_DATA0||IO7|| ||
    210 || ||SD_DATA1||IO8|| ||
    211 ||SDIO Slave||SD_DATA2||IO9|| ||
    212 || ||SD_DATA3||IO10|| ||
    213 || |||| ||||
    214 || ||EMAC_TX_CLK||IO0|| ||
    215 || ||EMAC_RX_CLK||IO5|| ||
    216 || ||EMAC_TX_EN||IO21|| ||
    217 || ||EMAC_TXD0||IO19|| ||
    218 || ||EMAC_TXD1||IO22|| ||
    219 || ||EMAC_TXD2||IO14|| ||
    220 || ||EMAC_TXD3||IO12|| ||
    221 || ||EMAC_RX_ER||IO13|| ||
    222 || ||EMAC_RX_DV||IO27|| ||
    223 || ||EMAC_RXD0||IO25|| ||
    224 || ||EMAC_RXD1||IO26|| ||
    225 || ||EMAC_RXD2||TXD|| ||
    226 || ||EMAC_RXD3||IO15|| ||
    227 || ||EMAC_CLK_OUT||IO16|| ||
    228 || ||EMAC_CLK_OUT_180||IO17|| ||
    229 || ||EMAC_TX_ER||IO4|| ||
    230 ||EMAC||EMAC_MDC_out||Any GPIOs*||Ethernet MAC with MII/RMII interface||
    231 || ||EMAC_MDI_in||Any GPIOs*|| ||
    232 || ||EMAC_MDO_out||Any GPIOs*|| ||
    233 || ||EMAC_CRS_out||Any GPIOs*|| ||
    234 || ||EMAC_COL_out||Any GPIOs*|| ||
     62回路ブロック図に関しては、[https://espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf ESP32 Technical Reference Manual]の`4. IO_MUX and GPIO Matrix`が詳しいです。
     63
     64ESP32には「(物理的な)ピン」「IO MUX」「GPIO マトリックス」という3つの回路があります。ピンに対してはIO MUXが接続されています。一つのピンは内蔵機能またはGPIOとして割り当てる事ができます。これをIO MUXにて行います。
     65
     66IO MUXにてGPIOに割り当てられたピンは、GPIO マトリックスにて機能の割り当てを行うことができます。GPIOマトリックスは、入力と出力を文字通り自由に組み替えら得れる回路になっており、ピンへの入力を内蔵ペリフェラルピンに割り当てたり、逆にペリフェラルピンを出力ピンに接続したりできます。
     67
     68このGPIOマトリックスにて操作できるものは、基本的に内蔵ペリフェラルほぼ全てです。よって、他のデバイスとのコミュニケーションにはおおよそ好きなピンを利用することができます。
     69
     70ただし、以下の制約があります。
     71* GPIO 34~39 ピンは出力には使えない
     72* GPIO 0,2 ピンはブートモードの設定に利用される
     73* GPIO 12 は内蔵LDOの電圧設定に利用される
     74* GPIO 15 はU0TXDピンのデバッグログの設定に利用される
     75* Ethernet, SDIO, SPI, JTAG, UARTなどの高速信号は、パフォーマンス低下を回避するためにGPIOマトリクスを介さないで接続でき、その場合は出力ピンが固定される。
    23576
    23677== SPI通信 ==
    237 
    238 複雑で、理解が少し困難です。ざっくり結論を述べると、基本的に好きなピンをSPI通信に利用することができます。
    23978
    24079=== 内部の仕様について ===