M5Core2 是M5Stack开发套件系列中第二代主机,在原有一代主机基础上对功能进一步加强,硬件功能更加齐全。其核心主控Core2配备了ESP32-D0WDQ6-V3
,具有两个可以单独控制的 Xtensa® 32-bit LX6
处理器,主频高达240Mhz,支持WiFi功能,板载16MB Flash
与8MB PSRAM
,可通过TYPE-C
接口下载程序,强劲的配置满足复杂应用的资源开销。正面搭载一块2.0寸一体化电容式触摸屏,为用户带来更流畅的人机交互体验。
机身内置震动马达
,可提供触觉回馈
和震动提醒功能。内建的RTC模块可提供精准计时功能。电源部分搭载AXP192
电源管理芯片可有效控制机身功耗,内置绿色电源指示灯。同时机身内配备了TF-card(microSD)
卡槽与扬声器,为了保证获得更高质量的声音效果,采用I2S
数字音频接口的功放芯片
,能有效防止信号失真。在机身的左侧和底部配有独立的电源按键与重启(RST)按键,屏幕正面的3个圆点属于触摸屏的一部分,可通过编写程序设置热区映射为3个虚拟按键。机身背部的扩展小板集成6轴IMU传感器与麦克风。
1x M5Stack Core2
1x Type-C USB(20cm)
1x 内六角扳手
物联网控制器
STEM教育
DIY作品
智能家居设备
主控资源 | 参数 |
---|---|
ESP32-D0WDQ6-V3 | 240MHz dual core, 600 DMIPS, 520KB SRAM, Wi-Fi |
Flash | 16MB |
PSRAM | 8MB |
输入电压 | 5V @ 500mA |
主机接口 | TypeC x 1, GROVE(I2C+I/0+UART) x 1 |
LED | 绿色电源指示灯 |
按键 | 电源键、RST键、屏幕虚拟按键*3 |
震动提醒 | 震动马达 |
IPS LCD屏幕 | 2.0"@320*240 ILI9342C |
电容式触摸屏IC | FT6336U |
扬声器功放 | NS4168 |
麦克风 | SPM1423 |
I2S功放 | NS4168 |
IMU | MPU6886 |
RTC | BM8563 |
PMU | AXP192 |
USB芯片 | CP2104/CH9102F (两个芯片版本, 功能与使用上并无差异) |
DC-DC升压 | SY7088 |
TF卡槽 | 支持最大16G |
锂电池 | 500mAh @ 3.7V |
天线 | 2.4G 3D天线 |
工作温度 | 0°C to 60°C |
底座螺丝规格 | 内六角沉头M3 |
内部PCB板预留接口 | 电池接口(规格:1.25mm-2P)USB线路接口(规格:1.25mm-4P) |
净重 | 52g |
产品尺寸 | 54 x 54 x 16.5mm |
包装尺寸 | 75 x 60 x 20mm |
外壳材质 | Plastic ( PC ) |
CP2104
版本)/CP34X(适用于CH9102
版本)驱动程序压缩包.在解压压缩包后,选择对应操作系统位数的安装包进行安装。(若您不确定您的设备所使用的USB芯片, 可同时安装两种驱动。CH9102_VCP_SER_MacOS v1.7
在安装过程中,可能出现报错,但实际上已经完成安装,忽略即可。) 在使用时,若出现无法正常下载程序(提示超时或者是Failed to write to target RAM)的情况,可尝试重新安装设备驱动。驱动名称 | 适用驱动芯片 | 下载链接 |
---|---|---|
CP210x_VCP_Windows | CP2104 | Download |
CP210x_VCP_MacOS | CP2104 | Download |
CP210x_VCP_Linux | CP2104 | Download |
CH9102_VCP_SER_Windows | CH9102 | Download |
CH9102_VCP_SER_MacOS v1.7 | CH9102 | Download |
EasyLoader是一个简洁快速的程序烧录器,其内置了一个产品相关的案例程序,通过简单步骤将其烧录至主控,即可进行一系列的功能验证.
LCD 屏幕 & TF Card
LCD 像素:320x240 TF 卡最大支持 16GB
ESP32 Chip | GPIO38 | GPIO23 | GPIO18 | GPIO5 | GPIO15 | |||
---|---|---|---|---|---|---|---|---|
AXP192 Chip | AXP_IO4 | AXP_DC3 | AXP_LDO2 | |||||
ILI9342C | MISO | MOSI | SCK | CS | DC | RST | BL | PWR |
ESP32 Chip | GPIO38 | GPIO23 | GPIO18 | GPIO4 |
---|---|---|---|---|
TF Card | MISO | MOSI | SCK | CS |
CAP.TOUCH (I2C Addr: 0x38)
ESP32 chip | GPIO21 | GPIO22 | GPIO39 | |
---|---|---|---|---|
AXP192 | AXP_IO4 | |||
FT6336U | SDA | SCL | INT | RST |
麦克风 & NS4168功放
ESP32 Chip | GPIO12 | GPIO0 | GPIO2 | AXP_IO2 | GPIO34 |
---|---|---|---|---|---|
NS4168 | BCLK | LRCK | DATA | SPK_EN | |
Mic | CLK | DATA |
AXP电源指示灯 & 震动马达
AXP192 | AXP_IO1 | AXP_LDO3 |
---|---|---|
Green LED | Vcc | |
Vibration motor | Vcc |
RTC
ESP32 Chip | GPIO21 | GPIO22 | |
---|---|---|---|
AXP192 | AXP_PWR | ||
BM8563 | SDA | SCL | INT |
IMU(3轴陀螺仪+3轴加速计)
ESP32 Chip | GPIO21 | GPIO22 |
---|---|---|
MPU6886 | SDA | SCL |
USB转串口下载
ESP32 Chip | GPIO1 | GPIO3 |
---|---|---|
CP2104/CH9102F | RXD | TXD |
内部I2C连接
ESP32 Chip | GPIO21 | GPIO22 |
---|---|---|
MPU6886 | SDA | SCL |
AXP192 | SDA | SCL |
BM8563 | SDA | SCL |
FT6336U | SDA | SCL |
PORT | PIN | 备注: |
---|---|---|
PORT-A(红色) | G32/33 | I2C |
PORT-B(黑色) | G26/36 | DAC/ADC |
PORT-C(蓝色) | G13/14 | UART |
ADC1 | ADC2 | DAC1 | DAC2 |
---|---|---|---|
8 通道 | 10 通道 | 2 通道 | 2 通道 |
G32-39 | G0/2/4/12-15/25-27 | G25 | G26 |
有关引脚分配和引脚重新映射的更多信息,请参考 ESP32 datasheet
充电电流测量值
充电电流 | 充满后电流(关机) | 充满电(开机) |
---|---|---|
0.219A | 0.055A | 0.147A |
Datasheet
API
《ESP32 formats and communication protocols》 一书分了几章介绍了 M5Stack Core2 模块。M5Stack Core2模块集成了触摸LCD屏幕,蓝牙和Wi-Fi通信,麦克风和扬声器,以及加速度计和陀螺仪,使M5Stack Core2模块非常通用。本书使用通信协议构建项目,从将智能手表连接手机(BLE)到与地球上空环绕的卫星的远程通信(LoRa)以及设备之间的音频信号传输(I2S)。QR 码用于通过互联网控制外部设备,而 ESP-MESH 和 ESP-NOW 协议可在没有互联网连接的情况下实现微控制器之间的通信。
上市日期 | 产品变动 | 备注: |
---|---|---|
2020.6 | 首次发售 | / |
2021.7 | CP2104替换为CH9102F | 实际发货有CP2104/CH9102F两个芯片版本, 功能与使用上并无差异 |
2023.2 | 取消RTC纽扣电池 | 不影响定时功能 |
2023.10 | 锂电池容量更改为500mAh | / |
for (auto gpio : (const uint8_t[]){18, 19, 23}) {
*(volatile uint32_t*)(GPIO_PIN_MUX_REG[gpio]) |= FUN_DRV_M;
gpio_pulldown_dis((gpio_num_t)gpio);
gpio_pullup_en((gpio_num_t)gpio);
}
#include <M5Core2.h>
void setup() {
M5.begin();
}
void loop() {
Serial.printf("Bat Voltage:%f\n", M5.Axp.GetBatVoltage());
delay(500);
}