element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Cypress Kits
  • Products
  • Dev Tools
  • Cypress Kits
  • More
  • Cancel
Cypress Kits
Forum PSoC 4 Pioneer Kit Community Project#102 – USB Audio using the PSoC 5LP
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Cypress Kits to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 27 replies
  • Subscribers 37 subscribers
  • Views 6455 views
  • Users 0 members are here
Related

PSoC 4 Pioneer Kit Community Project#102 – USB Audio using the PSoC 5LP

cy.wbz
cy.wbz over 11 years ago

Hello!


In today’s example we are including a demonstration project for supporting Audio playback and audio recording using USB digital audio. The PSoC 5LP communicates with any USB host, provides a high-quality recording interface to it, and extras high-quality digital audio from the USB host. In this example we show the PSoC 5LP device communicating to:

  • Windows
  • Mac
  • Linux
  • Android
  • Raspberry Pi
  • BeagleBone Black
  • Android
  • iOS



image


This example project utilizes the PSoC 5LP device on the PSoC 4 Pioneer Kit. This example has the following features:

  • Audio-out (I2S)
  • Audio-in (PDM Mic)
  • USB Host Interface
  • Volume Control
  • Watchdog


The firmware was designed and tested with PSoC Creator 2.2 SP1.


Forum Post Attachments:


At the bottom of this post we are including the following items:

  • Example Project Zip File
  • Project Images
  • Example Documentation


Components Used:


The user can download the example project at the bottom of this post. The project uses the following list of Creator Components:

  • I2C
  • EZI2C
  • SPI
  • UART


Firmware Description:


The main.c firmware is included in the example project. Please review the commented sections for more details.


Attached to this example project is a detailed example description. In this file we include a detailed write up of the external hardware used in the example, the internal firmware architecture, and how to recreate the system on your own. Please feel free to review this document for a detailed understanding of how the example is designed and used.


We are also listing the custom components, hardware, and firmware files necessary to create this example. Please feel free to download the zip file for more information.


Hardware Connections:


The hardware connections are detailed in the attached zip project. We include the codec board schematics in the documentation folder.


Test Your Project:


Please see the below image of the example in action.

 

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

I hope this example can help you in your design.

Best,

Matt

Attachments:
imagePioneerKit_P5LP_USB_Audio_UserGuide.pdf
PioneerKit_P5LP_USB_Audio.zip
  • Sign in to reply
  • Cancel

Top Replies

  • Former Member
    Former Member over 11 years ago +3
    The PSoC 5LP USB Audio example project offers a great way to do a general USB Audio solution. Here, I would like to add that if somebody is looking particularly for native MFi USB audio solution for Apple…
  • Former Member
    Former Member over 11 years ago +2
    The PSoC Creator project attached to the original post doesn't work with PSoC Creator 3.0 SP1 (It was build with PSoC Creator 2.2 SP1). I have made minimal changes to the original project (updated Cy_boot…
  • greatunclebulgaria
    greatunclebulgaria over 11 years ago +1
    Matt, Thanks for this post, looks very interesting, BUT I'm having trouble with the hardware connections. POSC4 P5LP header Pin POSC4 P5LP header Name AK4556 J6 Header AK4556 Pin Number CS42L51 CS42L51…
  • greatunclebulgaria
    greatunclebulgaria over 11 years ago

    Matt,

     

    Thanks for this post, looks very interesting, BUT I'm having trouble with the hardware connections.

     

    POSC4 P5LP header PinPOSC4 P5LP header NameAK4556 J6 HeaderAK4556 Pin NumberCS42L51CS42L51 Pin
    VDD1P5 VDDJ6-35/364/5 5/12/27
    I2C_SCL2P1.2 PSOC_CODEC_I2C_SCL3 – SCL/CCLK
    PDM_DATA3P0.0
    LRCLK4P0.1J6-15 (P5-3)14 - LRCKTP113 – CODEC_LRCLK1 - LRCK
    PDM_LR_SEL5P3.4
    SCLK6P3.5J6-13 (P5_5)16 - BCLKTP112 – CODEC_SCLK31 - SCLK
    CODEC_RST7P3.6 TP111 – CODEC_RST25 - RESET
    SDTO8P3.7J6-11 (P5-7)8 - SDTOTP115 – CODEC_SDTO29 – SDOUT/M/S
    PDM_CLK9P12.6
    MCLK10P12.7J6-12 (P5_6)15 - MCLKTP110 – CODEC_MCLK30 - MCLK
    GND11GNDJ6-373 13/28
    I2C_SDA12P3.0 PSOC_CODEC_I2C_SDA2 – SDA/CDIN
    TP114 – CODEC_SDTI

    As you can see I am unable to match up all the pins to the CS42L51, and am not entirely sure of the AK4556 pin connections.

     

    I'm surprise you used a CODEC with limited availability, and not board support.

     

    After a quick Google I found Audio Codec PROTO - Development Board with WM8731 Audio Codec which I think does all you are doing with the codec, and is available on a development board in the States for $19?!?

     

    Nice idea, and nice code, but I'm surprised and disappointed by your choice of hardware.

     

    OR MAYBE I'M MISSING THE POINT?

     

    Thanks for all the projects, I've been following since before the 100 days projects, and have a PSoC4 and many of the shields you have demo’ d.

     

    Well done

     

    Thanks

     

    David

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to greatunclebulgaria

    David,

              Thanks for your interest with this example project. The pins that are left are the PDM microphone module connections. PDM microphone (ADMP521Z EVAL) is a separate module and is not part of CS42L51 or AK4556 codecs.

     

    Sorry about using a codec hardware that is not readily available in the market. We couldn't find a codec only development board/shield that suits our requirements.

     

    We looked at the Wolfson Codec proto board, it doesn't accept an external I2S master clock (which is required for synchronous USB audio implementation) and we couldn't use it for the demo.

     

    In theory, this example project will work with any codec that supports the following features:

    - 24-bit I2S slave interface (PSoC 5LP is the I2S master)

    - Accept external I2S master clock (PSoC 5LP supplies the I2S master clock that is in sync with USB SOF) of  256 * Fs (Fs = audio sampling frequency)

     

    -Krishna

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago

    The PSoC 5LP USB Audio example project offers a great way to do a general USB Audio solution.

     

    Here, I would like to add that if somebody is looking particularly for native MFi USB audio solution for Apple Devices (not through Camera Connection Kit), then Cypress provides full support through their kit CY8CKIT-033A. Any MFi Licensee can order this kit as well as the installer package (containing example projects, documents and schematics) through MFi Avnet website.

     

    -Rohit

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    For the interest of members who wants to understand the implementation of the PDM audio path, this solution provides a single chip audio path implementation for converting 1-bit PDM input signal to PCM signal (which includes PDM clock generation, PDM Data sampling, DMA data transfer, integrator, decimator and droop correction filtering) and transfer the resultant PCM samples over USB audio class interface to a USB host device.

     

    This audio path implementation uses PSoC's UDB and DMA engine to process and transfer the microphone data, minimizing the CPU overhead and providing a high quality low power PDM microphone interface.

     

    For more details on implementation, see this article: http://edn.com/design/consumer/4425878/High-quality-PDM-microphone-interfacing-using-off-the-shelf-SoCs

     

    -Rohit

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • dandumit
    dandumit over 11 years ago in reply to Former Member

    Hi,

    I have landed on this page searching for PSoC4 and DMA. Unfortunately (for me) it seems that you are using PSoC5.

    Could you please confirm that PSoC4 has no DMA?

    BR,

    DAniel

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago

    The PSoC Creator project attached to the original post doesn't work with PSoC Creator 3.0 SP1 (It was build with PSoC Creator 2.2 SP1). I have made minimal changes to the original project (updated Cy_boot component only) to make it build with PSoC Creator 3.0 SP1.

     

    The updated project is attached here and is also @ GitHub - https://github.com/yourskp/PioneerKit_P5LP_USB_Audio

     

    I recommend not to update other components, as we haven't tested the project with all the latest PSoC Creator 3.0 SP1 components.

     

    -Krishna

    Attachments:
    PioneerKit_P5LP_USB_Audio-master.zip
    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • alwynallan
    alwynallan over 10 years ago in reply to Former Member

    The project compiles fine with the latest version of PSoC Creator and appears to work (I'm using PowerfulBoard, not Pioneer Kit). However, when the components are updated to their latest versions, the project fails: the USB device continually disconnects and then tries to enumerate again on Windows 7 Pro 32-bit. Any idea what is causing this and how to fix it?

     

    Thanks for sharing this work. It's much easier than starting with the datasheets.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago

    why when i bootloader for kit, the bootloader report : PID is 0xF139 not 0xF13B

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • clem57
    clem57 over 10 years ago in reply to Former Member

    @Mr anh

         Good question by the way. The PID(product identification) usually has a family or version. Without specifics, I would say the first part does not change(family byte), but the second byte will with a new version.

     

    Clem

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago

    How i'm bootloader with that PID? When I click program bootloader report : The data does not expect value image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube