Difference between revisions of "Pico-Audio"

From Waveshare Wiki
Jump to: navigation, search
Line 28: Line 28:
 
==Demo Codes==
 
==Demo Codes==
 
*[https://www.waveshare.com/w/upload/7/7c/Pico_Audio.7z Demo code]
 
*[https://www.waveshare.com/w/upload/7/7c/Pico_Audio.7z Demo code]
*[https://www.waveshare.com/w/upload/a/a9/Pico-Audio-V2_%282%29.7z Example-Rev2.1]
+
*[https://www.waveshare.com/w/upload/9/92/Pico-Audio-V2.7z Example-Rev2.1]
 
</div>
 
</div>
 
<div class="tabbertab" title="FAQ">
 
<div class="tabbertab" title="FAQ">

Revision as of 07:29, 25 July 2022

Pico-Audio
Pico-Audio

Audio Expansion Module for Raspberry Pi Pico, Concurrently Headphone / Speaker Output
{{{name2}}}

{{{name3}}}

{{{name4}}}

{{{name5}}}

Overview

Provide Pico C demo.

Introduction

The Pico-Audio is an audio expansion module designed for Raspberry Pi Pico, which incorporates PCM5101A low power stereo decoder, and uses I2S bus for transmitting the audio signals. It supports a wide range of audio sampling rates, and allows headphone and speaker signal output at the same time.
Rev2.1 version: This product is an audio module designed based on Pico. It adopts a CS4344 low-power stereo decoder, an I2S interface to transmit audio, and supports a wide range of audio sampling frequencies. It also can be output by headphones and speakers at the same time.

Features

  • Support audio sampling frequency of 8~384,000Hz.
  • Using 3-wire I2S, effectively reducing EMI.
  • With undervoltage protection and a double mute system, it can automatically mute (stop output) when there is a clock error or power failure.
  • Provides 20dB of out-of-band noise.
  • Onboard standard 3.5mm headphone and 4-wire speaker output interface, support audio output.
  • Provides Pico sound card, driver-free driver, compatible with Windows, Linux and other systems.
  • Pico audio player provided.

Rev2.1:

  • Support audio sampling frequency of 2~200KHz.
  • The chip has a built-in PLL, and the audio clock pin can obtain the main clock screen and automatically reduce the frequency.
  • Onboard standard 3.5mm headphone and 4-wire speaker output interface, support audio output.
  • Provides Pico sound card driver-free program, compatible with Windows, Linux and other systems.
  • Pico audio player provided.

Specification

  • Operating voltage: 5V
  • Logic voltage: 3.3V
  • Audio Decoder: PCM5101A
  • DAC SNR: 106 dB
  • Logic level: 3.3V
  • Audio bus: I2S
  • Speaker driving: 2.6W/channel (4Ω BTL)
  • Earphone driving: 40W per channel (16@Ω 3.3V)

Rec2.1

  • Operating voltage: 5V
  • Logic voltage: 3.3V
  • Audio Decoder: CS4344
  • DAC SNR: 105 dB
  • Logic level: 3.3V
  • Audio bus: I2S
  • Speaker driving: 2.6W/channel (4Ω BTL)
  • Earphone driving: 40W per channel (16@Ω 3.3V)

Hardware Resource

Initial Version

Pico-Audio-details-inter.jpg
L+ and L- correspond to the positive and negative poles of the left speaker respectively; R+ and R- correspond to the positive and negative poles of the right speaker respectively.

Pin Function Pico Pins (BCM) Description
VSYS VSYS Power supply (5V power input)
3V3(OUT) 3V3(OUT) Logic Power (3.3V Power Input)
GND GND Power Ground
DIN GPIO26 Audio data input
BCk GPIO27 Audio data bit clock input
LRCK GPIO28 Audio data word clock input

Rev2.1 Version

Pico-Audio-details-inte02r.jpg
L+ and L- correspond to the positive and negative poles of the left speaker respectively; R+ and R- correspond to the positive and negative poles of the right speaker respectively.

Function Pin Pico Pin(BCM) Description
VSYS VSYS Power supply (5V)
GND GND Ground
DIN GPIO22 Audio data input
MCLK GPIO26 Chip main clock input
LRCK GPIO27 Audio data word clock input
SCLK GPIO28 Audio data bit clock input

Dimension

Pico-Audio-details-size.jpg

I2S

I2S通信协议1.png
The most important thing to note about the I2S protocol is that it takes the second clock after the change of the sampling pulse as the first bit of data, and the first clock after the change of the following sampling pulse as the last bit of data.
LRCK: Audio data word clock input, when it is low level for the left channel data acquisition when it is a high level for the right channel data acquisition.
BCK: Audio data word clock input, when it produces a rising edge jump to collect data, the frequency must be 32 or 48 or 64 times the frequency of LRCK.
DATA: Audio data input, note that the data is signed data, data transmission can choose 16-bit, 24-bit, 32-bit data, high in the front, low in the back.

Get Started with Pico

Hardware Connection

Please take care of the direction when connecting the board to Pico according to the USB port.
You can also wire it according to the table:

PCM5101A Pico Description
VSYS VSYS Power input (5V)
3V3(OUT) 3V3(OUT) Logic level (3.3V)
GND GND Ground
DIN GPIO26 Audio data input
BCk GPIO27 Audio data bit clock input
LRCK GPIO28 Audio data word clock input
Pico-Audio Rev2.1 Pico Description
VSYS VSYS Power supply (5V)
GND GND Ground
DIN GPIO22 Audio data input
MCLK GPIO26 Chip main clock input
LRCK GPIO27 Audio data word input
SCLK GPIO28 Audio data bit input

Pico-Audio-4.jpg

Download Examples

Open a terminal of Raspberry Pi and run the following commands:

sudo apt-get install p7zip-full
cd ~
sudo wget  https://files.waveshare.com/upload/7/7c/Pico_Audio.7z 
7z x Pico_Audio.7z -o./Pico-Audio
cd ~/Pico_Audio

Please use the following command for Rev2.1:

sudo apt-get install p7zip-full
cd ~
sudo wget  https://files.waveshare.com/upload/9/92/Pico-Audio-V2.7z
7z x Pico-Audio-V2.7z -o./Pico-Audio-V2
cd ~/Pico-Audio-V2

There are two folders in the Pico_Audio file, the audio output program is stored in the Pico_Audio folder, and the uf2 file of the sound card is stored in the usb_sound_card folder, which can be copied directly into Pico.

cp usb_sound_card.uf2  /media/pi/RPI-RP2/

Run Examples

C Codes

  • The following tutorials are operated on the Raspberry Pi, but due to the multi-platform and portable characteristics of CMake, it can be compiled successfully on the PC, but the operation is slightly different, and you need to judge by yourself.
  • Go into the Pico-Audio directory and build the codes.
cd ~/Pico_Audio/Pico-Audio/

Please use the following command for Rev2.1.

cd ~/Pico-Audio-V2/Pico-Audio/

Create a "build" folder and enter, add the path of SDK:
../../pico-sdk is the default path of SDK, you need to modify it if the actual path is different in your pi.
We have created the build folder in the example, you can just enter it.

cd build
export PICO_SDK_PATH=../../pico-sdk

Run cmake to generate Makefile file:

cmake ..

Run make command to build the codes:

make -j9

After building, the uf2 file is generated.
Press and hold the key on the Pico board to connect the Pico to the USB port of the computer through the Micro USB cable, then release the key. After plugging in, the computer will automatically recognize a removable disk (RPI-RP2). Copy the audio_firmware.uf2 file in the build folder to the removable disk (RPI-RP2) recognized.

cp audio_firmware.uf2  /media/pi/RPI-RP2/

Resource

Documents

Demo Codes

Support

If you require technical support, please go to the Support page and open a ticket.