Arduino DUE : SAM3X e ATMEL16u2

Ciao a tutti

Vorrei fare un PCB basato su Arduino DUE

Con riferimento allo schema del DUE :

Le mia domande sono:

  • Posso programmare il SAM3X direttamente tramite JTAG usando un programmatore, senza includere nella PCB la parte con l'ATMEL16u2?

  • Se si, sapete indicarmi un programmatore adatto?

  • E' possibile effettuare operazioni di debug tramite JTAG?

  • E' possibile programmare il SAM3X direttamente dall'IDE di Arduino?

  • Nel caso di programmare il SAM3X da un'altro IDE (ad esempio l'Atmel Studio), é possibile programmare usando le parole chiave dell'IDE di Arduino (tipo digitalWrite, pinMode , etc...) ?

In pratica, vorrei capire se con il solo micro ARM riesco ad avere le funzionalità base che ho con il DUE

Grazie

Nessuno ne sa niente?
Dai, non ci posso credere

La Arduino Due è poco usata. In pochi c'e' l'hanno.

Comunque, che sia la Due o la Uno,Mega,Nano (atmel328) dentro ad Arduino IDE usi il core (scritto per la MCU relativa) e quindi puoi usare i comandi digitalRead, etc.
Con un altro IDE, esempio Atmel Studio, non puoi usare quei comandi che sono specifici del core di Arduino IDE. Per Atmel Studio hanno fatto un plugin Visual Micro (free senza il debugger) per poter programmare come in Arduino.
http://www.visualmicro.com/page/Arduino-for-Atmel-Studio-7.aspx

Prendi con le pinze quanto sto per dire e verificalo personalmente: il 16U2 non è strettamente necessario. Se noti, sulla Due ci sono due porte USB: una va lì, ma l'altra (la NATIVE) credo vada direttamente al SAMD ed è il modo in cui andrebbe programmata "naturalmente". Il tool che si occupa di questo, e che Arduino IDE usa quando si seleziona la porta Native, mi pare si chiami bossac.

Il 16U2 penso sia stato introdotto per avere la comodità di programmare e avere i messaggi di debug sulla stessa porta, senza continuare a passare da una all'altra. Evidentemente la porta nativa non può essere facilmente usata come Serial (anche se questo mi sembra assurdo, dovrebbe supportare il CDC!).

Quanto al JTAG, se non ricordo male è supportato, ma su questo ho ancora più dubbi che sul resto :D.