使用 Arduino 作为 FTDI 编程器对 ESP8266 (ESP-12) 进行编程

Using Arduino as FTDI programmer to program ESP8266 (ESP-12)

我一直在关注 this instructable 将我的 Arduino Uno 配置为 FTDI 编程器,因为我想用它来为我全新的 ESP8266 编程。我在我的 Arduino 和 ESP-12 之间使用了一个 5V <-> 3.3V 双向逻辑电平转换器。 VCC 来自外部电源。我目前拥有的连接如下:

ESP-12 |来自 Arduino 和 3.3V 电源的电平转换逻辑

每次我尝试使用最新的 Arduino IDE (1.6.5) 将一些代码(f.x。Blink 示例)上传到 ESP-12 时,我收到以下错误:

warning: espcomm_sync failed

error: espcomm_open failed

当我将 ESP-12 上的复位引脚拉低时,我得到传入的串行数据,在 115200 波特率下几乎无法读取:

是否有人成功地使用 Arduino Uno 对 ESP-12 进行了编程,或者碰巧知道这是否可行?

所以我想出的解决方案并不理想。 5V <-> 3.3V 逻辑电平转换器似乎存在某种错误。我的解决方案是将 arduino 上的 TX/RX 引脚直接 插入 ESP-12 上的 RX/TX 引脚。 ESP-12 上的 RX/TX 引脚 不正式支持 5V 逻辑 但在我看来,它们似乎支持。使用 5V 逻辑 风险自负

我目前在 Arduino IDE 1.6.5 上使用的设置可以在下面的示意图中看到(尽管适用于 ESP-12,而不是示意图上的 ESP-1)。要对 ESP-12 进行编程,您必须先按下 SW1 并按住 SW2。之后您应该能够从最新的 Arduino IDE 对芯片进行编程。

您不能一次编程 2 个芯片。为了将您的 arduino 开发板用作 FTDI 编程器,您有 2 种方法

  1. 移除 Arduino 芯片
  2. 将Arduino的复位引脚连接到GND

尝试在这些修改之后编程。

如果您使用的是 Arduino 板的 FTDI 芯片,那么由于其奇怪的引脚标记,您实际上必须连接 TX-TX 和 RX-RX。

这个可以在ATMega芯片就位的情况下完成——没有坏处,但是小心 您的 Arduino 开发板在串行 TX/RX 引脚上使用 3v3 - 一些开发板可能使用 5v,这 炸毁您的 ESP8266!我古老的 Duemilanove 工作正常,但是 YMMV。