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
      •  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
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum GPIO produce sine wave
  • 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 9 replies
  • Answers 3 answers
  • Subscribers 671 subscribers
  • Views 4016 views
  • Users 0 members are here
  • sine
  • pwm
  • raspberry_pi
  • wave
  • pyhton
Related

GPIO produce sine wave

Former Member
Former Member over 11 years ago

Hi

I need the Pi to generate a pulsing sine wave signal. I managed to generate wave signal from the GPIO pin but only square wave with High-Low waveform. So I am wondering if the GPIO can generate the sine wave signal that I need?

Also I have been using the function GPIO.PWM(pin,frequency) i was using it to generate 20kHz signal but when I check the output on oscilloscope it was only 862 Hz is this the maximum frequency of the PWM function or is there something wrong with my pi.

 

I read somewhere the using python Rpi.GPIO library I can output up to around 40 kHz, and I was able to actually output 50 kHz from it but don't know why the it wouldn't output 20 kHz using the GPIO.PWM ().

Can anyone tell me why or suggest another method that I could use?

 

Thank you!

  • Sign in to reply
  • Cancel
Parents
  • michaelkellett
    0 michaelkellett over 11 years ago

    The Pi is very limited as a sine wave generator. What frequency of sinewave do you want to generate and what kind of pulsing. How much noise and distortion is acceptable. Depending on the answers it may be possible to generate the signal without extra hardware ot it may not.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Reply
  • michaelkellett
    0 michaelkellett over 11 years ago

    The Pi is very limited as a sine wave generator. What frequency of sinewave do you want to generate and what kind of pulsing. How much noise and distortion is acceptable. Depending on the answers it may be possible to generate the signal without extra hardware ot it may not.

     

    MK

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

    I need to generate pulsing 20 kHz signal. Is it possible?  I never thought about the noise and distortion .

    one solution that  I was thinking was to convert the square wave to sine wave outside of the pi with integrator, someone told me about this. Thanks for replying!

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

    You still haven't defined the signal well enough to make a good suggestion.

    How long are the pulses, what rise/fall time, must the pulse be synchronous with the carrier (the 20kHz) ?

     

    You can't turn a square wave into a sine wave with an integrator - you can with a low pass or bandpass filter but the modulation would need to be applied after the filter otherwise you will get very slow rise and fall times. This is going to be tricky with an RPi without extra hardware. You can buy very cheap little DDS synthesisers on ebay (like New AD9850 DDS Signal Generator Module 0-40MHz Test Equipment | eBay ) - this could generate the 20kHz OK, you could use a second one to generate the modulation signal.

     

    One way you could do it with a Pi is to add a DAC to an  I2S ouput and genrate suitable signals in software - this will need a  kernel driver which you may have to write yourself.

     

    If you could expalin what the signal is for and how much you want to spend I could be  abit more helpful.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • rew
    0 rew over 11 years ago in reply to michaelkellett

    On a similar note (to the I2S suggestion), the raspberry pi has an audio output. If it can reach 20kHz I don't know. (chances are of course that it'll do 48kHz, meaning that you have only just over two samples per period, which is similar to the square wave. On the other hand, the analog filtering will probably make it look more sine-wave-ish than a gpio port you toggle at 20kHz.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify 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