Arduino Due e problema con tasto erase

Salve posseggo un Arduino Due,una shield tft 320QVT 9341,e un adattatore per suddetta shield. Il problema e' molto semplice,una volta montato lo shield e il tft su arduino,non riesco fisicamente a premere il tasto erase su arduino due,per poterlo riprogrammare ogni volta che modifico lo sketch!C'e' un modo per farlo da remoto?Grazie mille,allego immagini che faranno capire piu di mille parole!

Non ho la DUE però non mi risulta che sia indispensabile premere il tasto erase per programmarla, questa funzioanlità funzionalità è gestita in automatico sia che programmi tramite la "program port" che tramite la "native port" come descritto qui.

astrobeed:
Non ho la DUE però non mi risulta che sia indispensabile premere il tasto erase per programmarla, questa funzioanlità funzionalità è gestita in automatico sia che programmi tramite la "program port" che tramite la "native port" come descritto qui.

Provato ora con il semplice blink:
Arduino collegato via usb alla porta programming
Se invio lo sketch senza premere il tasto erase mi dice:
device not found on com 6.

Se invece premo il tasto erase qualche secondo dopo aver inviato lo sketch,funziona!

Aggiornamento: in effetti collegandolo tramite la native port,funziona tutto a dovere!Ma cosa cambia a livello tecnico tra la programming e la native? :slight_smile:

Ma stai usando la "native port" oppure la programming port ?
Sulla native port devi prima aprire la comunicazione a 1200 bps per avviare il soft erase, poi programmi nel solito modo, con la programming port non devi fare nulla, ci pensa l'interfaccia ad avviare l'erase.

Dalla guida di Arduino DUE:

Opening and closing the ''Native' port at the baud rate of 1200bps triggers a “soft erase” procedure: the flash memory is erased and the board is restarted with the bootloader. If, for some reason, the MCU were to crash during this process, it is likely that the soft erase procedure wouldn't work as it's done in software by the MCU itself.
The Programming port uses a USB-to-serial chip connected to the first UART of the MCU (RX0 and TX0). The USB-to-serial chip has two pins connected to the Reset and Erase pins of the SAM3X. When you open this serial port, the USB-to-Serial activates the Erase and Reset sequence before it begins communicating with the UART of the SAM3X. This procedure is much more reliable and should work even if the main MCU has crashed.

Mai pensato di leggere la pagina del prodotto?

Either of the USB ports can be used for programming the board, though it is recommended to use the Programming port due to the way the erasing of the chip is handled :
Programming port: To use this port, select "Arduino Due (Programming Port)" as your board in the Arduino IDE. Connect the Due's programming port (the one closest to the DC power jack) to your computer. The programming port uses the 16U2 as a USB-to-serial chip connected to the first UART of the SAM3X (RX0 and TX0). The 16U2 has two pins connected to the Reset and Erase pins of the SAM3X. Opening and closing the Programming port connected at 1200bps triggers a “hard erase” procedure of the SAM3X chip, activating the Erase and Reset pins on the SAM3X before communicating with the UART. This is the recommended port for programming the Due. It is more reliable than the "soft erase" that occurs on the Native port, and it should work even if the main MCU has crashed.
Native port: To use this port, select "Arduino Due (Native USB Port)" as your board in the Arduino IDE. The Native USB port is connected directly to the SAM3X. Connect the Due's Native USB port (the one closest to the reset button) to your computer. Opening and closing the Native port at 1200bps triggers a 'soft erase' procedure: the flash memory is erased and the board is restarted with the bootloader. If the MCU crashed for some reason it is likely that the soft erase procedure won't work as this procedure happens entirely in software on the SAM3X. Opening and closing the native port at a different baudrate will not reset the SAM3X.

Mai premuto il tasto Erase, con la programming port

Allora prima usavo la programming port,e come dicevo prima ogni qualvolta che la uso,alla fine dell invio dello sketch,l'ide mi invia un errore che non trova la porta com su cui e' collegato arduino.Quindi,per ovviare a cio' devo prima premere il tasto erase e poi inviare lo sketch.
Invece con la native port questo non sussiste.Quando dici di aprire e chiudere la porta seriale,mettere un serial.begin(1200) nel setup e poi chiuderla subito? serial.close?

Ma no, tu non devi fare niente, fa tutto il software che programma la scheda (che qua non è il solito avrdude, ma bossac, se non erro).

mooger:
Allora prima usavo la programming port,e come dicevo prima ogni qualvolta che la uso,alla fine dell invio dello sketch,l'ide mi invia un errore che non trova la porta com su cui e' collegato arduino.

Mi sa tanto che hai qualche problema lato pc perché come ti ha confermato Brunello non serve premere erase con la programming port.
L'apertura a 1200 bps serve con la native port, avvia la procedura di soft erase, e va fatta dal pc non dallo sketch, in pratica funziona allo stesso modo della Leonardo dove la seriale viene aperta prima a 1200 bps per attivare il reset e poi a 115200 per il trasferimento dello sketch, il tutto è gestito in automatico dal IDE.

SukkoPera:
Ma no, tu non devi fare niente, fa tutto il software che programma la scheda (che qua non è il solito avrdude, ma bossac, se non erro).

Esatto è Bossac, comunque la procedura di erase, che è obbligatoria sul SAM, è gestita dal 16u2 che fa da interfaccia per la programming port, due pin sono collegati rispettivamente al reset e al erase del micro.

The USB-to-serial chip has two pins connected to the Reset and Erase pins of the SAM3X