UNO e MEGA2560 non sfruttati adeguatamente

UNO e MEGA2560 montano il mega16u2 che viene utilizzato di default come convertitore USB-asincrona, ora se lo scopo delle fattorie arduino era quello di connettersi con un PC solo tramite una VCOM era meglio tenere il FT232R oppure mettere un PL2303 che costa ancora meno, è evidente che lo scopo delle fattorie è quella che gli utenti potessere riprogrammare il mega16u2 per farlo riconoscere al PC come un'altro tipo di periferica che non sia un VCOM comunicando non solo mediante la sua porta COM al mega328 ma utilizzando anche gli altri 7 pin di mega16u2 messi a disposizione sui connettori JP2 e ICSP1.
Penso quindi che dato l'esiguo (penso) numero di applicazioni circolanti in questo senso sia nettamente sottosfruttato,

che ne pensate?

Un'altro sottosfruttamento è quello che vedo in alcune applicazioni baste su UNO dove non è connessa al PC e i pin non bastano quindi si ricorre al pin expander quando ci sarebbero ben altri 7 pin disponibili per periferiche lente utilizzando i pin di mega16u2 connessi mediante l'asincrona.

Altra cosa, perché si è scelto il 16U2 quando anche il vecchio 8U2 bastava?
Inoltre è stato dimostrato che in alcuni casi il firmware del chippino si è rovinato in modo più o meno casuale, costringendo i loro possessori a riscriverlo o a rimandare la scheda indietro. Scelte discutibili.
A me, così di primo acchito, viene da pensare ad un accordo commerciale Arduino/Atmel.

leo72:
A me, così di primo acchito, viene da pensare ad un accordo commerciale Arduino/Atmel.

Sicuramente loro pagano di meno i 16u2 del FT232, basta vedere da un grande distributore il rispettivo prezzo per grosse quantità che è praticamente lo stesso, circa 1.8E.

Non fraintendetemi, non è una critica alle fattorie, ma invece la vedo una cosa molto intelligente, mi stò solo domandando come mai questa caratteristica non venga sfruttata come merita ?

icio:
Non fraintendetemi, non è una critica alle fattorie, ma invece la vedo una cosa molto intelligente, mi stò solo domandando come mai questa caratteristica non venga sfruttata come merita ?

Perché l'hanno usato come sostituto del FTDI spendendo di meno, non credo che inizialmente abbiano valutato la possibilità di usarlo con altre tipologie di periferica USB, c'è pure da mettere in conto il fatto che se "giochi" con il 16u2 delle UNO/MEGA c'è il reale rischio di fare un bel brick di Arduino se non si dispone di un secondo Arduino o un programmatore hardware per ripristinare il firmware del 16u2.
Non scordiamoci che il target primario di Arduino sono persone che non sanno quasi nulla di elettronica e programmazione, gente che va in crisi anche solo per premere il tasto di reset durante il boot per sbloccare Arduino.

Vero, vero. Tant'è che di progetti reali che sfruttano il chippino non c'è quasi traccia.

leo72:
Vero, vero. Tant'è che di progetti reali che sfruttano il chippino non c'è quasi traccia.

Quanto sto per dire prendilo con riserva perché non ho avuto modo di verificarlo di persona, però sembra che la periferica USB degli AVR non sia molto flessibile, sopratutto perché ha pochi endpoint, pertanto non si presta bene alla creazione delle periferiche USB.
Personalmente ho esperienza diretta della programmazione di varie periferiche USB, anche di tipo composito, solo con i PIC e gli STM32, sebbene tutti e due dotati di ottimo supporto hardware la cosa è sempre molto complessa da affrontare, p.e. il framework base che mi sono scritto per i PIC con porta USB sono oltre 800 righe in C che possono diventare oltre 1500 righe in caso di periferiche molto complesse.
Il problema è che tocca gestire tutta una serie di messaggi che arrivano dal HOST rispondendo in modo adeguato, questo porta a tante righe di codice che, anche se vengono eseguite raramente, devono essere presenti per poter rispondere adeguatamente al HOST quando necessario.
Da notare che tutti gli IC che implementano specifiche periferiche USB, la più classica è quella CDC (emulazione seriale), in realtà sono sempre dei micro di tipo OTP dotati di porta USB hardware con SIE (USB Serial Interface Engine) implementato in hardware su cui è caricato il software per quel device.

Una base potrebbe essere, anzi lo è sicuramente LUFA che e poi il progetto open source adottato anche dalle fattorie.
Io ci ho dato un occhiata per una cosa che mi serviva , cioè aggiungere la linea DSR per fare un HandShake hardware, ma si può fare di tutto , peccato non se ne parli molto eppure UNO rev3 è fuori da qualche anno...

IMHO non se ne parla molto perché anche lato Arduino la cosa è nata e morta lì. Difatti, come dimostrò Astrobeed quando rilasciò la modifica al FW dell'8/16U2 per disattivare l'autoreset, se non usi una specifica versione della LUFA non compili. Segno che dopo il primo sviluppo di quel FW si è tutto fermato e la cosa non è stata studiata/sviluppata ulteriormente. Non c'era quindi molto interesse a rendere la UNO un prodotto general-purpose. Poi l'inizio dell'uso del 32U4 (Leonardo e Micro) ha di fatto tagliato le gambe alla cosa.