Check out my first novel, midnight's simulacra!

ESP8266: Difference between revisions

From dankwiki
Tags: mobile web edit mobile edit
Tags: mobile web edit mobile edit
Line 3: Line 3:


==Hardware==
==Hardware==
A Tensilica Diamond Standard 106Micro runs the Xtensa instruction set at 80MHz by default, and can be run at 160MHz. 32KB of code memory and 80KB of data are available to the user. There is no cache.
A Tensilica Diamond Standard 106Micro runs the Xtensa instruction set at 80MHz by default, and can be run at 160MHz. 32KB of code memory and 80KB of data are available to the user. There is no cache. IEEE 802.11 b/g/n support is available in AP, STA, and monitor modes.


===GPIO===
===GPIO===

Revision as of 06:26, 26 November 2022

Pinout for the NodeMCU v1

A series of 32-bit microcontroller units from Espressif, followed by the ESP32. The first generation of the NodeMCU SoC was based around ESP8266.

Hardware

A Tensilica Diamond Standard 106Micro runs the Xtensa instruction set at 80MHz by default, and can be run at 160MHz. 32KB of code memory and 80KB of data are available to the user. There is no cache. IEEE 802.11 b/g/n support is available in AP, STA, and monitor modes.

GPIO

  • 17 bidirectional, non-inverting, tristate GPIO pins, with input and output buffer registers.
    • Pullup and pulldown resistors available on all pins
    • Pins can be set high-impedence
    • Edge- and level-triggered interrupts available on all pins

PWM

  • Four PWM channels on pins 10, 13, 9, and 16

ADC

There is only one (10-bit) ADC, and it reports values between [0, 1], not [0, 3.3]. This is not a scaling--the input voltage should not exceed 1V. The NodeMCU changes this significantly:

  • The NodeMCU applies a divider network to scale the 3.3V down to 1V. This usefully allows supplying 3.3V to the external device.
  • On the NodeMCU, this ADC can read the battery voltage instead of a connected external device. This is set in firmware.
  • If the ADC is left unconnected, VCC can be read using ESP.getVcc(). Before calling this function, ADC_MODE(ADC_TOUT) (for external voltage) or ADC_MODE(ADC_VCC) (for system voltage) must be called.

External links