小编科普一下ESP8266 MTDI引脚是什么东西

云深之无迹

描述

 

pYYBAGLEDlSAf8r4AABFGqZ_qQA167.jpg

 

文档里面出现MTDI这个引脚,但是看位置是SPI的一个功能脚,比较疑惑

 

poYBAGLEDmiAe10tAADPN9yuNmw697.jpg

 

引脚的位置

 

poYBAGLEDnyAAIOJAABBk5c1x3I278.jpg

 

类型是IO

poYBAGLEDpGAdVrTAABxLJIl92s628.jpg

 

MTDI

 

poYBAGLEDqeAZBiGAABHHp3dzbk831.jpg

 

PWM0

 

poYBAGLEDr-AF4n5AADh-1DVrEg554.jpg

 

看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 平台。

ESP-Prog 使用简单方便,仅用一根 USB 线即可实现与电脑的连接,电脑端可识别出下载功能和 JTAG 功能对应的两个端口。

ESP-Prog 可使用排线与用户板连接,连接器可选 2.54 mm 和 1.27 mm 两种间距的封装,具有防呆设计。用户板上需按对应顺序放置 Program (6-Pin) 和 JTAG (10-Pin) 的连接器。

考虑到不同用户板的电源电压可能不同,ESP-Prog 的两个接口均可通过 Pin Header 选择 5V 或者 3.3V 供电,具备较强的电源兼容性。

 

pYYBAGLEDwCAcgUoAAEHcKrHQaw164.jpg

实物

 

poYBAGLEDwaAO77XAABRs2pUVL4260.jpg

 

连接引脚

 

pYYBAGLEDw2AWCi1AACrLsEZM-M890.jpg

 

JTAG的定义

 

pYYBAGLEDxSAGMM6AADZ1N836rE556.jpg

 

功能框图

 

pYYBAGLED02AB8ZqAACrET5c5ME578.jpg

 

你看这个是什么,是我们见到的自动下载的设计电路

 

poYBAGLED1OAD2BVAACya8_DDX8627.jpg

 

还有一个延时电路

 

包括了总线缓存、反相器、MOS 管、一阶 RC 电路等器件。延时电路可以保证 ESP32 芯片在上电或复位过程中,先完成自身的上电启动或复位,再接通 JTAG 信号,以免受到 JTAG 影响。

 

poYBAGLED1qABhlhAAClTDob6KY251.jpg

 

具体调试的概述图

 

可以看到软件这边是,GDB,Make,相当于是应用层。PC层是OpenOCD和我们的监视程序(idf的Python包),也就是说USB和JTAG的调试器连接,JTAG连接ESP,接着一个USB连接ESP,用来输入程序。

 

poYBAGLED2GAdDKIAABv_Jh-UAY727.jpg

 

接下来解惑,我为什么死抱住这个东西不放。在技术手册里面说了这个GPIO的功能选择寄存器。

外面是pin_func_select函数,我觉得是IO口有复用功能,这个是指定功能的,然后就是里面的一参数是,对这个引脚进行操作。

 

poYBAGLED5yANMI7AABcxGCcYVA954.jpg

 

然后就是启用第几个功能,这个地方有Excel文件:

 

poYBAGLED6KAWlnwAABJ7eW4scc066.jpg

 

就像这样

 

pYYBAGLED6mACkosAABt-azmUtQ971.jpg

 

这个就更清晰了

 

poYBAGLED6-AAgeBAABA51TitVA600.jpg

 

输出功能开启,这个真的是很人性化,按位写,一共16个,从0开始

 

pYYBAGLED-KAWgFPAABGlsGb37w038.jpg

 

输出关闭

 

poYBAGLED-iAEP5rAABY_Fgm9vI912.jpg

 

这个是输出状态询问

 

pYYBAGLED_CABGC4AABOelqQLbE600.jpg

 

这个是写寄存器,1时,位置输出低电平

 

pYYBAGLED_aAYR50AABN5g1xPCM170.jpg

 

同理高电平,记得先使能

 

poYBAGLEECuATMkZAABxNIu82B0835.jpg

 

输入状态寄存器,是默认是输入

 

poYBAGLEEDGADnvKAAA1RPlyuCc624.jpg

 

这个地方其实是表里面第一个引脚,就好像例子一样

 

0:该 GPIO 的中断禁⽤

1:上升沿触发中断 

2:下降沿触发中断 

3:双沿触发中断 

4:低电平 

5:⾼高电平  

 

poYBAGLEEDiAAYLnAACvwjYZJY0323.jpg

 

持续的读指定位的值,读到去处理ISR,处理完以后把中断清楚。

 

pYYBAGLEED6AEAaKAADDhFzLu9c898.jpg

 

16这个特殊,不可以使用中断功能

 

pYYBAGLEEHKAZfJwAABeOTk7n-8198.jpg

 

上面都是单个的寄存器设置,下面来看看具有实用性的配置

 

poYBAGLEEHeAeRN0AAA-mRdO--Q880.jpg

 

寄存器的地址,位数的作用

 

pYYBAGLEEH6AYg0SAABq8ao-9nI253.jpg

 

输出高电平

 

pYYBAGLEEIOAK-pJAAAtrxDFPfU136.jpg

 

7位写1就是上拉

 

poYBAGLEELeACcf2AABFKeLUQbE571.jpg

 

上拉

 

pYYBAGLEELyASMWwAADSIcWFNqI162.jpg

 

中断触发

 

poYBAGLEEMOABf57AADpYAMHbsI046.jpg

中断状态量先定义,读REG的值(参数是地址),接着赋给状态,下面进行寄存器的写。

 

pYYBAGLEEMqAP3r8AACjrzkfllw223.jpg

 

先读中断状态,清楚中断掩码,下面是IO的消息

 

pYYBAGLEEPaAK01aAAB3gImf418519.jpg

 

支持 4 位 25 MHz SDIO v1.1 和 4 位 50 MHz SDIO v2.0

 

poYBAGLEEP2AGDP3AAByflT3qSM775.jpg

SPI 模式可由软件编程实现。时钟频率最大为 80 MHz

 

poYBAGLEEQeAXQHeAABO1XeAhuA035.jpg

 

还有一个HSPI,其实也是SPI,以上都是硬件SPI

可以说很瞌睡了

现在Github不挂梯子根本就上不去了。


		

但是关于ESP8266的调试基本是没有,详细的在ESP32这里,应该是可以兼容的。


		

审核编辑:刘清

打开APP阅读更多精彩内容

电子工程师必装软件(附AD封装库

值得收藏!用过都说好!

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分