Esp32cam 连接ESP32失败:等待包头超时

Esp32cam Failed to connect to ESP32: Timed out waiting for packet header

我今天刚收到我的第一个 esp32cam (AI THINKER),我很高兴能对其进行测试,但是我无法向其上传任何代码。我总是收到以下错误:

Failed to connect to ESP32: Timed out waiting for packet header

所以,我用的FTDI是FT232r,接线方式如下

FTDI Wiring

我如何重现此错误:

还有:

我已经试过了:

我是做错了什么还是哪里出了问题?

闪烁的先决条件:

  • ArduinoIDE 1.8.12
  • 核心 ESP32 1.04(撰写本文时)
  • Select 板载 AI Thinker Cam
  • 上传速度921600
  • 频率 240Mhz
  • 闪光频率 80Mhz
  • 模式 QIO 如果不工作尝试 DIO
  • 默认分区方案
  • 串行监视器已关闭
  • 没有硬件连接到 ESPcam 的引脚
  • 确保USB线是数据线且仅非加载线
  • 检查 Windows 设备管理器是否显示编程器并且具有最大速度/8n1 硬件

连接数

    FTDI    -   ESP32
    GND         GND
     5V          5V
    TXD         UOR
    RXD         UOT

如果您使用 AIThinker Cam 克隆,则必须将 GIPO 0 接地:

  • 用连接到 GND 的杜邦线连接 GPIO 0
  • 按下重置键
  • 编译上传(使用AI THINKER CAM)
  • 可选:
    • 按下重置键
    • 上传文件系统数据 (SPIFFS)
  • 断开 GPIO 0 和 GND
  • 按下重置键
  • 代码应该执行

是的,每次上传都必须这样做,在我的开发板上,我焊接了一个带有适当隔离的小开关
更多经验解决方案:

  • 如果仍然存在问题,请在RX0和GND之间使用10K(左右)的下拉电阻(焊接前在面包板上测试)
  • 在某些 "bad" 板上上传时按住 (!) 启动按钮
  • 我遇到了一块 "normal" ESP32 板 - 只是为了确定 - 我得到了一个 ESP32 包装的 ESP8266。配置ESP8266解决上传问题

已通过使用其他跳线解决此问题。似乎布线中使用的跳线之一有问题。

如果您遇到同样的问题并尝试了此 post 中的所有方法,请尝试检查您的电缆!

在这方面我已经研究了数周的解决方案,看来我有一个解决方案。

调查结果-

  1. FTDI 模块可能有问题或不支持每个实例。
  2. Aithinker Board 与 esspressif 不兼容(使用 ESP32Wrover,更多详情见下文)

我有 Esspressif 的 esp32cam,不是 Aithinker。

我尝试使用 FT232rl ,无论我使用什么 Voltage/jumpers/USB 电缆,它都不起作用。总是遇到致命的超时错误。

经过多次 FTDI 突破的徒劳尝试后,我尝试了我的 Arduino UNO(请注意我的 UNO 有 mega16u2 芯片作为 USB串行芯片(振荡器旁边的右上角)幸运的是它工作正常。

我读到 CP2102 也在工作。

                        **Here are the steps to follow-**
  1. Arduino ESP32Cam 连接数

    3.3 Arduino --------- 3v Esp32CAM 
    GND Arduino ------------ GND Esp32CAM
    RESET Arduino to Ardunio GND
    RX Arduino -------------- VOR Esp32CAM (this is not a mistake RX to rx & TX to tx)
    TX Arduino -------------- VOT Esp32CAM
    GPIO 0(zero)(written as IO0) Esp32CAM to GND Esp32CAM 
    
  2. 我在上传之前和上传过程中的任何操作都不需要按重置按钮。

  3. 我假设您已经预装了 esp32 开发板管理器。

  • 现在 select 您的 Uno(在本例中)所在的正确 COM 端口 已插入。

  • Select 提到的正确电路板

      Tools>Board>ESP32 Arduino > select ESP32 Wrover Module
    
  • 一些上传设置要完成(在工具下,这些只有在 selected Wrover 模块时才会出现)

     Upload speed -- 115200
     Flash Frequency -- 40Mhz
     Flash Mode -- QIO
     Partition Scheme --- Huge App
     Port ---- select the right com port for your breakout or UNO
    

只需按上传并放松

稍后,您将能够看到此消息

        Leaving...
        Hard resetting via RTS pin...
  • 断开Esp32Cam GPIO 0和GND
  • 使用外部电源为 ESP32Cam 提供 5/3v 电源(除非连接有源 USB 集线器,否则 Arduino 或其他分线器可能无法使用)
  • 保持两块板子的TX、RX和GND连接,不要断开Arduino Reset和GND。
  • 在 ESPCAM 上按 Reset 并打开串口监视器,如果它配置了您的 wifi,您将能够看到摄像头的 IP 地址 correctly.OR 在 android 上获取任何网络扫描仪应用程序或windows.

希望对您有所帮助。

如果你用 arduino 尝试它,它可以工作,但在你上传你的代码之前需要按下 esp32 上的重置按钮

基本上我在很长一段时间内都面临着完全相同的问题。对我有用的是,当芯片闪烁时,将电源线从 5V 切换到 3V3 引脚。我不知道为什么,但它有效。当 esptool 开始以 2% 的速度闪烁时,尽管从电源到 3V3 点有 5V 电压,但此时切换电缆使闪烁成功。我确实意识到这可能不是您问题的一个错误答案,因为它涉及在错误的点上为芯片提供过剩电压,因为它正在闪烁并可能损坏芯片。但是,如果有人厌倦了调试并且正处于考虑丢弃芯片的地步,不妨试试我的方法。对于重视筹码的其他人,请不要尝试这种方法,如果您仍然这样做,请自担风险。但在 3 天搞乱连接后,它对我有用。

就我而言,我忘记取出 SD 卡。其他用户建议删除不必要的引脚连接——从技术上讲,SD 卡使用了其中的一些 :)