Errors in Due board/schematic files

Hi all. I'm wondering if anyone else has tried to build their own Due from the files posted, and found errors?

For reference, these are the files currently linked from the Due product page: http://arduino.cc/en/uploads/Main/arduino-Due-Reference-design.zip

So far, the design errors I've found are:

  • The Y4 crystal should be 16mhz, not 12mhz as is shown in the schematic and board file.

  • The USB jack for the Native port has a footprint that doesn't match that of the Programming port. If you plan to use the same part for both USB ports, it won't fit. I recommend copying the part from the Programming port over to the Native and redoing the connections. The jack I used is this one: http://www.digikey.com/product-detail/en/10118194-0001LF/609-4618-2-ND/2785389

One other thing to watch out for, and this isn't an error in the design but will trip you up, is that you have to flash the 16u2's firmware before it will work as intended. There's a great thread on how to do that here: http://forum.arduino.cc/index.php?topic=147639.0

I ask because I'm certain there are more errors, and I'm currently in the weeds trying to suss them out. I've gotten my board to show up in Windows as an Arduino Due and it will assign a COM port, but the Arduino IDE consistently says it's unable to find a device on that COM port. Which I'm pretty sure means that the 16u2 is functioning correctly, but the SAM3x8E is not. Or the communication lines between the 16u2 and the SAM3x8E are not properly connected, but I just checked those and I'm pretty sure those are fine.

I'm now digging through all the connections required to power and clock the SAM3x8E, to make sure it's up and running on it's own. But it's slow going as I'm not a professional engineer and I've never worked on something of this complexity before.

In any case, I would very much appreciate any information from someone who's attempted this before and especially if you've discovered any additional errors in the released design files.

Much thanks!

The two different USB sockets is not an error - the native port is a micro-AB socket and the programming port is a micro-B socket (this is clearly marked on the diagram). This is needed when using the native port as a USB host - A USB host adaptor should have a USB micro-A plug and will not fit a micro-B socket.

However, the cheap Chinese USB host adaptors that you see on Amazon and Ebay have often been (incorrectly) made with a micro-B plug. If you did duplicate the programming port socket on the native port it might still work as a host if you can get one of those adaptors with the wrong plug.

The Y4 crystal should be 16mhz, not 12mhz as is shown

Correct, Y4 is labelled incorrectly.

The USB jack for the Native port has a footprint that doesn't match that of the Programming port.

Correct again, but they shouldn't be because they are different connectors.


Rob

Do either of you have a part number handy for the USB Micro-A connector? I'm having trouble locating that type of connector. This isn't correct, is it? http://www.mouser.com/ProductDetail/Hirose-Connector/ZX40-A-SLDA/?qs=sGAEpiMZZMulM8LPOQ%252bykzmHhzPuOAFGEUTwYyFb6Wg%3d

Never seen one of them before, I don't know what it is.

This is the sort of thing you are looking for.

http://au.element14.com/molex/105017-0001/micro-usb-b-receptacle-smt-ra-5way/dp/2293836 http://www.digikey.com/us/en/ph/FCI/MicroUSB_Connector.html https://www.sparkfun.com/products/8533


Rob

That's it, thank you!

I'm still not getting my board to boot up yet, but in the meantime I'm finding all sorts of errors I made with other parts of the circuit. I'll post here if I find any other flaws that originate with the Arduino open source files.

I'm finding all sorts of errors I made with other parts of the circuit.

You wouldn't be the first :)

I'm currently designing a Due-style board as well, I'm happy to look at your circuit if you like. Maybe we're both making errors :)


Rob

Adding another mystery here:

The Due .sch and .brd files show IC10 up in between the two header rows.

A Due I ordered and received this week has IC10 in the lower left near the power jack.

Now I'm beginning to wonder how many other small inconsistencies are present in the files, and whether the files represent a viable circuit at all. I built a board using them and I've been trying to get it to work for weeks with no luck.

I'm trying to debug my own board based on the due schematics. So I made the mistake placing a 12MHz cristal for 16U2. Now I'm waiting 16Mhz one. At least, the SAM3X8E is moving from the JTAG port, AtmelStudio, pwm_led_example.c + SAMICE. One thing I'm wondering is 4pin "DEBUG" connector. maybe SWD ports but doesn't work. even it's white dot mark doesn't mean The '1' pin.

@michaeluna That was reported soon after the Due was released, no reasonable reason (IMO anyway) was offered for the downloadable files being different to the production boards.

@Aiekakiku The schematics are wrong WRT that crystal and at least on other item (that doesn't affect anyone making a similar board).

All in all it's clear that the offered "design files" are not the exact files used to create the production board.

I built a board using them and I've been trying to get it to work for weeks with no luck.

Do you want to share your schematics? I've only designed a SAM board so far not actually built it, but I may spot something.

Re the debug connector, AFAIK you need to use JTAG to enter SWD mode anyway so I'm not sure what use it is. I may be wrong on that but that's how I interpret the data sheet.


Rob

My own board based on the due schematic can be recognized by arduino 1.5.2 afetr replacing 12MHz cristal with 16MHz.
then I can write down Blink sketch on it. It works, but I feel something wrong around the reset circuit.

but the Arduino IDE consistently says it’s unable to find a device on that COM port.
Actually I got this message. then reset the board and it come to be able to write sketch. something wrong.

PS. ‘DEBUG’ connector worked, JLink Debuger requirs one more pin ’ Vref ’ .

I think I found something. R23 10K on MASTER_RESET signal. It's not good. In my memmory. NRSTB pulled up inside cpu with 15k orhm.

So 16U2 can't draw the signal down to the graund. Acturally it saw it dwon to half level. After short the R23, my own board is smoosely recognized and recieve the scketch and move correctly.

But it causes another problem. Maybe short is not good. Do I need 1k or some resistor instead? or 16U2(22) RESET_CMD pin is Open Drain?

You might have a point there. The internal pullup is a nominal 15k and the MASTER-RESET signal is driven through a series 10k (R23 as you say), that forms a voltage divider that will be about .94V on the reset pin when asserted by the 16U2.

I can’t find the valid voltage levels for the NRSTB pins but the max Vil for a standard pin is 0.3 x VDDIO, or .99V.

That’s pretty close and not a great choice given that the pullup resistor can range from 10 to 20k. Of course NRSTB may have a different threshold.

Can you verify that R23 is actually 10k?

The only reason I can think of for having R23 at all is to protect the 16U2 in the case of it asserting MASTER-RESET at the same time as the reset PB was pressed. Therefore I assume that pin 22 on the 16U2 is not open drain.

I would replace the 10k with a 1k as you say, just to be on the safe side.


Rob

I can't find out the acutual value of R23 on the real due board. because it doesn't have silk name on the board. I looked into the Arduino-usbserial.c. It says

void setResetPin(bool v) { /* Target /RESET line / .... / INACTIVE => set as INPUT (internal pullup on target /RESET keep it at 3.3v) */ ... }

Maybe, maybe it would never drive the reset Hi. I'm not sure.

OK, sounds like something put in as a "maybe we'll use it one day" feature that is not used.

If that's the case this is another discrepancy between the design files and the real thing.

I'd say you don't need R23 at all.


Rob

Graynomad, you're a helpful dude. Thank you so much for your expertise.

Here's my schematic. I literally just opened the Due release files and added some of my own circuitry to it to make this musical instrument I've been designing.

I have a question related to JTAG here, because that’s the next avenue I’m exploring to figure out what’s up with my boards.

The 10-pin connector the JTAG on the Due boards has 1mm spacing, which is super small. I’m looking high and low for the connector cable to attach to those pins and I’m not finding it anywhere. Maybe it’s because I din’t know what it’s proper name is? In any case, do any of you have a link to the type of cable that connects to those pins?

In my next revision of the board I’m switching that header to the standard size. And making both USB jacks identical, that was a huge headache as well…

The spacing is actually 1.27mm or .05", they are reasonably common although nowhere near as much as the .1" version.

http://www.embeddedartists.com/products/acc/acc_idc_10.php

Or if you need to convert to the standard 20-pin JTAG this should work

https://www.olimex.com/Products/ARM/JTAG/ARM-JTAG-20-10/

And making both USB jacks identical

So they should both be micro AB sockets then I assume.


Rob

@michaeluna I gather that schematic is not yet finished? There are a lot of unconnected nets.

Where do all the debounced switch inputs go?

EDIT: I also juts noticed that none of the wire joins have dots, that normally means they are not connected.


Rob

Michaeluna,

From going over the DUE schematic some time ago, I remember questioning the existence of T2. It is a P-channel fet that always seems to be turned on. It doesn’t harm anything I suppose. However, it would never turn off unless the 5V power port suddenly became negative. I’ve seen uses like this for battery-polarity reversal protection. I’m not sure how it applies here though.

I had some other minor comments that can be found here:

Also, when it is obvious, I think that judicious use of power-ports and net-labels make a schematic easier to read, and preferable over crossing wires (i.e. the bank of switches, digital pots, and so forth). If you’re trying to convey special pcb grouping, routing, or operation with the display of the wires on the schematic, then a few words on the schematic print would go a long way to explain your intentions.

Rob is right-on about the junction dots.

Best of luck with your project.

Chris