【ESP32-Korvo测评】(1)开发板电路连接
[复制链接]
本帖最后由 cruelfox 于 2021-1-29 09:03 编辑
乐鑫科技ESP32-Korvo开发板,可以看作是ESP32的一个面向语音接收和处理的应用原型。硬件分为上下两块圆形的板子,以FPC排线连接。下面是主板,包含ESP32模块和主要音频电路,以及电源、接口部分;上面的是麦克风阵列板,除了麦克风外还附带了一组按钮开关和一组RGB LED。这套板子是针对语音应用的软件开发设计,并未留太多额外的扩展口,并非通用型的ESP32开发板。一般型应用,买ESP32模块自己搭外围电路也不复杂,只有音频应用涉及到ADC、DAC及功放这些电路才需要ESP32-Korvo这样的专用开发板。
主板的核心是焊在上面的ESP32-WROOVER-E模块,也就是ESP32芯片为主的核心板,两边引出了许多GPIO脚。模块只有一个3.3V的电源输入脚。
板子上的TF(MicroSD)卡座数据线是直接接到ESP32的GPIO上的(额外串联电阻、上拉电阻、ESD二极管的处理),但是电路图上 ESP0_SD_DAT1, ESP0_SD_DAT2 两个信号并未连到ESP32,因此SD卡是以SPI方式操作的。在ESP32模块的右边还有1组4个通孔焊盘,标注为“SDIO”,这是独立的另一个1-bit模式SD接口,4个信号也是直接连到ESP32.
从ESP32出来两组I2S(Inter-IC-Sound)信号,分别连接ES7210(4路输入ADC)和ES8311(单声道Codec). ES7210, ES8311也都接到ESP32引出的I2C总线上,用于配置。还有ESP32的一个GPIO信号PA_CTRL用于板载音频功放芯片的使能控制。
ESP32的I2C,以及另外两个GPIO信号:BT_ARRAY_ADC和WS2812_CTRL都连接到FPC座,也就是连到麦克风阵列板上去了。
ESP32的一组UART(两线)连接到模块右恻的通孔焊盘,也和板载的CP2102芯片(USB转串口)连接。板子的两个Micro-USB接口一个用于供电,另一个就是CP2102构成的虚拟串口。有点特殊的是,CP2102的DTR,RTS信号也用上了,接到三个三极管上面,对ESP32的引脚(Boot_EN, Boot_IO0, Boot_IO2)产生了影响,可以产生拉低的效果。此外,这三个信号可由板子边上的轻触开关来拉低。
汇总一下ESP32模块的引脚分配情况如下表:
模拟部分,ADC具有4路差分输入,但输出只用了一条数据线,怀疑数据为TDM格式而非I2S格式。
4路模拟输入只有其中3路通过FPC座连到了麦克风阵列板(也连接了到主板中央的2x7排针通孔焊盘上)。
另外的一路连接到了DAC的输出(经由一个阻容构成的衰减网络),用于回声消除的参考信号输入。
DAC的差分输出直接连到了3.5mm耳机座。如果不插耳机,这个信号就接入功放芯片NS4150, 用于驱动喇叭。
麦克风阵列板上最外圈是12只RGB LED. PCB设计有两种配置,一种是用驱动芯片IS31FL3236A, 接在I2C总线上由ESP32访问;另一种也就是实际选用的,用带控制器的LED芯片WS2812, 以菊花链形式连接,只用ESP32的一个IO口就能控制了,这样元件数量也少了很多。阵列板上中间有6个轻触开关排成一圈,它们被用于选择BT_ARRAY_ADC信号线上不同的下拉电阻。配合主板上的10k上拉电阻,不同的按键(以及组合)下这条信号线就有不同的电压,再用ESP32的ADC来转换,根据ADC值识别按键。
板子上麦克风阵列有三种配置,实际选用的三只模拟麦克风(MSM381A3729H9BPC)的形式。从电路图上看有一种配置是三只数字麦克风,其CLK和DAT数字引脚与模拟麦克风是共用排线,因此数字麦克风需要ADC支持才能工作,但主板上看不出有这样的支持。
|