A quando una UNO plus?

[quote author=Michele Menniti link=topic=225018.msg1669556#msg1669556 date=1396891226]
sarebbe interessante, per i miei studi, sapere che core ha usato il progettista, certamente ha risolto la questione del caricamento e dialogo seriale, anche se quella probabilmente riguarda la sola versione PDIP.[/quote]

Nella pagina linkata c'è il file core da scaricare. Aprendolo ci sono alcuni riferimenti al core Migthy.

Hai ragione Michele, se venisse usata spesso senza rinunciare alla possibilità del doppio processore, prima o poi un guaio succede, e per chi deve lavorarci con il 1284p sarebbe meglio optare per la soluzione da te indicata. Per il CORE non so nulla ancora, quando arriva faccio ciò che indicano come istruzioni, peccato che per mantenere la compatililità, hanno rinunciato al quarzo/cristallo da 20 MHz che avrebbe dovuto avere quella MCU per usare quello da 16 ori della UNO. Certamente, nel mio progetto vi è la necessità di avere tutta la potenza possibile, quindi ho già ordinato un quarzo da 20 MHz per montarlo sulla scheda ori, resta da capire e decidere, quando metterlo e se la procedura comporta altre problematiche, per esempio so che con quello da 20 forse si perde la capacità di programmazione da IDE, non è un grosso problema perché ho ordinato un AVR Dragon e sto già giocando con AVR Studio per capire il suo complesso funzionamento (per me ovvio). Ma l'idea sarebbe trovare una soluzione per il resto della comunità Arduino per poter disporre delle capacità extra di calcolo senza incappare nei lati negativi, ma questo, lo lascio a voi esperti, io mi posso solo proporre come beta tester/cavia per esperimenti :astonished:

Purtroppo si, riguarda solo la versione DIP della UNO (anche perché, è l'unica dove la MCU si può togliere dalla board. Altra soluzione sarebbe creare una "nostra" board basata sul 1284p?? L'idea mi alletta, ma la parte sw/fw/core non fa per me :blush: magari con una wish list di caratteristiche on board? che ne dite?

Per programmarla a 20Mhz tramite IDE devi aggiungere una tabella nel file board.tx e cambiare fuse e bootloader.
Niente di complicato.

Anche io da tempo pensavo di disegnare una Uno plus come te e basata appunto, sul 1248p e mantenedo il layout della Uno attuale per preservare la compatibilità con le shield già in commercio, soprattutto quelle ufficiali; sul lato disegno sarei anche riuscito credo, ma poi ho desistito perche lato core e compatibilità delle librerie (almeno quelle ufficiali) non sarei nemmeno riuscito a capire da dove cominciare :blush: però potrebbe essere un bel progettino della board italiana, magari da portare al maker faire XD
Ovviamente questo non ha nulla a che vedere con i possibili futuri sviluppi del mio progettino!!!
Non siate maligni eh!!! Ahahahahah XD XD XD XD

Riccardo

P.S. nel caso anche io potrei essere un beta tester :slight_smile:

PaoloP:
Per programmarla a 20Mhz tramite IDE devi aggiungere una tabella nel file board.tx e cambiare fuse e bootloader.
Niente di complicato.

E il bootloader dove lo metti? Lui parla di

trovare una soluzione per il resto della comunità Arduino per poter disporre delle capacità extra di calcolo senza incappare nei lati negativi

, quindi immagino si riferisca anche alla programmazione classica via USB e non all'ISP. Tempo fa Astro realizzò una versione del bootloader a 20MHz per il 328P però mi pare che la cosa non fosse completa e poi lui stesso l'abbandonò o quantomeno non ci fece niente nessuno.
@ hiper: attenzione al fatto che l'UNO non ha un quarzo a bordo bensì un risonatore ceramico, quindi non credo tu possa sostituirlo, però non è detto che abbiano usato quello originale, potrebbero aver lasciato scollegato il risonatore e usato un quarzo sullo schedino aggiuntivo, quindi guardati bene lo schema.

Risposte in ordine sparso:

Il core Mighty aveva senso con l'IDE fino alla versione 1.0.2. Poi il supporto ai chip Mega644/1284 è stato integrato (anche se poi nascosto) nell'IDE di Arduino per cui con le ultime versioni dalla 1.0.3 in poi basta creare le board nel file boards.txt che puoi compilare da subito per questi chip.

Quella scheda ha senso per fare dei test, ma poi, come ha detto Michele, meglio eliminare del tutto la parte relativa all'Arduino. L'Atmega644/1284 è una MCU completa e come tale può stare in standalone senza problemi. Anzi, visti i numeri pin e le periferiche in più, è anche un upgrade al 328.

Per i 20 MHz ricordatevi sempre che non tutte le librerie sono scritte per essere compatibili con MCU diverse da quelle ufficiali ma anche che non tutte le librerie sono scritte per lavorare con clock diversi dai 16 MHz. Quindi controllare sempre la compatibilità di MCU e clock.

UPDATES!!!

finalmente, è arrivata la scedina ad-on per convertire una UNO R3 PDIP in Atmega1284P, tutto ok, bel PCB, piccola e calza alla perfezione dello zoccolo originale, coincidono anche i due fori per il fissaggio con viti in plastica tra boards!
Collegata alla USB, selezionato dall'IDE il nuovo device -> Arduino UNO*pro, sketch blink, compilato e scaricato senza battere ciglio!!

Unico appunto è il fatto che sul chip, c'è scritto Atmega1284 AU e non Atmega1284P come mi sarei aspettato, quindi è la versione senza il Power saving? fa qualcosa? da quello che ho letto, sono identichi, cambia solo le caratteristiche di risparmio energetico, non so che ne dite voi che avete più esperienza in queste MCU? Ecco alcune foto.

PS. Probabilmente, ho tralasciato di notare la differenza nella descrizione del prodotto...mmmm, la fretta!!!

Immagine 009.jpg

Immagine 010.jpg

Immagine 011.jpg

Immagine 012.jpg

Altre foto...

Immagine 013.jpg

Immagine 014.jpg

Immagine 015.jpg

Immagine 016.jpg

altre foto...

E con la nuova "Artiglieria" :smiley: per i PCB che dovrò studiare nei prossimi mesi :grin: :grin:

Vedo tanto, tanto lavoro all'orizzonte... aiutoooo!!!! non fa niente, quando ci si diverte!! Heheheee XD

PS. le foto non sono un gran chè, le ho fatte con la webcam, non ho al momento fotocamere migliori, ma credo rendano l'idea...

i due chip sono degli Atmega1284P AU in formato TQFP44, caso mai facessi "bollire" quello della schedina... non ci metterei molto a sperimentare se il "P" va lo stesso!!!

Immagine 019.jpg

Immagine 021.jpg

Immagine 022.jpg

Ti confermo che le versioni TQFP SMD si chiamano -AU invece di -PU, il PicoPower lo hanno in dotazione anche se non hanno la sigla P finale dopo il 1284. La questione della P si pone solo per i modelli in PDIP che sono stati realizzati con o senza PicoPwer, sull'smd non esiste.
Bella la scheda, le foto bastano e avanzano :grin:

Grazie per la delucidazione, il mio dubbio è sorto dopo aver visto che i chip usati in rete in TQFP avevano la P e quindi ho aperto la confezione per verificare i miei chip appena comprati (Mouser) ed essi avevano la dicitura "P" e quello della scheda no, quindi pensavo fosse la versione normale (che per i miei scopi è lo stesso, non credo di essere in grado di creare applicazioni dove tale caratteristica è importante (immagino su Rover autonomi, Sistemi a batteria miniaturizzati, quadcopters ecc). Per ora, i sistemi che tengo in mente dove questa MCU potrà avere largo impiego, non ha problemi di alimentazione già che lavorano tutti a 12V DC.

Prossimamente, mi resta da capire come sostituire il cristallo/quarzo/risonatore originale scheda Arduino a 16 MHz per uno da 20 MHz, ne ho comprati qualcuno SMD da 20MHz, ma sono grandi come quello della 16U2, il 328P sulla board ha uno piccolissimo come quello che monta anche la mia UNO R3 SMD... Ma prima, capire pro e contro della sostituzione. Nel frattempo, studierò anche come usare il programmatore AVR DRAGON, non è così semplice come credevo! in realtà è AVR Studio che è tosto da imparare!!

Prima di dissaldare e saldare componenti sull'Arduino, monta su una breadboard un 328P in Stand-Alone e configuralo per andare a 20Mhz con quarzo esterno.
Una volta fatto caricaci sopra vari sketch per verificare che siano compatibili con la nuova velocità.
Devi verificare soprattutto le periferiche come la Seriale, l'I2C e la SPI, ovvero tutte quelle che devono avere tempistiche certe e che con un cambio di velocità potrebbero non essere supportate. Inoltre verifica la correttezza delle funzioni millis(), delay() e delayMicroseconds().

Per ultimo ti devi ricompilare il bootloader o cercarne uno che funzioni a 20Mhz.

Grazie del consiglio Paolo!!! :smiley:

Adesso mi si è liberato un 328P PDIP , :grin: in compenso, ne ho anche uno TQFP XD... ma non vorrei fare un PCB per fare prove con 328P almeno per ora, farlo sulla breadboard sarebbe molto meglio per verificare le funzionalità.
Forse unico punto interrogativo sarebbe il bootloader, potrei comunque provare la programmazione ISP con altro arduino o anche con AVR DRAGON, non so adesso, ma a breve voglio fare questi test per iniziare a controllare le cose specifiche di questi chip che differiscono dal 328P (penso ai timers, interrupt, ecc) Vi terrò informati! :wink:

A me risulta diversamente. Il formato SMD non implica la presenza del core, esiste difatti il 1284-AU ed il 1284P-AU.
Anche sul sito, Atmel espressamente specifica che il 1284 non P il core non ce l'ha:

picoPower: No

Ciao, ho fatto qualche altra prova di compatibilità di sketch, fino ad ora tutto ok, ovviamente, dove vengono usati la manipolazione diretta dei PORT pins, ho riscontrato differenze ed è logico che ci siano, non ho ancora confrontato i datasheet, avevo uno sketch che mi faceva accendere due pin il 12 e 13 usando il Direct Port manipulation, ed ho costatato che il led 13 non blincava, ho sospettato che fosse questo il problema, gli ho riabilitato dinuovo i soliti "digitalWrite()" e tutto è andato ok, quindi, probabilmente (sicuro a questo punto) il pin in questione non è lo stesso sul 1284, ma questo me lo aspettavo.

Domani vedo di fare altre prove, fino ad ora, sono fiducioso, lavora come un 328P, se non fosse per quel led blu un pò accecante e per il messaggio di flash disponibile, difficilmente ci si accorgerebbe della differenza... :slight_smile:

Leo, grazie del chiarimento, a me faceva strano perché la P la vedevo dappertutto e AU anche, non a caso, anche i due Chip da me presi, hanno stampato la P ed AU. Comunque, quello che importa è che funziona...

PaoloP:
Prima di dissaldare e saldare componenti sull'Arduino, monta su una breadboard un 328P in Stand-Alone e configuralo per andare a 20Mhz con quarzo esterno.
Una volta fatto caricaci sopra vari sketch per verificare che siano compatibili con la nuova velocità.
Devi verificare soprattutto le periferiche come la Seriale, l'I2C e la SPI, ovvero tutte quelle che devono avere tempistiche certe e che con un cambio di velocità potrebbero non essere supportate. Inoltre verifica la correttezza delle funzioni millis(), delay() e delayMicroseconds().

Per ultimo ti devi ricompilare il bootloader o cercarne uno che funzioni a 20Mhz.

Grazie dei consigli, ho realizzato un collegamento veloce veloce in breadboard, il reset mi ha dato qualche grattacapo, risolto solo dopo averlo collegato alla board arduino (con pull-up montato ovviamente) con il quarzo da 16 Mhz carica normalmente, con quello da 20 non ho provato, ma immagino non vada, ma ho verificato la differenza in esecuzione tra i due quarzi, ci sta, anche con il semplice blink, ad occhio non si vede, ma sollegato al logic analyzer (anch'esso appena arrivato insieme alla board plug-in del 1284) cè la giusta differenza di prestazioni, ovvero, quel 25 percento di differenza nel clock, con il quarzo da 16 MHz misuro preciso 1000mS mentre con quello da 20 MHz misuro 800 mS. Era da aspettarsi, pero ora sono comunque soddisfatto, mi studierò la cosa con calma e vedrò cosa si può fare, tanto devo anche provare in settimana a far funzionare il programmatore AVR Dragon, quindi vedo di provare anche a programmarlo da AVR Studio, ovviamente, poi dovrò rimettere il bootloader per continuare a fare prove da seriale...

Comunque il bootloader su uno standalone è utile il giusto, secondo me è una complicazione inutile. Metti un connettore e programmalo via ISP. Oltretutto la programmazione via seriale sui 1284P ha dato a diverse persone diversi problemi.

Hai ragione Leo, questa prova l'ho fatta più che altro per prendere la mano con un sistema stand-alone su breadboard e quindi ho usato il 328P "estirpato" dalla UNO, perchè con abordo il 1284. Mentre per il 1284 "add-on" per ora continuerà a funzionare a 16MHz non appena avrò capito meglio come programmare in ISP con e senza AVR DRAGON con IDE e con AVR STUDIO, il PCB per uno dei chip 1284P che ho preso partirà solo ISP.

Se usi Windows guarda qui --> http://forum.arduino.cc/index.php?topic=232246.msg1680198#msg1680198
Tra i programmatori c'è anche ovviamente l'AVR Dragon.

Scusami Paolo, sono completamente ignorante :sweat_smile: in questo tema, ma a cosa mi servirebbe? :blush: