Do not follow Simple Audio Player example - DAC0 now non-functional on DUE

318 mA are no problem

Yes it is.

it isn't 8 Ohm because the impedance depends on the frequency.

True but the impedance is still too low for the pin.

is it then possible to use 4 Ohm Speakers and simply add a 4 Ohm resistor?

No.
The current limit on a Due is about 15mA so a 220R resistor is about as small as you can go. At that there will be so little current trough the speaker I doubt if you can hear anything. I would recommend a headphone ear piece, a 1uF capacitor and a 470R resistor all in series. Or an external amplifier.

That tutorial is clearly wrong and I am sorry it slipped past the QA process..
It's being removed now.
jknighton please write to support (at) arduino.cc explaining the situation and you'll get a new board

I'm sorry for the inconvenient

m

for what it's worth, I have had good success creating sound using a powered PC speakerset.

just find the (green) plug of the speakerset and connect ground and a channel to the gnd and dac pin respectively.

Hi,
My DAC0 has also just died, in my case the Arduino was connected to an LM386 amp. I cannot find any problems with the amp, I am posting in case others have similar experiences.

Can I also suggest that any future DAC related tutorials include a series current limiting resistor - I was not using one, but if the issue was one my side it might have same my DAC0.

Duane B

rcarduino.blogspot.com

The LMxxx amps have an input bias voltage. If the impedance of this voltage source is low enough, it could feed back into the DAC and damage it's output driver. I've measured the LM383 and find 0.6V. There should be at least a series coupling capacitor. Also, a current limiting resistor would certainly be appropriate for testing purposes.

Hi,

if the DAC seems to have given up the ghost,
could you please try this simple test sketch ?

I was messing with the Simple Audio Player too, and did not get any signal from the dac. might have been me,
but just maybe there is a problem in the simple audio player code, instead of a hardware failure..

this sketch outputs a ramp on both dac channels forever. if you have no oscilloscope, you should see a non-zero voltage (i measured about 2.3 volts) on a multimeter.

void setup() {
Serial.begin(19200);
Serial.println("program start");
}

void loop() {
  for (int i = 0; i <256; i++) analogWrite(DAC0,i); 
  for (int j = 0; j <256; j++) analogWrite(DAC1,j); 
}

The very first sketch I ran in my DUE was the "Simple Audio Player" and it worked great with a Seeed SD card shield and a 16 ohm RadioShack speaker (made in China). I haven't tried again since then. May be I was lucky.

My DAC0 doesn't work either. I don't think I've ever had it connected to anything though (until now, obviously!) It's one of the early boards where DAC0 is marked as "DAC2", and I've only ever used DAC1, which works fine. Very strange :~

Hi,
I was using my own DDS Code - RCArduino: Arduino Due DDS - Part 1 - Sinewaves and Fixed Point Maths - against an LM386 circuit which I have used extensively on UNO's and Mega's. DAC0 is dead, as a quick test I tried DAC1 and its still working, I do not want to use it though until I know why DAC0 has failed.

My board has the DAC outputs labelled DAC1 and DAC0 .

Duane B

rcarduino.blogspot.com

hi,

my DAC0 also died :frowning: but DAC1 is still working.. why is it the DAC0 only dies and not the DAC1??
is that a hardware failure? or something else?

and what do do now? van this be fixed somehow?

Floris

DAC0 is the one you learn on, DAC1 is the one you then take care of.

Duane B

1 Like

I'm still confused as to how exactly we have blown these up. Technically there is only one DAC, it is multiplexed to two sample/hold buffers. So somehow we must have blown the last output transistor. Yet the pin still works fine for digitalWrite/Read. Personally I'm waiting for the Due to be more widely available, then I was going to try overloading DAC1 in a controlled way until it breaks too, to try and find where the limits are.

Incidentally by my calculation it should be possible to get 11 bits at 41kHz from the PWM hardware, and that has 8 channels :smiley:

Rather than blow one up which tells you little why not look in the data sheet.
The problem with a distruction test is that it tells you nothing of the situation where it still works but damage is being done so that it has a reduced life time.

Grumpy_Mike:
Rather than blow one up which tells you little why not look in the data sheet.

The SAM3X/A datasheet:
Page 1369:
45.5.3 Conversion Performances

  • For performance and electrical characteristics of the DACC, see the product DC Characteristics
    section.

Page 1391:
46.2 DC Characteristics
I(OH) (ISource) for pins in Group 2 (which include the DAC), is -3mA.
I(OL) (ISink) for pins in Group 2 (which include the DAC), is 6mA.

Pins in Group 2:
PA[1-6], PA8, PA[10-13], PA[16-17], PA[20-24], PB[4-7], PB9, PB[12-13], PB[15-21],PB[25-31],PE[10-14], PE16, PE22,
PE24, PE26, PF[3-5]

Group 1 (most other) pins have limits of -15/9mA.


The minimum allowed load (by spec, conservative) is 3.3V/.003A =1100 ohms. Personally, I would never intentionally come close to this low of a load for this chip.

The information in this thread: http://arduino.cc/forum/index.php/topic,132130.0.html applies to everyone, even us audio guys.

-Chris
(not an audio guy)

DuaneB:
DAC0 is the one you learn on, DAC1 is the one you then take care of.

Duane B

destructive testing :~

chriskner:
I(OH) (ISource) for pins in Group 2 (which include the DAC), is -3mA.
I(OL) (ISink) for pins in Group 2 (which include the DAC), is 6mA.

That is the spec for the digital output stage of the PIO pins, not the analog stage of the DAC. (They are the maximum loads for the digital output to reach a specified voltage level at a specified speed - not the absolute maximum current)

What I'm looking for is some specification of output impedance or output resistance (ie the minimum resistance on the output so that the output voltage is still accurate to 12 bits without distortion) - usually called RL or RLOAD or Z

I've looked and looked through the SAM3X datasheet for the specifications for the DAC and they are missing. But I think I may have found something useful. The SAM3S datasheet has a section on the electrical characteristics of its DAC which is mostly the same as the SAM3X, except that it also includes a table on analog output specifications (on p1033), which gives RLOAD as minimum 5k ohms. Given the similarities I shall assume this is true for the SAM3X too.

Hi, before I destroy my DAC, there is something I don't understand, how can a board source a negative intensity? Is it because we are supposed to use our speaker tied to the DAC and 3.3V?

The example is still the same. One more fried DAC0. I emailed support. Please change this example.

DukeResonant:
The example is still the same. One more fried DAC0. I emailed support. Please change this example.

http://arduino.cc/en/Tutorial/SimpleAudioPlayer It ONLY shows how to use an LM386 amplifier, and clearly says "Warning: do not connect the speaker directly to the pins of the Arduino Due."

This is the source I found, not your link

ALL instances of this must be changed. I don;t know where your link came from. This is where I found the code. Also, assuming that someone is using the IDE from a computer that is not connected to the internet, the link you posted is not available to them. Only thing available is a comment in the example code that reads: "connect speaker to DAC0.

Offer to replace one board, offer to replace any board damaged by this example. Some "community" you represent.