前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dji TT无人机扩展件ESP32芯片(D2WDQ5)

Dji TT无人机扩展件ESP32芯片(D2WDQ5)

作者头像
云深无际
发布2021-06-25 15:47:04
1.5K0
发布2021-06-25 15:47:04
举报
文章被收录于专栏:云深之无迹

就是蓝色位置的芯片

代码语言:javascript
复制
项目使用了964036字节,
占用了(74%)程序存储空间,
余留346684字节,
最大为1310720字节。

全局变量使用了40760字节,
(14%)的动态内存,
余留254152字节局部变量,
最大为294912字节。 
esptool.exe 
--chip esp32 
--port COM3 
--baud 921600 
read_flash 0x400000 4 

Chip is ESP32D2WDQ5 (revision 1)


Features: 
WiFi, 
BT, 
Dual Core, 
Embedded Flash, 
VRef calibration in efuse

因为最近在做一个无人机辅助的操控装置,大的无人机不方便调试,就目光又转向了TT,所以需要不停的刷写程序,所以又燃起了对扩展件的研究欲望。上面的日志来自于烧录时,里面已经有了很多有趣的东西了,主要时芯片。

代码语言:javascript
复制
ESP32D2WDQ5

但是随便一搜索,都是自己写的东西

就是这种感觉,根本不想看自己写的东西

代码语言:javascript
复制
https://www.espressif.com/zh-hans/support/documents/technical-documents

我们下载这份文档来读

记住是系列芯片

代码语言:javascript
复制
ESP32-D2WD 为 400 MIPS

别的都是600 MIPS,这个就是400 ,不过我觉得可能就是已经够用了。

频率为160Mhz

看这个说法是自己带了flash

代码语言:javascript
复制
CS# = GPIO16,
IO1/DO = GPIO17,

IO3/HOLD# = SD_CMD,
CLK = SD_CLK,

IO2/WP# =SD_DATA_0,
IO0/DI = SD_DATA_1

这个是芯片的引脚连接flash的定义

芯片的引脚使用图

ESP32-D2WD 的内置 flash 的工作电压是 1.8 V, 上电时需要将 MTDI 拉高

启动时使用的引脚

ESP32-D2WD 和 ESP32-U4WDH 芯片的整体工作温度为–40 °C ~ 105 °C

在特性里面看见最后一个东西,去查查是什么,是内部烧录的一个值

ADC的参考电压(VREF)<-就是它

代码语言:javascript
复制
https://github.com/espressif/esptool/wiki/espefuse

它就是一个py的脚本,一起安装了

代码语言:javascript
复制
# python $IDF_PATH/components/esptool_py/esptool/espefuse.py --port COM7 adc_info
代码语言:javascript
复制
# python $IDF_PATH/components/esptool_py/esptool/espefuse.py --port COM7 adc_info
espefuse.py v2.7-dev
Connecting........_____....._
ADC VRef calibration: 1093mV

上面是用工具读取整个电压的值为多少

根据设计,ADC 参考电压为 1100 mV,但在不同的 ESP32 中,真实参考电压的范围可以从 1000 mV 到 1200 mV。

校准值

校准值用于生成说明特定 ESP32 芯片的 ADC 参考电压变化的特性曲线。ESP32 目前有 3 个校准值来源。这些校准值的可用性将取决于 ESP32 芯片/模块的类型和生产日期。

  • 两点值代表 ADC 在 150 mV 和 850 mV 下的每个读数。为了获得更准确的校准结果,用户应测量这些值并将其烧录到 eFuse 中BLOCK3
  • eFuse Vref代表真正的 ADC 参考电压。该值BLOCK0在工厂校准期间被测量并烧录到 eFuse中。
  • 默认 Vref是用户提供的 ADC 参考电压的估计值,作为表征期间的参数。如果两点或 eFuse Vref 值不可用,则将使用默认 Vref。 2018 年第 1 周后生产的 ESP32-D0WD 和 ESP32-D0WDQ6 芯片已单独测量和烧录eFuse Vref。此类芯片可通过 012018 年或以后的日期代码识别(见下图第 4 行) )。
代码语言:javascript
复制
• 448 KB ROM
• 520 KB SRAM
• 16 KB RTC SRAM
• QSPI 支持多个 flash/SRAM

这个是芯片的一些存储参数

最后出现了SPI,那这个芯片框图就不可少了

看上面写的三组SPI接口

ESP32 共有 4 个 SPI 控制器,用于连接支持 SPI协议的设备。

SPI0 控制器作为 cache 访问外部存储单元接口使用,

SPI1 作为主机使用, SPI2 和 SPI3 控制器既可作为主机使用又可作为从机使用。作主机使用时,每个 SPI 控制器可以使用多个片选信号 (CS0~CS2) 来连接多个 SPI 从机设备。SPI1 ~ SPI3 控制器共享两个 DMA 通道。

SPI 控制器在 GP-SPI 模式下,支持标准的四线全双工通信(MOSI、 MISO、 CS、 CLK)和三线半双工通信(DATA、CS、 CLK)。

SPI 控制器在 QSPI 模式下使用信号总线 D、 Q、 CS0~CS2、 CLK、 WP 和 HD 作为 4-bit 并行 SPI总线来访问外部 Flash 或 SRAM。

从左数看第三个

令人迷惑的一点是,HSPI和VSPI并不是high-speed SPI 和Very High-speed SPI,而是SPI和HSPI、VSPI是一样的,只不过是换个名字用于区分,SPI相当于SPI0或SPI1,HSPI相当于SPI2,VSPI相当于SPI3。

SPI0和SPI1通过总线仲裁器共享一条信号总线,用于在模组内部访问FLASH(SoC FLASH),不对用户开放。

SPI2和SPI3是通用SPI控制器,也被称为HSPI和VSPI。它们拥有独立的信号总线,每条总线都有三条片选(CS)信号,也就是说每个控制器都能驱动最多3个SPI从器件。这两个SPI控制器对用户开放

SPI

SPI0或SPI1

HSPI

SPI2

VSPI

SPI3

所有SPI相关的API都不能在中断服务函数或上下文切换期间使用,因为SPI相关的API都调用了互斥量,可能会造成系统错误,这个是编写程序时要注意的。

在使用IDF编程时:

代码语言:javascript
复制
#include "driver/spi_master.h
#include "driver/spi_slave.h

调用设备的头文件为

这些事来自于官方的文档,具体使用时要比对再确认

翻译自官网

代码语言:javascript
复制
https://blog.csdn.net/qq_40500005/article/details/113966067

作者在此

SPI和对应的GPIO的表,也叫映射

最后给出一个命名表来结束文章

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 校准值
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档