在esp32开发板上实现的web_radio,基于wm8978 codec芯片

  • 前言
    • 下载编译
    • 硬件连接
    • 烧写测试
    • TODO

前言

本文介绍了如何在esp32板子上实现自己的web_radio,用的是wm8978 codec芯片。详细代码参考github工程,这里其实是fork了另一位大牛的工程,在原来的工程中,其实已经可以工作。不过,用的是芯片自带的DAC转换而已,效果不是很好。这里考虑了使用外接IIS codec芯片:wm8978,这是淘宝链接:WM8978音频解码模块扬声器驱动I2S模块STM32F103软解MP3开发板,是IIC接口的,使用很方便。但是注意,这个芯片是需要提供MCLK的!网上查了一下,发现ESP32的GPIO 0正好可以输出该时钟信号。闲话少说,let’s begin!

下载编译

其实README里面已经很详细,关于如何下载esp-idf以及下载配置工具链我就不多说了。

git clone https://github.com/cloverclose3/ESP32_MP3_Decoder.git
cd ESP32_MP3_Decoder
make menuconfig   # 配置 Web Radio / Bluetooth Speaker  --->#  [*] WM8978 codec support  ----#     Wifi Configuration  --->#            (你的wifi ssid) WiFi SSID#            (你的wifi psk) WiFi Password
git submodule init
git submodule update
make

硬件连接

在这个工程里面,用到了很多的GPIO口,有的板子,比如我的,有些gpio口已经接了其他的外设,比如led灯,喇叭,继电器等等。还有些gpio口是系统预留的,我们无法使用。还有些gpio只有输入功能等等这些限制。这里罗列了一下esp32可用的gpio,摘录自esp32手册:

The ESP32 chip features 40 physical GPIO pads. Some GPIO pads cannot be used or do not have the corresponding pin on the chip package (refer to the ESP32 Datasheet).

  • GPIO6-11 are usually used for SPI flash.
  • GPIO20, GPIO24, and GPIO28-31 are not available as pins.
  • GPIO34-39 can only be set as input mode and do not have software pullup or pulldown functions.

而这个工程里面已经用到的gpio口有:

  • control: 原来用的是GPIO 0,因为我需要用GPIO 0来产生codec需要的MCLK,所以,被我改成了使用GPIO 12。
  • lcd: 使用到了GPIO 5 16 17 18 19 21

鉴于上面的分配,我选择连接codec的gpio如下:

  • IIC: SDA <-----> GPIO14
  • IIC: SCL <-----> GPIO15
  • IIS: BCLK (板子上标SCLK) <-----> GPIO26
  • IIS: LR CLK <-----> GPIO25
  • IIS: DATA CLK (板子上标DIN) <-----> GPIO22
  • IIS: MCLK <-----> GPIO0

这里的GPIO 0输出的是12M的频率:256*44kHz=11.264MHz,这里的44k是一般的mp3的采样率,再根据芯片手册上 MCLK = 256fs,所以,12M的输出可以满足需求。

最后,再次重申一点,上面的连接只是在我的板子上的情况,哪些口可以用需要根据你板子的实际外设情况来看。有些GPIO口被占用了你需要换其他的口!

最终的连接图如下:

烧写测试

注意,在烧写的时候,需要把GPIO 0接地,烧完了,然后再接到MCLK上。上电,接上耳机,嗯,效果相当不错哦。。

TODO

我在原来工程的基础上,注释掉了LCD的task,发现如果不去掉,会影响网络的连接!这个问题有时间慢慢查吧,这里暂时也用不着液晶的显示屏,注释掉也没有影响。

在esp32开发板上实现的web_radio,基于wm8978 codec芯片相关推荐

  1. 【问题解决】ESP32开发板上的CP210xUSB转串口坏了怎么办

    微信关注公众号 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 今天居然遇到了主板上的USB转串口芯片坏了的情况!这运气真是.. 还好问题解决了 ...

  2. 物联网开发笔记(32)- 使用Micropython开发ESP32开发板之手机扫二维码远程控制开关灯(2)

    一.目的 上一节我们测试了远程控制的环境是好的,这一节在我们的240x240的oled屏幕上显示二维码,然后用手机扫二维码,远程控制LED灯的状态. 二.环境 ESP32 + 240x240的oled ...

  3. 超便利!教你用ESP32开发板DIY掌上网页服务器!

    本文作者:默.默是铁熊的创客好友,经常与铁熊分享创意项目. 前段时间有个老师对我说:每到开学季,学校就要印刷学生的录取名单并进行张贴,为此学校每年都要耗费大量的人力物力.学校里面教学活动很多,传统的通 ...

  4. esp32摄像显示时间_TinyPICO-比拇指还小的ESP32开发板- 国外创客众筹发现第二期

    国外创客开发板创新日新月异 我们想尝鲜体验却十分苦难 一片板卡从海外跋山涉水到我们手中 遇到各种各样的问题 海外组团开始啦!~ 本次我们从国外开发板众筹网站crowdsupply 挑选一款体积较小/功 ...

  5. 启明云端带你一起撸ESP32开发板,玩转语音、彩屏

    AI语音赋予ESP32开发板灵魂,彩屏赋予了视觉色彩,有了这两样,人机交互就真正可以落地到应用. 以小家电为例,目前大多小家电看起来是带有屏幕,但显示内容非常的单一和千篇一律.这些产品没有特别的亮点和 ...

  6. ESP32开发板开源啦 ESP32-IOT-KIT全开源物联网开发板

    鸽了已久的 ESP32开发板计划 终于赶在年前与大家见面了,本来上个月就能一睹芳容的,无奈年末好多事儿堆在一起,又碰巧手机出了问题,以前的照片全部丢失.为不影响开源效果,这期间一直在完善资料,Gith ...

  7. nodemcu引脚_一、ESP32开发板NodeMCU-32S简介

    目录 NodeMCU-32S 引脚功能 板上资源 总结功能特点 NodeMCU-32S NodeMCU-32S是基于 ESP32-32S 模组设计的一款较为经典的ESP32开发板,个人认为较为适合初学 ...

  8. 物联网开发笔记(31)- 使用Micropython开发ESP32开发板之手机扫二维码远程控制开关灯(1)

    一.目的 我们分3节讲述远程控制.这一节在我们的240x240的oled屏幕上显示二维码,然后用手机扫二维码,从开发板的TCP服务器上返回字符串. 二.环境 ESP32 + 240x240的oled彩 ...

  9. 物联网开发笔记(25)- 使用Micropython开发ESP32开发板之控制LCD1602显示屏

    这一节我们讲解了如何控制LCD1602显示屏,显示两行字. 一.目的 使用MicroPython开发ESP32开发板控制LCD1602显示屏 二.环境 ESP32 + LCD1602显示屏 + Tho ...

  10. 物联网开发笔记(58)- 使用Micropython开发ESP32开发板之控制2.90寸电子墨水屏模块黑白套件

    一.目的 这一节我们学习如何使用我们的ESP32开发板来控制2.90寸电子墨水屏模块(黑白套件). 二.环境 ESP32 + 2.90寸 电子墨水屏模块 + Thonny IDE + 几根杜邦线 接线 ...

最新文章

  1. IT菜鸟,希望大家赐教
  2. #ifdef __cplusplus extern “C” { #endif的作用!
  3. 设置DIV半透明CSS代码:
  4. Exchange误删除邮箱用户后恢复账户问题
  5. LeetCode 124. Binary Tree Maximum Path Sum
  6. Kubernetes 网络部分
  7. html5音频插件js,jquery音乐播放器插件jsRapAudio
  8. javascript监听输入框_js与jquery实时监听输入框值的oninput与onpropertychange方法
  9. python爬图mzitu_换个框架爬妹子图mzitu解决直接访问的403
  10. vue-app开发入门
  11. 局域网***原理与防御(网络执法官类)
  12. 宽带噪声干扰 matlab,噪声干扰信号及Matlab仿真.doc
  13. 课后作业3:软件分析与用户体验分析
  14. Java编程思想第十章内部类的10.7至10.8小节的笔记和练习题
  15. 如果你在it院校学习累了,你能干什么?
  16. 基于强化学习的自我完善聊天机器人
  17. 计算机哪个行业前景好?
  18. js中foreach有三种写法,你知道吗
  19. 《程序员养成记》第1集 做程序员需要天赋吗?
  20. 计算机桌面右下角网络连接的图标不见了,电脑右下角本地连接图标不见了 这种找回方法既简单有轻松...

热门文章

  1. 支教日记软件测试,烟酒行销售实习日志(74页)-原创力文档
  2. pyodbc 操作SQL Server数据库
  3. 老婆生成器 yyds
  4. wps页眉偶数页不同怎么设置_WPS文字应技巧—如何使奇数和偶数页的页眉页脚不同...
  5. 内存超频时序怎么调_超频技术之内存“时序”重要参数设置解说
  6. Javo 基础 流的分类
  7. HTML5 学习准备
  8. 【文献心得】关于内核在不同芯片平台移植的相关整理
  9. 企业发文的红头文件_实例分享:怎样制作双发文单位红头文件,文件二字与发文单位并排...
  10. 积分商城功能表设计结构以及积分功能模块