文档里面出现MTDI这个引脚,但是看位置是SPI的一个功能脚,比较疑惑 引脚的位置 类型是IO MTDI PWM0 看12引脚 看这个名称都有M和U的修饰,那么我就查到了。 JTAG接口主要由4根信号线组成:TCK、TDI、TDO、TMS。 TCK是JTAG模块外部输入时钟; TDI是JTAG模块外部数据输入信号; TDO是JTAG模块外部输出信号; TMS是JTAG模块的模式选择信号; 应该就是解惑了,ESP32可以使用JTAG来调试,这12-14就是JTAG的引脚。 官方有个调试器: ESP-Prog 是一款乐鑫推出的开发调试工具,具有自动下载固件、串口通信、JTAG 在线调试等功能。自动下载固件和串口通信功能适用于 ESP8266 和 ESP32 平台。JTAG 在线调试功能适用于 ESP32 平台。 实物 连接引脚 JTAG的定义 功能框图 你看这个是什么,是我们见到的自动下载的设计电路 还有一个延时电路 包括了总线缓存、反相器、MOS 管、一阶 RC 电路等器件。延时电路可以保证 ESP32 芯片在上电或复位过程中,先完成自身的上电启动或复位,再接通 JTAG 信号,以免受到 JTAG 影响。 具体调试的概述图 可以看到软件这边是,GDB,Make,相当于是应用层。PC层是OpenOCD和我们的监视程序(idf的Python包),也就是说USB和JTAG的调试器连接,JTAG连接ESP,接着一个USB连接ESP,用来输入程序。 接下来解惑,我为什么死抱住这个东西不放。在技术手册里面说了这个GPIO的功能选择寄存器。 外面是pin_func_select函数,我觉得是IO口有复用功能,这个是指定功能的,然后就是里面的一参数是,对这个引脚进行操作。 然后就是启用第几个功能,这个地方有Excel文件: 就像这样 这个就更清晰了 输出功能开启,这个真的是很人性化,按位写,一共16个,从0开始 输出关闭 这个是输出状态询问 这个是写寄存器,1时,位置输出低电平 同理高电平,记得先使能 输入状态寄存器,是默认是输入 这个地方其实是表里面第一个引脚,就好像例子一样 0:该 GPIO 的中断禁⽤ 1:上升沿触发中断 2:下降沿触发中断 3:双沿触发中断 4:低电平 5:⾼高电平 持续的读指定位的值,读到去处理ISR,处理完以后把中断清楚。 16这个特殊,不可以使用中断功能 上面都是单个的寄存器设置,下面来看看具有实用性的配置 寄存器的地址,位数的作用 输出高电平 7位写1就是上拉 上拉 中断触发 中断状态量先定义,读REG的值(参数是地址),接着赋给状态,下面进行寄存器的写。 先读中断状态,清楚中断掩码,下面是IO的消息 支持 4 位 25 MHz SDIO v1.1 和 4 位 50 MHz SDIO v2.0 SPI 模式可由软件编程实现。时钟频率最大为 80 MHz 还有一个HSPI,其实也是SPI,以上都是硬件SPI 可以说很瞌睡了 现在Github不挂梯子根本就上不去了。
但是关于ESP8266的调试基本是没有,详细的在ESP32这里,应该是可以兼容的。
|
|