6
\$\begingroup\$

I'm new to EE in general and I just received my first oscilloscope (Rigol DS1102E).

Anyway, I'm building an audio circuit using an Arduino Micro and the infamous SN76489 (info)

OK, so basically I have 8 digital pins from the Arduino tied to the D0-D7 pins of the IC, couple pins for the !CE and !WE and a 3.579 Mhz oscillator tied to pin 14 (clock) of the IC.

I'm able to play tones just fine.

But here is what puzzles me. Look at the picture and notice that I have what appears to be noise in the 471 kHz range. That noise is on pin 7 (AUDIO OUT) of the IC.

Lots of noise?

Since it's in the 471kHz range, I'm assuming that's why I don't physically hear it coming through my speakers.

Also, when I send a 440Hz tone through the speakers, the tone sounds great. But, I obviously don't see 440Hz on the scope. But I see it wildly fluctuate. Like it's combining the 440Hz with the 471kHz.

I can provide more pictures and details if anyone needs it. Any tips on helping me track this down would be greatly appreciated.

EDIT

Update: To answer some questions/comments:

I have tried powering the Arduino (and the entire circuit) two different ways. One with a crappy wall-wart PSU and the other from my USB port of my MacBook Pro.

I have my circuit on a Parallax Pro development board which has a voltage regulator built in. Not sure of the quality. However, I have put a 1Mhz crystal oscillator off to the side of the board and the scope reads 1.000Mhz consistently but there is some spiking on each edge. But, it's consistent.

Also, the Rigol has a 1kHz probe port and when I put the probe on it, the reading shows a stable 1.000kHz frequency with a 50.0% duty cycle. Image looks solid. So, I believe the scope should be pretty accurate (at least as far as my limited knowledge can tell).

Plus, the development board has a built in pulse generator of 1, 10, 100, 1000Hz. At 1kHz it shows 1.000kHz with a 50.0% duty (+) and 52.0% duty (-). Image has a some spikes and jitter but looks "OK" I guess.

Finally, I have done the following to no avail:

1) Removed the oscillator
2) Two different power sources (both do the same)
3) Unplugged and speakers
4) Unplugged the crappy PSU and made sure the cord was nowhere near the scope or probes.

What is odd is that I can now actually play VGM songs and they actually sound really good. When I play a 440Hz A, it actually sounds like an A. Even though I can't prove it on the scope because of the noise.

Thanks everyone!

\$\endgroup\$
  • 4
    \$\begingroup\$ Hint: What's 3.579545 MHz divided by 8? \$\endgroup\$ – Dave Tweed Mar 15 '14 at 0:45
  • \$\begingroup\$ Do you see anything on the Vcc or gnd pins? \$\endgroup\$ – DarenW Mar 15 '14 at 1:16
  • 1
    \$\begingroup\$ How are you powering the Arduino? If it's a switching power supply, that may be your culprit. \$\endgroup\$ – Spehro Pefhany Mar 15 '14 at 1:33
  • 3
    \$\begingroup\$ @SpehroPefhany: Yes, it could, since it's basically taking an inverse-period measurement on an obviously noisy signal. The point is, most of the sound chip operates on an internal clock that is created by dividing its clock input by 8, and since this signal is in the right ballpark, it's the obvious prime suspect. Also, switching power supplies tend to produce narrow spikes, not square waves. \$\endgroup\$ – Dave Tweed Mar 15 '14 at 1:56
  • 1
    \$\begingroup\$ "... where are you getting the 8?" From reading the data sheet. There are actually two versions of the chip, one that runs on 3.579 MHz and one that runs on "~500 kHz". They explicitly state that the latter version omits a divide-by-8 stage that exists in the former. \$\endgroup\$ – Dave Tweed Mar 15 '14 at 11:19
4
\$\begingroup\$

Edit: Upon reflection I don't think this is the culprit in this case, I think Dave Tweed's comment is where the issue is, but I'll leave this in case someone runs into a spikier noise problem.

I suspect that a switching power supply is causing the problem. Here is the schematic (from Jan Panteltje) of a cheap eBay supply.

enter image description here

It's not perfect, Jan got the 1M connected to the MOSFET source, it actually goes to +300V.

Anyway, the point is this thing is kind of a self-oscillating flyback that runs at about 500kHz, with zero EMI considerations. It would certainly fail FCC testing, and hence is actually illegal to sell in the US. No common mode filter on the input, no shielding etc. It drove all his instrumentation up the wall.

Good supplies can still cause some interference, but if you have something like this it's like setting your 'scope up next to a radio transmitter.

If you have such a supply, see if the noise is still there with the Arduino turned off but the supply turned on, and if it goes away when the power is cut you've found the source.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.