Go Down

Topic: Custom Due with only programing port: NO DEVICE FOUND ERROR (Read 488 times) previous topic - next topic

codykorn

Arduino IDE 1.8.3

Arduino Due board software, 1.6.11

Hello,

I made a custom Arduino Due board according to the current schematics available. The board is 4 layers, signal layers on top and bottom, a ground plane and 3.3V plane in the interior layers. I opted to keep the Atmega16u2 instead of the native port. I have gotten rid of many things from this design including JTAG, external power supply circuitry, Native port circuitry, and all the headers except SPI for the atmega16u2 (to flash firmware). I have successfully loaded the firmware onto the atmega16u2 by using an Arduino Uno with Arduino ISP. I have the correct hex file because I have tried it on a correct Arduino Due, and was able to upload the blink program after flashing. My issue is that I keep getting the error code when trying to upload the example blink sketch to the board:

C:\Users\USER\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.6.1-arduino/bossac.exe -i -d --port=COM5 -U false -e -w -v -b C:\Users\USER\AppData\Local\Temp\arduino_build_874155/ArduinoISP.ino.bin -R

No device found on COM5
Send auto-baud
Set binary mode
An error occurred while uploading the sketch


Device Issues
   1. My led "L" connected to pwm13 is constantly on when hitting reset, erase, or uploading.
   2. All I/O pins are showing a high logic level (3.3V).
   3. I only get 3 blinks on the Atmega16U2 RX LED, nothing with TX when uploading a sketch fails.

Steps taken to debug problem.
   1.     Restarted computer/Arduino IDE.
   2.     Unplugged and re-plugged in custom board.
   3.     Holding erase for a few seconds, then hitting the reset before trying to upload.
   4.     Voltage Checks on Microcontroller
      a. VDDIN: 3.3V
      b. VDDIO1-4: 3.3V
      c. VDDANA: 3.3V
      d. VDDBU: 3.3V
      e. VDDUTMI: 3.308V
      f. VDDOUT: 1.786V
      g. VDDPLL: 1.786V
      h. VDDCORE1-5: 1.785V
      i. Ground Pins all are at 0V
      j. VBG: Pin 40, 0V
      k. SHDN: Pin 50, 3.3V (Device is not in sleep mode)
      l. NRST: Pin 69, 3.278V
      m. JTAGSEL: Pin 46, 0V
   5. Erase function (Probe on Pin 130 and ground)
      a. Measures 0V when plugged in.
      b. When pressing erase button there is a voltage of 3.3V.
      c. When trying to upload a sketch there is brief moment when there is a 3.3V level on the microcontroller pin.
   6. Reset function (Probe on pin 47 and ground)
      a. Measures 3.3V when plugged in.
      b. When pressing the reset button there is a 0V level.
      c. When trying to upload a sketch there is a brief moment when there is a 200mV level on the reset pin.
      d. R23 is 1K Ohm (inline from the atmega16u2)
   7. Oscillator checks
      a. Y1 - 11.99MHz
      b. Y2 - 32.xxx KHz
      c. Y3 - 15.99MHz
   8. Added Varsistor from pin 129 UOTGID to ground.
   9. Read SAM3X8E checklist, and everything seems to be connected right.
   10. Added a 47uF electrolytic cap to +5V net.
   11. Check polarization marks on all components. All were correct.

Hardware Used (Rest are on the BOM)
   1. Y1 - FH1200001     (CRYSTAL 12MHZ 20PF SMD)
   2. Y2 -ECS-.327-12.5-34B-TR    (OSC MEMS 32.768KHZ LVCMOS SMD)
   3. Y3 - FL1600087    (CRYSTAL 16MHZ 20PF SMD)
   4. 100nF - TMK105B7104KVHF  (CAP CER 0.1UF 25V X7R 0402)
   5. 10uF - TPCR106K016F1800 (CAP TANT 10UF 16V 10% 0805)
   6. All other components I used the available part numbers.
   7. LED's - LY R976-PS-36  (all same part line)

Components replaced
   1. U1 - SAM3X8E (I replaced one on another due with success, not a soldering issue)
   2. C23 & C4 - changed to 22pf

Components Not Placed
   1. R8
   2. R9
   3. Q4
   4. C26

Possible ideas
   1. I connected GNDANA, GNDPLL, GNDBU, and GNDUTMI all to ground, not touching the cathode of the associated capacitor such as VDDUTMI.
   2. The oscillators that I picked are not correct.
   3. The capacitors I picked are not correct.
   4. The SAM3X8E is in a watchdog fault mode (not allowing user buttons to work and not able to be programed)

Palliser

Have you tried to program your due using the native port?

Quote
C:\Users\USER\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.6.1-arduino/bossac.exe -i -d --port=COM5 -U true -e -w -v -b C:\Users\USER\AppData\Local\Temp\arduino_build_874155/ArduinoISP.ino.bin -R
The idea is to determine if your issue is related to your Atmega or the SAM.

Regards,
-p

codykorn

The board I have built does not have native port. I would have to solder wires to the SAM then build a the circuit. This may be my next step in solving my problem.

Dmitry_Ai


codykorn

I have found something interesting when flashing the atmega16u2. When I flash the .hex file onto a regular Arduino Due the low fuse byte reads 0xEF, but when I flash my custom board my low fuse byte reads 0x5E. The default fuse settings for the atmega16u2 for the low fuse byte is 0x5E. I believe the chip is not being programmed correctly. I'm using the same HEX file with both.

The datasheet information on the low fuse byte settings are attached. I believe this is the reason my board is not working.

codykorn

Problem is fixed, I found a helpful article

https://forum.arduino.cc/index.php?action=post;topic=299665.0;last_msg=3230691

The issue was with the Atmega16U2 firmware. When the chip comes from the factory the fuse byte settings are locked so you need to first remove the lock, then tell the chip which fuse settings to use for the LOW byte, then flash the hex file.

Thanks

Go Up