首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于CP210x USB-FTDI芯片的SAMD21仿真

基于CP210x USB-FTDI芯片的SAMD21仿真
EN

Stack Overflow用户
提问于 2022-04-23 17:57:03
回答 2查看 346关注 0票数 0

单片机的ESP32系列开发板使用CP210x (或类似的) "FTDI“芯片在闪烁时与单片机通信。CP210x向运行esptool.py的主机提供一个COM端口,这是一个实现Esressif通信协议的脚本。与其使用CP210x,我希望使用一个SAMD21来代替它。

我已经设法从我的ESP32,通过SAMD21,通过USB接收到我电脑上的串行监视器的日志。SAMD21通过UART连接到ESP32,标准的ESP配置为115200 8N1。通过在引导时保持正确的引脚,我可以手动进入引导加载程序模式,并得到日志返回确认正确的引导加载程序模式。

但是,当我运行esptool.py时,连接会失败,并且会超时。同样,esptool "monitor“无法确认我的终端模拟器很容易检测到的相同日志。

运行esptool.py的主机、CP210x FTDI芯片和ESP32之间的通信协议是什么?如何用SAMD21来模拟CP210x?"FTDI“、"TTL”和"RS232“的定义都有点模糊,据我在网上的研究可以确定,所以如果有人在这个领域有经验,我很想听听你的建议。

我的SAMD21上的代码只是:

代码语言:javascript
复制
#include <Arduino.h>

void setup()
{
    Serial.begin(115200);
    Serial1.begin(115200);
}

void loop()
{
    if(Serial.available())
    {
        Serial1.write(Serial.read());
    }
    if(Serial1.available())
    {
        Serial.write(Serial1.read());
    }
}

其中Serial1是UART,Serial是USB串行连接。

EN

回答 2

Stack Overflow用户

发布于 2022-04-23 18:21:35

esptool.py期望串行端口(在Windows上称为COM端口)与ESP32通信。它不在乎计算机是否有一个老式的串行端口,是否使用带有专有协议(FTDI、CP210x等)的USB到串行桥,或者使用标准化的UBS协议进行串行通信(USB CDC ACM)。这将留给操作系统和已安装的驱动程序处理。

然而,esptool.py修改波特率,并使用RTS和DTR信号重置ESP32。它还相当容易受到与重置有关的定时问题的影响。如果您在引导模式中手动设置了ESP32,那么您应该能够在没有这些模式的情况下离开。

但是,最有可能的原因是Arduino CDC实现没有实现流控制。如果esptool.py发送的数据比放入内部缓冲区的数据多,则很可能会丢弃它,而不是将NAK发回,以便主机稍后可以重试。

我不完全理解SAMD21的Arduino核心来验证它。如果是这样的话,我不知道如何使它与Arduino程序一起工作。您需要使用其他框架来编程SAMD21。

更新

经过更多的测试,证明SAMD21 Arduino核的USB实现正确地实现了流控制。所以不会有任何数据丢失。

实际上,我能够成功地将代码上传到ESP32模块。设置如下:

  • 用PlatformIO构建的Arduino代码。我使用的不是Serial,而是SerialUSB,因为我不确定如何控制常规Arduino IDE中可用的项目设置。
  • 对于ESP32,我在一个最小的板上使用了ESP32 32-WROOM-32模块(重置和启动按钮,2个拉出电阻)。
  • 我已经通过GND,3.3V,TX,RX直接连接到SAMD21开发板。
  • 我已经验证了,我可以在正常运行模式下看到ESP32日志输出,在引导加载程序模式下(在按引导和重置之后)看到“等待下载”提示符。
票数 2
EN

Stack Overflow用户

发布于 2022-04-24 19:29:00

Arduino有多个主板,esp32作为WiFi适配器安装在板上.为了闪现esp32,在WiFi库的示例中有一个名为SerialNINAPassthrough的工具草图,它应该被上传到主板上(在两个官方板上的SAMD21)。

SerialNINAPassthrough草图处理esptool发送的DTR和RTS信号,以便将板重置为闪烁模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71982301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档