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…
  • cyaniccypher
    cyaniccypher over 8 years ago

    I got this to work with one of cypress' other eval boards, but I am not able to get 96kHz sampling rate, what do I need to change in the project?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • hasan2015
    hasan2015 over 8 years ago in reply to clem57

    Hello,

     

    I need a cheap USB ic which can work with a PDM microphone.

    Need a CODEC usb support kit where Headset is for microphone output. The microphone we gonna use is MEMs one.

     

    Hope you help me.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • olsond3
    olsond3 over 8 years ago

    It would sure be great to get this updated to work with the latest version of Creator.  I tried to build using Creator 3.3 and it was ugly.  I would rather not load another old version just to run this project. 

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • 1s2d3d54f4
    1s2d3d54f4 over 7 years ago

    Is there a good reason why Cypress code always uses global variables for everything instead of using limited-scope variables, parameters and returns, etc.?   And contains unnecessary comparisons like if (codecInit == TRUE) instead of if (codecInit), uses function-like macros instead of inline functions, defines macros like TRUE instead of using stdbool.h types, etc.?

     

    To read through the code and understand how it works, I constantly have to do a project-wide search for each variable and try to remember every other function that modifies it, and it's frustrating.  Every source I've found says these practices should be avoided, but maybe the rules are different for embedded code?  I want to change them all to make them more readable, but I'm afraid there's some reason they were done this way.  Do these practices help with optimizing code size or preventing stack overflows or something?  Or are they just bad programming?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • ralphrmartin
    ralphrmartin over 6 years ago

    Could the PDM-CIC component be added to the Cypress Component Library for PSoC 5LP? There is one, but annoyingly, it seems to only be for PSoC 6??!!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • odissey1
    odissey1 over 4 years ago in reply to olsond3

    Attached is a  project re-compiled under Creator 4.0. The functionality of the project has not been tested.

    Attachments:
    PioneerKit_P5LP_USB_Audio_Creator 4.0.zip
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • odissey1
    odissey1 over 4 years ago in reply to ralphrmartin

    Ralph,

    For PSoC5 the PDM_CIC component can be imported directly from the project recompiled for Creator 4.0 (and up) above

    https://www.element14.com/community/message/300000/l/re-psoc-4-pioneer-kit-community-project102-usb-audio-using-the-psoc…

    • 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