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