element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • 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 & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • 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
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • 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
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum Real Time DSP using the Cirrus Logic Card
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 8 replies
  • Answers 2 answers
  • Subscribers 677 subscribers
  • Views 1510 views
  • Users 0 members are here
  • raspberry_pi
  • raspeberry_pi_accessories
Related

Real Time DSP using the Cirrus Logic Card

Former Member
Former Member over 9 years ago

I am looking at the Cirrus Logic card to act as the interface to do some audio DSP functions on a sample-by-sample basis in real time for SDR (Software Defined Radio).   Is this appropriate for the device?  It would have to run in a tight loop (preferably > 96 kHz):

   sample audio inputs --> process sample on the RPi in C language --> output on audio out  --> loop back.

I have not been able to find any user libraries for dealing with the card.  I would want it to loop as fast as possible.

 

I have the code working on a Arduino Due, but the 12-bit converters are marginal.

 

Thanks,

Derek

  • Sign in to reply
  • Cancel
  • clem57
    0 clem57 over 9 years ago

    You want to process data not really audio. Right? I would try to use the Mali Videocore GPU on Raspberry Pi  instead since it is closer to the data source. It takes much time to send back and forth to a card depending on how much sent.

    Clem

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 9 years ago in reply to clem57

    No, the signals are really audio (or at least in the audio bandwidth).   The two inputs will come in through the LINE-IN from the radio front-end.   They are IQ (quadrature) components of a waveform that will be decoded into audio by the RPi code, and played through the LINE-OUT.   The actual processing depends on the modulation (AM, FM, SSB, etc) of the radio signal.

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

    Ok. Why not use a SDR dongle with antenna?

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

    Thanks Clem - we are kinda drifting away from my original question, but let me say that I have several SDR hardware systems around here, and many of the software packages - most of which use the PC sound card to to the DSP for modulation/demodulation.   Being a DIY sort of guy, I have been looking into using very small/inexpensive systems - for no particular reason.   As I said above, I have a complete Arduino Due based system working (capable of sampling at 1Msample/sec) but the 12 bit A/D and D/A limits the dynamic range.  The cycle time for a typical demodulator is around 20 usecs.  All DSP is done in integer arithmetic, and a lot of assembly code is used.

     

    I was hopeful that RPi 3 would let me do much better and the Cirrus Logic card looked like an ideal I/O system.  However, it seems that a lot of people are struggling with the drivers in Raspbian, and I am now wondering if there is any hope.

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

    And you are right about struggling with the Cirrus Logic card which is the same while Pi has improved. Why does so many overlook the HiFiberry system?

    Clem

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jamesjohn911
    0 jamesjohn911 over 9 years ago in reply to Former Member

    hi the support for raspi and cirrus audio card is getting better it was terribly messed up before rp2 was released  ive managed to get mine working on raspi2 raspian jessie and ubuntu mate without much fuss even compiled the code myself which is a first for me there's even code to stop the kernel being overwritten when an update is done so the card continues to work as before every time it was updated the card would stop functioning as the kernal would overwrite

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • hiassoft
    0 hiassoft over 9 years ago in reply to Former Member

    Hi Derek!

    I was hopeful that RPi 3 would let me do much better and the Cirrus Logic card looked like an ideal I/O system.  However, it seems that a lot of people are struggling with the drivers in Raspbian, and I am now wondering if there is any hope.

    As for drivers: Just grab the precompiled  kernel from my website, follow the instructions and you'll have a running setup within minutes

    http://www.horus.com/~hias/cirrus-driver.html

     

    The Cirrus card works like any other full-duplex soundcard on a linux PC so you can use any software that supports the standard linux audio layer (ALSA) or jack, pulseaudio etc.

     

    I can't help too much on the SDR / soundcard software side, never did such stuff myself. Check out the hamradio section of Debian/Raspbian packages, maybe there's already something matching your needs ready for apt-get install

    https://packages.debian.org/en/jessie/hamradio/

     

    so long,

     

    Hias

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Former Member
    0 Former Member over 9 years ago

    Hi everybody,

    Thanks for taking the time to reply to me.   Unfortunately I have had to decide that the Cirrus board and RPi is not the way to go for me for a couple of reasons:

    1) Linux is a terrible OS for time critical operations because of the time-outs it takes from applications - as an old Unix guy I should have remembered that,.

    2) With all the difficulties with the drivers, and the fact that the Cirrus DSP code is inaccessible and cannot (easily) be created/modified, it's just not worth the effort.

     

    What I've decided to do is use a dedicated DSP board using the Analog Devices ADAU1701 DSP chip.   It's just what I need with 24 bit ADC and DACs at 192 kHz, and what's more it has a graphical programming interface using Analog Devices Sigma Studio system.   You program it by dragging, dropping and connecting DSP blocks, and compiling and loading with one button press.   Wow - it took me about 15 minutes to develop and debug one of my demodulators using Hilbert transforms, Chebyshev high and low pass filters, summers, etc.   Didn't have to write one line of code, simply change parameters on the blocks.

     

    Analog Devices makes an evaluation board (expensive), Elektor makes a DIY kit for a nice little unit ($88) - with all components but you have to built it, freeDSP has developed a system and makes the PCB specs and Gerber files available for free so that you build your own.  This chip is the basis for the miniDSP audio processing system.

     

    I am going to buy the Elektor system.   Check it out at

    https://www.elektor.com/adau1701-universal-audio-dsp-board-130232-71

    There is a video there that shows how to program it using Sigma Studio... Fantastic!

     

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • 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