Pico-Audio
| ||||||||||||||||||||
| ||||||||||||||||||||
说明
产品概述
提供Pico C语言例程
产品简介
本产品是基于Pico而设计的音频模块,采用PCM5101A低功耗立体声解码器,I2S接口传输音频,支持宽范围音频采样频率。可同时对耳机与扬声器进行输出。
Rev2.1版本:
本产品是基于Pico而设计的音频模块,采用CS4344低功耗立体声解码器,I2S接口传输音频,支持宽范围音频采样频率。可同时对耳机与扬声器进行输出。
产品特性
- 支持8~384,000Hz的音频采样频率
- 芯片内置PLL免除了对主时钟的需要,实现了3线制I2S接口有效的减少了系统的EMI
- 自带欠压保护,采用双重静音系统,在时钟错误及电源故障时自动静音(停止输出)
- 提供20dB的带外噪声
- 板载了标准的3.5mm耳机与4线扬声器输出接口,支持音频输出
- 提供了Pico声卡免驱驱动程序,兼容windows、Linux等系统
- 提供了Pico音频播放程序
Rev2.1 :
- 支持2K~200KHz的音频采样频率
- 芯片内置PLL,音频时钟脚可以获取主时钟屏幕,并自动降频
- 板载了标准的3.5mm耳机与4线扬声器输出接口,支持音频输出
- 提供了Pico声卡免驱驱动程序,兼容windows、Linux等系统
- 提供了Pico音频播放程序
产品参数
- 供电电压:5V
- 逻辑电压:3.3V
- 音频解码芯片:PCM5101A
- 音频接口:I2S
- DAC信噪比:106dB
- 耳机驱动:40mW (16Ω@3.3V)
- 扬声器驱动:2.6W per channel (4Ω BTL)
Rec2.1
- 供电电压:5V
- 逻辑电压:3.3V
- 音频解码芯片:CS4344
- 音频接口:I2S
- DAC信噪比:105dB
- 耳机驱动:40mW (16Ω@3.3V)
- 扬声器驱动:2.6W per channel (4Ω BTL)
硬件资源
初始版本
L+、L-分别对应左扬声器的正、负极; R+、R-分别对应右扬声器的正、负极。
功能引脚 | Pico引脚(BCM) | 描述 |
VSYS | VSYS | 供电电源(5V电源输入) |
3V3(OUT) | 3V3(OUT) | 逻辑电源(3.3V电源输入) |
GND | GND | 电源地 |
DIN | GPIO26 | 音频数据输入 |
BCk | GPIO27 | 音频数据位时钟输入 |
LRCK | GPIO28 | 音频数据字时钟输入 |
Rev2.1版本
L+、L-分别对应左扬声器的正、负极; R+、R-分别对应右扬声器的正、负极。
功能引脚 | Pico引脚(BCM) | 描述 |
VSYS | VSYS | 供电电源(5V电源输入) |
GND | GND | 电源地 |
DIN | GPIO22 | 音频数据输入 |
MCLK | GPIO26 | 芯片主时钟输入 |
LRCK | GPIO27 | 音频数据字时钟输入 |
SCLK | GPIO28 | 音频数据位时钟输入 |
通信协议
I2S协议最需要注意的一点是,它以采样脉冲变化后的第二个时钟为数据的第一位,以下一个采样脉冲变化后的第一个时钟为数据的最后一位。
LRCK :音频数据字时钟输入,当其为低电平时为左声道采集数据,当其为高电平时为右声道采集数据。
BCK :音频数据位时钟输入,当其产生上升沿跳变时对数据进行采集,其频率必须为LRCK频率的32倍或48倍或64倍。
DATA :音频数据输入 ,注意数据为有符号型的数据,数据传输可以选择16位、24位、32位数据,高位在前、低位在后。
硬件连接
连接Pico的时候,请注意对应方向不要接反。可以观察模块上有USB丝印的一端与Pico的USB接口一端来判断方向
您可以对照以下表格连线。
Pico-Audio | Pico | 功能 |
VSYS | VSYS | 供电电源(5V电源输入) |
3V3(OUT) | 3V3(OUT) | 逻辑电源(3.3V电源输入) |
GND | GND | 电源地 |
DIN | GPIO26 | 音频数据输入 |
BCk | GPIO27 | 音频数据位时钟输入 |
LRCK | GPIO28 | 音频数据字时钟输入 |
Pico-Audio Rev2.1 | Pico | 功能 |
VSYS | VSYS | 供电电源(5V电源输入) |
GND | GND | 电源地 |
DIN | GPIO22 | 音频数据输入 |
MCLK | GPIO26 | 芯片主时钟输入 |
LRCK | GPIO27 | 音频数据字时钟输入 |
SCLK | GPIO28 | 音频数据位时钟输入 |
程序下载
打开树莓派终端,执行:
sudo apt-get install p7zip-full cd ~ sudo wget https://www.waveshare.net/w/upload/7/7c/Pico_Audio.7z 7z x Pico_Audio.7z -o./Pico-Audio cd ~/Pico_Audio
Rev2.1版本请使用以下命令
sudo apt-get install p7zip-full cd ~ sudo wget https://www.waveshare.net/w/upload/9/92/Pico-Audio-V2.7z 7z x Pico-Audio-V2.7z -o./Pico-Audio-V2 cd ~/Pico-Audio-V2
在Pico_Audio文件中有两个文件夹,在Pico_Audio文件夹中存储着音频输出程序,在usb_sound_card文件夹中存储着声卡的uf2文件,直接将其复制进入Pico中即可
cp usb_sound_card.uf2 /media/pi/RPI-RP2/
例程使用
C部分
- 以下教程为在树莓派上操作,但由于cmake的多平台、可移植的特点,在PC上也是能成功编译,但操作略有不同,需要您自行判断。
进行编译,请确保在Pico-Audio目录:
cd ~/Pico_Audio/Pico-Audio/
Rev2.1版本请使用以下命令
cd ~/Pico-Audio-V2/Pico-Audio/
创建并进入build目录,并添加SDK: 其中 ../../pico-sdk 是你的SDK的目录。 我们示例程序中是有build的,直接进入即可
cd build export PICO_SDK_PATH=../../pico-sdk (注意:务必写对你自己的SDK所在路径)
执行cmake自动生成Makefile文件
cmake ..
执行make生成可执行文件,第一次编译时间比较久
make -j9
编译完成,会生成uf2文件。 按住Pico板上的按键,将pico通过Micro USB线接到电脑的USB接口,然后松开按键。接入之后,电脑会自动识别到一个可移动盘(RPI-RP2),将build文件夹下的audio_firmware.uf2 文件复制到识别的可移动盘(RPI-RP2)中即可。
cp audio_firmware.uf2 /media/pi/RPI-RP2/
资料
文档
程序
开发软件
Pico快速上手
固件下载
| ||
|
文字教程
基础介绍
MicroPython系列
【MicroPython】machine.Pin类函数详解
【MicroPython】machine.PWM类函数详解
【MicroPython】machine.ADC类函数详解
【MicroPython】machine.UART类函数详解
【MicroPython】machine.I2C类函数详解
【MicroPython】machine.SPI类函数详解
【MicroPython】rp2.StateMachine类函数详解
C/C++系列
【C/C++】 Windows教程1——环境搭建
【C/C++】 Windows教程2——创建工程
Arduino IDE 系列
安装Arduino IDE
-
首先到Arduino官网下载Arduino IDE的安装包。
-
这里选择仅下载就可以了。
-
下载完成后,点击安装。
注意:安装过程中会提示你安装驱动,我们点击安装即可
Arduino IDE中文界面
在Arduino IDE中安装Arduino-Pico Core
-
打开Arduino IDE,点击左上角的文件,选择首选项
-
在附加开发板管理器网址中添加如下链接,然后点击OK
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
注意:如果您已经有ESP32板URL,您可以使用逗号分隔 URL,如下所示:https://dl.espressif.com/dl/package_esp32_index.json,https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
-
点击工具>开发板>开发板管理器>搜索pico,由于我的电脑已经安装过了,所以显示已安装
国内用户
- 因为网络原因,国内用户连接github并不稳定,我们另外提供了一份安装包,可以跳过在线的过程
- 若已经成功配置了pico环境,可以直接跳过本章
-
下载rp2040压缩包,将解压的rp2040文件夹复制到如下路径下
C:\Users\[username]\AppData\Local\Arduino15\packages
第一次上传程序
- 下载程序,打开arduino\PWM\D1-LED路径下的D1-LED.ino
-
点击工具>端口,记住已有的COM,不需要点击这个COM(不同电脑显示的COM不一样,记住自己电脑上已有的COM)
-
用USB线将驱动板和计算机连接起来,再点击工具>端口,第一次连接选择uf2 Board,上传完成后,再次连接就会多出一个COM口
-
点击工具>开发板>Raspberry Pi Pico/RP2040>Raspberry Pi Pico
- 设置完成后,点击向右箭头上传将程序
- 如果期间遇到了问题,需要重新安装或者更换Arduino IDE版本时,卸载Arduino IDE需要卸载干净,卸载软件后需要手动删除C:\Users\[name]\AppData\Local\Arduino15这个文件夹内的所有内容(需要显示隐藏文件才能看到) 再重新安装
开源例程
MircoPython视频例程(github)
MicroPython固件/Blink例程(C)
树莓派官方C/C++示例程序 (github)
树莓派官方micropython示例程序 (github)
Arduino官方C/C++示例程序 (github)
FAQ