Arduino Forum

International => Italiano => Megatopic => Topic started by: PaoloP on Jan 26, 2016, 08:06 am

Title: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 08:06 am
Mi era sfuggita questa nuova revisione del 328. Non è disponibile in formato DIP ma solo in TQFP e MLF.
Qui il datasheet --> http://www.atmel.com/devices/atmega328pb.aspx (http://www.atmel.com/devices/atmega328pb.aspx)

C'era anche un topic sull'argomento --> https://forum.arduino.cc/index.php?topic=344016.0 (https://forum.arduino.cc/index.php?topic=344016.0)

EDIT:
Qui i file per compilare gli sketch per il 328PB
--> https://drive.google.com/file/d/0B-r72Ke08DpxSkFndU4tZm1oU0k/view?usp=sharing (https://drive.google.com/file/d/0B-r72Ke08DpxSkFndU4tZm1oU0k/view?usp=sharing)
Mancano le definizioni e le librerie per gestire la seconda I2C e la seconda SPI.
I timer non sono stati testati e neanche il PWM.
Title: Re: ATmega328PB
Post by: gpb01 on Jan 26, 2016, 08:42 am
 :)  Le cose più interessanti sono ...

Peripheral Touch Controller
- Capacitive touch buttons, sliders and wheels
- 24 Self-cap channels and 144 mutual cap channels

Peripheral Features:
- Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
- Three 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode
- Real Time Counter with Separate Oscillator
- Ten PWM Channels
- 8-channel 10-bit ADC in TQFP and QFN/MLF package
- Two Programmable Serial USART
- Two Master/Slave SPI Serial Interface
- Two Byte-oriented 2-wire Serial Interface (Philips I2C compatible)
- Programmable Watchdog Timer with Separate On-chip Oscillator
- On-chip Analog Comparator
- Interrupt and Wake-up on Pin Change

... ma, leggendo il thread che hai linkato, sembra che non sia ancora ben supportato dai compilatori ::)

Guglielmo

P.S.: Naturalmente, le cose in più (seconda seriale, secondo SPI, secondo I2C) ... sono sui pin di I/O che svolgono più funzioni, quindi usandole ... si perdono I/O digitali
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 09:34 am
Molto interessanti la doppia UART, la doppia I2C e i tre timer 16 bit che lo rendono molto versatile.
Tocca sviluppare subito una scheda basata su questo micro. :)

Title: Re: ATmega328PB
Post by: gpb01 on Jan 26, 2016, 09:41 am
Tocca sviluppare subito una scheda basata su questo micro. :)
.... difatti, invece di tutte le schedine ... "inutili" ... che sono saltate fuori ultimamente, un Arduino UNO Plus/Arduino Micro Plus con questo chip ... sarebbe molto comodo :)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 09:43 am
Nano UNO-B, a 5V, 20 Mhz, con CH340 per ridurre il costo.
Grazie al nuovo IDE si potrebbe sviluppare anche un core dedicato.  :)

Per prima cosa bisogna chiedere ad Alberto una scheda dedicata alla piedinatura del modello TQFP 32.
Title: Re: ATmega328PB
Post by: gpb01 on Jan 26, 2016, 09:48 am
Per prima cosa bisogna chiedere ad Alberto una scheda dedicata alla piedinatura del modello TQFP 32.
... beh ... anche il pinout che c'è sul datasheet (pag. 13) non è male ... lo hanno fatto tutto a COLORI :D :D :D

Guglielmo
Title: Re: ATmega328PB
Post by: menniti on Jan 26, 2016, 09:50 am
Molto interessanti la doppia UART, la doppia I2C e i tre timer 16 bit che lo rendono molto versatile.
Tocca sviluppare subito una scheda basata su questo micro. :)


Io sono a disposizione.......fammi sapere come sei combinato col tempo.....
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 09:55 am
[Flame] Impostandolo a 20Mhz potremmo dire che è l'Arduino UNO-B più veloce di sempre.  :smiley-mr-green:

Che voi sappiate, ci sono problemi per particolari tempistiche interne, a parte ricompilare l'optiboot?
Delay, delayMicroseconds, Seriali, I2C e SPI si settano in base al valore del clock indicato nel board.txt, giusto?
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 10:12 am
[Flame] Impostandolo a 20Mhz potremmo dire che è l'Arduino UNO-B più veloce di sempre.  :smiley-mr-green:
La questione 20 MHz non è un vero problema, anche senza toccare nulla nel core Arduino funziona perfettamente, basta dichiarare f_cpu 20000000 nel suo descrittore board, ovviamente serve un bootloader dedicato per i 20 MHz, però mi pare che già esiste l'optiboot per questa frequenza.
Se vogliamo buttarci in questo progetto io ci sono, si potrebbe aprire un topic dedicato in megatopic e un repository su github per schemi e core.
Si potrebbe prevedere due schede distinte, una con il classico layout di Arduino, da vedere come sistemare i pin in più disponibili sul case TQFP32, e una in stile nano/mini, per l'USB lascerei perdere i chio cinesi, usiamo gli FTDI veri, sono molto meglio, più versatili e alla fine la scheda costa solo 50 cent in più.
Io posso sfornare uno schema di base, con relativo pcb, in tempi molto brevi, diciamo entro fine settimana.
Per il compilatore tocca vedere un attimo quali sono i problemi riscontrati, devo ancora leggere il topic postato da Paolo, ma non credo siano cose insormontabili visto che alla fine è sempre un 328 con delle periferiche aggiuntive. :)
Potrebbe venire fuori un bel progetto realizzato dalla comunità italiana, non escludo che più avanti potrebbe diventare una scheda ufficiale Arduino/Genuino.
Title: Re: ATmega328PB
Post by: brunello22 on Jan 26, 2016, 10:18 am
Quote
Potrebbe venire fuori un bel progetto
una Luigino2016.....
Luigino328PB
Title: Re: ATmega328PB
Post by: menniti on Jan 26, 2016, 10:23 am
Se pensi si possa realizzare su due layer le rifiniture al PCB le faccio io, o anche tutte le piste, mi basta che mi dai la disposizione dei componenti di massima ed il .dru da utilizzare, ma io ci metto di più di questo fine settimana, in compenso al prototipo ci penso io.... ;) Per il software però ve la vedete voi....
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 10:24 am
una Luigino2016.....
Ho in mente qualcosa di meglio. :)
Title: Re: ATmega328PB
Post by: gpb01 on Jan 26, 2016, 10:24 am
... mmm ... non so se c'è da fare molto a livello delle schede ... il case è sempre TQFP32 e i pin in più sono in realtà rimappati su degli I/O digitali già presenti.

(http://forum.arduino.cc/index.php?action=dlattach;topic=374642.0;attach=152197)


Non vorrei sbagliare, ma la Pro Mini monta già il 328P in QTFP32 e porta già fuori anche A6 e A7 ... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 10:29 am
Se pensi si possa realizzare su due layer le rifiniture al PCB le faccio io,
Sicuramente si rimane su i due Layer, i pcb li possiamo far fare in Cina da pcbway, con solder e serigrafia vengono a costare pochi Euro, poi tocca vedere quanti vogliono questa scheda per valutare come fare per il montaggio.
Domani devo fare un ordine da Mouser e ci metto dentro una decina di ATmega328PB, costano 1.98 Euro + iva.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 10:30 am
Non vorrei sbagliare, ma la Pro Mini monta già il 328P in QTFP32 e porta già fuori anche A6 e A7 ... ::)
Confermo, infatti basta prendere la pro mini come base e vedere quali sono i pin con le nuove funzioni aggiuntive sul 328PB.
Title: Re: ATmega328PB
Post by: gpb01 on Jan 26, 2016, 10:35 am
Confermo, infatti basta prendere la pro mini come base e vedere quali sono i pin con le nuove funzioni aggiuntive sul 328PB.
.... anche per la versione formato "Arduino UNO SMD (https://www.arduino.cc/en/Main/ArduinoBoardUnoSMD)", basta prendere i files della vecchia versione che esisteva con il TQFP32 e, eventualmente, portare fuori i due analogici mancati ... ;)

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Jan 26, 2016, 10:40 am
Giusto per completezza ...
... questa la struttura del ATmega328PB :

(http://forum.arduino.cc/index.php?action=dlattach;topic=374642.0;attach=152199)


Guglielmo
Title: Re: ATmega328PB
Post by: nid69ita on Jan 26, 2016, 11:14 am
Si potrebbe prevedere due schede distinte, una con il classico layout di Arduino, da vedere come sistemare i pin in più disponibili sul case TQFP32,
Hai già contato quanti pin in più ?

Maple, Olimex, ChipKit Uno32 i pin in più li mettono così:(http://farm5.staticflickr.com/4041/4613181199_33a31ca4ab.jpg)
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 11:25 am
Hai già contato quanti pin in più ?
Da una verifica al volo l'Atmega 328 PB su i pin 19 e 22, ADC6 e ADC7 sul 328P, hanno anche altre funzioni tra cui la seconda SPI, inoltre dovrebbero essere anche normali GPIO, devo ancora verificarlo però come funzione primaria sono marcati come PE2 e PE3 (port E) il che vuol dire GPIO.

Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 11:29 am
Come nome della scheda propongo un semplice "A328PB" per la versione con layout standard, "A328PB Micro" per la versione con layout tipo mini/micro, ovviamente la A sta per Arduino.
Title: Re: ATmega328PB
Post by: nid69ita on Jan 26, 2016, 11:31 am
Come nome della scheda propongo un semplice "A328PB" per la versione con layout standard, "A328PB Micro" per la versione con layout tipo mini/micro, ovviamente la A sta per Arduino.
AG328PB    AG=Arduino Genuino   :)

o ancora meglio
AGF328PB   AGF=Arduino Genuino Forum
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 11:32 am
AG328PB    AG=Arduino Genuino   :)
Mi piace. :) +1
Title: Re: ATmega328PB
Post by: SukkoPera on Jan 26, 2016, 12:01 pm
È un peccato che non abbiano colto l'occasione per aggiungere un po' di RAM... Anche solo 4 kb sarebbero molto utili per gli scopi Arduineschi e dubito che avrebbero alzato di molto il prezzo, anche se in realtà sarebbe un aumento di dimensione del 100% :D

Il progetto è comunque interessante, se posso aiutare lo faccio volentieri. Inizio con un suggerimento che penso sarebbe molto apprezzato: usare un regolatore di tensione da 3.3V più potente rispetto all'Arduino originale, in grado, ad esempio, di alimentare direttamente un ESP8266. 300mA dovrebbero essere più che sufficienti. Vista anche la presenza della seconda UART, l'ESP diventa sempre più agevole da collegare.

Oltre a questo proporrei di valutare bene il connettore USB da metterci. Mentre sulla Arduino-like il tipo B mi va benissimo, sulla Nano-like preferirei ormai il Micro, ma è un'opinione personale.
Title: Re: ATmega328PB
Post by: nid69ita on Jan 26, 2016, 12:17 pm
Opinione mia su connettore USB:  NO al tipo B. Troppo grosso, da problemi con certe shield.  
Title: Re: ATmega328PB
Post by: Maurotec on Jan 26, 2016, 12:18 pm
Sarebbe interessante se fosse dotata di MUX per configurare i pin, ma per il momento continuo a preferire il 644 e 328 classic.  La dotazione dei timer sembra perfino esagerata, anche se è vero che i timer non bastano mai e più ce n'è meglio è. Però nello stesso pin ho due compare output quindi o l'uno o l'altro agganciato al timer. ICP poi sono davvero tanti, ho letto ICP4 quindi 5 ICP, ma bisogna vedere come sono mappati.

Ho parecchi dubbi, farcire i micro di device lasciando la stessa dimensione della flash mi lascia perplesso.
Il realtime clock è sempre mappato sui pin Xtal per cui la situazione non cambia rispetto al 328 classic.

Va bene la doppia SPI, ma TWI ne bastava una, almeno non ci trovo utilità. Oddio visto che ci sono due USART la doppia SPI serve a poco.

Mi chiedo se la dotazione è definitiva o fanno come per il 644 che il datasheet descriveva più dotato.

Vi seguo ma da lontano. ;)

Ciao.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 12:20 pm
usare un regolatore di tensione da 3.3V più potente rispetto all'Arduino originale, in grado, ad esempio, di alimentare direttamente un ESP8266. 300mA dovrebbero essere più che sufficienti.
Assolutamente si, anche per il 5V voglio usare un regolatore migliore di quello standard su Arduino, l'alimentazione è sempre stata la "bestia nera" delle varie board Arduino. :)

Notizia dell'ultimo minuto (sto realizzando la libreria Eagle), sul 328PB ci sono 4 GPIO in più rispetto al 328P, oltre a PE2 e PE3 che sono GPIO multifunzione, invece di essere solo input analogici come sul 328P, due pin del case, 6 e 3 che erano Vcc e Gnd sul 328P, ora sono PE0 e PE1 sul 328PB, sono GPIO multifunzione, in particolare gestiscono la seconda I2C.
Sempre più interessante questo nuovo micro :)
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 12:23 pm
I piedini da aggiungere sono solo 2 perché due sono già presenti nel layout R3.
Parlo di SDA e SCL che si trovano dopo il pin 13. Basta farlo corrispondere a SDA1 e SCL1 mentre SDA0 e SCL0 sono già presensi su A4 e A5.
Gli altri 2 pin si possono aggiungere dopo IOREF, sulla ZERO c'è gia il pin ATN, aggiungerne un'altro a fianco non dovrebbe essere un problema.

pin R3 UNO UNO-B
0 PD0 RX PD0 PWM RX
1 PD1 TX PD1 TX PWM?
2 PD2 INT0 PD2 PWM INT0 PWM?
3 PD3 PWM INT1 PD3 PWM INT1
4 PD4 PD4
5 PD5 PWM PD5 PWM
6 PD6 PWM PD6 PWM
7 PD7 PD7
8 PB0 PB0
9 PB1 PWM PB1 PWM
10 PB2 PWM SS PB2 PWM
11 PB3 PWM MOSI PB3 PWM TX1
12 PB4 MISO PB4 RX1
13 PB5 SCK PB5
GND GND GND
AREF AREF AREF
SDA PC4 A4 PC4
SCL PC5 A5 PC5

A5 PC5 SCL PC5 ADC5
A4 PC4 SDA PC4 ADC4
A3 PC3 PC3 ADC3
A2 PC2 PC2 ADC2
A1 PC1 PC1 ADC1 SCK1
A0 PC0 PC0 ADC0 MISO1
Vin ? ?
GND GND GND
GND GND GND
5V VCC VCC
3V3 ? ?
RST PC6 PC6 RST
IOREF VCC VCC
ATN x x x
PE0 SDA1
PE1 SCL1
PE2 ADC6 SS1
PE3 ADC7 MOSI1
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 12:26 pm
Va bene la doppia SPI, ma TWI ne bastava una, almeno non ci trovo utilità. Oddio visto che ci sono due USART la doppia SPI serve a poco.
Come si vede che non combatti mai con l'hardware. :)
Le periferiche non bastano mai, idem i timer e non è detto che devi per forza usarli abbinati ad un pin, spesso e volentieri si usano per generare temporizzazioni interne, p.e. dei timeout.
La doppia SPI è abbastanza relativa perché condivide i pin con la seconda UART, anzi la SPI0 condivide i pin con la UART1.
Concordo che se era possibile assegnare le periferiche su ai pin era meglio.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 12:28 pm
I piedini da aggiungere sono solo 2 perché due sono già presenti nel layout R3.
I pin da aggiungere sono 4, ovvero da PE0 a PE3, solo sulle versioni mini/micro PE2 e PE3 sono presenti, però mancano P0 e P1 in quanto sul 328P sono delle alimentazioni.
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 12:32 pm
Si i pin sono 4, ma nel layout R3 avevano aggiunti i due pin SDA e SCL, nella UNO sono semplicemente collegati a A4 e A5 ma nella Leonardo sono 2 pin distinti.
Quindi collegandoli a PE0 e PE1 avresti sui quei pin la I2C 2 e bisognerebbe giusto segnare la serigrafia come SDA1 e SCL1
PE2 e PE3 come detto sopra si possono aggiungere a fianco di IOref.
Parlo per la versione stile UNO.
Title: Re: ATmega328PB
Post by: SukkoPera on Jan 26, 2016, 12:33 pm
La butto lì: la possibilità di avere il TX della seconda UART a 3.3v può essere sensata? Se anche fosse fisso a 3.3v non dovrebbe causare problemi con le periferiche 5v, ma magari un jumper per settare il livello desiderato si potrebbe aggiungere, e a quel punto collegare un ESP non richiederebbe più niente di esterno.
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 12:36 pm
I TX1 e RX1 secondo lo schema della UNO sarebbero sui pin 11 e 12. Non so se puoi metterli a 3.3V. Li c'è la SPI per la programmazione ISP.

EDIT:
Visto che Astro vuole usare un FTDI, si potrebbe utilizzare i dei pin del connettore ICSP del micro 16U2 per mettere i pin della seconda SPI.
2 pin della SPI 2 sono mappati su A0 e A1.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 12:42 pm
Si i pin sono 4, ma nel layout R3 avevano aggiunti i due pin SDA e SCL, nella UNO sono semplicemente collegati a A4 e A5 ma nella Leonardo sono 2 pin distinti.
Appunto sono SDA e SCL, devi rispettare questa cosa altrimenti perdi la compatibilità con le shield, servono quattro pin in più rispetto alla versione standard del layout.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 12:46 pm
La butto lì: la possibilità di avere il TX della seconda UART a 3.3v può essere sensata?
Per dirla tutta pensavo di prevedere due coppie di veri level shifter, a livello costo incidono pochi cent, 5V-3.3v assegnabili a piacere, tramite jumper a saldare, alle UART o alle I2C, tenuto conto che ormai molte periferiche sono esclusivamente a 3.3V è una cosa che fa molto comodo.
Problemi di spazio sul pcb, almeno sulla versione standard, non dovrebbero esserci visto che la scheda sarà totalmente smd e il case TQFP32 lascia libero molto spazio rispetto alla version pdip28.
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 12:49 pm
Per usare l'ATmega328pb con Atmel Studio 7 occorre scaricare il pacchetto con le nuove definizioni
--> http://packs.download.atmel.com/
Nel pacchetto c'è anche il file iom328pb.h. Attualmente la toolchian di Arduino non può compilare per il 328PB e pare che neanche AVRdude possa fare l'upload.

Nella versione di 6.2 del 328pb non c'è traccia --> http://mirror.lihnidos.org/GNU/savannah//avrdude/avrdude-doc-6.2.pdf (http://mirror.lihnidos.org/GNU/savannah//avrdude/avrdude-doc-6.2.pdf)  :smiley-confuse:

EDIT:
/* Signature */
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x95
#define SIGNATURE_2 0x16
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 12:51 pm
P.S. Aggiungere il cristallo al posto del risonatore ceramico e i vari accorgimenti per il miglioramento delle letture dell'ADC.
Title: Re: ATmega328PB
Post by: SukkoPera on Jan 26, 2016, 12:52 pm
Per dirla tutta pensavo di prevedere due coppie di veri level shifter
Questo sarebbe molto fiko :smiley-surprise:! Sarebbe utilizzabile anche per lo SPI?
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 01:22 pm
P.S. Aggiungere il cristallo al posto del risonatore ceramico e i vari accorgimenti per il miglioramento delle letture dell'ADC.
Giusto, odio i risonatori. :D
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 01:28 pm
Per usare l'ATmega328pb con Atmel Studio 7 occorre scaricare il pacchetto con le nuove definizioni
--> http://packs.download.atmel.com/
Nel pacchetto c'è anche il file iom328pb.h. Attualmente la toolchian di Arduino non può compilare per il 328PB e pare che neanche AVRdude possa fare l'upload.
Il core del micro è lo stesso del 328P, basta aggiornare le definizioni dei pin e aggiungere la signature ad avrdude, non la vedo come una cosa complicata da fare. :)
In pratica qualunque compilatore che supporta il 328P può compilare per il 328PB.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 01:51 pm
Altra variazione rispetto ad Arduino standard il connettore USB, invece del tipo B un mini USB, no il micro perché è troppo delicato per un uso di laboratorio, metti e togli il cavo prima o poi ti rimane in mano il connettore.
L'uso del mini USB risolve anche il problema delle shield che toccano il connettore con tutti i relativi problemi di isolamento.
Title: Re: ATmega328PB
Post by: nid69ita on Jan 26, 2016, 01:59 pm
Altra variazione rispetto ad Arduino standard il connettore USB, invece del tipo B un mini USB, no il micro perché è troppo delicato per un uso di laboratorio, metti e togli il cavo prima o poi ti rimane in mano il connettore.
L'uso del mini USB risolve anche il problema delle shield che toccano il connettore con tutti i relativi problemi di isolamento.
Distrattone: http://forum.arduino.cc/index.php?topic=374642.msg2583809#msg2583809      :)


Perfettamente d'accordo. Poi mini o micro a me importa poco, l'importante non sia tipo B
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 26, 2016, 03:05 pm
Intanto se volete, divertitevi a controllare se il componente nella libreria e' ok ... domani se mi avanza tempo magari vi butto giu uno schema di base ;)
Title: Re: ATmega328PB
Post by: SukkoPera on Jan 26, 2016, 03:05 pm
Yeah, quello della solidità è proprio il motivo per cui sugli Arduino "normali" il connettore tipo B non mi dà alcun fastidio. Tuttavia, la diffusione dei Micro è ormai talmente grande che usare un connettore di questo tipo ne faciliterebbe l'alimentazione, a dispetto della palese scarsa resistenza meccanica.

Il Mini mi sembra più affidabile, ma non l'avevo proposto inizialmente perché, per qualche strano motivo, i cavi Mini sono ormai meno diffusi e quelli lunghi e affidabili costano abbastanza più degli altri. In ogni caso, mi piace :).
Title: Re: ATmega328PB
Post by: speedyant on Jan 26, 2016, 03:27 pm
Bieca domanda commerciale, quanto verrebbe a costare?
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 03:31 pm
Il Mini mi sembra più affidabile, ma non l'avevo proposto inizialmente perché, per qualche strano motivo, i cavi Mini sono ormai meno diffusi e quelli lunghi e affidabili costano abbastanza più degli altri.  
Di cavi mini usb ne trovi quanti ne vuoi, p.e. in ambito video tutte le macchine fotografiche e le videocamere usano USB mini, il micro è usato prevalentemente su telefoni/tablet per risparmiare spazio.
In quanto a robustezza del connettore, sopratutto ancoraggio sul pcb, il mini è ottimo anche nell'ottica di collegare/scollegare spesso il cavo.


Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 03:34 pm
Bieca domanda commerciale, quanto verrebbe a costare?
Molto meno di un Arduino/Genuino originale, molto di più di clone cineseria da pochi $ :D
Per contro si tratterebbe di una scheda con qualità pari ad un originale e, sopratutto, progettata meglio. :)
Title: Re: ATmega328PB
Post by: speedyant on Jan 26, 2016, 03:40 pm
Molto meno di un Arduino/Genuino originale, molto di più di clone cineseria da pochi $ :D
Per contro si tratterebbe di una scheda con qualità pari ad un originale e, sopratutto, progettata meglio. :)

Preparo la prepagata, allora. Interessante la seconda seriale.
Ma si tratterebbe comunque di una "compatibile" o c'è la possibilità che diventi "ufficiale"?
Title: Re: ATmega328PB
Post by: SukkoPera on Jan 26, 2016, 03:43 pm
Bene bene... L'ultima cosa che manca è qualcosa per distinguersi dalla massa... Potresti fare il PCB nero, ad esempio. Blackduino! :smiley-lol:
Title: Re: ATmega328PB
Post by: speedyant on Jan 26, 2016, 03:45 pm
Se la si chiamasse "forumino"?
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 03:57 pm
Intanto se volete, divertitevi a controllare se il componente nella libreria e' ok ... domani se mi avanza tempo magari vi butto giu uno schema di base ;)
Il 328PB per Eagle l'ho già fatto, sono partito dal 328P TQFP32 di Sparkfun modificando i due pin di alimentazione come GPIO e rifatto le varie diciture dei pin dove necessario, dopo guardo quello che hai fatto, se è migliore uso il tuo. :)
Ho già messo giù una prima bozza di schema per la versione standard, se stasera non sono troppo stanco la rifinisco e la metto online, solo lo schema poi ci sarà da fare lo sbroglio.

Caratteristiche tecniche della AG328PB (provvisorie)

24 GPIO disponibili (4 in più rispetto ad Arduino standard)
 8 Ingressi ADC
 2 UART
 2 I2C
 2 SPI
10 PWM (da verificare compatibilità pin)


.
.
.
Altre cose che mi verranno in mente mentre disegno lo schema. :)




 
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 04:00 pm
Preparo la prepagata, allora. Interessante la seconda seriale.
Ma si tratterebbe comunque di una "compatibile" o c'è la possibilità che diventi "ufficiale"?
Per il momento sarà una delle tante compatibili, però con almeno due marce in più. :)
Non escludo che più avanti potrebbe diventare una board ufficiale se Arduino.cc decide di metterla in produzione.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 04:04 pm
Bene bene... L'ultima cosa che manca è qualcosa per distinguersi dalla massa... Potresti fare il PCB nero, ad esempio. Blackduino! :smiley-lol:
Nero non mi piace, pensavo bianca con serigrafia nera, molto elegante e diversa dalle solite schede compatibili.
Eviterei anche nomi con la classica finale "ino", dato che è una scheda che ha la potenzialità per distinguersi dalla massa delle compatibili preferirei un nome diverso dal solito "qualcosino" :)
Title: Re: ATmega328PB
Post by: SukkoPera on Jan 26, 2016, 04:14 pm
pensavo bianca con serigrafia nera
Agreed! Però Qualcosino è un nome geniale :smiley-lol:.
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 04:14 pm
Ti sei dimenticato
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 04:32 pm
Ti sei dimenticato
  • Convertitore seriale usb FTDI

Mi sa che al posto del FTDI ci mettiamo gli MCP22xx di Microchip.
Ho controllato il prezzo attuale dei FT232RL e siamo attorno ai 4 E per piccole quantità, gli MCP22x sono allo stesso livello di affidabilità degli FTDI e costano solo 1.5 E, improponibili anche i 16u2 perché pure loro costano poco meno di 4 Euro per piccole quantità.
[/list]
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 04:39 pm
PID e VID?  :(
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 04:57 pm
PID e VID?  :(
Quelli standard di Microchip, tanto è sempre una periferica seriale virtuale che usa i driver nativi dei vari S.O., per Windows basta usare il file .inf fornito da Microchip, per Linux e Mac OS non serve nulla.
Gli MCP2200 sono affidabilissimi, li ho usati in molti progetti e vanno benissimo, pure loro hanno la possibilità di programmare vari parametri come gli FTDI, incluso vid e pid, nome prodotto e nome produttore, questo vuol dire la possibilità di far riconoscere la scheda dal IDE in automatico come avviene per gli Arduino/Genuino originali.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 05:32 pm
Nuova feature, questa è al 50% hardware e al 50% software, possibilità di programmare la scheda tramite la seconda UART, utile nel caso di shield, e/o altro hardware, che impegnano i pin 0 e 1.
Dal punto di vista hardware basta prevedere dei jumper per commutare l'MCP2200 tra TX0/RX0 e TX1/RX1, dal punto di vista software tocca modificare optiboot in modo che se non riceve nulla dalla UART0 passa in automatico sulla UART1 prima di cedere il controllo allo sketch.
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 05:58 pm
E' più probabile che siano impegnati i pin 11 e 12 che non 0 e 1. Questa features si potrebbe inserire in una seconda revisione. Non lo vado così necessaria.
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 26, 2016, 06:00 pm
Oggi non c'erano clienti, cosi mi sono divertito a buttare giu un'abbozzo (con il CH340 per l'usb) ... ho lasciato parte della componenteria di Arduino base, ma si puo eliminare o sostituire se serve, ed ho messo regolatori piu robusti, ma anche qui si puo cambiare (pensavo alla posibilita' di integrarci un convertitore con un circuito di ricarica, per applicare una cella LiPo direttamente a bordo, ma bisogna vedere se ne varrebbe la pena) ... ripeto, solo un'abbozzo ...
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 06:03 pm
Io sono per fare una scheda il più semplice possibile. Con funzioni necessarie al funzionamento e qualche modifica di cui lamentiamo la mancanza sulla UNO. Null'altro.
Title: Re: ATmega328PB
Post by: speedyant on Jan 26, 2016, 06:15 pm
Interessante. Sulle caratteristiche hardware non mi intrometto, ma un "consiglio" mi permetto di darlo, mi raccomando un bootloader il più possibile leggero come occupazione...
Come nome, propongo 328supercorsa, da abbreviare 328SC
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 06:18 pm
Io sono per fare una scheda il più semplice possibile. Con funzioni necessarie al funzionamento e qualche modifica di cui lamentiamo la mancanza sulla UNO. Null'altro.
In tutta franchezza, se devo fare l'ennesimo copia/incolla di Arduino standard non mi ci metto proprio, preferisco perderci qualche ora in più sul progetto e avere una scheda come si deve, sopratutto tenendo conto che l'impatto sul costo di produzione è minimo, piuttosto che tirare fuori il solito "schifosino" pieno di difetti e carenze. :)
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 06:20 pm
Interessante. Sulle caratteristiche hardware non mi intrometto, ma un "consiglio" mi permetto di darlo, mi raccomando un bootloader il più possibile leggero come occupazione...
Il bootloader è il solito optiboot, meno occupazione di quello è impossibile, semmai proverei ad implementare la programmazione a 250 kbps, così si dimezzano i tempi di trasferimento.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 06:22 pm
Work in progess. :)
Per il momento è solo una prima stesura, mancano diverse cose e altre sono da controllare/rivedere.

(http://www.mdaproject.it/doc/AG328PB_Sch.png)

(http://www.mdaproject.it/doc/AG328PB_Brd.png)
Title: Re: ATmega328PB
Post by: gpb01 on Jan 26, 2016, 06:24 pm
@Astro: ... e farla tipo la Ruggeduino-ET (http://www.rugged-circuits.com/microcontroller-boards/ruggeduino-et-extended-temperature) ? ... sarebbe veramente qualche cosa di diverso, anche se ...
... forse costerebbe un po' troppo ... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 06:26 pm
piuttosto che tirare fuori il solito "schifosino" pieno di difetti e carenze. :)
Assolutamente d'accordo, ma ad esempio, la mancanza di un circuito di ricarica delle LiPo non la vedo come difetto. Mentre reputo utilissimi i traslatori di livello 3v/5V e un trasformatore 3V3 che fornisca più corrente.
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 06:29 pm
Manca IOref usato da alcune shield, alcune ufficiali.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 06:31 pm
@Astro: ... e farla tipo la Ruggeduino-ET (http://www.rugged-circuits.com/microcontroller-boards/ruggeduino-et-extended-temperature) ? ... sarebbe veramente qualche cosa di diverso, anche se ...
Ci avevo pensato, però i costi sarebbero alti, sopratutto sulla produzione di pochi pezzi, magari con l'eventuale prossima versione, tutto dipende da quante schede si vanno a realizzare.
Title: Re: ATmega328PB
Post by: PaoloP on Jan 26, 2016, 06:33 pm
Per la seconda I2C perche non utilizzare lo stesso connettore in uso sulla MotorShield?
--> https://www.arduino.cc/en/Main/ArduinoMotorShieldR3 (https://www.arduino.cc/en/Main/ArduinoMotorShieldR3)
Quello nominato TWIin.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 06:35 pm
ma ad esempio, la mancanza di un circuito di ricarica delle LiPo non la vedo come difetto.
Infatti non ci metto nulla per la ricarica delle LiPo, però sto valutando la realizzazione di uno stadio di alimentazione, sotto forma di schedina separata, per questa board che include uno switching step up/down, con ricarica della eventuale LiPo, e range di tensioni tra 3V e 24V fino a 2A.
Questa scheda per l'alimentazione può essere usata anche per tutti gli altri modelli di Arduino e risolve molti problemi.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 06:35 pm
Manca IOref usato da alcune shield, alcune ufficiali.
Hai ragione, lo aggiungo.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 06:37 pm
Quello nominato TWIin.
Sono grossi, lo spazio è tiranno. :)
Title: Re: ATmega328PB
Post by: speedyant on Jan 26, 2016, 06:44 pm
Siamo ancora allo stadio "nel mio arduino ideale vorrei..."? Avrebbe senso integrare un dac, anche entry level? Si entrerebbe leggermente in concorrenza con le schede a 32bit...
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 06:51 pm
Avrebbe senso integrare un dac, anche entry level? Si entrerebbe leggermente in concorrenza con le schede a 32bit...
I DAC costano, almeno quelli decenti, inoltre andrebbe ad occupare una I2C oppure una SPI, capisco che può essere utile, però è una "complicazione" che va oltre l'uso di questa scheda.
Se ti serve un DAC è meglio che prendi una Teensy 3.x che offre molto di più di un Arduino otto bit.
Title: Re: ATmega328PB
Post by: menniti on Jan 26, 2016, 07:03 pm
Astro, come ben sai ho lavorato moltissimo, su tuo suggerimento, sugli MCP2200 (articoli, schede USB-Seriale, dedicate, schede ino compatibili con questo chip a bordo); il chip è ottimo ma non ha il DTR, bisogna valutare se questa carenza può creare problemi (io ho usato l'RTS, p.es. il monitor seriale non riesce a resettare la board perché manda un DTR); il vero problema è che va settato e programmato, quindi alla fine, il risparmio si riduce per il tempo da dedicare ad ognuno di questi chip, e comunque, bisogna considerare la problematica per l'utente al quale si dovesse guastare, noi ben sappiamo quanta gente ha sbattuto la testa nella riprogrammazione degli xxu2, quando sono riusciti a sostituirlo.
Mi trovo in casa un lotto di oltre 50 FT232RL pagati a ottimo prezzo, eventualmente questo componente lo fornisco io, tanto dubito che faremo una produzione di 50 schede come prima serie.
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 26, 2016, 07:06 pm
Hai usato l'MCP al posto del CH340 ? ... ma non e' piu costoso ? (oppure il 340 ha problemi ?)
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 07:19 pm
ma non ha il DTR, bisogna valutare se questa carenza può creare problemi (io ho usato l'RTS, p.es. il monitor seriale non riesce a resettare la board perché manda un DTR).
Se ti ricordi ti avevo detto che a me il MCP2200 funziona perfettamente, usando RTS, out of the box, non serve cambiare nulla nel setup di fabbrica.
Da qualche parte ho un paio di schedine con gli MCP2200 montati, più tardi le recupero e posto le schermate del DSO di cosa succede su RTS quando si usa l'IDE.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 07:20 pm
Hai usato l'MCP al posto del CH340 ? ... ma non e' piu costoso ? (oppure il 340 ha problemi ?)
Non mi piacciono quei chip cineseria, preferisco spendere qualche cent in più e stare tranquillo.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 07:21 pm
Mi trovo in casa un lotto di oltre 50 FT232RL pagati a ottimo prezzo, eventualmente questo componente lo fornisco io, tanto dubito che faremo una produzione di 50 schede come prima serie.
Fammi sapere a quanto puoi darli via che valutiamo la cosa, però sei sicuro che sono FT232R originali e non quelli clonati ?
Title: Re: ATmega328PB
Post by: menniti on Jan 26, 2016, 07:40 pm
Quote
Se ti ricordi ti avevo detto che a me il MCP2200 funziona perfettamente, usando RTS, out of the box, non serve cambiare nulla nel setup di fabbrica.
Da qualche parte ho un paio di schedine con gli MCP2200 montati, più tardi le recupero e posto le schermate del DSO di cosa succede su RTS quando si usa l'IDE.
E io che ho scritto? ho solo evidenziato che il serial monitor non è in grado di resettare una board basata su questo chip perché lui invia solo il DTR e non l'RTS che serve all'MCP. E ho sottolineato il fatto che ogni chip andrà settato e programmato prima di essere montato sulla board, contrariamente all'FT che è nativo.

Gli FT232RL sono di provenienza originaria RS, io ho comprato da una azienda tutto lo stock di componentistica per chiusura attività, su due piedi non so dirti il valore, devo vedere la scheda di inventario in laboratorio e comunque intendevo fornirli come una quota parte, se vogliamo condividere il progetto, se invece fai tutto da solo allora entro domani ti faccio sapere la valutazione.
Title: Re: ATmega328PB
Post by: menniti on Jan 26, 2016, 07:42 pm
Lo schedino che avevo progettato all'epoca per Elettronica IN.

PS non mi fa allegare un file jpg di 100k  :smiley-confuse:
Title: Re: ATmega328PB
Post by: ibbba on Jan 26, 2016, 08:37 pm
io partecipo a pecunia....però gli ingressi devono essere tipo ruggedduino,costasse pure qualcosina in più...tanto poi i cloni che ne usciranno dopo sicuramente non li avranno,quindi o ce li mettiamo "noi" adesso o non li metterà più nessuna altro
Title: Re: ATmega328PB
Post by: pighixxx on Jan 26, 2016, 09:07 pm
Ciao a tutti,

E usare un ft230x sembra brutto? (~ 1.80Euro) visto che il CH340 non piace (Montati più di 1.000 schede e nessun problema, costo 25 centesimi - posso regalarli io come componente :D)

edit
Logico, per i pinouts nessun problema
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 09:26 pm
Guardato adesso il data sheet del FT230, anche lui è senza DTR come l'MCP2200, ovviamente si può usare RTS al posto di DTR.
Dato che gli MCP2200 io li pago 1.1 Euro anche su piccole quantità dire che conviene di più usare gli MCP dal punto di vista contenimento costi.

Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 09:32 pm
E io che ho scritto? ho solo evidenziato che il serial monitor non è in grado di resettare una board basata su questo chip perché lui invia solo il DTR e non l'RTS che serve all'MCP.
Prima di tutto l'IDE e/o il serial monitor non invia nulla, i segnali DTR e RTS sono gestiti secondo standard comunicazioni seriali, fanno parte del handshake hardware e funzionano in automatico, al limite è possibile bloccarli tramite apposti API del S.O. e/o farli commutare a piacere.
Sugli MCP2200 RTS e CTS sono attivi di default, se poi a te sono arrivati degli MCP2200 con quei segnali non attivi non so che dirti, di quegli IC ne avrò usati più di un centinaio, su vari progetti, e su tutti i segnali erano attivi, lo so per certe perché mi serviva l'handshake hardware.
In tutti i casi non sarebbe certo un problema attivare CTS/RTS, ci vogliono pochi secondi tramite l'apposito tool di Microchip che permette di settare gli MCP2200.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 26, 2016, 09:42 pm
se vogliamo condividere il progetto, se invece fai tutto da solo allora entro domani ti faccio sapere la valutazione.
Qui non è questione di condividere, il progetto è totalmente open, io di sicuro non mi faccio carico di produrre le schede, al massimo posso realizzarne una piccola quantità, da dare a chi è interessato, a puro prezzo di costo giusto per abbattere i costi fissi.
Se la cosa prende piede e ci sono i numeri si chiede un preventivo ad un service per realizzare il prodotto finito, i componenti li acquistano loro e ti garantisco che ottengono prezzi di gran lunga minori di quelli che possiamo ottenere noi visto che acquistano direttamente dai broker.
Title: Re: ATmega328PB
Post by: menniti on Jan 26, 2016, 10:32 pm
Devo essermi spiegato male....e anche se così non fosse figuriamoci se mi metto a contraddirti...
Quindi io posso solo ribadire quello che succede a me con i chip come arrivano di fabbrica, o meglio, come sono arrivati quando li ho sperimentati e lavorati.

1 - Il chip, così come mi è arrivato a me non ha mai funzionato correttamente, ho sempre dovuto usare il tool a cui ti riferisci per cambiare alcuni parametri, non ho detto che è difficile ma solo che va fatto, o meglio che andava fatto con i chip che ho ricevuto io. NON ricordo quali fossero questi parametri ed ora francamente, visto che il problema evidentemente non esiste più, inutile che mi vada a cercare l'articolo sulla Rivista.

2 - Non so perché avviene, quindi da dove parte il comando, ma normalmente appena apro il serial monitor Arduino riceve un reset (almeno quelli che ho usato io); se utilizzo un convertitore basato sul 2200 questo RESET non avviene; se invece uso un programma di comunicazione seriale tipo quello di Windows (nel quale era possibile settare i segnali da attivare e quindi anche l'RTS) Arduino si resettava. Da qui ho dedotto quanto ho affermato.

3 - Non ho mai parlato di operazione commerciale né di guadagno o altro, era ben chiara la proposta open e mi sono offerto anche di fare lo sbroglio ed il prototipo (e anche qui non ho parlato di "spese"), quindi la mia idea era di fornire quei pezzi ad un prezzo inferiore a quello di mercato per piccole quantità e poterne convertire il valore al fine dell'acquisto di una o più schede al valore di realizzazione.

Ora ho constatato che lo sbroglio non è necessario in quanto sarà facile partire da un Arduino e aggiungere le poche nuove uscite, che l'FT232RL non serve in quanto l'MCP2200 va semplicemente acquistato e montato e non ha alcun punto critico, quindi non posso essere utile alla causa, per cui aspetto e seguo  con attenzione fino al momento in cui sarà possibile aderire ad una eventuale proposta di acquisto open.

Invece mi colpisce, e questo per un discorso strettamente personale per il quale ti contatterò in privato, il fatto che sia conveniente concordare con un service non solo la realizzazione dei PCB ma anche l'acquisto ed il montaggio dei componenti da parte loro invece di fornirglieli io. Interessante......
Title: Re: ATmega328PB
Post by: gpb01 on Jan 26, 2016, 10:40 pm
Invece mi colpisce, e questo per un discorso strettamente personale per il quale ti contatterò in privato, il fatto che sia conveniente concordare con un service non solo la realizzazione dei PCB ma anche l'acquisto ed il montaggio dei componenti da parte loro invece di fornirglieli io. Interessante......
Miché ... i Cinesi ormai ti fanno tutto (... a prezzi concorrenziali) pure per pochi pezzi ... e parlo veramente solo già da 100 schede in su ...
... basta che vai sui siti di SeeedStudio (http://www.seeedstudio.com/propagate/app/technology/) o di Itead (https://www.itead.cc/pcba) e te ne rendi conto ;)

Ma ce ne è ormai un'infinità come loro ...

Guglielmo
Title: Re: ATmega328PB
Post by: doppiozero on Jan 27, 2016, 07:52 am
x iscrizione
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 27, 2016, 09:40 am
...
Ora ho constatato che lo sbroglio non è necessario ...
Ehm ... io lo rifarei da zero (avevo gia iniziato con lo schema che montava il CH, le differenze sono minime), in quanto nella scheda originale di Arduino ci sono parecchie cosette che andrebbero modificate, a livello di stampato ... anche senza contare lo stadio di alimentazione convertitore ed il regolatore 3.3 che possa dare almeno 500mA (o piu), qualche filtraggio, qualche protezione in piu sull'alimentazione, un po di routing ottimizzato per disporre meglio alcune cose e togliere alcuni piccoli orrori di routing, non ci starebbero male ...


> Astro: se hai uno schema completo, postalo che se vuoi do un'occhiata al routing, e magari se e' possibile ci integro il convertitore ... lo schema del convertitore e' quello standard basato su un LTC1871, che consentirebbe di poter usare la scheda con qualsiasi alimentazione fra poco piu di 3V e almeno 24V ...
Title: Re: ATmega328PB
Post by: menniti on Jan 27, 2016, 10:20 am
Miché ... i Cinesi ormai ti fanno tutto (... a prezzi concorrenziali) pure per pochi pezzi ... e parlo veramente solo già da 100 schede in su ...
... basta che vai sui siti di SeeedStudio (http://www.seeedstudio.com/propagate/app/technology/) o di Itead (https://www.itead.cc/pcba) e te ne rendi conto ;)

Ma ce ne è ormai un'infinità come loro ...

Guglielmo
Bene bene, ottime notizie  :) a brevissimo dovrò realizzare qualcosa di serio e quindi ci risentiremo così mi darete le giuste dritte. Grazie.
Guglielmo, ogni tanto ricordati della mia mail  ;D
Title: Re: ATmega328PB
Post by: astrobeed on Jan 27, 2016, 10:30 am
1 - Il chip, così come mi è arrivato a me non ha mai funzionato correttamente,
Di tuoi problemi me ne ricordo, è possibile che ti sono arrivati degli MCP2200 con RTC/CTS non attivi di serie.

Quote
2 - Non so perché avviene, quindi da dove parte il comando, ma normalmente appena apro il serial monitor Arduino riceve un reset (almeno quelli che ho usato io);
Ho due convertitori USB-UART basati sul MCP 2200 che uso per programmare le pro mini, tutti e due funzionano senza problemi e resettano anche aprendo il terminale seriale del IDE, cosa che ho sempre ritenuto un errore perché semmai il reset dove essere fornito su comando e non semplicemente aprendo il terminale.

Quote
3 - Non ho mai parlato di operazione commerciale né di guadagno o altro,
Questo era chiarissimo, il punto è che dipende da quante schede si fanno e dalla necessità di dover rifare lo sbroglio per altre soluzioni una volta finiti gli FTDI, pure io ne ho una decina nel cassetto, pagati circa 2 E qualche anno fa, però me li tengo ben stretti per eventuali necessità di assistenza. :)

Quote
Ora ho constatato che lo sbroglio non è necessario in quanto sarà facile partire da un Arduino e aggiungere le poche nuove uscite,
Lo sbroglio è da rifare completamente, questa scheda non ha solo quattro pin in più, ha molte cose in più e comunque anche ammesso di copiare in toto la UNO r3 per poi aggiungere i quattro pin tocca rivedere molte cose sullo sbroglio originale, alla fine conviene sempre rifarlo da zero.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 27, 2016, 10:34 am
Astro: se hai uno schema completo, postalo che se vuoi do un'occhiata al routing, e magari se e' possibile ci integro il convertitore ... lo schema del convertitore e' quello standard basato su un LTC1871, che consentirebbe di poter usare la scheda con qualsiasi alimentazione fra poco piu di 3V e almeno 24V ...
Dovrei avere lo schema completo tra stasera e domani sera, non appena pronto lo posto così se vuoi "divertirti" con l'aggiunta dello switching e lo sbroglio mi fai felice, così io posso dedicarmi alla parte software visto che c'è da fare un bel po' di lavoro sul bootloader e sul core. :)
Title: Re: ATmega328PB
Post by: PaoloP on Jan 27, 2016, 11:38 am
http://hackaday.com/2016/01/26/bye-bye-atmega328p-hello-328pb/ (http://hackaday.com/2016/01/26/bye-bye-atmega328p-hello-328pb/)
Title: Re: ATmega328PB
Post by: pighixxx on Jan 27, 2016, 11:57 am
 :smiley-mr-green:

(http://www.pighixxx.com/test/wp-content/uploads/2016/01/328pb_pinout.png)

Download PDF atmega328pb.pinout.cc (http://atmega328pb.pinout.cc)
Title: Re: ATmega328PB
Post by: PaoloP on Jan 27, 2016, 01:33 pm
Non avevo dubbi.  :smiley-mr-green:
Title: Re: ATmega328PB
Post by: PaoloP on Jan 27, 2016, 01:37 pm
Su piedino associato alla porta PD2 ci sono collegati 2 generatori di PWM, in questo modo i PWM disponibili all'esterno da 10 diventano 9.
E' possibile che l'OC4A e OC4B siano a 16 bit?
Title: Re: ATmega328PB
Post by: astrobeed on Jan 27, 2016, 01:49 pm
Su piedino associato alla porta PD2 ci sono collegati 2 generatori di PWM, in questo modo i PWM disponibili all'esterno da 10 diventano 9.
Ho notato pure io questa cosa ed è abbastanza strana perché il data sheet parla di 10 canali PWM, tocca leggere con attenzione la sezione del data sheet relativa ai timer aggiuntivi per venirne a capo.
Per il momento sembra che disponibili su i pin siano solo 9 canali perché OC3B e OC4B condividono lo stesso pin.
Tutti pwm legati ai timer 16 bit sono a 16 bit di risoluzione.

Code: [Select]

• Three 16-bit Timer/Counter instances TC1, TC3, TC4.
• True 16-bit Design (i.e., allows 16-bit PWM)
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 27, 2016, 02:06 pm
Be', in fondo stiamo parlando di un case a 32 pin ... ci possono aggiungere quello che vogliono, all'interno (a proposito, mi sarei aspettato degli ADC a qualche bit in piu, data tutta la concorrenza che c'e', invece da quel lato nisba :P), ma alla fine sempre 32 pin, rimangono (anzi, 28, dato che due sono masse e due alimentazioni :P)

Pero', almeno, dara' la possibilita' di fare qualcosa in piu rimanendo in una fascia di prezzo relativamente bassa ... il che gia e' qualcosa :D


EDIT: chisa' perche' poi non hanno usato un 40 pin ... retrocompatibilita' ?
Title: Re: ATmega328PB
Post by: PaoloP on Jan 27, 2016, 04:25 pm
Alcune schede hanno una doppia fila per i pin 0/13 che permette di usare anche le millefiori per la prototipazione. Parte della fila è infatti traslata rispetto all'originale e corregge l'errore del mezzo passo.
Si potrebbe aggiungere?
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 27, 2016, 04:26 pm
quello dovrebbe essere il problema minore ;)



EDIT: Astro, mi e' venuta un'idea cattiva ... e' proprio necessario mantenere il mosfet pilotato dall'operazionale per disconnettere l'alimentazione dell'usb in presenza dei 5V dall'alimentatore ? ... non basterebbe una banale coppia di Schottky ? ... ad esempio, ce ne sono alcuni, come il RB081L-20 , che hanno una VF dichiarata ad 1A di 290mV (dovrebbero essere circa 250mV a 500mA, secondo il grafico) ... una simile caduta non dovrebbe essere cosi catastrofica sui 5V, o sbaglio ?
Title: Re: ATmega328PB
Post by: brunello22 on Jan 27, 2016, 06:58 pm
Quote
non basterebbe una banale coppia di Schottky ?
ok, ma comanda chi ha la tensione piu' alta e mica è detto che sia il regolatore interno

Title: Re: ATmega328PB
Post by: Etemenanki on Jan 27, 2016, 07:29 pm
Vero, pero' non sarebbe importante ... l'importante e' che non ci sarebbero ritorni ne verso l'alimentatore ne soprattutto verso l'usb, il che e' un po anche lo scopo del mosfet ... poi la maggior parte dei portatili che ho testato hanno l'usb a 4.9 / 4.95 V, basta tenere l'alimentatore a 5.1 ed hai risolto il problema ;)
Title: Re: ATmega328PB
Post by: pighixxx on Jan 28, 2016, 09:10 am
E perché non usare un paio di LFxx di ST che si portano a casa per pochi centesimi?
Datasheet qui: http://datasheet.octopart.com/LF33ABDT-TR-STMicroelectronics-datasheet-10887915.pdf

Li ho usati spesso con grandi soddisfazioni :D
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 28, 2016, 11:53 am
Hanno una corrente massima di 500mA ... il che non sarebbe un problema se ci dovessi alimentare solo la MCU, ma ci devi alimentare anche il regolatore che produce i 3.3V, il che aumenta la corrente richiesta dal primo regolatore, dato che sono in cascata ... se poi qualcuno ci collega anche qualcos'altro, ed il regolatore si "siede", o peggio surriscalda e va in protezione ? ...
Title: Re: ATmega328PB
Post by: astrobeed on Jan 28, 2016, 12:08 pm
Hanno una corrente massima di 500mA ...
Infatti nello schema ho messo i classici TLV1117 che reggono fino a 800 mA, in DPAK per i 5V e SOT223 (350 mA) per i 3.3V.

Title: Re: ATmega328PB
Post by: Etemenanki on Jan 28, 2016, 12:24 pm
LT1963 ?

http://www.linear.com/docs/3148 (http://www.linear.com/docs/3148)

Com'e' il rapporto di prezzo rispetto ai TLV1117 ? (la versione in SOT223 per il 3.3V, intendo)
Title: Re: ATmega328PB
Post by: astrobeed on Jan 28, 2016, 01:39 pm
Com'e' il rapporto di prezzo rispetto ai TLV1117 ? (la versione in SOT223 per il 3.3V, intendo)
I TLV1117 da 3.3 V in SOT223 li pago attorno ai 38 cent, per ordini >25, gli LT1963 vedo che sono costosi, si parla di 3 Euro per 25 pezzi.
Non ultimo di TLV1117 5V e 3.3 V nel cassetto ne ho più di 100 per modello :)
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 28, 2016, 02:05 pm
... si parla di 3 Euro per 25 pezzi.
Parecchio diverso ...

Quote
Non ultimo di TLV1117 5V e 3.3 V nel cassetto ne ho più di 100 per modello :)
Be' si, anche questo aiuta ... :P :D

Io non ho problemi per provare a farti il routing, ne con i lineari ne con il convertitore ... al massimo cerco un po di documentazione sull'IC del convertitore e vedo, sia per i prezzi (perche' buttando giu uno schema ottimizzato, ho visto che qualsiasi configurazione sepic, anche con una sola induttanza, richiede comunque sempre un mosfet esterno) sia per eventuale ripple e/o altri possibili problemi (disturbi captati dalle piste adiacenti, problemi di disposizione, ecc) ... se vedo che causa troppi problemi a livello di circuito o di disturbi, o che costa troppo, lascio il lineare, altrimenti lo inserisco (o al massimo potrei provare a fare entrambe le versioni e poi decidi quale usare)
Title: Re: ATmega328PB
Post by: PaoloP on Jan 28, 2016, 02:35 pm
Non volete montare i componenti su entrambe le facce come nella YUN?
Title: Re: ATmega328PB
Post by: astrobeed on Jan 28, 2016, 02:40 pm
. se vedo che causa troppi problemi a livello di circuito o di disturbi, o che costa troppo, lascio il lineare, altrimenti lo inserisco (o al massimo potrei provare a fare entrambe le versioni e poi decidi quale usare)
Per esperienza diretta io cerco sempre di lasciare gli switching fuori dalle schede, magari sotto forma di schedino addon, sia per tutti i problemi di emi che per l'inevitabile rumore sull'uscita, in tutti casi faccio sempre seguire lo switching da un ldo se è indispensabile avere il 5V, o il 3.3V, molto puliti per uso ADC ed eventuale parti analogiche.
Sarei più per l'idea di realizzare una schedina di alimentazione, magari da montare sotto la AG328PB, in grado di fornire in uscita 6.5V 1A, meglio se 2A, con tensione in ingresso compresa tra 3 e 16V e circuiteria di ricarica per una LiPo 1S in modo da dare la massima versatilità di alimentazione e poterla usare anche per gli altri modelli di Arduino.
Ovviamente è possibile mettere lo switching direttamente sulla AG328PB, oltre ai due ldo, però tocca metterlo sulla faccia inferiore, sia per problemi di spazio che per isolamento, cosa che comporta un notevole costo aggiuntivo in fase di produzione, sopratutto per le piccole quantità.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 28, 2016, 02:44 pm
Non volete montare i componenti su entrambe le facce come nella YUN?
Costa troppo sulle piccole serie, andrebbe ad incidere non meno di 7-8 Euro a scheda, un conto è fare lotti da migliaia di pezzi, il costo aggiuntivo è trascurabile, un conto è fare lotti di pochi pezzi.
La soluzione più semplice è realizzare una seconda schedina, in stile SoM, da saldare sotto la AG328PB, una cosa tipo questi moduli ESP8266.

(http://fabacademy.org/archives/2015/doc/images/esp-03.jpg)
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 28, 2016, 02:54 pm
Preferirei evitare se possibile di assemblare su due facce (per i miei prototipi lo faccio senza problemi, ma e' roba che mi assemblo io a casa :P) ... anche perche' volevo sfruttare il piu possibile le zone che rimarrebbero libere per la dissipazione dei regolatori ...

Invece prevedere al di sotto dei pad o delle piazzuole di saldatura extra per aggiungerci uno switching a parte non mi creerebbe alcun problema, ed in effetti come dici tu, e' meglio averlo fuori dalla scheda principale (infatti non avevo preso in considerazione il discorso dell'AREF, o meglio, pensavo di aggiungere un riferimento esterno piu preciso di quello interno della MCU, magari un 431 o simili, ma non avevo considerato il discorso del ripple introdotto dallo switching, che li darebbe parecchio fastidio) ... quindi ok, lineari sulla scheda ed opzione per un possibile switching da assemblare a parte ... magari SoM, magari tipo "shield inversa" da assemblare al di sotto invece che sopra, ma con pin corrispondenti a pad "ad hoc" in modo da non occupare pin delle altre shield, cosi ci starebbe anche roba in piu come spazio, ma quello si potra' vedere in seguito, se vorrai ...
Title: Re: ATmega328PB
Post by: astrobeed on Jan 28, 2016, 02:59 pm
pensavo di aggiungere un riferimento esterno piu preciso di quello interno della MCU, magari un 431 o simili
Un rifermento di tensione esterno, preciso e stabile, ci avevo già pensato ad aggiungerlo, costa poco e risolve molti problemi, sopratutto tenendo conto che il riferimento interno 1.1V dei 328 è tutto meno che preciso. :)
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 28, 2016, 03:15 pm
Mi sa che su alcune cose la pensiamo in modo simile ... e' pericoloso, il forum potrebbe non reggere :P :D
Title: Re: ATmega328PB
Post by: PaoloP on Jan 28, 2016, 03:19 pm
Il riferimento esterno potrebbe essere di 5.0V o deve essere inferiore? Es. 3.3V o 2.5V
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 28, 2016, 03:29 pm
Per essere da 5V e stabile, sarebbe necessario alimentare il riferimento con piu di 5V (ma si puo fare, se proprio serve, basta prenderli prima del regolatore) ...
Title: Re: ATmega328PB
Post by: speedyant on Jan 28, 2016, 10:09 pm
Se avete bisogno di betatester, fate sapere.
Title: Re: ATmega328PB
Post by: vbextreme on Jan 29, 2016, 09:03 pm
bella, obbligatorio la compatibilità tra 3.3v e 5v su tutti i pin.
Anche l'alimentazione su scheda esterna è bella ma io preferirei qualcosa che non sia da saldare, in modo che sia facile da sostituire, in questo modo si potrebbe fornire 2 schede di alimentazione, una low cost minimalista e una più potente e costosa, sono sicuro che molti la comprerebbero.

Sicuri che accetta il quarzo da 20mhz? ho letto che lavora solo a 16, vado subito a scaricare il datasheet.
Naturalmente contatemi come tester e se c'è bisogno di sviluppatori software io ci sono.

Title: Re: ATmega328PB
Post by: vbextreme on Jan 29, 2016, 09:29 pm
ho dato uno sguardo velocissimo al datasheet, 20mhz solo a 5v
Infine la nota dolente è che ha comandi Assembly differenti e quindi deve essere supportato dal compilatore.
Devo controllare meglio cosa cambia
Title: Re: ATmega328PB
Post by: astrobeed on Jan 29, 2016, 10:02 pm
ho dato uno sguardo velocissimo al datasheet, 20mhz solo a 5v
Questo vale per tutti gli AVR, a differenza di Microchip non hanno versioni L che lavorano a piena frequenza anche con tensioni basse.

Quote
Infine la nota dolente è che ha comandi Assembly differenti e quindi deve essere supportato dal compilatore.
Devo controllare meglio cosa cambia
Il core hardware del 328PB è lo stesso del 328P, non mi risulta che cambia qualcosa, avevo già dato un'occhiata al set di istruzioni assembly e non mi pare di aver visto differenze, però qualcosa potrebbe essermi sfuggita.
Settimana prossima avrò in mano 5 328PB, lo ho già inseriti nell'ordine che Lunedì faccio a Digikey, così posso fare qualche test di compilazione e vedere se si riesce a caricare il software tramite avrdude modificando la configurazione, dovrebbe bastare copiare la definizione del 328P modificando la signature.

Title: Re: ATmega328PB
Post by: vbextreme on Jan 29, 2016, 10:08 pm
@astro sembra mancare MUL e i due comandi per le somme + sottrazioni a 16bit
Title: Re: ATmega328PB
Post by: vbextreme on Jan 29, 2016, 10:22 pm
manca la direct CALL e la direct JMP
Title: Re: ATmega328PB
Post by: astrobeed on Jan 29, 2016, 10:25 pm
@astro sembra mancare MUL e i due comandi per le somme + sottrazioni a 16bit
In effetti sembrano mancanti, però:

Quote
On-chip 2-cycle Multiplier
Questo cozza terribilmente con la mancanza della "mul", ho visto che c'è un discreto numero di errata corrige sia software che hardware, tocca scaricarle tutte e controllarle, potrebbe essere che il datasheet contiene inesattezze, è un micro abbastanza recente, è stato rilasciato verso la fine del 2015.
Apparentemente l'ultima release di avr-gcc lo prevede, è inserito nella lista (https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html) dei micro supportati.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 29, 2016, 10:33 pm
Questa (http://www.atmel.com/Images/Atmel-42559-Differences-between-ATmega328P-and-ATmega328PB_Application%20Note_AT15007.pdf) AN Atmel specifica tutte le differenze tra 328P e 328PB, parla solo dei registri per le periferiche hardware e per la signature, non dice nulla del assembly, per me i due core sono perfettamente identici.

Title: Re: ATmega328PB
Post by: astrobeed on Jan 29, 2016, 10:37 pm
Questo chiude ogni discorso sulla totale compatibilità dei due core :)

Code: [Select]

 Code compiled for ATmega328 variants are compatible and can be executed in
 the ATmega328PB device.
Whereas, reverse code compatibility is not guaranteed.


In pratica dice chiaramente che un eseguibile per 328P può girare sul 328PB senza essere ricompilato, mentre il contrario non è detto che funzioni per via delle periferiche aggiuntive presenti sul 328PB e relativi registri che non sono presenti sul 328P.
Title: Re: ATmega328PB
Post by: vbextreme on Jan 30, 2016, 09:16 am
Mi sa anche a me che è solo un problema di errata corrige del datasheet.
E della alimentazione cosa ne pensi? una scheda con i classici pin da collegare sotto o di lato alla AGF.328PB.R0 ? in questo modo si possono selezionare diverse modalità di alimentazione senza gravare sul costo della scheda in sè che di default sarà alimentata solo da USB, cosi poi uno sceglie se usare l'espansione LIPO, NIMH, 230v o altro....
Title: Re: ATmega328PB
Post by: astrobeed on Jan 30, 2016, 09:35 am
Mi sa anche a me che è solo un problema di errata corrige del datasheet.
Lo penso pure io.

Quote
E della alimentazione cosa ne pensi? una scheda con i classici pin da collegare sotto o di lato alla AGF.328PB.R0 ?
La scheda AG328PB che sto progettando, salvo imprevisti la finisco tra oggi e domani, prevede due LDO per l'alimentazione 5V e 3.3V (1A e 350 mA), ovvero si alimenta nel classico modo di Arduino, o da USB oppure dal connettore Vin con predominanza di quest'ultima, la commutazione avviene tramite un piccolo mos senza bisogno di usare opamp, soluzione perfettamente funzionante ampiamente testata su miglia di pezzi venduti della Luigino 328.
Poi vediamo di fare la scheda di alimentazione, da applicare sotto la AG328 e/o collegare tramite cavi, in modo che sia utilizzabile per tutti i modelli di Arduino.
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 30, 2016, 09:43 am
... obbligatorio la compatibilità tra 3.3v e 5v su tutti i pin.
ovvio ;)

Quote
Anche l'alimentazione su scheda esterna è bella ma io preferirei qualcosa che non sia da saldare ...
si puo fare l'ennesima shield da impilare, ma poi c'e' il limite della grandezza delle batterie (altrimenti non ti ci stanno i pin ICSP), oppure andrebbe impilata al di sopra di tutte le altre (facendo passare l'alimentazione per tutti i connettori ed impedendo di utilizzare altre shield che richiedono il lato superiore libero) ... io invece pensavo ad una scheda aggiuntiva da mettere sotto, fissata magari con dei distanziali e dei contatti da saldare su appositi pin extra (in fondo sarebbero solo 2, massa e Vin, con il jack di alimentazione sulla scheda della batteria, si possono anche fare con due spezzoni di filo di sezione adeguata, senza andare a cercarsi altri connettori ed aumentare i costi), e tenuta abbastanza alzata da permettere l'impiego di una cella LiPo piu spessa, se uno vuole maggiore autonomia ... oppure solo un convertitore DC-DC che possa accettare in ingresso un range di tensioni piu elevato di quelli standard, tipo da 4 a 25V o simile, restituendo circa 8V sul Vin ... ma quello lo si puo vedere in seguito in base a quello che Astro decide ...


> Astro: a proposito, come va lo schema ?

EDIT: ci siamo sovrapposti :P
Title: Re: ATmega328PB
Post by: gpb01 on Jan 30, 2016, 09:44 am
Per chi intanto mette le mani in avrdude.conf, nella sezione del ATmega328 dovrebbe bastare aggiungere una nuova  parent part "m328"

Code: [Select]
part parent "m328"
   id = "m328pb";
   desc = "ATmega328PB";
   signature = 0x1e 0x95 0x16;

   ocdrev              = 1;
;

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Jan 30, 2016, 09:47 am
Per chi intanto mette le mani in avrdude.conf, nella sezione del ATmega328 dovrebbe bastare aggiungere una nuova  parent part "m328"
Ottimo, grazie, non appena mi arrivano i 328PB provo subito a programmarli tramite avrdude.
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 30, 2016, 10:49 am
Io nel frattempo stavo buttando giu uno schema di massima per la scheda alimentazione/lipo ... ci sono alcune possibilita' fra cui scegliere ...

O una scheda che faccia solo da DC-DC converter, ed in questo caso inizialmente avevo preso in considerazione LTC1871 in SEPIC, che permetterebbe di alimentare il tutto da circa 3V fino ad una trentina, ma ho visto il prezzo (intorno ai 5 dollari) , per cui bisogna vedere se ne vale la pena o se cercare qualcosa di piu economico ... oppure un'unita' di alimentazione piu LiPo, la massima tensione si ridurrebbe un po, ed in quel caso userei i classici MCP e TPS, in configurazione un po diversa ... oppure un'ibrido tra le due soluzioni, ma sarebbe tutto da sperimentare ... ovviamente poi il fattore principale sara' probabilmente il costo di realizzazione ...
Title: Re: ATmega328PB
Post by: astrobeed on Jan 30, 2016, 10:59 am
poi il fattore principale sara' probabilmente il costo di realizzazione ...
Purtroppo si perché andiamo andiamo scontrarci con i moduli switching cineseria, però solo step down, che costano attorno ai 3E e forniscono un paio Ampere.
Il vero problema è sempre il costo del montaggio, sulle piccole quantità incide non poco sul prezzo finale.
Title: Re: ATmega328PB
Post by: PaoloP on Jan 30, 2016, 11:23 am
Per il core si potrebbero fare delle PR su github e farle inserire nel core del 328. Credo bisogna aggiungere solo dei #ifdef per i pin e le periferiche aggiuntive.
Inutile riscrivere un core da capo.
Title: Re: ATmega328PB
Post by: gpb01 on Jan 30, 2016, 11:37 am
Nota per gli utenti MAC (OS X) che usano AVRFuses ...

... dopo aver applicato la modifica ad avrdude.conf (... come detto poco sopra), fare tasto destro su "AVRFuses.app" -> "Show package Contents" e andare nella cartella : /Applications/AVRFuses.app/Contents/Resources/ e sostituire il file AVRFuses.parts con quello contenuto nello .zip qui allegato così da poter selezionare il ATmega328PB e poter programmare i Fuses e leggere/scrivere i .hex

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Jan 30, 2016, 11:46 am
inutile riscrivere un core da capo.
Nessuno vuole scrivere un core da capo, si prende quello del 328 e si integra quello che manca.
Comunque non è solo questione di mettere delle semplici #if def e dei pin, tocca inserire tutti i registri mancanti delle periferiche aggiuntive e il codice per gestirle.
Devo ancora scaricare l'ultima toolchain Atmel, che dovrebbe includere anche il 328PB, una volta viste le differenze non dovrebbe essere complicato includerle nel core di Arduino, però tocca aggiornare l'attuale toolchain altrimenti non riconosce il 328PB.
Title: Re: ATmega328PB
Post by: PaoloP on Jan 30, 2016, 11:48 am
Le toolchain vengono aggiornate con molta più frequenza di prima.
Comunque l'attuale 3.5.0 di Atmel non supporta il 328PB
--> http://distribute.atmel.no/tools/opensource/Atmel-AVR-GNU-Toolchain/3.5.0/avr8-gnu-toolchain-3.5.0.1662-readme.pdf (http://distribute.atmel.no/tools/opensource/Atmel-AVR-GNU-Toolchain/3.5.0/avr8-gnu-toolchain-3.5.0.1662-readme.pdf)
Title: Re: ATmega328PB
Post by: astrobeed on Jan 30, 2016, 11:50 am
Le toolchain vengono aggiornate con molta più frequenza di prima.
Atmel le aggiorna ogni volta che viene corretto un bug o rilasciati nuovi modelli di micro, purtroppo Arduino è sempre qualche passo indietro con l'aggiornamento della toolchain.
Attualmente il 328PB non è presente nella toolchain di Arduino, verificato adesso, ed è un micro che è in circolazione da più di 4 mesi.
Title: Re: ATmega328PB
Post by: PaoloP on Jan 30, 2016, 12:03 pm
Stavano già lavorando alla 3.5.0 (https://github.com/arduino/toolchain-avr/tree/trecinquezero (https://github.com/arduino/toolchain-avr/tree/trecinquezero)). Ma Federico adesso non è più del team.
Io ho notato, e lo vedete anche da quanto poco aggiorno il topic sulle novità, che hanno rallentato lo sviluppo. Credo si stiano dedicando a Create che credo venga presentato il prossimo A-DAY.
Title: Re: ATmega328PB
Post by: vbextreme on Jan 30, 2016, 02:07 pm
Aggiungere i registri per il PB non è un grosso lavoro, io ho riscritto tutto il 328 in una settimana.
Alla fine è solo da modificare un pò di header, solo che se facciamo noi dopo quando esce l'ufficiale tocca risistemare tutto.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 30, 2016, 02:39 pm
Aggiungere i registri per il PB non è un grosso lavoro, io ho riscritto tutto il 328 in una settimana.
Ho qualche dubbio sul fatto che rilasciano il core per il 328PB visto che non esiste nessuna scheda ufficiale che lo utilizza.
Title: Re: ATmega328PB
Post by: vbextreme on Jan 30, 2016, 02:55 pm
io mi riferivo ai file che servono a GCC praticamente è solo un insieme di header, se l'instrunction set è veramente uguale a noi basta dire a GCC che la mcu è 328p poi gli passiamo una macro da riga di comando tipo -D_AVR_328PB_NOOFFICIAL in questo modo abbiamo il controllo che ci serve per includere i vari io.h che dovremmo riscrivere, poca roba.
Per il core Arduino il discorso è un pò più complesso, in primis scordiamoci che accettino delle PR su un prodotto non ufficiale e quindi dovremmo rilasciare il nostro core, questo sarà necessario anche per poter controllare la fase di compilazione in maniera pulita.
Si dovrebbe riuscire anche senza core separato perché il core Arduino è l'ultimo ad essere compilato e quindi con qualche astuzia riusciamo a fargli fare ciò che vogliamo noi, questo però implicherebbe un brutto lavoro sporco, difficile da eseguire e subito pronto a fallire.
Io opterei dunque per il core separato, in modo che inizialmente sarà usato solo la parte non ufficiale con la fake 328p poi tra qualche mese, quando si sarà stabilizzato il nuovo chip includeremo anche il compilatore.
Questa per me sembra la soluzione migliore.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 30, 2016, 02:56 pm
Per aggiornare la toolchain Atmel 3.5.0 servono questi tre file:

libatmega328pb.a
iom328pb.h
crtatmega328pb.o

libatmega328pb.a e crtatmega328pb.o vanno messi in "/avr/lib".
iom328pb.h va messo in"avr/include/avr".

I tre file li trovate nell'allegato.
Title: Re: ATmega328PB
Post by: vbextreme on Jan 30, 2016, 03:04 pm
non c'è il sorgente della libreria libatmega328pb.a?
va passata al linker durante la fase di compilazione, il la iom è solo la parte che dice il nome a che indirizzo corrisponde, ma non capisco a cosa serva quel file oggetto.
Ci guardo e provo a compilare non appena sono a casa.
Hai provato a compilare sull'Atmel studio? cosa mette come flags?

Bisogna aprire un repository per il nuovo core.
Title: Re: ATmega328PB
Post by: astrobeed on Jan 30, 2016, 03:31 pm
Quello che ho postato non è un core, sono i file patch che fornisce Atmel per il 328PB, da usare con la toolchain 3.5 in versione standalone.
Title: Re: ATmega328PB
Post by: Pelletta on Jan 30, 2016, 03:31 pm
Ho qualche dubbio sul fatto che rilasciano il core per il 328PB visto che non esiste nessuna scheda ufficiale che lo utilizza.

Anche per gli ATmega644/1284 non c'è una scheda ufficiale ma sono stati aggiunti... si vedrà
Title: Re: ATmega328PB
Post by: PaoloP on Jan 30, 2016, 03:50 pm
Se facciamo una PR abbiamo buone possibilità che venga implementa, d'altronde è una variante del 328.
Title: Re: ATmega328PB
Post by: vbextreme on Jan 30, 2016, 04:11 pm
@Astro, rettifico tutto ho trovato questo (https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html), quindi avr-gcc supporta già 328pb e possiamo scrivere mcu=328pb, solo che tocca scaricare l'ultima versione del compilatore e compilarlo.
Ma il problema del core Arduino rimane, se non rilasciano l'ultima versione di avr-gcc bisogna per forza rilasciare il core separato, altrimenti non possono compilarlo.

Comunque appena sono a casa faccio 2/3 mila prove, voglio vedere se la versione attuale di avr-gcc che usa Arduino supporta 328pb.
Prima bisogna controllare che il compilatore e il linker siano OK poi vediamo come implementare il core Arduino.
Title: Re: ATmega328PB
Post by: vbextreme on Jan 31, 2016, 09:46 am
Allora, io non uso l' avr-gcc che fornisce arduino perchè naturalmente è per x86. La mia versione è la 4.8.2 e non supporta la 328pb
Ora sto scaricando gcc 5.3 e lo provo a compilare, solo che ho finito lo spazio su hd, ho rimasto 200mb xD
Title: Re: ATmega328PB
Post by: astrobeed on Jan 31, 2016, 09:54 am
E' ora di fare un upgrade. :D

(http://www.storagereview.com/images/StorageReview-Samsung-SSD-840-Pro-Bottom.jpg)
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 31, 2016, 10:21 am
... vuoi usarlo come memoria della nuova scheda ? ... potrei avere problemi a farcelo stare ... :P :D :D :D
Title: Re: ATmega328PB
Post by: vbextreme on Jan 31, 2016, 12:03 pm
@astro e dove lo infilo quel pezzo di plastica? la mia memoria è questa (http://www.hardkernel.com/main/products/prdt_info.php?g_code=G138750148750).
Dopo esco a comprare una SD da infilare a lato.

Ma perchè poi il 328PB? sicuramente la nuova Arduino UNO r4 userà tale chip, io avrei preferito un bel xmega che oltre ad avere 32mhz di clock per eseguire alcuni comandi impiega perfino meno numeri di clock. quindi è almeno 2.5 volte piu veloce del 328, in piu ha periferiche fino alla nausea e tanti di quei gingilli da soddisfare anche il piu esigente degli hobbysti, infine esiste anche in versione PDIP 40 pin che sembra proprio una Arduino UNO potenziata.

Title: Re: ATmega328PB
Post by: Maurotec on Jan 31, 2016, 02:00 pm
Quote
Ma perchè poi il 328PB? sicuramente la nuova Arduino UNO r4 userà tale chip, io avrei preferito un bel xmega che oltre ad avere 32mhz di clock per eseguire alcuni comandi impiega perfino meno numeri di clock.
Infatti anche io preferirei un xmega, ma arduino core per xmega esiste?

UNO r4, cos'è un incrocio tra una Fiat uno e una R4? :D

Ciao.
Title: Re: ATmega328PB
Post by: vbextreme on Jan 31, 2016, 02:13 pm
ci sarebbe anche già il core, ma rifarlo non sarebbe nemmeno un problema.
Poi si può anche evitare di mettere il cristallo, in internet si trovano dai 20 ai 50€
Bisognerebbe solo trovare il giusto modello, comunque mi sbagliavo non sembra esistere in pdip.
lo slogan: UNO + MEGA = XMEGA
secondo me è il top degli 8bit di avr.

UNO r4 è la Fiat uno senza sportelli che quando curvi puoi mettere il ginocchio per terra.
Title: Re: ATmega328PB
Post by: Etemenanki on Jan 31, 2016, 03:33 pm
XMEGA128A4U

32MHz, 128K di flash piu 8K di boot piu 2K di EEPROM piu 8K di SRAM, pin che reggono almeno 15mA, ADC piu DAC a 12bit, USB device fullspeed integrato, 5 USART (una supporta IrDA), 2 I2C, 2 SPI, piu una manciata di altra robaccia (:P) ... appena e' uscita mi ero messo a sviluppare una versione di "UNO" con questo chip, pensando di poterci fare chissa' cosa, poi mi sono reso conto che era comunque un'8bit, che andava a 3.3V e non a 5V, e che probabilmente non era supportata da nessun IDE (ed io non ho alcuna conoscenza in merito a questo), ed ho mollato tutto a meta' ... da qualche parte fra i files di Eagle devo avere ancora il progetto incompleto, ma non so chi si metterebbe a produrlo, anche se lo finissi ...



Quote
UNO r4 è la Fiat uno senza sportelli che quando curvi puoi mettere il ginocchio per terra.
... mi raccomando, rigorosamente senza ginocchiere, senno' non vale ... :P :D
Title: Re: ATmega328PB
Post by: testato on Jan 31, 2016, 04:07 pm
Non dimentichiamo un semplice jumper per disabilitare il reset  :)

Title: Re: ATmega328PB
Post by: ibbba on Jan 31, 2016, 04:11 pm
Non dimentichiamo un semplice jumper per disabilitare il reset  :)

sante parole
Title: Re: ATmega328PB
Post by: testato on Jan 31, 2016, 04:14 pm

Come convertitore USB potremmo considerare il PL2303 costa un euro e mezzo, driver ufficiali e per tutti i SO
Su win sono anche certificati
Title: Re: ATmega328PB
Post by: testato on Jan 31, 2016, 04:41 pm
Sul discorso connettore invece capisco e miniusb è robusto, ma il microub è ormai standard universale. Anche RPi lo usa, ed è piu grande e pesante. Spesso poi si hanno alimentatori telefoni e li si usa come powersupply, senza adattatori.

Sicuramente esistono versioni di microusb robuste, con magari ghiera a saldare piu larga.
E non dimentichiamo che parliamo di una board venduta a possessori di saldatori, il giorno che si rompe si sostituisce.
Non dismettiamolo cosi su due piedi, valutiamo molto seriamente quest'aspetto
Title: Re: ATmega328PB
Post by: vbextreme on Jan 31, 2016, 04:55 pm
@etemenanki, io pensavo alla 128A1, ha 8 bit ma corre veramente tanto!
Poi si vedono cose come Arduino Due che impiega più tempo di un attiny senza cristallo a cambiare stato ad un pin...
per me tra un 8 e un 32 bit a conti fatti cambia ben poco per almeno il 70% dei casi.
Per i 3.3v ormai è sempre meno problematico, io con Arduino uno ormani monto sempre dei traslatori e comunque si può sempre prevedere la scelta 3.3v 5v, come fanno altre schede.
Per il software dovrebbe esistere su github il core Arduino per XMEGA e modificarlo o crearlo da zero è solo questione di ore, una sciocchezza, il core Arduino saranno al massimo una decina di file...
Ma la scheda che stavi creando ha le sembianze arduinesche?
Tu mi dai la scheda e ii ti di il software....
Title: Re: ATmega328PB
Post by: Maurotec on Jan 31, 2016, 05:42 pm
Quote
UNO r4 è la Fiat uno senza sportelli che quando curvi puoi mettere il ginocchio per terra.
Minchia ideona, la comprerebbero tutti. :D

Di UNO ne ho due, 1.0 fire e 1.4ie, di R4 niente, però l'ho guidata e lo spasso è assicurato.

Quote
Poi si vedono cose come Arduino Due che impiega più tempo di un attiny senza cristallo a cambiare stato ad un pin...
:smiley-grin:
Intanto sulla Due i pin sono mappati in ram, e digitalWrite dovrebbe essere abbastanza rapida, a meno che non l'hanno dovuta riempire di codice.

Quote
Per il software dovrebbe esistere su github il core Arduino per XMEGA e modificarlo o crearlo da zero è solo questione di ore, una sciocchezza, il core Arduino saranno al massimo una decina di file...
In teoria è così, però le cose si complicano e i tempi si allungano se si vuole mantenere una certa compatibilità con shield dedicate alla UNO. Rompendo la compatibilità con la UNO le cose si semplificano abbondantemente.
L'ideale sarebbe, mantenere la compatibilità pensando ad un futuro standard shield per questa UNO++.

Ciao.
 

Title: Re: ATmega328PB
Post by: vbextreme on Jan 31, 2016, 07:07 pm
@maurotec la DUE impiega 2us con la digitalwrite(), vedi l'inutilità, con un Avr a 8 bit e 16mhz usando direttamente i registri vai sul 0.5us quindi a cosa serve un ARM da 86mhz se poi viene usato male? meglio un 8bit usato bene!
Quanti megasample arriva l'adc della DUE? quello della XMEGA arriva a 2 :p
Come vedi la differenza è minima, ovvio se ci sai fare la DUE è una bomba, ma per il 70% dei progetti una XMEGA è quello che servirebbe.
Per la scheda sarebbe bello un mix tra uno e mega, i pin della uno tutti a 5v e i restanti tutti a 3.3v.

Per la compatibilità software 0 problemi.
È solo questione di tempo per scrivere il codice.
In più io terrei il core separato così oltre a rilasciare il codice compatibile "normale" possiamo aggiungere a nostro piacimento funzionalità anche per utenti più esperti senza dover supplicare una PR.
Title: Re: ATmega328PB
Post by: vbextreme on Jan 31, 2016, 07:11 pm
quasi dimenticavo la cosa più importante, hai la Uno e la r4!
smonta subito gli sportelli e metti le sospensioni+molle della r4 sulla Uno, così vediamo se può essere un modello vincente, alla centralina ci pens me ;-)
Title: Re: ATmega328PB
Post by: Maurotec on Feb 01, 2016, 01:29 am
Quote
quasi dimenticavo la cosa più importante, hai la Uno e la r4!
smonta subito gli sportelli e metti le sospensioni+molle della r4 sulla Uno, così vediamo se può essere un modello vincente, alla centralina ci pens me ;-)
Seeee, se avevo la R4 pensi che non l'avrei già fatto. :smiley-mr-green: 
Ho due UNO, la 1.4ie è in attesa di botta di culo mia al fine di ristrutturarla, ma mi sa che con questo andazzo finisce allo sfascio, che pena.

Quote
In più io terrei il core separato così oltre a rilasciare il codice compatibile "normale" possiamo aggiungere a nostro piacimento funzionalità anche per utenti più esperti senza dover supplicare una PR.
Ottima manifestazione di buon senso. Ma allora perché tutta sta frenesia per il 328PB, si è farcito di device, ha anche una modalità PWM che non ha nessun altro Atmega, però se devo investire tempo e denaro preferisco xmega, tanto ormai lo possiamo considerare abbastanza maturo o dobbiamo aspettare che diventi obsoleto.

Dai Ete, rimettiti a lavoro che qualcosa la si combina di certo.

Ciao.



Title: Re: ATmega328PB
Post by: PaoloP on Feb 01, 2016, 08:04 am
Questo è il topic per il 328PB, se non volete partecipare non c'è nessun problema. Se volete creare una nuova scheda con un Xmega fatevela pure, ma smettetela di andare OT e di cambiare argomento.
Grazie.

E comunque non c'è bisogno di "supplicare" nessuna PR, gli si propone. Se accettano bene (cosa probabile) e se non accettano si forka e si fa un core separato.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 01, 2016, 08:23 am
Questo è il topic per il 328PB, se non volete partecipare non c'è nessun problema. Se volete creare una nuova scheda con un Xmega fatevela pure, ma smettetela di andare OT e di cambiare argomento.
Concordo, inoltre trovo assolutamente inutile fare una scheda basata su Xmega perché se servono più pin, ram, flash, periferiche c'è già la Mega2560, se serve più potenza di calcolo c'è la Teensy 3.x che fa marameo anche alla DUE, costa meno della metà ed è 5V tolerant.
Lo scopo di una scheda basata sul 328PB è avere un Arduino standard dotato di più pin e periferiche ad un costo basso, in particolare è utilissima la doppia UART visto che toglie il problema della seriale software con tutte le limitazioni del caso.
Se proprio si vuole realizzare un super Arduino, sotto ogni punto di vista, allora mille volte meglio impegnare le risorse per realizzare una board basata su STM32F4 con core Cortex M4 dotato di FPU, questa si che farebbe la differenza, a livello software si può lavorare sulla STM32F4 Discovery (http://www.mouser.it/new/stmicroelectronics/stm32f4discovery/), costa meno di 20 Euro e a breve arriva la nuova versione con un processore più recente, per poi passare alla  realizzazione di un hardware dedicato una volta messo a punto il core, tra parentesi esiste già un porting del core di Arduino per gli STM32.
Title: Re: ATmega328PB
Post by: vbextreme on Feb 01, 2016, 09:32 am
@Astro, non puoi minimamente paragonare una xmega ad una mega.
Lo scopo poi non sarebbe creare un super arduino ma un buon arduino.
Comunque è carina l'idea del 328PB, io l'ho solo buttata li, magari @etemenanki crea un thread apposito e facciamo sia la UNO++ che la MEGA++

Tornando a noi non sono ancora riuscito a compilare perchè compro oggi la memoria supplementare che è in offerta, quindi da domani vedremo quanto sarà complesso il lavoro lato software.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 01, 2016, 09:42 am
@Astro, non puoi minimamente paragonare una xmega ad una mega.
Il punto chiave è che se realmente vuoi maggiore potenza di calcolo, perché alla fine è solo questa la differenza tra usare un Atmega2560 e un Xmega, allora tanto vale andare su micro molto, ma molto, più performanti che per giunta costano di meno, ovvero gli STM32F4. :)

Quote
quindi da domani vedremo quanto sarà complesso il lavoro lato software.
Ok, tienici aggiornati sulla questione compilazione, io non ho tempo per mettermi a provare con avr-gcc standalone, inutile dire che con AtmelStudio si compila senza problemi per i 328PB :)
Title: Re: ATmega328PB
Post by: PaoloP on Feb 01, 2016, 11:31 am
Battuti sul tempo?
--> https://hackaday.io/project/9313-uino-mini-super-atmega328pb (https://hackaday.io/project/9313-uino-mini-super-atmega328pb)

Altro progetto --> https://hackaday.io/project/9344-xduino-nano-pb (https://hackaday.io/project/9344-xduino-nano-pb)
Title: Re: ATmega328PB
Post by: astrobeed on Feb 01, 2016, 11:39 am
Battuti sul tempo?
--> https://hackaday.io/project/9313-uino-mini-super-atmega328pb (https://hackaday.io/project/9313-uino-mini-super-atmega328pb)
Mica tanto, è una mini like, non è un Arduino layout standard, non mi pare che hanno sistemato il core, usano avr-gcc stand alone per compilare, ovvero devi gestirti a mano le periferiche aggiuntive.

Title: Re: ATmega328PB
Post by: PaoloP on Feb 01, 2016, 11:42 am
Il tizio dice di aver già creato un proprio pins_arduino.h. Sarebbe interessante se lo rilasciasse.  :)

EDIT:
Anzi, essendo un modifica di un file di Arduino lo DEVE rilasciare, altrimenti viola la licenza.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 01, 2016, 11:49 am
Il tizio dice di aver già creato un proprio pins_arduino.h. Sarebbe interessante se lo rilasciasse.  :)
Non basta, al massimo integra i 4 gpio in più, serve una sostanziosa modifica al core a ad alcune librerie di base, p.e. la serial che deve prevedere serial e serial1 nel caso del 328PB, c'è da lavorare abbastanza per adattare il core del 328 al 328PB.

Title: Re: ATmega328PB
Post by: vbextreme on Feb 01, 2016, 11:54 am
@Astro ma l'ST non è un AVR. l'XMEGA è abbastanza potente da soddisfare la maggior parte delle richieste senza dover cambiare architettura che per molti vuol dire parecchio.
@PaoloP non penso sia paragonabile a ciò che vuol fare @Astro.


Leggevo velocemente il datasheet e ho visto la PortE! per un totale di 4 pin in piu.
Ma il 328 ha anche il sensore di temperatura interno, non me ne ero mai accorto.....
Title: Re: ATmega328PB
Post by: astrobeed on Feb 01, 2016, 12:01 pm
@Astro ma l'ST non è un AVR. l'XMEGA è abbastanza potente da soddisfare la maggior parte delle richieste senza dover cambiare architettura che per molti vuol dire parecchio.
Anche la Teensy 3.x non usa Atmel, usa un micro Freescale (ottimi), eppure è un prodotto ufficialmente riconosciuto da Arduino e da tutti i più importanti produttori di hardware per Arduino, ha una sua estensione del IDE che integra anche le librerie di serie e praticamente tutte quelle normalmente utilizzate.

Quote
Leggevo velocemente il datasheet e ho visto la PortE! per un totale di 4 pin in piu.
Ma il 328 ha anche il sensore di temperatura interno, non me ne ero mai accorto.....
Se ti vai a vedere l'inizio del topic avevo già messo in evidenza che ci sono quattro GPIO in più, in realtà i pin utilizzabili come GPIO aggiuntivi sono solo due, hanno utilizzato un VCC e un GND come GPIO rispetto al 328P.
Gli altri due sono A6 e A7, presenti anche sul 328P in case 32 pin, che invece di essere solo input analogici sono diventati GPIO normali.
Oltre al sensore di temperatura interno c'è un ulteriore input ADC utilizzabile per la misura della tensione di alimentazione del 328, qui (http://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/) tutti i dettagli, devo verificare se è presente anche sul 328PB.

Title: Re: ATmega328PB
Post by: Maurotec on Feb 01, 2016, 04:09 pm
Quote
Anzi, essendo un modifica di un file di Arduino lo DEVE rilasciare, altrimenti viola la licenza.
Ma no dai, che propaganda è questa, se n'è parlato a lungo della licenza e non c'è nessuno che ti può obbligare a rilasciare modifiche apportate per uso personale. Se vuole può o meno condividere le modifiche, di certo non può cedere a terzi dei binari che derivano da codice GPL a meno che non consegni anche il codice sorgente modificato. Il "terzi" che riceve il binario più il sorgente modificato è libero di condividere o meno ciò che ha ricevuto, se decide di non condividere la cosa muore li. Quindi niente violazione della licenza.

Quote
Questo è il topic per il 328PB, se non volete partecipare non c'è nessun problema. Se volete creare una nuova scheda con un Xmega fatevela pure, ma smettetela di andare OT e di cambiare argomento.
Grazie.

E comunque non c'è bisogno di "supplicare" nessuna PR, gli si propone. Se accettano bene (cosa probabile) e se non accettano si forka e si fa un core separato.
Urca, questa mattina ti sei alzato con il piede sbagliato?
La cosa mi puzza, non è che per caso si vuole mobilitare la comunity indirizzandola a fare del lavoro sul nuovo Arduino r4?
In ogni caso se trovate dei seguaci io non ne faccio parte perché la MCU in oggetto non mi stuzzica per niente.
Tutte le applicazioni sviluppate con arduino r4 non potranno girare sulla UNO r3 ne tanto meno su 328 standalone e il 328PB non esiste in case PDIP, tanto vale concentrare gli sforzi su una MCU più performante. Il problema per me non esiste in quanto non uso il core Arduino ne l'ide e quando mi serve un nuovo micro appronto una scheda di sviluppo ridotta all'essenziale al fine di prendere confidenza.

Comunque vi seguo e spero riusciate nel vostro intento.

Ciao.


 
Title: Re: ATmega328PB
Post by: PaoloP on Feb 01, 2016, 04:29 pm
Quindi niente violazione della licenza.
Peccato.  :smiley-confuse:
Title: Re: ATmega328PB
Post by: PaoloP on Feb 01, 2016, 04:33 pm
Non credo sia in sviluppo un R4 visto che in uscita la MKR1000.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 01, 2016, 04:38 pm
Non credo sia in sviluppo un R4 visto che in uscita la MKR1000.
Una ZERO con aggiunto il WiFi.
Non capirò mai perché in Arduino continuano a farsi del male da soli con queste scelte assurde, con pochissimo di più, come costi di produzione, è possibile dare tanto di più, come sempre l'esempio va alla Teensy 3.x :)
Title: Re: ATmega328PB
Post by: vbextreme on Feb 02, 2016, 11:08 am
sto avendo un pò di noie con gcc5.3, niente di grave se non fosse che è tornata adesso una connessione stabile, era saltata a mezzanotte.... e il pacchetto scaricato dalla mirror italiana non andava.....
le bin utility le ho già installate.
Title: Re: ATmega328PB
Post by: pighixxx on Feb 02, 2016, 12:41 pm
Arrivati

(http://www.pighixxx.com/test/wp-content/uploads/2016/02/IMG_20160202_120738.jpg)

e

(http://www.pighixxx.com/test/wp-content/uploads/2016/02/IMG_20160202_123324.jpg)

La schedina Xplained Mini con atmega328pb (Pagata 9 euro) cosí posso incominciare a smanettare da subito. :D
Title: Re: ATmega328PB
Post by: menniti on Feb 02, 2016, 01:07 pm
Ciao Alberto! 9€ compreso il convertitore USB-Seriale che vedo in foto? Da Mouser se leggo bene....ma non ne chiedono una quindicina di trasporto poi?
Title: Re: ATmega328PB
Post by: pighixxx on Feb 02, 2016, 01:25 pm
Ciao Michele,

felice di risentirti. Si chiedono le spedizioni per ordini inferiori ai 70 Euro. Dopo la spedizione è gratuita.

edit
Si, compreso di tutto. qui il link al prodotto: http://www.atmel.com/tools/MEGA328PB-XMINI.aspx (http://www.atmel.com/tools/MEGA328PB-XMINI.aspx)

Abbraccio
Title: Re: ATmega328PB
Post by: astrobeed on Feb 02, 2016, 02:13 pm
La schedina Xplained Mini con atmega328pb (Pagata 9 euro) cosí posso incominciare a smanettare da subito. :D
Allora c'è !
L'avevo cercata su Digikey, dove ho appena preso i 328PB, e non risultava a catalogo.


Title: Re: ATmega328PB
Post by: astrobeed on Feb 02, 2016, 02:21 pm
Mouser (http://www.mouser.it/ProductDetail/Atmel/ATMEGA168PB-XMINI/?qs=sGAEpiMZZMvNM%2fd3q5fCVzWWdqDWHzp333AGMNMJCSE%3d) ha 47 ATmega328PB Xplained Mini disponibili, non devo fare un ordine immediato da Mouser però posso farne uno subito mettendo dentro varie cosette che mi servono nell'immediato futuro in modo da non dover pagare la spedizione.
Se qualcuno è interessato a questa scheda posso aggiungerla nell'ordine, alla fine viene a costare 9.28 + iva = 11.4 E più la spedizione tramite prioritaria, mi pare 2 E, oppure con busta via corriere espresso 8E, alla fine sono meno di 20 E e sopra c'è anche il chip per il debug hardware.
Title: Re: ATmega328PB
Post by: Maurotec on Feb 02, 2016, 02:42 pm
Quote
Allora c'è !
L'avevo cercata su Digikey, dove ho appena preso i 328PB, e non risultava a catalogo.
Si l'avevo vista anche io, ma ricordavo di averla vista su digikey o su RS.
Il costo è in linea con gli altri prodotti, però mancano i connettori.
Stranamente ci sono più pin che i piedini del 328, a cosa servono i pin in più?

Ciao.
Title: Re: ATmega328PB
Post by: nid69ita on Feb 02, 2016, 02:54 pm
(http://www.pighixxx.com/test/wp-content/uploads/2016/02/IMG_20160202_123324.jpg)

La schedina Xplained Mini con atmega328pb (Pagata 9 euro) cosí posso incominciare a smanettare da subito. :D
Ma sbaglio o la colonna 2 e 11, con i buchi inquadrati di bianco, son fatti sulle misure di Arduino Uno ?
Title: Re: ATmega328PB
Post by: PaoloP on Feb 02, 2016, 02:56 pm
Arrivati
(http://www.pighixxx.com/test/wp-content/uploads/2016/02/IMG_20160202_123324.jpg)

La schedina Xplained Mini con atmega328pb (Pagata 9 euro) cosí posso incominciare a smanettare da subito. :D
A me arriva lunedì prossimo :-(

Non sbagli.

EDIT:
La 328Xplained me la regalo l'omone Atmel alla MF di Roma l'anno scorso.
Title: Re: ATmega328PB
Post by: Etemenanki on Feb 02, 2016, 03:11 pm
> Astro: sei poi riuscito a finire lo schema ?
Title: Re: ATmega328PB
Post by: vbextreme on Feb 02, 2016, 03:33 pm
nada!
avr-gcc 5.3 non supporta il 328pb nativamente:
Code: [Select]

odroid@odroid:/media/odroid/drivext/src/avr-libc-1.8.1$ avr-gcc -v
Using built-in specs.
COLLECT_GCC=avr-gcc
Target: avr
Configured with: ../configure --prefix=/usr/bin/avr --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp --with-dwarf2
Thread model: single
gcc version 5.3.0 (GCC)


Code: [Select]

avr-gcc: note: devices natively supported: ata5272 ata5505 ata5702m322 ata5782 ata5790 ata5790n ata5795 ata5831 ata6285 ata6286 ata6289 ata6612c ata6613c ata6614q ata6616c ata6617c ata664251 atmega103 atmega128 atmega128a atmega128rfa1 atmega128rfr2 atmega1280 atmega1281 atmega1284 atmega1284p atmega1284rfr2 atmega16 atmega16a atmega16hva atmega16hva2 atmega16hvb atmega16hvbrevb atmega16m1 atmega16u2 atmega16u4 atmega161 atmega162 atmega163 atmega164a atmega164p atmega164pa atmega165 atmega165a atmega165p atmega165pa atmega168 atmega168a atmega168p atmega168pa atmega169 atmega169a atmega169p atmega169pa atmega256rfr2 atmega2560 atmega2561 atmega2564rfr2 atmega32 atmega32a atmega32c1 atmega32hvb atmega32hvbrevb atmega32m1 atmega32u2 atmega32u4 atmega32u6 atmega323 atmega324a atmega324p atmega324pa atmega325 atmega325a atmega325p atmega325pa atmega3250 atmega3250a atmega3250p atmega3250pa atmega328 atmega328p atmega329 atmega329a atmega329p atmega329pa atmega3290 atmega3290a atmega3290p atmega3290pa atmega406 atmega48 atmega48a atmega48p atmega48pa atmega64 atmega64a atmega64c1 atmega64hve atmega64hve2 atmega64m1 atmega64rfr2 atmega640 atmega644 atmega644a atmega644p atmega644pa atmega644rfr2 atmega645 atmega645a atmega645p atmega6450 atmega6450a atmega6450p atmega649 atmega649a atmega649p atmega6490 atmega6490a atmega6490p atmega8 atmega8a atmega8hva atmega8u2 atmega8515 atmega8535 atmega88 atmega88a atmega88p atmega88pa attiny10 attiny11 attiny12 attiny13 attiny13a attiny15 attiny1634 attiny167 attiny20 attiny22 attiny2313 attiny2313a attiny24 attiny24a attiny25 attiny26 attiny261 attiny261a attiny28 attiny4 attiny40 attiny43u attiny4313 attiny44 attiny44a attiny441 attiny45 attiny461 attiny461a attiny48 attiny5 attiny828 attiny84 attiny84a attiny841 attiny85 attiny861 attiny861a attiny87 attiny88 attiny9 atxmega128a1 atxmega128a1u atxmega128a3 atxmega128a3u atxmega128a4u atxmega128b1 atxmega128b3 atxmega128c3 atxmega128d3 atxmega128d4 atxmega16a4 atxmega16a4u atxmega16c4 atxmega16d4 atxmega16e5 atxmega192a3 atxmega192a3u atxmega192c3 atxmega192d3 atxmega256a3 atxmega256a3b atxmega256a3bu atxmega256a3u atxmega256c3 atxmega256d3 atxmega32a4 atxmega32a4u atxmega32c3 atxmega32c4 atxmega32d3 atxmega32d4 atxmega32e5 atxmega384c3 atxmega384d3 atxmega64a1 atxmega64a1u atxmega64a3 atxmega64a3u atxmega64a4u atxmega64b1 atxmega64b3 atxmega64c3 atxmega64d3 atxmega64d4 atxmega8e5 at43usb320 at43usb355 at76c711 at86rf401 at90can128 at90can32 at90can64 at90c8534 at90pwm1 at90pwm161 at90pwm2 at90pwm2b at90pwm216 at90pwm3 at90pwm3b at90pwm316 at90pwm81 at90scr100 at90s1200 at90s2313 at90s2323 at90s2333 at90s2343 at90s4414 at90s4433 at90s4434 at90s8515 at90s8535 at90usb1286 at90usb1287 at90usb162 at90usb646 at90usb647 at90usb82 at94k m3000


c'è il 328, il 328p ma non il 328pb
Title: Re: ATmega328PB
Post by: Pelletta on Feb 02, 2016, 03:53 pm
@vbextreme: prova a vedere qui (https://hackaday.io/project/9313-uino-mini-super-atmega328pb) se trovi info utili
Title: Re: ATmega328PB
Post by: PaoloP on Feb 02, 2016, 04:07 pm
Indica di aggiungere i tre file già menzionati da Astro.
Title: Re: ATmega328PB
Post by: testato on Feb 02, 2016, 06:17 pm
per la cronaca ci sono anche le versioni con XMega per chi vuole una scheda, ma non andiamo OT.

il debug hw fa fare molte esperienze interessanti. Io ho il debugger ufficiale che uso direttamente sulle MCU (quindi anche sulle varie board "arduine"), e non ho mai capito perche' la gente compra gli arduino invece di prendere direttamente le xplained  :)

p.s. il consiglio di inserire il jumper di reset serve anche per la questione debug, perche' il protocollo debugWire vieta l'uso di condensatori sul suo pin, quindi il c di autoreset da problemi.

Il jumper quindi si potrebbe chiamare autoreset/debugWire
Title: Re: ATmega328PB
Post by: astrobeed on Feb 02, 2016, 06:49 pm
Ma sbaglio o la colonna 2 e 11, con i buchi inquadrati di bianco, son fatti sulle misure di Arduino Uno ?
Si, il manuale della scheda conferma che è possibile metterci sopra le shield di Arduino.
Title: Re: ATmega328PB
Post by: vbextreme on Feb 02, 2016, 07:15 pm
@pelletta ho letto il link, il tipo ha provato come me varie versioni di gcc, ma anche a lui non compilava con 328pb(anche se il tipo ha provato con la 4.9 rilasciata prima del chip e la 6 che è beta)
Quindi si è preso la patch di Atmel.
Se non ricordo male per Linux x86 c'è un PPA con i pacchetti di Atmel e così non dovete sbattervi a fare niente.

Ma secondo me ci deve essere una versione che supporta il chip, come potete vedere (https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02163/avr-new-devices.patch) è stato aggiunto.

Appena sono a casa faccio qualche altra prova, guardo magari se bisogna attivare la patch in qualche modo o bisogna scaricarla.

@Testato, l'ho vista, appena finisco un pò di cose la compro, vorrei prima usare l'esp per farmi aprire la porta del camper appena sono nel raggio del Wi-Fi....
Title: Re: ATmega328PB
Post by: menniti on Feb 02, 2016, 11:11 pm
Mouser (http://www.mouser.it/ProductDetail/Atmel/ATMEGA168PB-XMINI/?qs=sGAEpiMZZMvNM%2fd3q5fCVzWWdqDWHzp333AGMNMJCSE%3d) ha 47 ATmega328PB Xplained Mini disponibili, non devo fare un ordine immediato da Mouser però posso farne uno subito mettendo dentro varie cosette che mi servono nell'immediato futuro in modo da non dover pagare la spedizione.
Se qualcuno è interessato a questa scheda posso aggiungerla nell'ordine, alla fine viene a costare 9.28 + iva = 11.4 E più la spedizione tramite prioritaria, mi pare 2 E, oppure con busta via corriere espresso 8E, alla fine sono meno di 20 E e sopra c'è anche il chip per il debug hardware.
ma quella che hai linkato è con il 168PB o sbaglio?
Title: Re: ATmega328PB
Post by: astrobeed on Feb 03, 2016, 07:11 am
ma quella che hai linkato è con il 168PB o sbaglio?
Si ho sbagliato il link, quello giusto è questo (http://www.mouser.it/ProductDetail/Atmel/ATMEGA328PB-XMINI/?qs=sGAEpiMZZMvc81WFyF5Edj8efoJixmRSSoNNtE0QVmA%3d), però la foto sulla pagina è quella della 328P-Xmini.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 03, 2016, 10:17 am
> Astro: sei poi riuscito a finire lo schema ?
Si, devo solo controllarlo, in giornata arriva.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 04, 2016, 05:35 pm
Nella Xplained Mini il 328PB dovrebbe essere collegato tramite SPI al 32U4.
Quindi se nel 32U4 carico Arduino as ISP (compilato per Arduino Leonardo) dovrei poter usare la scheda con l'IDE visto che AVRdude non riconosce il protocollo mEDBG. (http://savannah.nongnu.org/patch/?8435 (http://savannah.nongnu.org/patch/?8435))
Title: Re: ATmega328PB
Post by: testato on Feb 04, 2016, 10:31 pm
Si, dovrebbe andare. Oppure caricargli il firmware standard usb/seriale e connettere le seriali esternamente.

Ma poi si può tornare indietro ? Non so se il firmware che fa da debugger è disponibile.
Inoltre se è protetto ti serve HV per resettarlo
Title: Re: ATmega328PB
Post by: PaoloP on Feb 05, 2016, 08:08 am
Il firmware mEDBG è disponibile sul sito ATmel e non è bloccato.
--> https://spaces.atmel.com/gf/project/avr_xp_mini/frs/?action=FrsReleaseBrowse&frs_package_id=115 (https://spaces.atmel.com/gf/project/avr_xp_mini/frs/?action=FrsReleaseBrowse&frs_package_id=115)
E mi pare sia anche presente in ATmel Studio.
Purtroppo il protocollo non è open e quindi niente inclusione in AVRdude.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 05, 2016, 08:30 am
Quindi se nel 32U4 carico Arduino as ISP (compilato per Arduino Leonardo) dovrei poter usare la scheda con l'IDE
Si, è previsto e spiegato nel manuale della  Xplained Mini nella sezione 1.4.5, è possibile caricare il bootloader sul 32u4 tramite flip.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 05, 2016, 08:42 am
Ho ordinato da Mouser la 328PB Xplained, dovrebbe arrivare i primi giorni della prossima settimana, così posso iniziare a fare qualche prova software.
Per fare le schede Arduino like con il 328PB se ne parla dopo fine mese perché in Cina c'è il capodanno ed è tutto fermo, inutile mandare adesso a fare pcb perché tanto gli ordini rimangono in attesa.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 05, 2016, 11:11 am
Caricato il bootloader sul 328. Peccato che il 32U4 non abbia circuito di reset comandato dalla seriale.
Credo che il firmware mEDBG abbia un proprio protocollo per il reset.
Inoltre il 328 non ha il quarzo ma prende il segnale di clock dal 32U4 che lo fornisce a 16Mhz se alimentato a 5V oppure a 8Mhz se a 3V3.
Ho controllato ma i pin PB6 e PB7 per il quarzo esterno mi pare non siano accessibili.
Title: Re: ATmega328PB
Post by: SukkoPera on Feb 05, 2016, 11:33 am
Scusate, su quali pin (in senso di pin Arduino) va a finire la seconda seriale HW?
Title: Re: ATmega328PB
Post by: PaoloP on Feb 05, 2016, 11:34 am
Purtroppo sui pin della SPI. 11 e 12. Quindi niente SD (sui classici pin) + 2° seriale.
Ma c'è la seconda SPI a cui attaccare la SD o la Ethernet. :D
--> http://www.pighixxx.com/test/2016/01/atmega328pb-pinout/ (http://www.pighixxx.com/test/2016/01/atmega328pb-pinout/)
Title: Re: ATmega328PB
Post by: SukkoPera on Feb 05, 2016, 12:07 pm
Questo vuol dire che sul connettore ICSP sarebbe meglio portare la seconda SPI. Ma poi si può programmare in ISP?
Title: Re: ATmega328PB
Post by: astrobeed on Feb 05, 2016, 12:26 pm
Caricato il bootloader sul 328. Peccato che il 32U4 non abbia circuito di reset comandato dalla seriale.
Non c'è perché il collegamento è tramite SPI, quindi manca il segnale DTR, ovvero l'emulazione utilizzata non è USB-UART ma USB-SPI, però è sicuramente possibile aggiungere il reset modificando l'optiboot spi per questa scheda.

Quote
Inoltre il 328 non ha il quarzo ma prende il segnale di clock dal 32U4 che lo fornisce a 16Mhz se alimentato a 5V oppure a 8Mhz se a 3V3.
Quale sarebbe il problema ?
Il clock parte dal quarzo collegato al 32u4 e viene iniettato sul relativo pin di clock del 328PB tramite il clok out del 32u4, funzione esplicitamente prevista tramite fuse CKOUT che emette il clock su POTC7 del 32u4.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 05, 2016, 12:55 pm
Ma se cambio il firmware del 32U4 mettendo su "Arduino as ISP", perdo il clock?
Title: Re: ATmega328PB
Post by: Maurotec on Feb 05, 2016, 01:06 pm
Mi pare assurdo non potere usare un quarzo specifico per applicazione, non è che per caso c'è qualche jumper da muovere? Possibile che il software sul 32u4 usa un timer per fornire un clock al 328, se fosse così da protocollo dovrebbe essere possibile modificare il valore del timer.

Ciao.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 05, 2016, 01:25 pm
Considera che è una scheda di sviluppo di ATmel ed è perfettamente configurabile tramite ATmel Studio. Sono io che la voglio usare con l'IDE di Arduino e quindi mi tocca fare le acrobazie.
Questo finché non produrremo le schedine con il 328PB.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 05, 2016, 01:36 pm
Ma se cambio il firmware del 32U4 mettendo su "Arduino as ISP", perdo il clock?
Se non cambi i fuse no.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 05, 2016, 01:39 pm
Possibile che il software sul 32u4 usa un timer per fornire un clock al 328, se fosse così da protocollo dovrebbe essere possibile modificare il valore del timer.
Non usa nessun timer, sulla maggior parte degli AVR è possibile ripetere il clock su un pin settando il fuse CKOUT, ed è questo che viene fatto sulla scheda Atmel, in pratica con un solo quarzo forniscono il clock a tutti e due i micro.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 05, 2016, 01:45 pm
Questo (http://www.hmangas.com/Electronica/Datasheets/ATMEGA328P-XMINI/How%20to%20connect%20the%20ATmega328P%20Xplained%20Mini%20to%20the%20Arduino%20IDE.pdf) pdf (dovrebbe essere di Atmel) spiega come usare la loro schedina con l'IDE di Arduino, è per la versione con il 328P però non credo cambi nulla per la versione con il 328PB.
Stranamente dicono di caricare l'optiboot standard e non quello per SPI, mi sa tanto che il 32u4 è collegato anche tramite seriale, tocca vedere lo schema della scheda, per il reset dicono di mettere un ponticello sul connettore ISP.
Mi sa tanto che si fa prima a caricarci sopra il software tramite uno dei vari programmatori ISP supportati dal IDE di Arduino. :)
Title: Re: ATmega328PB
Post by: astrobeed on Feb 05, 2016, 01:57 pm
Confermo che anche la seriale è collegata tra il 32u4 e il 328PB, tramite resistenze da 1k come su Arduino in modo da permettere l'uso con device esterni.
La linea di reset è gestita da PE6 sul Atmega 32u4 e non dovrebbe essere un problema farla commutare quando c'è il DTR, tocca vedere come lavora l'emulazione programmatore del 16u2 usato su Arduino UNO, modificare il pin del reset, se necessario, e ricompilare per il 32u4, appena mi arriva lo schedino ci penso io a farlo.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 05, 2016, 01:59 pm
Dimenticavo, link (http://www.atmel.com/images/Atmel-42469-ATmega328PB-Xplained-Mini_User-Guide.zip) per scaricare lo schema della 328PB Xplained.
Title: Re: ATmega328PB
Post by: testato on Feb 05, 2016, 03:15 pm
mi sa tanto che il 32u4 è collegato anche tramite seriale
Non potrebbe essere altrimenti visto che il protocollo debugWire funziona attraverso il pin Reset del 328.
L'unica cosa nella probrammazione via optiboot e' che si perde il reset automatico perche' il debugWire e' allergico al condensatore  :)

Title: Re: ATmega328PB
Post by: astrobeed on Feb 05, 2016, 04:12 pm
Non potrebbe essere altrimenti visto che il protocollo debugWire funziona attraverso il pin Reset del 328.
Cosa c'entra il debug wire con la seriale ?

Quote
L'unica cosa nella probrammazione via optiboot e' che si perde il reset automatico perche' il debugWire e' allergico al condensatore  :)
Infatti il condensatore non ci va, quella è una cosa che deriva dalla vecchia 2009 dove c'era l'FTDI, con i 16u2, o il 32u4, non serve a nulla visto che il reset lo comandi direttamente da un pin, basta tenere il pin in condizione di alta impedenza (input) quando non deve resettare il 328, si setta come out low quando deve resettare per qualche decina di microsecondi.
Title: Re: ATmega328PB
Post by: testato on Feb 05, 2016, 06:05 pm
si ho mischiato le cose  :)
ma restando sul discorso reset, il firmware attuale ufficiale arduino, montato nei 32u4, gia' e' in grado di resettare il 328 senza il C di mezzo ?
Non ho mai provato a bypassare il C su una Uno R3 e vedere se continua a funzionare
Title: Re: ATmega328PB
Post by: astrobeed on Feb 05, 2016, 06:31 pm
si ho mischiato le cose  :)
ma restando sul discorso reset, il firmware attuale ufficiale arduino, montato nei 32u4, gia' e' in grado di resettare il 328 senza il C di mezzo ?
Non credo, mi sa tanto che all'Arduino Team ancora non hanno capito che quel condensatore non serve a nulla e che sarebbe facilissimo gestire la questione autoreset si/no, oppure autoreset solo durante la programmazione, da software senza passare per DTR più condensatore.
Title: Re: ATmega328PB
Post by: testato on Feb 05, 2016, 07:52 pm
@Paolo

hai provato a caricare il firmware usb/seriale via Flip sul 32u4 + il bootloader sul 328, e vedere se si riesce a programmare come una semplice Uno ?
se non funziona causa mancanza del C dovresti comunque poter fare l'upload resettando manualmente il solo 328 al momento giusto
Title: Re: ATmega328PB
Post by: Etemenanki on Feb 06, 2016, 11:24 am
... in Cina c'è il capodanno ed è tutto fermo ...
Se vuoi, nel frattempo posso buttare giu qualcosa lo stesso, cosi vedi cosa ne esce e se ti va bene ...
Title: Re: ATmega328PB
Post by: Maurotec on Feb 06, 2016, 06:19 pm
Quote
Non usa nessun timer, sulla maggior parte degli AVR è possibile ripetere il clock su un pin settando il fuse CKOUT, ed è questo che viene fatto sulla scheda Atmel, in pratica con un solo quarzo forniscono il clock a tutti e due i micro.
Si lo sapevo ;) , io mi riferivo al commento di: PaoloP (http://forum.arduino.cc/index.php?topic=374642.msg2599872#msg2599872)

Quindi come si spiega che la frequenza cambia in automatico?

Ciao.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 08, 2016, 11:16 am
Il chip del mEDBG è un classico 32U4. Dal suo datasheet (http://www.atmel.com/images/atmel-7766-8-bit-avr-atmega16u4-32u4_datasheet.pdf (http://www.atmel.com/images/atmel-7766-8-bit-avr-atmega16u4-32u4_datasheet.pdf)) si legge
Quote
6.8 Clock Output Buffer
The device can output the system clock on the CLKO pin. To enable the output, the CKOUT Fuse has to be
programmed. This mode is suitable when the chip clock is used to drive other circuits on the system. The clock
also will be output during reset, and the normal operation of I/O pin will be overridden when the fuse is
programmed. Any clock source, including the internal RC Oscillator, can be selected when the clock is output on
CLKO. If the System Clock Prescaler is used, it is the divided system clock that is output.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 10, 2016, 06:50 pm
Ci siamo quasi!!

Quote
Arduino:1.6.7 (Windows XP), Scheda:"Arduino 328pb"

In file included from F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_pulse.S:52:0:

f:\arduino-1.6.7\hardware\tools\avr\avr\include\avr\io.h:623:6: warning: #warning "device type not defined" [-Wcpp]

 #    warning "device type not defined"

      ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c: In function 'attachInterrupt':

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:151:8: error: #error attachInterrupt not finished for this CPU (case 0)

       #error attachInterrupt not finished for this CPU (case 0)

        ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c: In function 'detachInterrupt':

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:243:8: error: #error detachInterrupt not finished for this cpu

       #error detachInterrupt not finished for this cpu

        ^

exit status 1
Errore durante la compilazione

  Questo report potrebbe essere più ricco di informazioni con
  "Mostra un output dettagliato durante la compilazione"
  abilitato in "File > Impostazioni"
Naturalmente lui cerca __ATMEGA328PB__ e non trova la cpu corrispondente. Ma avr-gcc compila!!
Title: Re: ATmega328PB
Post by: PaoloP on Feb 10, 2016, 06:55 pm
Questo il log esteso.
Code: [Select]
Arduino:1.6.7 (Windows XP), Scheda:"Arduino 328pb"

F:\arduino-1.6.7\arduino-builder -dump-prefs -logger=machine -hardware "F:\arduino-1.6.7\hardware" -hardware "F:\arduino-1.6.7\portable\packages" -hardware "F:\arduino-1.6.7\portable\sketchbook\hardware" -tools "F:\arduino-1.6.7\tools-builder" -tools "F:\arduino-1.6.7\hardware\tools\avr" -tools "F:\arduino-1.6.7\portable\packages" -built-in-libraries "F:\arduino-1.6.7\libraries" -libraries "F:\arduino-1.6.7\portable\sketchbook\libraries" -fqbn=328PB:avr:328pb -ide-version=10607 -build-path "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp" -warnings=all -prefs=build.warn_data_percentage=75 -verbose "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\untitled778959926.tmp\sketch_feb10a\sketch_feb10a.ino"
F:\arduino-1.6.7\arduino-builder -compile -logger=machine -hardware "F:\arduino-1.6.7\hardware" -hardware "F:\arduino-1.6.7\portable\packages" -hardware "F:\arduino-1.6.7\portable\sketchbook\hardware" -tools "F:\arduino-1.6.7\tools-builder" -tools "F:\arduino-1.6.7\hardware\tools\avr" -tools "F:\arduino-1.6.7\portable\packages" -built-in-libraries "F:\arduino-1.6.7\libraries" -libraries "F:\arduino-1.6.7\portable\sketchbook\libraries" -fqbn=328PB:avr:328pb -ide-version=10607 -build-path "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp" -warnings=all -prefs=build.warn_data_percentage=75 -verbose "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\untitled778959926.tmp\sketch_feb10a\sketch_feb10a.ino"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp\sketch\sketch_feb10a.ino.cpp" -o "nul"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp\sketch\sketch_feb10a.ino.cpp" -o "nul"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp\sketch\sketch_feb10a.ino.cpp" -o "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"F:\arduino-1.6.7\tools-builder\ctags\5.8-arduino5/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp\sketch\sketch_feb10a.ino.cpp" -o "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp\sketch\sketch_feb10a.ino.cpp.o"
In file included from f:\arduino-1.6.7\hardware\tools\avr\avr\include\avr\pgmspace.h:88:0,

                 from F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp\sketch\sketch_feb10a.ino.cpp:1:

f:\arduino-1.6.7\hardware\tools\avr\avr\include\avr\io.h:623:6: warning: #warning "device type not defined" [-Wcpp]

 #    warning "device type not defined"

      ^

In file included from F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino/USBAPI.h:25:0,

                 from F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino/Arduino.h:225,

                 from C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp\sketch\sketch_feb10a.ino.cpp:1:

f:\arduino-1.6.7\hardware\tools\avr\avr\include\avr\eeprom.h:41:3: warning: #warning "Device does not have EEPROM available." [-Wcpp]

 # warning "Device does not have EEPROM available."

   ^

"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-gcc" -c -g -x assembler-with-cpp -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_pulse.S" -o "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp\core\wiring_pulse.S.o"
In file included from F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_pulse.S:52:0:

f:\arduino-1.6.7\hardware\tools\avr\avr\include\avr\io.h:623:6: warning: #warning "device type not defined" [-Wcpp]

 #    warning "device type not defined"

      ^

"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-gcc" -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c" -o "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build9da1532c6e70e8b47a3a5a5b268705c3.tmp\core\WInterrupts.c.o"
In file included from F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:28:0:

f:\arduino-1.6.7\hardware\tools\avr\avr\include\avr\io.h:623:6: warning: #warning "device type not defined" [-Wcpp]

 #    warning "device type not defined"

      ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c: In function 'attachInterrupt':

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:151:8: error: #error attachInterrupt not finished for this CPU (case 0)

       #error attachInterrupt not finished for this CPU (case 0)

        ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:166:8: warning: #warning attachInterrupt may need some more work for this cpu (case 1) [-Wcpp]

       #warning attachInterrupt may need some more work for this cpu (case 1)

        ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:70:72: warning: unused parameter 'mode' [-Wunused-parameter]

 void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) {

                                                                        ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c: In function 'detachInterrupt':

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:243:8: error: #error detachInterrupt not finished for this cpu

       #error detachInterrupt not finished for this cpu

        ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:255:8: warning: #warning detachInterrupt may need some more work for this cpu (case 1) [-Wcpp]

       #warning detachInterrupt may need some more work for this cpu (case 1)

        ^

In file included from F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:29:0:

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c: In function 'INT0_vect':

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:340:5: warning: 'INT0_vect' appears to be a misspelled signal handler

 ISR(INT0_vect) {

     ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c: In function 'INT1_vect':

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:344:5: warning: 'INT1_vect' appears to be a misspelled signal handler

 ISR(INT1_vect) {

     ^

exit status 1
Errore durante la compilazione
Title: Re: ATmega328PB
Post by: PaoloP on Feb 10, 2016, 07:00 pm
Allora... ho usato la nuova toolchain Atmel AVR 8-bit Toolchain 3.5.0 - Windows(http://www.atmel.com/tools/ATMELAVRTOOLCHAINFORWINDOWS.aspx (http://www.atmel.com/tools/ATMELAVRTOOLCHAINFORWINDOWS.aspx))
Ho estratto i file sovrascrivendo la toolchian precedente in hardware/tool.
Ho aggiunto i 3 file di Astro più un 4° che mi chiedeva (specs-atmega328pb).
Ho creato un file boards.txt e un platform.txt, selezionato la scheda e provato a compilare.

Questo il file che ho creato
Code: (specs-atmega328pb) [Select]

#
# Auto-generated specs for AVR device atmega328p (core avr5, 16-bit SP)
#
# Generated by   : ./gcc/config/avr/gen-avr-mmcu-specs.c
# Generated from : ./gcc/config/gcc.c
#                  ./gcc/config/avr/specs.h
#                  ./gcc/config/avr/avrlibc.h
# Used by        : avr-gcc compiler driver
# Used for       : building command options for sub-processes
#
# See <https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html>
# for a documentation of spec files.


# If you intend to use an existing device specs file as a starting point
# for a new device spec file, make sure you are copying from a specs
# file for a device from the same core architecture and SP width.
# See <https://gcc.gnu.org/gcc-5/changes.html> for a description
# of how to use such own spec files.

*avrlibc_startfile:
crtatmega328pb.o%s

*avrlibc_devicelib:
%{!nodevicelib:-latmega328pb}

*cc1_n_flash:
%{!mn-flash=*:-mn-flash=1}

*cc1_rmw:
%{mrmw}

*cc1_errata_skip:
%{!mskip-bug: -mno-skip-bug}

*asm_arch:
-mmcu=avr5

*asm_relax:
%{mrelax:--mlink-relax}

*asm_rmw:
%{mrmw}

*asm_errata_skip:
%{!mskip-bug: -mno-skip-bug}

*link_pmem_wrap:
%{mpmem-wrap-around: --pmem-wrap-around=32k}

*link_relax:
%{mrelax:--relax %(link_pmem_wrap)}

*link_arch:
%{mmcu=*:-m%*}

*link_data_start:
-Tdata 0x800100

*link_text_start:


*self_spec:
%{!mmcu=avr*: %<mmcu=* -mmcu=avr5} %<msp8

# AVR-LibC's avr/io.h uses the device specifying macro to determine
# the name of the device header.  For example, -mmcu=atmega8a triggers
# the definition of __AVR_ATmega8A__ and avr/io.h includes the device
# header 'iom8a.h' by means of:
#
#     ...
#     #elif defined (__AVR_ATmega8A__)
#     #  include <avr/iom8a.h>
#     #elif ...
#
# If no device macro is defined, AVR-LibC uses __AVR_DEV_LIB_NAME__
# as fallback to determine the name of the device header as
#
#     "avr/io" + __AVR_DEV_LIB_NAME__ + ".h"
#
# If you provide your own specs file for a device not yet known to
# AVR-LibC, you can now define the hook macro __AVR_DEV_LIB_NAME__
# as needed so that
#
#     #include <avr/io.h>
#
# will include the desired device header.  For ATmega8A the supplement
# to *cpp would read
#
#     -D__AVR_DEV_LIB_NAME__=m8a


*cpp:
-D__AVR_ATmega328PB__ -D__AVR_DEVICE_NAME__=atmega328pb

# End of file

Ho preso quello dell'ATmega328P e aggiunto un B dove necessario.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 10, 2016, 07:13 pm
Aggiunto nel file io.h
Code: [Select]
#elif defined (__AVR_ATmega328PB__)
#  include <avr/iom328pb.h>

dopo il define del 328P

Nuovo log.
Code: [Select]
Arduino:1.6.7 (Windows XP), Scheda:"Arduino 328pb"

F:\arduino-1.6.7\arduino-builder -dump-prefs -logger=machine -hardware "F:\arduino-1.6.7\hardware" -hardware "F:\arduino-1.6.7\portable\packages" -hardware "F:\arduino-1.6.7\portable\sketchbook\hardware" -tools "F:\arduino-1.6.7\tools-builder" -tools "F:\arduino-1.6.7\hardware\tools\avr" -tools "F:\arduino-1.6.7\portable\packages" -built-in-libraries "F:\arduino-1.6.7\libraries" -libraries "F:\arduino-1.6.7\portable\sketchbook\libraries" -fqbn=328PB:avr:328pb -ide-version=10607 -build-path "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp" -warnings=all -prefs=build.warn_data_percentage=75 -verbose "F:\arduino-1.6.7\examples\01.Basics\Blink\Blink.ino"
F:\arduino-1.6.7\arduino-builder -compile -logger=machine -hardware "F:\arduino-1.6.7\hardware" -hardware "F:\arduino-1.6.7\portable\packages" -hardware "F:\arduino-1.6.7\portable\sketchbook\hardware" -tools "F:\arduino-1.6.7\tools-builder" -tools "F:\arduino-1.6.7\hardware\tools\avr" -tools "F:\arduino-1.6.7\portable\packages" -built-in-libraries "F:\arduino-1.6.7\libraries" -libraries "F:\arduino-1.6.7\portable\sketchbook\libraries" -fqbn=328PB:avr:328pb -ide-version=10607 -build-path "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp" -warnings=all -prefs=build.warn_data_percentage=75 -verbose "F:\arduino-1.6.7\examples\01.Basics\Blink\Blink.ino"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\sketch\Blink.ino.cpp" -o "nul"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\sketch\Blink.ino.cpp" -o "nul"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\sketch\Blink.ino.cpp" -o "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"F:\arduino-1.6.7\tools-builder\ctags\5.8-arduino5/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\sketch\Blink.ino.cpp" -o "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\sketch\Blink.ino.cpp.o"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-gcc" -c -g -x assembler-with-cpp -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_pulse.S" -o "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\core\wiring_pulse.S.o"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-gcc" -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c" -o "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\core\WInterrupts.c.o"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-gcc" -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\hooks.c" -o "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\core\hooks.c.o"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-gcc" -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring.c" -o "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\core\wiring.c.o"
"F:\arduino-1.6.7\hardware\tools\avr/bin/avr-gcc" -c -g -Os -Wall -Wextra -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328pb -DF_CPU=20000000L -DARDUINO=10607 -DARDUINO_AVR_UNO_PLUS -DARDUINO_ARCH_AVR   "-IF:\arduino-1.6.7\hardware\arduino\avr\cores\arduino" "-IF:\arduino-1.6.7\portable\sketchbook\hardware\328PB\avr\variants\328pb" "F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_analog.c" -o "C:\DOCUME~1\Paolucci\IMPOST~1\Temp\build103227bd619e80aa32fb5673c38dd923.tmp\core\wiring_analog.c.o"
In file included from f:\arduino-1.6.7\hardware\tools\avr\avr\include\avr\io.h:99:0,

                 from F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_private.h:26,

                 from F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_analog.c:25:

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_analog.c: In function 'analogWrite':

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_analog.c:220:17: error: 'COM4A1' undeclared (first use in this function)

     sbi(TCCR4A, COM4A1);

                 ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_analog.c:220:5: note: in expansion of macro 'sbi'

     sbi(TCCR4A, COM4A1);

     ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_analog.c:220:17: note: each undeclared identifier is reported only once for each function it appears in

     sbi(TCCR4A, COM4A1);

                 ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_analog.c:220:5: note: in expansion of macro 'sbi'

     sbi(TCCR4A, COM4A1);

     ^

exit status 1
Errore durante la compilazione
Title: Re: ATmega328PB
Post by: vbextreme on Feb 10, 2016, 07:16 pm
prova a dargli come mcu
mcu=avr5
e poi
-D__AVR_ATmega328PB__
Title: Re: ATmega328PB
Post by: PaoloP on Feb 10, 2016, 07:32 pm
Credo che il problema sia anche il file pins_arduino.h che non ho modificato. Quindi si aspetta registri che non ci sono o sono stati modificati.
I parametri mcu e -D li prende già dal file spec che ho creato copiando quello del 328P, aggiungendo un B dove serviva.

EDIT: mi studierò meglio il file dei pin.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 11, 2016, 05:59 pm
Ecco... con questo compila...
Ma non ho idea se funzioni.  :)

P.S. Naturalmente ci sono ancora cose da sistemare come la corrispondenza dei pin delle porte e di qualche registro.

Naturalmente il file pins_arduino.h va in una sottocartella variants/328pb/

P.S.S.
Allego anche il file specs.



Title: Re: ATmega328PB
Post by: PaoloP on Feb 15, 2016, 01:49 pm
Novità?
Io sono fermo.
Title: Re: ATmega328PB
Post by: Maurotec on Feb 15, 2016, 04:14 pm
Quote
Novità?
Si, l'umidità ha fatto gonfiare la cassettiera e non riesco più ad aprire nessuno dei cassetti. :D

Quote
Io sono fermo.
Pure io.

A parte gli scherzi, ho letto tutto e mi sembra che sei sulla buona strada, ma tocca verificare se il firmware una volta trasferito funziona correttamente e questo lo può fare solo chi ha il micro in questione.

Forse prima di provare con l'ide si dovrebbe provare in C se tutto funziona, così da limitare le cause di malfunzionamento al compilatore o ad avr-libc.

Ciao.

Title: Re: ATmega328PB
Post by: PaoloP on Feb 15, 2016, 04:43 pm
Io il micro lo ho. E che non ho il tempo di provare.  :smiley-confuse:
Title: Re: ATmega328PB
Post by: PaoloP on Feb 19, 2016, 07:27 pm
Oggi ho provato a compilare degli esempi della libreria SPI e Wire.
La SPI funzione, mentre per la Wire, anche se ho aggiunto le definizioni al file pins_arduino, non va.

Ho modificato il platform dandogli il percorso per la toolchain nella stessa directory dei file board.txt e platform.txt
Ho aggiunto un direcory tools e decompressa all'interno l'ultima toolchain Atmel.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 25, 2016, 08:04 am
Uwe, ho trovato il repository di Watterott
--> https://github.com/watterott/ATmega328PB-Testing (https://github.com/watterott/ATmega328PB-Testing)
Qui la scheda in sviluppo --> https://github.com/watterott/wattuino#wattuino-pro-mini-pb (https://github.com/watterott/wattuino#wattuino-pro-mini-pb)
Title: Re: ATmega328PB
Post by: uwefed on Feb 25, 2016, 07:54 pm
Uwe, ho trovato il repository di Watterott
--> https://github.com/watterott/ATmega328PB-Testing (https://github.com/watterott/ATmega328PB-Testing)
Qui la scheda in sviluppo --> https://github.com/watterott/wattuino#wattuino-pro-mini-pb (https://github.com/watterott/wattuino#wattuino-pro-mini-pb)
Ti avevo giá spedito un email prima di leggere questo.
Ciao Uwe
Title: Re: ATmega328PB
Post by: testato on Feb 25, 2016, 08:23 pm
Quindi è già pronta sia la uno versione PB che il core ?
Qualcuno l'ha provato sulla explained atmel ?
Title: Re: ATmega328PB
Post by: gpb01 on Feb 25, 2016, 08:30 pm
Quindi è già pronta sia la uno versione PB che il core ?
NO, tutto il resto c'è ... è proprio il "core" che manca ...  :smiley-confuse:

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Feb 26, 2016, 02:24 pm
Ho trovato un attimo di tempo per "giocare" con la 328PB Xplained, con Atmel Studio 7 non ci sono problemi, in pochi secondi ho scritto il codice per far lampeggiare il led e l'ho caricato tramite mEDBG.
Secondo test, ho provato a barare caricando la beta del core fatta Watterott per vedere se compilando tramite Atmel Studio 7, col plugin visual micro, viene utilizzata la toolchain Atmel invece di quella fornita con l'IDE. Purtroppo niente da fare, viene usata la toolchain delIDE e ci si ferma subito con l'errore sul nome cpu non riconosciuto.
Devo vedere se è possible forzare visual micro ad usare la toolchain Atmel invece di quella del IDE, se ci riesco il problema compilazione è risolto, rimarrebbe la questione core per il supporto alle periferiche aggiuntive del 328PB.
Tenuto conto di quanto costa la 328PB Xplained, che è predisposta per usare le shield di Arduino, c'è pure il chip mEDBG, non credo vale la pena fare board dedicate per questo micro, se non altro per il costo nettamente maggiore per realizzare una piccola serie, a breve ci sarà pure la versioni mini di Watterott.
Direi che conviene concentrarsi sulla questione software piuttosto che quella hardware.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 26, 2016, 03:21 pm
Astro, io dall'IDE di Arduino riesco a compilare.
Non riesco a fare l'upload da IDE verso l'Xplained PB.


Astro, io riesco a compilare e a fare l'upload da IDE con la Xplained PB.  :)  :)  :)
Title: Re: ATmega328PB
Post by: PaoloP on Feb 26, 2016, 03:37 pm
Ho usato come bootloader quello di Watterott, con quello standard di Arduino non andava.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 26, 2016, 04:22 pm
Ho usato come bootloader quello di Watterott, con quello standard di Arduino non andava.
L'optiboot standard non va bene per la questione delle due seriali, l'init è leggermente diverso.
Quale toolchain stai usando ?
Ho appena provato a trapiantare la 4.9.2 Atmel dentro l'IDE e non da problemi se compilo per i vari micro standard, se compilo per il 328PB adesso non dà errore sul nome micro, però ottengo vari errori sul core.

Questi sono gli errori se provo a compilare il blink.

Code: [Select]
Arduino:1.6.5 (Windows 7), Scheda:"ATmega328PB, 16 MHz"

In file included from e:\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

                 from E:\arduino\hardware\arduino\avr\cores\arduino\wiring_private.h:28,

                 from E:\arduino\hardware\arduino\avr\cores\arduino\wiring_analog.c:27:

E:\arduino\hardware\arduino\avr\cores\arduino\wiring_analog.c: In function 'analogWrite':

E:\arduino\hardware\arduino\avr\cores\arduino\wiring_analog.c:222:17: error: 'COM4A1' undeclared (first use in this function)

     sbi(TCCR4A, COM4A1);

                 ^

E:\arduino\hardware\arduino\avr\cores\arduino\wiring_analog.c:222:5: note: in expansion of macro 'sbi'

     sbi(TCCR4A, COM4A1);

     ^

E:\arduino\hardware\arduino\avr\cores\arduino\wiring_analog.c:222:17: note: each undeclared identifier is reported only once for each function it appears in

     sbi(TCCR4A, COM4A1);

                 ^

E:\arduino\hardware\arduino\avr\cores\arduino\wiring_analog.c:222:5: note: in expansion of macro 'sbi'

     sbi(TCCR4A, COM4A1);

     ^

Errore durante la compilazione

  Questo report potrebbe essere più ricco
di informazioni con
  "Mostra un output dettagliato durante la compilazione"
  abilitato in "File > Impostazioni"



p.s.
Posso inventare pure io una nuova parola ?
Propongo arduinoso per indicare un sistema composto da più Arduino. :D


Title: Re: ATmega328PB
Post by: astrobeed on Feb 26, 2016, 04:24 pm
Dimenticavo, per il momento non mi interessa usare il bootloader sul 328PB, faccio prima ad usare l'AVRISP MKII  :)
Title: Re: ATmega328PB
Post by: gpb01 on Feb 26, 2016, 04:50 pm
Quale toolchain stai usando ?
Probabilmente, in funzione dell'ambiente, una di quelle indicate QUI (https://github.com/watterott/ATmega328PB-Testing) da Watterott ... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Feb 26, 2016, 04:53 pm
Ho aggiunto i 3 file di Astro più un 4° che mi chiedeva (specs-atmega328pb).
Si serve anche il file "specs-atmega328pb", va copiato in "\arduinoxxx\hardware\tools\avr\lib\gcc\avr\4.9.2\device-specs", io l'ho preso da Atmel Studio 7

E' un file di testo, senza estensione, questo è il suo contenuto:

Code: [Select]
#
# Auto-generated specs for AVR device atmega328pb (core avr5, 16-bit SP)
#
# Generated by   : ./gcc/config/avr/gen-avr-mmcu-specs.c
# Generated from : ./gcc/config/gcc.c
#                  ./gcc/config/avr/specs.h
#                  ./gcc/config/avr/avrlibc.h
# Used by        : avr-gcc compiler driver
# Used for       : building command options for sub-processes
#
# See <https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html>
# for a documentation of spec files.


# If you intend to use an existing device specs file as a starting point
# for a new device spec file, make sure you are copying from a specs
# file for a device from the same core architecture and SP width.
# See <https://gcc.gnu.org/gcc-5/changes.html> for a description
# of how to use such own spec files.

*avrlibc_startfile:
crtatmega328pb.o%s

*avrlibc_devicelib:
%{!nodevicelib:-latmega328pb}

*cc1_n_flash:
%{!mn-flash=*:-mn-flash=1}

*cc1_rmw:
%{mrmw}

*cc1_errata_skip:
%{!mskip-bug: -mno-skip-bug}

*asm_arch:
-mmcu=avr5

*asm_relax:
%{mrelax:--mlink-relax}

*asm_rmw:
%{mrmw}

*asm_errata_skip:
%{!mskip-bug: -mno-skip-bug}

*link_pmem_wrap:
%{mpmem-wrap-around: --pmem-wrap-around=32k}

*link_relax:
%{mrelax:--relax %(link_pmem_wrap)}

*link_arch:
%{mmcu=*:-m%*}

*link_data_start:
-Tdata 0x800100

*link_text_start:


*self_spec:
%{!mmcu=avr*: %<mmcu=* -mmcu=avr5} %<msp8

# AVR-LibC's avr/io.h uses the device specifying macro to determine
# the name of the device header.  For example, -mmcu=atmega8a triggers
# the definition of __AVR_ATmega8A__ and avr/io.h includes the device
# header 'iom8a.h' by means of:
#
#     ...
#     #elif defined (__AVR_ATmega8A__)
#     #  include <avr/iom8a.h>
#     #elif ...
#
# If no device macro is defined, AVR-LibC uses __AVR_DEV_LIB_NAME__
# as fallback to determine the name of the device header as
#
#     "avr/io" + __AVR_DEV_LIB_NAME__ + ".h"
#
# If you provide your own specs file for a device not yet known to
# AVR-LibC, you can now define the hook macro __AVR_DEV_LIB_NAME__
# as needed so that
#
#     #include <avr/io.h>
#
# will include the desired device header.  For ATmega8A the supplement
# to *cpp would read
#
#     -D__AVR_DEV_LIB_NAME__=m8a


*cpp:
-D__AVR_ATmega328PB__ -D__AVR_DEVICE_NAME__=atmega328pb -D__AVR_DEV_LIB_NAME__=m328pb

# End of file




Title: Re: ATmega328PB
Post by: PaoloP on Feb 26, 2016, 06:08 pm
Si, sto usando la 4.9.2 (http://distribute.atmel.no/tools/opensource/Atmel-AVR-GNU-Toolchain/3.5.0/ (http://distribute.atmel.no/tools/opensource/Atmel-AVR-GNU-Toolchain/3.5.0/)). Più i famosi 4 file,più un file board.txt, platforms.txt e pins_arduino.h che ho creato io.
Li trovi in una delle pagine precedenti.
Oppure usi quelli di Watterott.  :)

Per l'upload devi aggiornare avrdude.conf con le indicazioni di Guglielmo.
Watterott si è spinta oltre includendo anche il nuovo file con le definizioni per l'uso delle EEPROM.

La cosa complicata è che le definizioni dei nomi dei registi tra i due micro P e PB sono diverse. Quindi il core di Arduino non le riconosce.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 26, 2016, 06:11 pm
La nuova domanda è: cambiare i nomi dei registri nel core di Arduino con dei #ifdef e #else oppure rinominare i registri nel file iom328pb.h? (che però e sotto copyright e non ridistribuibile)
Title: Re: ATmega328PB
Post by: astrobeed on Feb 26, 2016, 06:18 pm
Nel frattempo mi sono inventato una "paraculata" per compilare gli sketch di Arduino col 328PB senza dover modificare nulla nel IDE :D
La ricetta prevede Atmel Studio 7 senza il plugin visual micro, questa release di Atmel Studio prevede nativamente l'import degli sketch di Arduino senza bisogno di installare nulla, basta andare in File->New->Project  e viene aperta una finestra di selezione tipo progetto tra cui c'è anche la voce "create project from Arduino Sketch", selezionate questa, lo sketch da importare e la directory dove si trova l'IDE di Arduino, gli serve per importare i core e le librerie.
Fatto quanto sopra basta andare nelle proprietà del progetto e cambiare il micro in 328PB, invece del 328P, ed ecco che il progetto viene compilato senza problemi per il 328PB, si può caricare tramite mEDBG e, sorpresa, funziona anche il debug tramite mEDBG se compilato in modo debug :)
Ovviamente senza un core specifico manca il supporto per le periferiche aggiuntive e i GPIO in più, però questo non è un reale problema perché basta crearsi una lib aggiuntiva di supporto, con copia incolla dal core del 328 cambiando come serve registri e nomi, ed ecco il supporto completo al 328PB. :)
Title: Re: ATmega328PB
Post by: astrobeed on Feb 26, 2016, 06:19 pm
La nuova domanda è: cambiare i nomi dei registri nel core di Arduino con dei #ifdef e #else oppure rinominare i registri nel file iom328pb.h?
Perché devi cambiarli ?
Title: Re: ATmega328PB
Post by: PaoloP on Feb 26, 2016, 06:22 pm
Perchè il core dell'IDE cerca il registro, ad esempio SPCR della SPI, e quelli di Atmel l'ho hanno rinominato SPCR1.
E così per tutti i registri interni.
Se provi a compilare sketch per la I2C, per lo SPI o altre periferiche...va in errore.
Title: Re: ATmega328PB
Post by: testato on Feb 26, 2016, 06:25 pm
Si atmel7 importa direttamente sketch, pero perdi la compatibilità diretta con ide.
Inoltre  n on importa le librerie, le si deve manualmente gestire
Title: Re: ATmega328PB
Post by: astrobeed on Feb 26, 2016, 06:41 pm
Si atmel7 importa direttamente sketch, pero perdi la compatibilità diretta con ide.
Inoltre  n on importa le librerie, le si deve manualmente gestire
Nella prova che ho appena fatto mi ha importato anche le librerie aggiuntive, oltre a quelle del core.
Title: Re: ATmega328PB
Post by: testato on Feb 26, 2016, 06:44 pm
Scusa intendo le librerie terze parti.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 26, 2016, 07:05 pm
Scusa intendo le librerie terze parti.
Io sto parlando di quelle, nel dubbio ho provato adesso ad importare un mio progetto per Atmega2560, che gira su una board che ho progettato io, non su Arduino, dove uso svariate librerie di terze parti e librerie personali, tutte poste nelle cartella lib dentro lo sketchbook, ha importato in automatico tutto senza problemi, ho compilato, caricato il codice sulla scheda e funziona perfettamente.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 26, 2016, 07:49 pm
Scusa intendo le librerie terze parti.
Un update sul import delle librerie, funziona solo se non si usa il portable, per fare le prove stavo usando una installazione dedicata del IDE 1.6.5 r5 con lo sketchbook dentro documenti, come da default, col portable non le trova e tocca copiare i file a mano e importarli nel progetto.
Title: Re: ATmega328PB
Post by: testato on Feb 26, 2016, 07:57 pm
ecco spiegato infatti io uso sempre e solo portable.
Toccherebbe segnalarlo ad Atmel, ma come si fa ad aprire un bugreport ufficiale ?
Title: Re: ATmega328PB
Post by: astrobeed on Feb 27, 2016, 12:26 pm
Ho rifatto tutta la procedura di sostituzione della toolchain e ho fatto la copia diretta della cartella hardware di Watterott dentro quella dell'installazione di Arduino, ora compila per il 328PB senza errori, probabilmente avevo dimenticato qualcosa quando ho copiato i file singolarmente.
Risolta la questione compilatore adesso tocca risolvere la questione core.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 27, 2016, 02:57 pm
Un update, devo ancora verificarlo in pratica, però sembra che la seconda UART viene già gestita regolarmente senza dover toccare nulla nel core, basta usare un "Serial.begin1(xxxxx)" per inizializzarla.
Questo perché la gestione delle seriali hardware nel core non è gestita in base al tipo di micro, ma dalla presenza delle definizioni dei relativi registri nel compilatore, che a sua volta è legata al micro dichiarato.
Dopo verifico in pratica se la seconda UART è realmente funzionante.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 27, 2016, 03:21 pm
Confermato, la seconda UART funziona come Serial1 senza dover modificare nulla nel core.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 27, 2016, 03:45 pm
Altra buona notizia, nel file pins_arduino.h di Watterott sono presenti anche le definizioni per i quattro gpio aggiuntivi.
Sia i due canali ADC in più, A6 e A7, che i due GPIO in più, 22 e 23, sono funzionanti senza dover modificare nulla nel core, in alternativa si possono usare quattro GPIO in più, 20, 21, 22, 23, se non servono i due canali ADC aggiuntivi.
Title: Re: ATmega328PB
Post by: gpb01 on Feb 27, 2016, 04:15 pm
Gran bella notizia Astro ...
... fondamentalmente quella che mi serviva era proprio la seconda seriale :D

Purtroppo ... Mouser è fuori scorta per i 328PB ... quelli normali li danno a 14 settimane, ho preso quelli a range esteso (tanto costano poco di più) e ... dovrebbero arrivare il 9 Marzo ... ::)

Guglielmo

Title: Re: ATmega328PB
Post by: astrobeed on Feb 27, 2016, 09:52 pm
Gran bella notizia Astro ...
... fondamentalmente quella che mi serviva era proprio la seconda seriale :D
Pure a me interessava in particolar modo la seconda seriale, visto che anche i gpio in più funzionano siamo già a buon punto. :)
Domani vedo se riesco a sistemare anche la seconda I2C, che mi interessa, a questo punto io sarei a posto perché per la seconda SPI non ho alcun interesse, i timer in più wiring non li ha mai gestiti neanche sulla Mega2560, quelli li uso in modo diretto con i loro registri.

Quote
Purtroppo ... Mouser è fuori scorta per i 328PB ... quelli normali li danno a 14 settimane,
Da Digikey sono disponibili immediatamente, oltre 1000 pezzi a magazzino.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 28, 2016, 09:12 am
Per quanto riguarda l'I2C sono dolori, almeno per il momento potete scordarvi l'uso della libreria wire perché a sua volta si appoggia alla twi della avrlibc che ancora non supporta il 328PB, vale anche per la versione 2, pertanto non ci sono le corrette definizioni per i registri.
Altro problema è che le definizioni dei registri I2C tra il 328P e il 328PB non differiscono solamente per la presenza dello 0 o 1 aggiuntivo, ma anche nelle definizioni dei singoli bit.
In pratica tocca scrivere una libreria dedicata per la gestione delle 2 I2C del 328PB, però devo ancora verificare in Atmel Studio 7 come è gestita la cosa, magari è possibile estrarre qualcosa.

Title: Re: ATmega328PB
Post by: PaoloP on Feb 28, 2016, 09:35 am
Altra buona notizia, nel file pins_arduino.h di Watterott sono presenti anche le definizioni per i quattro gpio aggiuntivi.
Sia i due canali ADC in più, A6 e A7, che i due GPIO in più, 22 e 23, sono funzionanti senza dover modificare nulla nel core, in alternativa si possono usare quattro GPIO in più, 20, 21, 22, 23, se non servono i due canali ADC aggiuntivi.
C'erano già anche nel mio pin_arduino.h  :)

Per l'I2C anche io ho difficoltà, come già detto l'Atmel ha cambiato tutte le definizioni dei registri.... ma perché?
Title: Re: ATmega328PB
Post by: gpb01 on Feb 28, 2016, 09:36 am
Da Digikey sono disponibili immediatamente, oltre 1000 pezzi a magazzino.
... si, avevo visto, grazie, ma avevo anche altro materiale da ordinare da Mouser ed ho fatto un ordine unico ;)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Feb 28, 2016, 10:07 am
Per l'I2C anche io ho difficoltà, come già detto l'Atmel ha cambiato tutte le definizioni dei registri.... ma perché?
Perché il 328PB e il 324PB sono i primi due AVR con la doppia I2C e questo richiede una differenziazione dei registri, esattamente come già c'è per la seriale.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 28, 2016, 10:20 am
Quindi si potrebbe fare come per la seriale.... un header principale e poi i sotto file header 1 e 2.
E si includono in base alle definizioni dei registri.

Differenziazione ok, ma perché rinominare anche il primo registro e non solo il secondo? Idem per la SPI.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 28, 2016, 10:38 am
Quindi si potrebbe fare come per la seriale.... un header principale e poi i sotto file header 1 e 2.
La seriale funziona perché la struttura multi UART è già prevista, p.e. il mega2560 ha 4 uart, e la selezione non avviene a livello di core, ma tramite la verifica dei registri interessati a livello di compilatore.
In pratica il numero delle UART usate da Arduino non dipende da una serie di if sul modello della mcu, come per altre caratteristiche, ma dalle define messe in atto dal compilatore, a sua volta in funzione del tipo di mcu dichiarato.
Il vero problema è che attualmente non esiste nessun supporto low level, le avrlibc, per la doppia I2C e la doppia SPI, su questa non ancora verificato ma non mi pare esistano altri AVR con la doppia SPI, in pratica puoi usarle solo utilizzando direttamente i relativi registri, la stessa cosa vale per Atmel Studio 7, ho appena verificato.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 28, 2016, 11:33 am
Sono riuscito a compilare per la I2C usando la wire, per farlo ho creato una nuova libreria denominata WirePB partendo da un copiaincolla della cartella Wire originale, ho modificato tutti i riferimenti ai registri aggiungendo 1 ai nomi, va fatto anche per il file twi.c e twi.h contenuti nella cartella "Wire/util", e ho modificato il file twi.h delle avrlibc in questo modo:

Code: [Select]

da --> #define TW_STATUS (TWSR & TW_STATUS_MASK)
a  --> #define TW_STATUS (TWSR1 & TW_STATUS_MASK)


In questo modo la compilazione avviene senza errore, vale solo per la I2C 1 che corrisponde a quella aggiuntiva sul 328PB, devo ancora verificare se funziona sul serio, poi c'è da gestire la questione delle pullup interne, ma questo è il minore dei problemi.
Se la I2C funziona anche in pratica provo a modificare la classe Wire in Wire1 e Wire2, modificare twi.h delle avrlibc in modo che in base al modello di micro usa il corretto registro, TWSR oppure TWSR0/TWSR1, se tutto va come deve ho risolto anche la questione I2C, basterà usare WirePB.h invece di wire.h aggiungendo la relativa cartella alle librerie di Arduino.

Title: Re: ATmega328PB
Post by: PaoloP on Feb 28, 2016, 03:22 pm
Astro, questo è il mio file pins_arduino.
A differenza del watterott ci sono le definizioni della seconda I2C e della seconda SPI, oltre ai timer corretti eccetto il timer4B che messo sullo stesso pin del timer3A.

Ho aggiunto anche definizioni mancanti nel file iom328pb.h ma spero di liberarmene appena si modifica il core Arduino con i giusti nomi dei registri.

Inoltre il file di watterott mappa solo 20 pin digitali il mio 24. :-)
C'è da controllare comunque la corrispondenza delle formule per bit e mask.
Code: [Select]
#define digitalPinToPCICR(p)    (((p) >= 0 && (p) <= 23) ? (&PCICR) : ((uint8_t *)0))
#define digitalPinToPCICRbit(p) (((p) <= 7) ? 2 : (((p) <= 13) ? 0 : 1))
#define digitalPinToPCMSK(p)    (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 23) ? (&PCMSK1) : ((uint8_t *)0))))
#define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14)))

#define digitalPinToInterrupt(p)  ((p) == 2 ? 0 : ((p) == 3 ? 1 : NOT_AN_INTERRUPT))
Title: Re: ATmega328PB
Post by: astrobeed on Feb 28, 2016, 03:53 pm
Astro, questo è il mio file pins_arduino.
A differenza del watterott ci sono le definizioni della seconda I2C e della seconda SPI, oltre ai timer corretti eccetto il timer4B che messo sullo stesso pin del timer3A.
Il file pins_arduino ha una importanza secondaria, comunque anche in quello di Watterott sono definiti tutti i 24 pin, provati e funzionano, ci sono pure tutti i canali pwm.
Per la I2C e la SPI non serve a nulla dichiarare i pin in pin_arduino per il semplice motivo che ci pensano le relative librerie ad inizializzare i pin come serve.
Intanto confermo che la seconda I2C funziona con la modifica che ho fatto, adesso sto cercando di sistemare le cose in modo da farle andare tutte e due usando "wire" per quella standard e "wire1" per la seconda, in questo modo dovrebbe essere possibile usare la I2C del 328PB anche con vecchi sketch/librerie semplicemente sostituendo "Wire.h" con "WirePB.h".
Title: Re: ATmega328PB
Post by: PaoloP on Feb 28, 2016, 06:20 pm
Puoi usare le tue SPI.h e la Wire.h sostituendole a quelle del core.
Crea una directory libraries dove c'è il file board.txt e l'IDE prende le tue invece che quelle standard di Arduino.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 28, 2016, 07:02 pm
Ho caricato sul Google Drive il mio core senza core per il 328PB
--> https://drive.google.com/file/d/0B-r72Ke08DpxSkFndU4tZm1oU0k/view?usp=sharing (https://drive.google.com/file/d/0B-r72Ke08DpxSkFndU4tZm1oU0k/view?usp=sharing)
In pratica c'è la toolchain 3.5.0 con i file modificati, i file board.txt e platform.txt, pins_arduino e le librerie spi.h e wire.h.
Questa versione funziona solo con 1 spi e 1 wire.
Astro ha detto che per la seconda seriale non bisogna modificare niente...  :)  :)

Il file è un .7z (12MB), il .zip veniva circa 39MB.
Title: Re: ATmega328PB
Post by: astrobeed on Feb 28, 2016, 07:12 pm
In pratica c'è la toolchain 3.5.0 con i file modificati, i file board.txt e platform.txt, pins_arduino e le librerie spi.h e wire.h.
Ti sei scordato che va modificato anche twi.h della toolchain altrimenti non appena compili per la I2C va in errore.
Per il momento l'ho sistemato così per la TWI0, poi vedo come adattarlo per tutte e due le I2C.

Code: [Select]
/**
 * \ingroup util_twi
 * \def TW_STATUS
 *
 * TWSR, masked by TW_STATUS_MASK
 */
#if defined (__AVR_ATmega328PB__)
  #define TW_STATUS (TWSR0 & TW_STATUS_MASK)
#else
  #define TW_STATUS (TWSR & TW_STATUS_MASK)
#endif
Title: Re: ATmega328PB
Post by: PaoloP on Feb 28, 2016, 07:14 pm
eheh  :)  ho messo un undef e un nuovo define in twi.c della lib wire.
Così non tocco i file della toolchain.

Infatti non ho toccato neanche io.h, sfrutto la composizione del nome del file.
Title: Re: ATmega328PB
Post by: PaoloP on Feb 28, 2016, 07:21 pm
C'è la toolchain 3.5.1 --> http://distribute.atmel.no/tools/opensource/Atmel-AVR-GNU-Toolchain/3.5.1/ (http://distribute.atmel.no/tools/opensource/Atmel-AVR-GNU-Toolchain/3.5.1/)

Adesso vedo se hanno messo il Pb!!  :)

EDIT: C'è il 328PB!!!  :smiley-mr-green:  :smiley-mr-green:  :smiley-mr-green:  :smiley-mr-green:

EDIT2: :'(  :'(  :'(  :'(  :'(  Non è per Windows.

EDIT3: Non solo... manca il file delle definizioni iom328pb.h e c'è solo il file specs-atmega328pb.
Il compilatore lo riconosce ma poi si pianta...

Ma perché fanno le cose a metà?
Title: Re: ATmega328PB
Post by: boschi on Feb 29, 2016, 07:20 pm
peccato capiti nel periodo sbagliato, ma nel caso ne facciate una seconda revisione, potreste aggiungere una fila di header "giusti", stile fishino UNO, in modo tale da poter prototipare direttamente su millefori?

comunque state facendo un ottimo lavoro!
Title: Re: ATmega328PB
Post by: PaoloP on Feb 29, 2016, 08:27 pm
Pare che il progetto di una nuova scheda abbia fatto la stessa fine del lancio del Falcon 9. Abortito!
Ci stiamo concentrando sulla parte software.
Title: Re: ATmega328PB
Post by: uwefed on Mar 01, 2016, 12:03 am
peccato capiti nel periodo sbagliato, ma nel caso ne facciate una seconda revisione, potreste aggiungere una fila di header "giusti", stile fishino UNO, in modo tale da poter prototipare direttamente su millefori?
Watterott sta preparando di produrre una MINI PRO col 328PB. Non so quando sará disponibile, forse quando il IDE di Arduino possa gestire le nuove funzionalitá del PB. https://github.com/watterott/wattuino
Ciao Uwe

Title: Re: ATmega328PB
Post by: testato on Mar 01, 2016, 04:20 pm
ma la mini pro che senso ha se rimane con la vecchia pedinatura ?
Title: Re: ATmega328PB
Post by: PaoloP on Mar 01, 2016, 07:42 pm
Non ho visto se ha pin aggiuntivi.  :)

Comunque sto combattendo con la Wire. La sto modificando seguendo l'esempio della hardwareserial.h.
Gli ho integrato i file twi e creato un file Wire0.cpp e Wire1.cpp.

Vi farò sapere...
Title: Re: ATmega328PB
Post by: uwefed on Mar 01, 2016, 10:13 pm
ma la mini pro che senso ha se rimane con la vecchia pedinatura ?
hanno aggiunto i 4 nuovi pin (A6 e A7) e PE0 e PE1
(http://forum.arduino.cc/index.php?action=dlattach;topic=374642.0;attach=156989)

Ciao Uwe

Title: Re: ATmega328PB
Post by: testato on Mar 02, 2016, 07:43 am
Ok, ottimo
Avrà successo, o meglio avranno successo i cloni cinesi a 2€  :D

Title: Re: ATmega328PB
Post by: uwefed on Mar 02, 2016, 09:19 am
Ok, ottimo
Avrà successo, o meglio avranno successo i cloni cinesi a 2€  :D
Dipende tutto se sará inglobato nel ArduinoIDE.

Ciao Uwe
Title: Re: ATmega328PB
Post by: testato on Mar 02, 2016, 12:21 pm
Inglobato ufficialmente non so, ma di certo uscirà a breve il core terze parti da installare via board manager
Title: Re: ATmega328PB
Post by: PaoloP on Mar 02, 2016, 07:01 pm
Ecco la mia Wire in allegato.
Da un errori multipli di "undefined reference to". Credo sia il linker ma non so come risolvere.
Il file sono da mettere in una directory "Wire" dentro la cartella "libraries" del core ATmega328PB.

p.s. Se la sovrascivete alla wire, cancellate la cartella utility che contiene i file twi.h e twi.c. Li ho inglobati... male ... ma li ho inglobati.
Title: Re: ATmega328PB
Post by: uwefed on Mar 03, 2016, 02:40 am
Andre Moehl su https://hackaday.io/project/9313-uino-mini-super-atmega328pb
ha messo una libreria sostitutiva SPI (Library Replacement for SPI) https://cdn.hackaday.io/files/9313398447392/libraries.tar.gz
Non mi ci metto di provarla a quest' ora.
Ciao Uwe
Title: Re: ATmega328PB
Post by: PaoloP on Mar 03, 2016, 08:07 am
Ho visto il codice... usa sempre e solo una SPI. Mentre sarebbe da riscrivere multi SPI come la HardwareSerial.h. Ma è un lavoraccio.

Funzionano entrambe le SPI.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 04, 2016, 09:49 am
A breve pubblicheró una nuova versione della libreria Wire.
Ho preso ispirazione dalla HardwareSerial e dalla DallasTemperature/OneWire.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 04, 2016, 11:37 am
Ecco la libreria Wire.
Purtroppo non compila perchè da un errore nel linker. (undefined reference to)
Potete dare uno sguardo al codice?
Title: Re: ATmega328PB
Post by: gpb01 on Mar 07, 2016, 07:07 pm
Materiale arrivato da Mouser ... :D

Paolo ...

Ho usato come bootloader quello di Watterott, con quello standard di Arduino non andava.
... hai solo caricato il bootloader sul ATmega328PB (via ISP) o hai dovuto anche fare altre cose/modifiche per il ATmega32U4 ?

Grazie,

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 07, 2016, 07:24 pm
Ho caricato il bootloader e cambiato i fuse per far partire il bootloader. Non ho modificato niente sul chip 32U4 (aka mEDBG).

I fuse e il bootloader li ho messi con ATmel Studio 7 (che è solo per Windows).
Title: Re: ATmega328PB
Post by: PaoloP on Mar 07, 2016, 07:31 pm
Come librerie aggiuntive usa quelle di Andre Moehl su https://hackaday.io/project/9313-uino-mini-super-atmega328pb (https://hackaday.io/project/9313-uino-mini-super-atmega328pb).
La SPI è completa, mentre la Wire la deve completare.
La mia Wire è troppo complessa e non funziona... lascia perdere. In effetti il codice scritto da Moehl è migliore.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 07, 2016, 08:34 pm
Ho caricato il bootloader e cambiato i fuse per far partire il bootloader.
Perfetto ...
... se ricordo bene optiboot richiede solo 512 bytes quindi fuse:

low: 0xE0
high: 0x9C
extended: 0xFD

(Brown-out enabled a 2.7V, Debug Wire enabled, Serial Programming enabled, Boot size 512, Boot reset vector enabled, External clock RESET:6 CK/14 CK +65ms)

giusto ?

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 08, 2016, 12:23 am
Debug Wire non ti serve abilitato almeno che non abbia un software che lo supporti.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 08, 2016, 12:35 am
Debug Wire non ti serve abilitato almeno che non abbia un software che lo supporti.
Attenzione che se abiliti debug wire (fuse DWEN) non puoi programmare il micro tramite ISP, puoi farlo solo tramite debug wire e relativo programmatore che lo supporta, p.e. il Dragon di Atmel.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 08, 2016, 06:57 am
Grazie Paolo, grazie Astro ...
... ho sia il Dragon che l'ICE, ma non pensavo al fatto che, usando il pin RESET, rendeva impossibile la programmazione ISP e, in questa fase ... non vorrei perdere la possibilità  ::)

Low: 0xE0
High: 0xDC
Extended: 0xFD

Guglielmo

Title: Re: ATmega328PB
Post by: testato on Mar 08, 2016, 09:30 am
Il debugwire comunque viene gestito direttamente da AtmelStudio e lo gestisce con un popout ed anche una voce apposita nei menu
C'è anche un softearino terze parti per attivarlo disattivarlo.

Questa cosa è necessaria perché appunto una volta attivato non si potrebbe ricambiare il fuse per disattivarlo visto che per i fuse ti serve spi
Title: Re: ATmega328PB
Post by: astrobeed on Mar 08, 2016, 09:33 am
Il debugwire comunque viene gestito direttamente da AtmelStudio e lo gestisce con un popout in apertura di programma.
Si ma se non disponi di un programmatore che supporta Debug Wire ti attacchi, p.e. con Arduino ISP se attivi il fuse DWEN hai finito di giocare con Arduino :)
Title: Re: ATmega328PB
Post by: testato on Mar 08, 2016, 04:36 pm
Infatti visto che lui ne ha due di prog adatti gli dicevo appunto di non preoccuparsi
Title: Re: ATmega328PB
Post by: PaoloP on Mar 09, 2016, 09:54 am
Disponibile la WattDuino 328PB ProMini
--> http://www.watterott.com/en/Wattuino-pro-mini-PB-5V-16MHz (http://www.watterott.com/en/Wattuino-pro-mini-PB-5V-16MHz)
Title: Re: ATmega328PB
Post by: nid69ita on Mar 09, 2016, 09:55 am
Disponibile la WattDuino 328PB ProMini
--> http://www.watterott.com/en/Wattuino-pro-mini-PB-5V-16MHz (http://www.watterott.com/en/Wattuino-pro-mini-PB-5V-16MHz)
Con una bella scritta: "The ATmega328PB microcontroller is currently not directly supported from the Arduino IDE" però !
Title: Re: ATmega328PB
Post by: gpb01 on Mar 09, 2016, 10:05 am
Paolo, Astro, ho visto che nella distribuzione di Watterott ci sono vari "optiboot" per il 328PB (optiboot_m328pb_blink.hex, optiboot_m328pb_wdt250ms.hex, optiboot_m328pb_wdt500ms.hex e optiboot_m328pb.hex) ... quale avete usato ?

Ho provato il "optiboot_m328pb_blink.hex" ed effettivamente il led lampeggia, mentre con quello che immaginavo fosse di base "optiboot_m328pb.hex", al reset il led non da segni di vita (... ricordavo che optiboot facesse dei lampeggi) ... è normale ?

Grazie :)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 09, 2016, 10:08 am
Con una bella scritta: "The ATmega328PB microcontroller is currently not directly supported from the Arduino IDE" però !
E' giusto che avvisino.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 09, 2016, 10:09 am
Paolo, Astro, ho visto che nella distribuzione di Watterott ci sono vari "optiboot" per il 328PB (optiboot_m328pb_blink.hex, optiboot_m328pb_wdt250ms.hex, optiboot_m328pb_wdt500ms.hex e optiboot_m328pb.hex) ... quale avete usato ?

Ho provato il "optiboot_m328pb_blink.hex" ed effettivamente il led lampeggia, mentre con quello che immaginavo fosse di base "optiboot_m328pb.hex", al reset il led non da segni di vita (... ricordavo che optiboot facesse dei lampeggi) ... è normale ?

Grazie :)

Guglielmo
Io uso quello senza blink. Credo sia questione di gusti personali.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 09, 2016, 10:15 am
Io uso quello senza blink. Credo sia questione di gusti personali.
Ok  (http://www.nikonland.eu/forum/public/style_emoticons/default/ibf_thumbup.gif)  Grazie.

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 09, 2016, 03:43 pm
Bene ...
... dopo alcune difficoltà per fargli vedere la toolchain 3.5.1 sotto OSX ed aver sistemato la mancanza di alcuni files ... almeno le funzioni base sembrano andare senza errori  :smiley-mr-green:


Blink compilato correttamente e caricato via USB (quindi tramite bootloader).

Gli esperimenti continuano ... ;)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 09, 2016, 04:12 pm
Puoi sperimentare anche la libreria SPI (https://hackaday.io/project/9313-uino-mini-super-atmega328pb (https://hackaday.io/project/9313-uino-mini-super-atmega328pb)). La Wire non è completa.

Considera però che il file pins_arduino.h di Watterott non assegna bene i pin della seconda SPI. Li duplica sulla prima. Guarda il mio --> https://github.com/PaoloP74/ATmega328PB-Testing/blob/master/hardware/atmega328pb/avr/variants/pb/pins_arduino.h (https://github.com/PaoloP74/ATmega328PB-Testing/blob/master/hardware/atmega328pb/avr/variants/pb/pins_arduino.h)
Title: Re: ATmega328PB
Post by: gpb01 on Mar 09, 2016, 05:12 pm
Grazie Paolo, allora metto quello che hai linkato ...

Ma il file platform.txt va toccato ? Perché io non l'ho modificato e non ho errori ... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 09, 2016, 05:18 pm
Il platform.txt solo va modificato solo se vuoi separare la toolchain da quella integrata.
Io invece di cambiare la toolchain dell'IDE ne ho aggiunta un'altra e ho messo il percorso nel file platform.txt.

Ricordati di modificare l'AVRdude.conf.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 09, 2016, 05:33 pm
Io ho rimpiazzato la toolchain integrata con quella di Atmel per OSX ... ho dovuto creare qualche "Symbolic Link" per dei files che si trovavano in un altra cartella, ed ho aggiunto i files mancati. Null'altro :)

Si, ho modificato il avrdude.conf come avevamo detto parecchi post fa ;)

Ah ... ho messo la SPI che mi hai indicato :)

Ora ho un IDE "portable" per OS X ... che è QUASI completo ... :D :D :D

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 09, 2016, 05:55 pm
Mmm ...
... riscontro un problema nell'uso della EEPROM con le chiamate alla AVRlibc (#include <avr/eeprom.h>).

Il linker va in errore con:

Code: [Select]
var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build162b418b25013babb9a807cdc8fae07f.tmp/sketch/FindMe.ino.cpp.o: In function `setup_InitEEPROM()':
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1833: undefined reference to `__eerd_dword_m328p'
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1841: undefined reference to `__eewr_dword_m328p'
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1845: undefined reference to `__eewr_byte_m328p'
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1846: undefined reference to `__eewr_byte_m328p'
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1849: undefined reference to `__eewr_block_m328p'
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1854: undefined reference to `__eewr_block_m328p'
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1855: undefined reference to `__eewr_block_m328p'
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1865: undefined reference to `__eerd_byte_m328p'
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1866: undefined reference to `__eerd_byte_m328p'
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1875: undefined reference to `__eerd_block_m328p'
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1884: undefined reference to `__eerd_block_m328p'
/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_162b418b25013babb9a807cdc8fae07f/FindMe.ino:1898: undefined reference to `__eerd_block_m328p'

... naturalmente ho già sostituito il file eeprom.h con quello che include le righe :

#elif defined (__AVR_ATmega328PB__)
# define _EEPROM_SUFFIX  _m328p

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 09, 2016, 06:04 pm
Qui il file EEPROM.h proposto da Watterott --> https://github.com/watterott/ATmega328PB-Testing/blob/master/hardware/tools/avr/avr/include/avr/eeprom.h (https://github.com/watterott/ATmega328PB-Testing/blob/master/hardware/tools/avr/avr/include/avr/eeprom.h)
Si, crea il nome della funzione concatenando nome proprio della funzione e suffisso.
Non chiedermi il perché.... suppongo che dentro la lib precompilata siano tutte divise per tipo di processore.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 09, 2016, 06:08 pm
Mmm ...
... riscontro un problema nell'uso della EEPROM con le chiamate alla AVRlibc (#include <avr/eeprom.h>).
Ho fatto una ricerca all'interno di tutta la toolchain, però non trovo traccia di definizioni o funzioni del tipo "eewr_byte_m328", sembra che non esiste nulla di simile, la ricerca l'ho fatta fare su tutta la cartella "avr" anche nei file .exe.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 09, 2016, 06:27 pm
Ho fatto una ricerca all'interno di tutta la toolchain, però non trovo traccia di definizioni o funzioni del tipo "eewr_byte_m328", sembra che non esiste nulla di simile, la ricerca l'ho fatta fare su tutta la cartella "avr" anche nei file .exe.
... nella toolchain originale riesci a trovarlo ? Perché a me sembra di non trovarlo neanche in quella ... :o

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 09, 2016, 06:27 pm
Trovato in //arduino-1.6.7\hardware\tools\avr\avr\lib\avr5\libc.a (6 hits)  :)
Per la ricerca ho usato NotePad++
Title: Re: ATmega328PB
Post by: gpb01 on Mar 09, 2016, 06:45 pm
Trovato in //arduino-1.6.7\hardware\tools\avr\avr\lib\avr5\libc.a (6 hits)  :)
... ottimo ... mi sembra contenga SOLO cose relative alla eeprom (guardando dentro) ... ::)

Ho provato a sostituirlo a quello della toolchain 3.5.1 ... e la compilazione va a buon fine ...
... ci sarà da fidarsi ? ? ?

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 09, 2016, 06:48 pm
In effetti nella toolchain di Arduino ci sono quei reference, nella Toolchain Atmel non ci sono, io avevo fatto la ricerca nel IDE modificato per il 328PB, dove ho messo la toolchain Atmel.
Tocca provare le funzioni eeprom delle avrlibc con Atmel Studio 7 e verificare se funzionano con il 328PB, se è così tocca capire perché.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 09, 2016, 06:50 pm
... ci sarà da fidarsi ? ? ?
Bella domanda, speriamo che Atmel rilasci una toolchain comprensiva del 328PB senza dover usare l'update per Atmel studio da cui recuperare i file mancanti/modificati, solo in questo modo si può essere tranquilli (forse).
Title: Re: ATmega328PB
Post by: gpb01 on Mar 09, 2016, 06:58 pm
... ottimo ... mi sembra contenga SOLO cose relative alla eeprom (guardando dentro) ... ::)
NO, contiene anche altre cose, ma NON mi sembra che nessuna sia particolarmente legata all'HW ...
... manipolazione strighe, malloc, random, ecc.

Qualcuno vede cose particolari ? ? ?

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 10, 2016, 10:10 am
Puoi sperimentare anche la libreria SPI (https://hackaday.io/project/9313-uino-mini-super-atmega328pb (https://hackaday.io/project/9313-uino-mini-super-atmega328pb)). La Wire non è completa.
Paolo, ho un problema ... magari mi manca un pezzo ...
... ho sostituito la SPI con quella ch mi hai indicato ed ho lanciato la compilazione di un loro esempio, ma pare che non riconosca il nome di alcuni registri :

Code: [Select]
/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/arduino-builder -dump-prefs -logger=machine -hardware "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware" -tools "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/tools-builder" -tools "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/tools/avr" -built-in-libraries "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/libraries" -libraries "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/portable/sketchbook/libraries" -fqbn=arduino:avr:atmega328pb:speed=16mhz -ide-version=10607 -build-path "/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build324525c4bd877f21735c2c858a009659.tmp" -warnings=default -prefs=build.warn_data_percentage=75 -verbose "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/libraries/SPI/examples/BarometricPressureSensor/BarometricPressureSensor.ino"
/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/arduino-builder -compile -logger=machine -hardware "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware" -tools "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/tools-builder" -tools "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/tools/avr" -built-in-libraries "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/libraries" -libraries "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/portable/sketchbook/libraries" -fqbn=arduino:avr:atmega328pb:speed=16mhz -ide-version=10607 -build-path "/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build324525c4bd877f21735c2c858a009659.tmp" -warnings=default -prefs=build.warn_data_percentage=75 -verbose "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/libraries/SPI/examples/BarometricPressureSensor/BarometricPressureSensor.ino"
"/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328pb -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/cores/arduino" "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/variants/atmega328pb" "/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build324525c4bd877f21735c2c858a009659.tmp/sketch/BarometricPressureSensor.ino.cpp" -o "/dev/null"
"/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328pb -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/cores/arduino" "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/variants/atmega328pb" "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/libraries/SPI" "/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build324525c4bd877f21735c2c858a009659.tmp/sketch/BarometricPressureSensor.ino.cpp" -o "/dev/null"
"/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328pb -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/cores/arduino" "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/variants/atmega328pb" "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/libraries/SPI" "/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/libraries/SPI/SPI.cpp" -o "/dev/null"
"/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328pb -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/cores/arduino" "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/variants/atmega328pb" "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/libraries/SPI" "/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build324525c4bd877f21735c2c858a009659.tmp/sketch/BarometricPressureSensor.ino.cpp" -o "/dev/null"
"/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328pb -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/cores/arduino" "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/variants/atmega328pb" "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/libraries/SPI" "/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build324525c4bd877f21735c2c858a009659.tmp/sketch/BarometricPressureSensor.ino.cpp" -o "/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build324525c4bd877f21735c2c858a009659.tmp/preproc/ctags_target_for_gcc_minus_e.cpp"
"/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/tools-builder/ctags/5.8-arduino5/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build324525c4bd877f21735c2c858a009659.tmp/preproc/ctags_target_for_gcc_minus_e.cpp"
"/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/tools/avr/bin/avr-g++" -c -g -Os  -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328pb -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/cores/arduino" "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/variants/atmega328pb" "-I/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/libraries/SPI" "/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build324525c4bd877f21735c2c858a009659.tmp/sketch/BarometricPressureSensor.ino.cpp" -o "/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build324525c4bd877f21735c2c858a009659.tmp/sketch/BarometricPressureSensor.ino.cpp.o"
In file included from /Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/tools/avr/avr/include/avr/io.h:99:0,
                 from /Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/tools/avr/avr/include/avr/pgmspace.h:88,
                 from /Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:28,
                 from /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build324525c4bd877f21735c2c858a009659.tmp/sketch/BarometricPressureSensor.ino.cpp:1:
/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/libraries/SPI/SPI.h: In member function 'void SPISettings::init_AlwaysInline(uint32_t, uint8_t, uint8_t)':
/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/libraries/SPI/SPI.h:109:17: error: 'SPE0' was not declared in this scope
      spcr = _BV(SPE0) | _BV(MSTR0) | ((bitOrder == LSBFIRST) ? _BV(DORD0) : 0) |
                 ^
/Users/gpb01/Desktop/ATmega328PB/Arduino 328PB.app/Contents/Java/hardware/arduino/avr/libraries/SPI/SPI.h:109:29: error: 'MSTR0' was not declared in this scope
      spcr = _BV(SPE0) | _BV(MSTR0) | ((bitOrder == LSBFIRST) ? _BV(DORD0) : 0) |
                             ^

... e prosegue così per molte righe dando errore su tutti i vari registri ... che mi sono perso per strada ? ? ?

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 10, 2016, 10:15 am
... ed in effetti, io quei nomi, dentro ad iom328pb.h di Watterott ... NON li trovo ::)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 10, 2016, 10:26 am
... ed in effetti, io quei nomi, dentro ad iom328pb.h di Watterott ... NON li trovo ::)
Premesso che il file iom328pb.h è della toolchain Atmel e non di Watterott, c'è il fatto che è leggermente diverso da quello del 328P, in particolare nelle definizioni dei singoli bit dei registri che in alcuni casi non ci sono, p.e. MSTR0 è il bit 4 del registro SPCR0 e in iom328pb non è definito.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 10, 2016, 10:32 am
Aha ... ok ... e ... quindi ?  :smiley-mr-green:

Come mai saltano fuori tutti quegli errori ? Mi sono perso io qualche cosa per strada o ... è un'altro buco della Toolchain 3.5.1 ?

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 10, 2016, 10:44 am
Come mai saltano fuori tutti quegli errori ? Mi sono perso io qualche cosa per strada o ... è un'altro buco della Toolchain 3.5.1 ?
Non l'ho ancora provata, però mi sa tanto che è un errore della libreria che usa quei nomi, probabilmente perché utilizzati nella SPI originale e si sono limitati a sdoppiare le cose con l'aggiunta di 0 e 1 ai nomi (ipotesi mia da confermare).
Title: Re: ATmega328PB
Post by: gpb01 on Mar 10, 2016, 10:45 am
Astro ...
... noto un altra cosa ... tra il file iom328pb.h ed il datasheet del 328PB ci sono delle incongruenze ! Nel file sono riportati alcuni nomi, nel datasheet altri !

Prendi proprio i bit del registro SPCR0 (0x4C) ... e confronta i nomi dei bit che trovi nel file con quelli del datasheet (10/2015) ... a me risultano tutti differenti :o

Non solo, ma mi spieghi il valore HEX che si trova sul file iom328pb.h tra parentesi ? Perché NON corrisponde all'Offset del registro come da tabella a pagina 413 del datasheet ... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 10, 2016, 10:58 am
Astro ...
... noto un altra cosa ... tra il file iom328pb.h ed il datasheet del 328PB ci sono delle incongruenze ! Nel file sono riportati alcuni nomi, nel datasheet altri !
Credo di aver capito cosa hanno fatto in Atmel, per i nomi dei singoli bit hanno omesso il numero 0 o 1, in pratica sia per SPCR0 e SPCR1 si possono usare i simbolici dei singoli bit, p.e. MSTR, come indice dello stesso, ovviamente tramite operazione di shift o mascheratura.
Certo che il fatto che gli address usati sono diversi tra datasheet e file .h è preoccupante, più tardi faccio qualche prova con Atmel Studio 7 per vedere se la SPI 1 e 0 funzionano realmente, tocca verificare se c'è una errata corrige del datasheet, o una edizione più recente.
Si potrebbe risolvere la cosa, per Arduino, con delle #undef e mettere le #define attese dalla libreria standard.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 10, 2016, 11:06 am
Sono andato a verificare a cosa corrisponde l'address 0x2C, usato dalla SPI nel file .h, sul datasheet e mi dice che è PORTE.
Nel file .h PORTE è 0x0C, dato che PORTE ho già verificato che funziona perfettamente, sia come quattro GPIO che come due ADC e due GPIO, mi sa tanto che è il data sheet ad essere sbagliato.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 10, 2016, 11:19 am
.... mi sa tanto che è il data sheet ad essere sbagliato.
Siamo messi bene ... :smiley-confuse: :smiley-confuse: :smiley-confuse:

Mi sa che per cose come SPI, TWI e simili ... tocca aspettare una nuova revisione del datasheet o della toolchain perché al momento non si capisce un bel nulla e nulla corrisponde ... ::)

Guglielmo

P.S.: Il datasheet è sempre quello del 10/2015 ... nessun nuovo aggiornamento :(
Title: Re: ATmega328PB
Post by: astrobeed on Mar 10, 2016, 11:27 am
Mi sa che per cose come SPI, TWI e simili ... tocca aspettare una nuova revisione del datasheet o della toolchain perché al momento non si capisce un bel nulla e nulla corrisponde ... ::)
In teoria la toolchain Atmel usata tramite Atmel Studio 7 funziona, non ho ancora provato la SPI però le due I2C si e funzionano.
Per quanto riguarda le due UART e i GPIO quelli li ho già testati da IDE, non serve modificare nulla oltre all'inserimento dei file di Watterott, adesso vado a verificare gli address UART del data sheet e del file .h, mi aspetto pure qui una incongruenza, cosa curiosa che sia per la SPI che per PORTE la differenza è pari a 0x20.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 10, 2016, 11:30 am
P.S.: Il datasheet è sempre quello del 10/2015 ... nessun nuovo aggiornamento :(
... in compenso, il ATmega328PB Summary (http://www.atmel.com/Images/Atmel-42397-8-bit-AVR-Microcontroller-ATmega328PB_Summary.pdf) ... contiene una mappatura dei registri completamente diversa ... :o :o :o

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 10, 2016, 11:43 am
Forse ne sto venendo a capo, se guardi la mappatura del 328P fino 0x3F viene riportato un doppio address, il secondo è 0x20 più avanti, e corrisponde con quella del 328PB.
P.e. sul 328P per SPCR è riportato sia 0x2C che 0x4C, ora c'è da capire bene questa cosa perché il data sheet non specifica per quale motivo c'è questo doppio address, però gli address dopo 0x3F saltano a 0x60, esattamente 0x20 in avanti.
Title: Re: ATmega328PB
Post by: vbextreme on Mar 10, 2016, 11:47 am
è l'offset presente anche nel 328p, gli indirizzi vanno sommati all'offset così si ha l'indirizzo reale.
Questo è per un fattore di portabilità verso gli altri chip Avr, ovvero gli indirizzi rimangono gli stessi ma vengono sfasati dell'offset.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 10, 2016, 11:59 am
... in compenso, il ATmega328PB Summary (http://www.atmel.com/Images/Atmel-42397-8-bit-AVR-Microcontroller-ATmega328PB_Summary.pdf) ... contiene una mappatura dei registri completamente diversa ... :o :o :o
... e mi sembra congrua sia come nomi che come address con il file iom328pb.h :)

Ora, tornando a bomba alla libreria SPI rilasciata da Hackaday ... com'è che mi da tutti quegli errori ? Sono sbagliati i nomi dei registri/bit nella libreria ?

@PaoloP, ma a te funziona ?

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 10, 2016, 12:10 pm
è l'offset presente anche nel 328p, gli indirizzi vanno sommati all'offset così si ha l'indirizzo reale.
No, ed è pure scritto chiaramente sul data sheet perché c'è il doppio address nella nota 4 a margine della tabella, però solo sul data sheet del 328P, anche su quello del MEGA2560, non c'è questa nota sul datasheet del 328PB.

Code: [Select]
4. When using the I/O specific commands IN and OUT, the I/O addresses 0x00 - 0x3F must be used.
When addressing I/O Registers as data space using LD and ST instructions, 0x20 must be added to these addresses.
The ATmega48A/PA/88A/PA/168A/PA/328/P is a complex microcontroller with more peripheral units than can be supported within
 the 64 location reserved in Opcode for the IN and OUT instructions.
For the Extended I/O space from 0x60 -0xFF in SRAM, only the ST/STS/STD and LD/LDS/LDD instructions can be used.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 10, 2016, 12:16 pm
Visto quanto sopra direi che il data sheet del 328PB non è sbagliato, è solo carente di informazioni, il file iom328pb.h è corretto e si può usare.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 10, 2016, 06:47 pm
@PaoloP, ma a te funziona ?
Si. Ma perché io ho aggiunto le definizioni nel pins_arduino.h
Title: Re: ATmega328PB
Post by: PaoloP on Mar 10, 2016, 07:09 pm
No, ho fatto modifiche dopo la pubblicazione e non le ho inserite su github.
Appena posso sincronizzo la mia copia di lavoro con quella git.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 10, 2016, 07:09 pm
Guglielmo se tu che cancelli i post o il forum fa gli scherzi?
Title: Re: ATmega328PB
Post by: gpb01 on Mar 10, 2016, 07:11 pm
Si. Ma perché io ho aggiunto le definizioni nel pins_arduino.h
... che c'entra Paolo ? :o Qui parliamo del nome dei bit e dei registri, mica della mappatura dei pin ... ::)

Guglielmo

P.S.: Perdona, mea culpa,  mi sono accorto che avevo formulato male la domanda/risposta e l'ho cancellata per riproporla così ... ma tu sei stato più veloce  :smiley-mr-green:
Title: Re: ATmega328PB
Post by: PaoloP on Mar 10, 2016, 07:19 pm
Qui parliamo del nome dei bit e dei registri, mica della mappatura dei pin
Appunto, il nome dei bit deve essere uguale nelle librerie utilizzate. Se nelle definizioni ho SPIF e nella libreria chiama SPIF1, il compilatore si inca@@a. E ha ragione.
Quindi.... ho si scrivono le librerie con le definizioni dei registri e dei bit dei registri concordi con il file iom328pb.h oppure si scrivono le librerie con i nomi dei registri e bit dei registri come nel datasheet e si aggiorna il file iom328pb.h

Perché il vero problema è che Atmel ha fatto tutto alla "membro di segugio" usando nomi diversi tra il file delle definizioni e il datasheet.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 10, 2016, 07:33 pm
Appunto, il nome dei bit deve essere uguale nelle librerie utilizzate. Se nelle definizioni ho SPIF e nella libreria chiama SPIF1, il compilatore si inca@@a. E ha ragione. ...
Appunto ... ma non mi sembra che queste cose puoi metterle in pins_arduino.h ... ::)  Occorre correggere proprio la libreria SPI visto che iom328pb.h è meglio non toccarlo per ragioni di compatibilità ...

Che Atmel questa volta abbia fatto un bel casino ... è fuori dubbio ...  :D :smiley-mr-green: :D :smiley-mr-green:

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 10, 2016, 11:49 pm
Si, hanno fatto veramente un gran casino ...
... nel file iom328pb.h, per la SPI standard (non la 1) hanno cambiato alcuni nomi ed altri no :o

#define SPCR0   _SFR_IO8(0x2C)
#define SPR0    0
#define SPR1    1
#define CPHA    2
#define CPOL    3
#define MSTR    4
#define DORD    5
#define SPE     6
#define SPIE    7

#define SPSR0   _SFR_IO8(0x2D)
#define SPI2X   0
#define WCOL    6
#define SPIF    7

#define SPDR0   _SFR_IO8(0x2E)

... e, per di più, in contrasto con quanto scritto sia nel "summary" che nel "datasheet" (che tra loro sono diversi).

Peggio di così era difficile fare !!!  :smiley-evil: :smiley-evil: :smiley-evil:

C'è veramente il rischio di fare un sacco di lavoro inutile e che, magari con la prossima toolchain, s'accorgano del casino e cambino di nuovo tutti i nomi ... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 11, 2016, 08:43 am
E non hai controllato i timer, la wire e altre periferiche.  :smiley-mr-green:  :smiley-mr-green:
Title: Re: ATmega328PB
Post by: testato on Mar 11, 2016, 08:56 am
Ed è solo il primo rilascio post-acquisizione  :)

Title: Re: ATmega328PB
Post by: gpb01 on Mar 11, 2016, 09:01 am
Ed è solo il primo rilascio post-acquisizione  :)
Naaaaaa ...
... l'acquisizione è successiva, ricorda che il datasheet (incasinato) è datato 10/2015 !!!

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 09:07 am
Io tutto questo "casino" non lo vedo, c'è una logica in come sono assegnati i nomi.
Se il "diavolo" non ci mette lo zampino durante il fine settimana completo la mia patch per la wire, è quasi completa, che mantiene la compatibilità al 100% con la I2C standard in modo da non dover modificare nulla nei vecchi sketch/librerie salvo il dover usare "wirepb.h" al posto di "wire.h".
Title: Re: ATmega328PB
Post by: gpb01 on Mar 11, 2016, 09:17 am
Io tutto questo "casino" non lo vedo, c'è una logica in come sono assegnati i nomi.
Sicuramente ci sarà (... anche se non mi è chiaro perché cambiare alcuni nomi di registri e bit già esistenti) ...
... ma comunque, un minimo di congruenza tra il "Summary", il "datasheet" e quello che poi c'è in "iom328pb.h" sarebbe stata auspicabile non credi ? ? ? :o

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 09:25 am
... ma comunque, un minimo di congruenza tra il "Summary", il "datasheet" e quello che poi c'è in "iom328pb.h" sarebbe stata auspicabile non credi ? ? ? :o
Il data sheet è un porcheria, speriamo lo sistemano a breve, il file iom328pb.h è allineato con gli altri e io faccio riferimento a quello per i nomi registri da usare.
Il vero problema sono le avrlibc che per il momento non supportano il 328PB.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 09:28 am
Ed è solo il primo rilascio post-acquisizione  :)
A parte che il 328PB è uscito molto prima dell'acquisizione, però Microchip non ha mai rilasciato nuovi micro senza rilasciare assieme un aggiornamento dei loro compilatori per il pieno supporto.
Title: Re: ATmega328PB
Post by: testato on Mar 11, 2016, 10:25 am
In commercio era prima dell'acquisizione ?

Comunque Microchip è responsabile dell'attuale situazione  :)

Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 10:35 am
In commercio era prima dell'acquisizione ?
Il 328PB è uscito sul mercato a Settembre 2015, Microchip non ha nessuna responsabilità su i casini di Atmel fatti prima dell'acquisizione, lo stesso data sheet è uscito prima del fatto.
In tutti i casi Microchip ha sempre sfornato data sheet nettamente migliori di quelli di Atmel e ha un reference manual, oltre 10000 pagine complessive, per la famiglia otto bit dove viene spiegato tutto nel minimo dettaglio, cosa che Atmel non ha mai fatto, per non parlare della sterminata quantità di AN e relativo codice di esempio.
Non voglio far partire una faida pic vs avr, che non porterebbe da nessuna parte, però se parliamo di documentazione, tool di sviluppo, compilatori ufficiali, Atmel ha molto da imparare da Microchip, a cominciare dall fatto che MPLABX gira in modo nativo su Windows, MacOS, Linux, idem per i compilatori e tutti (tanti) tool forniti con l'IDE Microchip.
Del resto è Microchip che ha acquisito Atmel e non viceversa. :D

Title: Re: ATmega328PB
Post by: PaoloP on Mar 11, 2016, 10:52 am
Astro per la tua wire ti sei basato sul lavoro di Andre Moehl (https://hackaday.io/project/9313-uino-mini-super-atmega328pb (https://hackaday.io/project/9313-uino-mini-super-atmega328pb)) oppure hai fatto tutto ex-novo?
Non è necessario cambiare nome, basta creare una directory libraries dove c'è il file board.txt e prende da li.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 11:08 am
Astro per la tua wire ti sei basato sul lavoro di Andre Moehl
No, sto facendo tutto ex novo, non per sfiducia verso il lavoro degli altri, ma perché so cosa sto facendo e dove devo mettere le mani per eventuali modiche, ampliamenti, bug.

Quote
Non è necessario cambiare nome, basta creare una directory libraries dove c'è il file board.txt e prende da li.
No, va in conflitto con la wire originale perché contiene le stesse classi, almeno per la IC2 primaria, lo stesso problema che c'è con libreria ir :)
Piccola nota aggiuntiva, dato che sto lavorando con la schedina Atmel per la programmazione non uso il bootloader, uso l'AVRISP MKII direttamente da IDE, previa modifica della configurazione di avrdude, intanto posso confermare che tramite il chip mEDBG c'è la connessione seriale classica che permette di usare il serial monitor del IDE.
Title: Re: ATmega328PB
Post by: testato on Mar 11, 2016, 11:09 am
Che ora sia tutto in mano a MC può portare vantaggi, anche se ci vorrà tempo, nelle prime fasi di un acquisizione si tende a cambiare poche cose soci i gruppi di lavoro saranno rimasti gli stessi.

Però che ad oggi 11 marzo il responsabile legale di questo casino PB è Microchip è incontestabile. Se succede un danno la causa la va a fare microchip  :)

Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 11:15 am
Dimenticavo, base di partenza è il lavoro di Watterott per l'estensione del core Arduino al 328PB, oltre alla sostituzione della toolchain con quella più recente di Atmel, l'IDE che sto utilizzando per le prove è la 1.6.5r5, poi passerò tutto al 1.6.8 una volta finiti i test della nuova libreria per la wire.
Attualmente ho le due I2C funzionanti (devo ancora finire i test per tutte le condizioni operative) tramite due librerie distinte, quella per la I2C standard è 100% compatibile con la wire.h, devo solo fare il merge delle cose in un unico file, però potrei anche lasciare la cosa sotto forma di due librerie distinte, p.e. wire0.h e wire1.h, o più semplicemente un wirepb.h che include le altre due lib, oppure fare un piccola modifica alla wire.h originale dove in base al tipo di micro usa la versione standard oppure usa le altre due lib.


Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 11:19 am
Però che ad oggi 11 marzo il responsabile legale di questo casino PB è Microchip è incontestabile. Se succede un danno la causa la va a fare microchip  :)
Scusa quale casino ?
Atmel, che mantiene la sua posizione giuridica e responsabilità, non è responsabile per l'IDE di Arduino, loro ti dicono di usare Atmel Studio 7 dove tutto funziona perfettamente, verificato personalmente sul 338PB, oppure compilatori di terze parti, p.e. IAR oppure MikroC AVR che è appena stato aggiornato per il 328PB, dei quali sono responsabili i rispettivi produttori.
Poi se ti leggi la licenza d'uso dei vari compilatori, praticamente tutti, eventuali danni dovuti a bug, mancanze, etc, non sono coperte da nessuna garanzia/responsabilità, al massimo ti danno la nuova versione del compilatore, con i bug corretti, gratis se è un prodotto a pagamento.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 11, 2016, 11:22 am
Con la 1.6.7 non dava nessun errore di librerie duplicate. La 1.6.8 non l'ho provata.
Guarda che la Wire è stata modificata 2 giorni fa con una mia modifica. Ho chiesto di spostare un registro nel file twi.c. Inoltre hanno spostato la cartella utility sotto la src.

Se le tue modifiche sono retrocompatibili e allineate alla originale si potrebbe, in seguito, richiedere un merge nel core di Arduino.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 11:34 am
Con la 1.6.7 non dava nessun errore di librerie duplicate.
A me l'ha dato quando ho provato a seguire la strada dello stesso nome, comunque è un dettaglio irrilevante, sopratutto se la mia modifica viene inserita ufficialmente nel core di Arduino.
Una volta finito il lavoro e, sopratutto, i test, vediamo di proporla ufficialmente, però dovrebbero inserire anche tutte le altre modifiche necessarie per usare il 328PB altrimenti non serve a nulla.
Non ho controllato se sul forum internazionale stanno portando avanti anche loro lo sviluppo di librerie per il 328PB.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 11, 2016, 11:58 am
Non ho controllato se sul forum internazionale stanno portando avanti anche loro lo sviluppo di librerie per il 328PB.
No. Nessuno.
Gli unici siamo noi e il tizio su hackaday.
Poi c'è Watterott con il repository su GitHub ma senza librerie al momento.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 11, 2016, 11:58 am
.... oppure MikroC AVR che è appena stato aggiornato per il 328PB ....
Magari Astro, :smiley-confuse:

gli ho scritto, e NON solo io ... hanno risposto che lo implementeranno in una prossima release, ma la attuale 6.1.1 NON lo supporta (... e sul sito NON ho visto aggiornamenti in questi giorni, né l'apposita funzione dell'IDE rileva alcun aggiornamento).

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 12:01 pm
Magari Astro, :smiley-confuse:
Hai ragione, avevo letto che facevano a breve l'update però non l'hanno ancora rilasciato, è un prodotto che non uso, dei loro compilatori ho preso quello per gli ARM che è decisamente comodo per sviluppare applicazioni semplici in tempi brevi.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 12:03 pm
Gli unici siamo noi e il tizio su hackaday.
Però il tizio su hackday fornisce informazioni incomplete, a partire dai file da includere, non mi pare molto affidabile. :)
Title: Re: ATmega328PB
Post by: gpb01 on Mar 11, 2016, 12:06 pm
Però il tizio su hackday fornisce informazioni incomplete, a partire dai file da includere, non mi pare molto affidabile. :)
... concordo ... la libreria SPI NON ha neanche provato ad usarla con gli esempi a corredo, altrimenti avrebbe visto le decine di errori che tira fuori !!!  >:(

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 12:12 pm
Facciamo un attimo il punto della situazione, allo stato attuale abbiamo sicuramente funzionanti i quattro GPIO aggiuntivi del 328PB e le due UART, per poter dire di avere un update reale del IDE di Arduino serve almeno mettere in funzione le due I2C e le due SPI, i timer standard sembrano essere tutti funzionanti, devo ancora verificare se la libreria servo e tutti i pwm vanno come atteso, ma non credo ci siano soprese, idem la tone e la pulsein.
Una volta sistemati I2C e SPI non sarebbe male sviluppare una nuova libreria per l'accesso ai timer aggiuntivi, che sono un bel valore aggiunto su questo micro in quanto non usati dal core e liberi per l'uso, p.e. per gestire un semplice scheduler senza toccare le risorse standard di Arduino.
Se nel frattempo nel IDE 1.6.9 prendono in considerazione di aggiornare la toolchain all'ultima disponibile di Atmel, operazione semplicissima da fare, questo risolverebbe un sacco di noie. :)

Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 02:02 pm
Intanto una conferma per il pwm, funziona perfettamente su tutti i sei pin, per il 328P, con la corretta frequenza, 980 Hz su 5 e 6, 490 Hz su tutti gli altri, anche la millis() va bene, sebbene non ho motivo per pensare che non funziona dopo verifico anche la servo().

Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 02:12 pm
Alla lista dei todo per il 328PB, al fine di avere un core aggiornato per questo micro, aggiungo la gestione dei tre canali pwm aggiuntivi, però occorre tenere conto che vanno ad impegnare i pin 0,1,2, ovvero la seriale standard e INT0.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 02:27 pm
Confermato anche il funzionamento della libreria servo, assieme al pwm questo conferma che i tre timer, 0-1-2, usati dal core di Arduino funzionano senza problemi anche sul 328PB senza dover modificare nulla e che non c'è nessun "casino" con i nomi dei registri. :)
Title: Re: ATmega328PB
Post by: PaoloP on Mar 11, 2016, 03:32 pm
Astro, quale file pins_arduino.h stai usando? Quello di Watterott non ha i timer 3 e 4.
Nel mio invece c'è un errore del timer 3A ripetuto 2 volte, uno è 3B. Mentre il 4B è duplicato sul pin 3. Come si fa?
Title: Re: ATmega328PB
Post by: PaoloP on Mar 11, 2016, 03:38 pm
Discussioni su AVRfreaks
--> http://www.avrfreaks.net/forum/atmega328pb (http://www.avrfreaks.net/forum/atmega328pb)
--> http://www.avrfreaks.net/forum/error-mega328pb-datasheet-test (http://www.avrfreaks.net/forum/error-mega328pb-datasheet-test)
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 03:40 pm
Astro, quale file pins_arduino.h stai usando? Quello di Watterott non ha i timer 3 e 4.
Nel mio invece c'è un errore del timer 3A ripetuto 2 volte, uno è 3B. Mentre il 4B è duplicato sul pin 3. Come si fa?
Sto usando il file di watterott, non ha alcuna importanza inserire i pin dei timer 3 e 4 perché tanto per Arduino non esistono, sarà la libreria, da fare, che li gestisce ad indirizzare correttamente i vari pin, da fare molta attenzione con le normali funzioni, come ho già fatto notare i tre pwm aggiuntivi, dati dai timer 3 e 4, vanno ad usare la seriale standard e int0.
La mia idea per usare i timer in più non è tanto per eventi esterni, collegati ai pin, ma per gestire eventi interni senza dare fastidio agli altri eventi di Arduino gestiti tramite timer, p.e. una libreria servo che non toglie pin pwm perché usa il timer 3, o 4, invece del timer 1, etc.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 04:06 pm
Confermo anche il perfetto funzionamento della tone e della pulsein, così abbiamo provato tutte le funzioni che implicano l'uso dei timer e ci siamo tolti il dubbio dei possibili casini con il loro utilizzo da parte del IDE.
Voglio fare un paio di prove anche con la freqcount e la timer1, non fanno parte del IDE però sono molto utilizzate e programmano direttamente i timer manipolando i registri, se anche queste funzionano possiamo archiviare definitivamente la questione timer.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 11, 2016, 04:37 pm
Riscontro un problema nel file iom328pb.h ...

... mentre per la SPI sono definiti tutti i vari bit (address 0x2C, 0x2D e 0x2E) per la SPI1 (address 0xAC, 0xAD e 0XAE) NON sono definiti e ... non so che nomi usare (quelli del datasheet danno errore ... ma probabilmente perché non li trova in iom328pb.h) !

Che si fa ?  Si modifica il file iom328pb.h aggiungendo i "bit" mancanti nella SPI1 ? ? ? ::)

Guglielmo

Edit: Sto provando ad usare gli stessi nomi usati per la SPI ... in fin dei conti sono solo indici di bit quindi NON dovrebbe essere importante. Vi aggiorno ... ;)
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 04:53 pm
che si fa ?  Si modifica il file iom328pb.h aggiungendo i "bit" mancanti nella SPI1 ? ? ? ::)
L'avevo già spiegato qualche post dietro, i nomi usati per i singoli bit sono definiti solo una volta, senza divisione tra SPI0 e SPI1, perché sono da usare come indice per accedere ai singoli bit e non come accesso diretto al bit.
Per esempio con SPCRx abbiamo ;

Code: [Select]
#define SPCR0   _SFR_IO8(0x2C)
#define SPR0    0
#define SPR1    1
#define CPHA    2
#define CPOL    3
#define MSTR    4
#define DORD    5
#define SPE     6
#define SPIE    7

#define SPCR1   _SFR_MEM8(0xAC)


Dove i vari singoli bit hanno lo stesso nome di quelli del 328P, sono valori numerici e non indirizzi diretti del registo SPCRx, per questo servirebbe una struttura.

Da notare che la situazione è perfettamente identica nel file iom328p.h, unica differenza è nel nome registro che è senza numero.

Code: [Select]
#define SPCR _SFR_IO8(0x2C)
#define SPR0 0
#define SPR1 1
#define CPHA 2
#define CPOL 3
#define MSTR 4
#define DORD 5
#define SPE 6
#define SPIE 7
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 04:59 pm
Testata anche la libreria freqcount, che accede direttamente ai registri del timer 1 e 2, oltre a sfruttare i relativi interrupt, funziona perfettamente unica modifica necessaria alla libreria, file "FreqCountTimer.h", è cambiare questa riga:

Code: [Select]
#elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__)

in questo modo perché c'è il test del micro per sapere quali timer usare e se non si dichiara esplicitamente il 328PB ritorna l'errore di chip sconosciuto.

Code: [Select]
#elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega328PB__)

Con questo test ritengo archiviata la questione timer 328PB e relativa compatibilità, riferita all'uso con l'IDE di Arduino, col 328P.

Title: Re: ATmega328PB
Post by: gpb01 on Mar 11, 2016, 04:59 pm
Ok, mi compila correttamente entrambi gli esempi a corredo della SPI ... sia usando SPI che SPI1 ...
... allego qui la libreria, che qualcuno provi se, oltre a compilare correttamente, funziona veramente :D :D :D

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 04:59 pm
@ Gugliemo.

Credo sia ora di spostare questo topic in megatopic. :)
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 05:01 pm
Ok, mi compila correttamente entrambi gli esempi a corredo della SPI ... sia usando SPI che SPI1 ...
... allego qui la libreria, che qualcuno provi se, oltre a compilare correttamente, funziona veramente :D :D :D
Preso, appena ho un attimo di tempo provo le due spi, prima voglio chiudere la questione I2C, più che altro perché mi serve a breve termine da mettere in pratica. :)
Title: Re: ATmega328PB
Post by: gpb01 on Mar 11, 2016, 05:03 pm
@ Gugliemo.

Credo sia ora di spostare questo topic in megatopic. :)
Mi sembra cosa GIUSTA ... che Megatopic SIA !!!  :D :smiley-mr-green: :D

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 05:14 pm
Segnalo una anomalia che ho riscontrato durante l'uso della seriale tramite il chip mEDBG presente sulla scheda Atmel, apparentemente non lavora a 115200 bps, con tutte le altre velocità ricevo i dati correttamente, se seleziono 115200 bps arriva spazzatura nel modo tipico del baud rate sbagliato.
Devo verificare, tramite adattare USB-UART, se l'errore è realmente legato al chip mEDBG oppure c'è un problema con l'UART0 del 328PB.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 05:18 pm
Questione velocità mEDBG risolta, è proprio il chip che lavora male a quella frequenza, hanno già verificato (http://www.avrfreaks.net/forum/medbg-usbserial-baud-rates) che invece di andare a 115200 va a 111.111 bps, errore del 3.5% ed è oltre il massimo ammesso per le comunicazioni seriali asincrone.
Per farla breve, se usate schede con sopra mEDBG non andate oltre i 57600 bps per le comunicazione seriali.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 11, 2016, 10:08 pm
Un update per la I2C, attualmente ho due librerie distinte, wire0.h e wire1.h, che funzionano bene, la wire0.h è compatibile al 100% con l'attuale wire.h, ho provato diversi sketch e funzionano tutti, la differenza tra wire0 e wire1  è che nella seconda la classe si chiama "wire1", tutti i metodi rimangono invariati.
Adesso devo fare il merge del tutto in una singola libreria, così da rendere più leggero il codice, ripulire tutti i punti di debug che ho introdotto, rifare i test.
Se tutto va bene domani abbiamo la nuova libreria per la I2C, dopo di che, se i test per la SPI che ha realizzato Guglielmo sono positivi, possiamo cominciare a rilasciare la 1.0 beta della patch per l'IDE di Arduino finalizzata all'uso del 328PB.
Per il momento ho fatto i test con l'IDE 1.6.5r5, domani riparto da zero con l'IDE 1.6.8 in modo da fare i test con l'ultima release disponibile.
Title: Re: ATmega328PB
Post by: testato on Mar 11, 2016, 10:27 pm
Atmel è stata acquisita ma resta per conto suo ? Cioè i chip atmel continueranno a chiamarsi atmel ?
Ad oggi ha un suo amministratore delegato ?

Sul discorso dei compilatori stai dicendo quindi che io scrivo un sw corretto, che però crea un danno a causa di un bug nel compilatore, e non è colpa dell'azienda che fornisce il compilatore ?

Title: Re: ATmega328PB
Post by: gpb01 on Mar 11, 2016, 10:42 pm
.... se i test per la SPI che ha realizzato Guglielmo sono positivi ....
.... "diamo a Cesare ciò che è di Cesare" .... io mi sono solo limitato a correggere il nome dei bit all'interno della libreria preparata da hackaday ;)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 12, 2016, 03:52 pm
Ho dato una sistemata alla libreria I2C per 328PB, dovrebbe essere tutto ok, devo solo aggiungere un controllo per verificare il tipo di processore e fornire un errore nel caso non viene utilizzata per il 328PB.
In realtà si tratta di due librerie distinte, "wire0" e "wire1", purtroppo cercare di fare il merge in una sola è un bel casino perché saltano fuori un sacco di conflitti con i metodi, che a loro volta usano funzione per l'accesso low level ai registri, quindi per evitare di dover definire due volte tutti i metodi con nomi diversificati ho preferito tenere separate le due lib diversificando solo i nomi delle funzioni low level, cosa trasparente per l'utente in quanto non deve usare queste funzioni direttamente.
In pratica basta usare le classi wire e wire1 con i metodi standard, in questo modo qualunque sketch realizzato per il 328P è utilizzabile direttamente con il 328PB semplicemente sostituendo "wire.h" con "wire0.h", mentre se si vuole utilizzare la seconda I2C basta includere "wire1.h" e utilizzare come classe wire1 al posto di wire, tutto il resto rimane invariato.
Adesso aggiungo il controllo per il tipo processore, faccio qualche test pratico con tutte le due I2C in funzione assieme e se è tutto ok tra non molto posto la libreria.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 12, 2016, 06:02 pm
Ecco la nuova libreria Wire che gestisce tutte e due le I2C, per il momento ha passato tutti i test però rimane una 1.0 beta fino a che non ho conferme da parte di altri del corretto funzionamento.
Come anticipato la libreria è composta due librerie distinte, wire0 e wire1, da copiare nella cartella librerie generiche o in quella dedicata al 328PB dentro "hardware", c'è anche il file pins_arduino.h aggiornato perché quello fornito da Watterott sebbene prevede SDA1 e SCL1 i pin sono assegnati a quelli della I2C standard.
Per la questione twi.h delle avrlibc ho risolto copiando il codice necessario dove serve con la dovuta modifica ai nomi dei registri, questo perché se si vogliono usare tutte e due le I2C assieme è impossibile risolvere con #undef dato che la stessa funzione deve usare due set diversi di registri, in realtà si tratta di una sola riga di codice quindi nessun appesantimento della libreria.

Uno sketch di esempio su come usare tutte e due le I2C, basato sull'esempio digipot fornito con l'IDE.

Code: [Select]
// This example code is in the public domain.

#include <Wire0.h>
#include <Wire1.h>

void setup() {
  Wire.begin(); // join i2c bus (address optional for master)
  Wire1.begin();
}

byte val = 0;

void loop() {
  Wire.beginTransmission(44); // transmit to device #44 (0x2c)
  // device address is specified in datasheet
  Wire.write(byte(0x00));            // sends instruction byte
  Wire.write(val);             // sends potentiometer value byte
  Wire.endTransmission();     // stop transmitting

  Wire1.beginTransmission(44); // transmit to device #44 (0x2c)
  // device address is specified in datasheet
  Wire1.write(byte(0x00));            // sends instruction byte
  Wire1.write(val);             // sends potentiometer value byte
  Wire1.endTransmission();     // stop transmitting
 
  val++;        // increment value
  if (val == 64) { // if reached 64th position (max)
    val = 0;    // start over from lowest value
  }
  delay(500);
}
Title: Re: ATmega328PB
Post by: gpb01 on Mar 12, 2016, 09:28 pm
Grazie, gran bel lavoro ... appena posso la provo  ;)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 12, 2016, 10:05 pm
Domani vedo di provare la SPI, da quello che ho visto la libreria gestisce solo la SPI0.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 12, 2016, 10:13 pm
Domani vedo di provare la SPI, da quello che ho visto la libreria gestisce solo la SPI0.
Non dovrebbe, c'è una classe apposta definita per la SPI1 ... ::)

Code: [Select]
/* additional SPI1 Class ************************************************/
#if defined(__AVR_ATmega328PB__)

uint8_t SPI1Class::initialized = 0;
uint8_t SPI1Class::interruptMode = 0;
uint8_t SPI1Class::interruptMask = 0;
uint8_t SPI1Class::interruptSave = 0;
#ifdef SPI_TRANSACTION_MISMATCH_LED
uint8_t SPI1Class::inTransactionFlag = 0;
#endif
.....
.....

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 13, 2016, 02:11 pm
Non dovrebbe, c'è una classe apposta definita per la SPI1 ... ::)
Vero, avevo dato solo un'occhiata veloce senza approfondire la cosa.
Tra poco faccio il test della SPI usando questo (https://www.adafruit.com/products/1651) display che usa la SPI sia per la grafica che per il touch, se funziona la libreria va bene, almeno per la SPI0.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 14, 2016, 09:37 am
Un update per la SPI, partiamo con le cattive notizie, non è stato possibile fare il test con il display di Adafruit perché la loro libreria usa "spi.h" solo per l'init della periferica, poi indirizza direttamente i vari registri, presumibilmente perché hanno cercato di ottimizzare la velocità, pertanto non è possibile compilare perché vengono usati i nomi registri del 328P.
Come buona notizia c'è che la libreria SPI aggiustata da Guglielmo funziona se usata nel modo classico, però ho testato solo la SPI0, devo ancora provare la SPI1, ma non credo ci siano problemi.
Nel frattempo mi è venuta un'idea per risolvere la questione utilizzo SPI con librerie tipo quelle di Adafruit, devo verificare se è realmente fattibile, ma credo di si, se la cosa funziona la applico anche con la Wire perché anche in questo caso se le librerie di terze parti fanno un accesso diretto ai registri non si riesce a compilare.

Title: Re: ATmega328PB
Post by: astrobeed on Mar 14, 2016, 12:12 pm
Nuovo update per la SPI :)
La mia idea ha funzionato, adesso compilo senza problemi anche la libreria di Adafruit per il display TFT con interfaccia SPI, devo ancora provarlo fisicamente sulla scheda Atmel, per farlo devo saldare i connettori femmina sulla fila di pin con passo compatibile per le shield, dopo pranzo li monto e provo fisicamente il display.
La soluzione è sempre stata sotto gli occhi però nessuno l'ha vista, siamo tutti partiti in sesta con le soluzioni "complicate" :)
E' bastato aggingere a SPI.h standard le #define per i nomi dei registri SPI del 328P, ovvero fare un bel copia incolla dal file iom328p.h per quanto riguarda i registri della spi e il suo interrupt.

Questo è il codice che ho aggiunto a spi.h-

Code: [Select]
#define SPCR _SFR_IO8(0x2C)
#define SPR0 0
#define SPR1 1
#define CPHA 2
#define CPOL 3
#define MSTR 4
#define DORD 5
#define SPE 6
#define SPIE 7

#define SPSR _SFR_IO8(0x2D)
#define SPI2X 0
#define WCOL 6
#define SPIF 7

#define SPDR _SFR_IO8(0x2E)
#define SPDR0 0
#define SPDR1 1
#define SPDR2 2
#define SPDR3 3
#define SPDR4 4
#define SPDR5 5
#define SPDR6 6
#define SPDR7 7

#define SPI_STC_vect_num  17
#define SPI_STC_vect      _VECTOR(17)  /* SPI Serial Transfer Complete */


Dato che voglio una soluzione che non tocca le librerie originali ho copiato la cartella SPI del IDE nella cartella " hardware->atmega328pb->avr->libraries" e modificato il file spi.h.
Ovviamente per la SPI1 occorre creare la libreria SPI1, come avevo fatto per la I2C, dove c'è la classe SPI1.
Faccio la stessa cosa anche per la Wire, cosi avremo totale compatibilità, senza dover aggiungere nulla, per la I2C standard e lascio l'attuale Wire1 per la I2C1.
Direi che in questo modo abbiamo risolto elegantemente la questione garantendo compatibilità al 100% anche con librerie di terze parti che accedono direttamente ai registri delle periferiche SPI e Wire.

Title: Re: ATmega328PB
Post by: PaoloP on Mar 14, 2016, 12:25 pm
Il compilatore non ti da l'errore per la doppia definizione?
Title: Re: ATmega328PB
Post by: astrobeed on Mar 14, 2016, 12:49 pm
Il compilatore non ti da l'errore per la doppia definizione?
Sicuramente c'è una warning, non le tengo attive, infatti dopo voglio verificare quali valori sono in comune tra quelli che ho aggiunto e quelli presenti in iom328p.h, così da avere una cosa pulita senza doppioni.
Intanto ho saldato i connettori sulla schedina Atmel, messo sopra il display e funziona.  :smiley-mr-green:
Con un attimo di calma sistemo anche per la SPI1, modifico la Wire allo stesso modo e creo un nuovo pacchetto di installazione, tipo quello di Watterott, che contiene oltre ai file da aggiungere al core/toolchain anche le nuove librerie SPI e WIRE, così abbiamo una release 1.0 effettiva della patch ad Arduino per il 328PB.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 14, 2016, 12:55 pm
:+1
Title: Re: ATmega328PB
Post by: gpb01 on Mar 14, 2016, 01:58 pm
Astro ... in teoria se prendo il tuo file di installazione, cancello la toolchain Win e butto dentro quella OS X ... dovrebbe andare anche per Mac ... giusto ?

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 14, 2016, 02:08 pm
Astro ... in teoria se prendo il tuo file di installazione, cancello la toolchain Win e butto dentro quella OS X ... dovrebbe andare anche per Mac ... giusto ?
Penso di si, in fin dei conti le uniche differenze tra la toolchain windows e quella per Mac/Linux dovrebbero essere solo nei file eseguibili, tutti quelli .c .ccp e .h dovrebbero essere identici.
Title: Re: ATmega328PB
Post by: speedyant on Mar 14, 2016, 09:25 pm
Per curiosità "tecnica", pur non essendoci ancora una "scheda", si potrebbe provare una compilazione di qualche sketch con l'ide attuale?
Title: Re: ATmega328PB
Post by: gpb01 on Mar 14, 2016, 09:29 pm
Per curiosità "tecnica", pur non essendoci ancora una "scheda", si potrebbe provare una compilazione di qualche sketch con l'ide attuale?
Già fatto con la 1.6.7 (non ho ancora implementato la cosa nella 1.6.8), ne ho compilati, senza problemi, anche di piuttosto pesanti (alcune migliaia si righe)  :D

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 14, 2016, 09:55 pm
Per curiosità "tecnica", pur non essendoci ancora una "scheda",
Le schede ci sono, attualmente oltre alla Xpalained mini 328PB di Atmel, che sto utilizzando per i test, c'è anche la scheda in stile pro mini di Watterott che costa solo 6.5 E.
Tutti i test li sto facendo con l'IDE 1.6.8.
Title: Re: ATmega328PB
Post by: speedyant on Mar 14, 2016, 10:01 pm
Le schede ci sono, attualmente oltre alla Xpalained mini 328PB di Atmel, che sto utilizzando per i test, c'è anche la scheda in stile pro mini di Watterott che costa solo 6.5 E.
Tutti i test lo sto facendo con l'IDE 1.6.8.
Interessante, ma ovviamente bisogna "selezionare" una board custom, immagino. Proverò a dare la caccia ad una scheda da "torturare".
Title: Re: ATmega328PB
Post by: gpb01 on Mar 14, 2016, 11:43 pm
Interessante, ma ovviamente bisogna "selezionare" una board custom, immagino. Proverò a dare la caccia ad una scheda da "torturare".
La trovi QUI (http://www.mouser.it/search/ProductDetail.aspx?R=0virtualkey0virtualkeyATMEGA328PB-XMINI) ;)

Guglielmo
Title: Re: ATmega328PB
Post by: speedyant on Mar 15, 2016, 12:09 am
Grazie.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 15, 2016, 11:40 am
C'è anche questa (http://www.watterott.com/en/Wattuino-pro-mini-PB-5V-16MHz) di Watterott, costa solo 6.5E :)
Watterott a catalogo ha anche la Xplained 328PB di Atmel, 11.9 E, però zero disponibilità.
Title: Re: ATmega328PB
Post by: Etemenanki on Mar 15, 2016, 03:34 pm
... se scendono ancora un po di prezzo, finira' che ti pagano per comperarle ... :P :D :D :D
Title: Re: ATmega328PB
Post by: menniti on Mar 15, 2016, 05:16 pm
Una domanda tecnica, relativamente collegata alla questione del Topic, come si calcola la frequenza di campionamento dell'ADC di questo micro? Sul DS del 328P trovo un valore "Conversion Time" che è nel range 13 - 260μs, può significare che la frequenza sia da 3 a 76KHz circa? E tale range dipende da quanti ingressi si usano in contemporanea, visto che sono gestiti in multiplexer?
Title: Re: ATmega328PB
Post by: zoomx on Mar 15, 2016, 06:21 pm
Probabilmente anche dai bit usati  (8 o 10) come nel 328P. Se non sto scrivendo minchiate.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 15, 2016, 06:36 pm
Probabilmente anche dai bit usati  (8 o 10) come nel 328P. Se non sto scrivendo minchiate.
L'ADC è lo stesso del 328P, si usa allo stesso modo e ha le stesse caratteristiche, Arduino lo usa a circa 10 ksps che è quasi la velocità massima per i 10 bit di risoluzione, solo riducendo i bit è possibile aumentare la velocità.
Rammento che anche il 328P nella versione smd 32 pin ha due canali ADC aggiuntivi, però i pin utilizzati si possono usare solo per questa funzione, non sono dei GPIO, mentre nel 328PB i due pin sono veri GPIO.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 16, 2016, 11:17 am
Per la cronaca: ho aggiornato Atmel Studio alla versione 7.0.qualcosa. Appena ricollegate sia l'Xplained mini 328P che la Xplained mini 328PB è stato aggiornato il firmware mEDBG alla versione 1.0d.
Confermo che per caricare i firmware nell'Xplained tramite bootloader si deve andare a 57600. A 115200 nun gli a fà.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 12:35 pm
Confermo che per caricare i firmware nell'Xplained tramite bootloader si deve andare a 57600. A 115200 nun gli a fà.
Se ci hai fatto caso il bootloader di Watterott lavora a 57600, quindi compatibile con la Xplained.
Non caricare assolutamente il bootloader tramite l'IDE di Arduino perché ti cambia i fuse, in particolare quello del clock, e la Xplained dopo non funziona, ho fatto questo errore e mi è toccato perdere un sacco di tempo per collegare l'AVR Dragon alla scheda, una miriade di fili, per usare la HVPP in modo da ripristinare i fuse.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 12:42 pm
In allegato la patch 1.0 per l'IDE aggiornata con le librerie SPI e WIRE compatibili 100% con i vecchi sketch, per usare la seconda SPI e WIRE basta usare le classi SPI1 e WIRE1, con le relative include spi1.h e wire1.h, i nomi dei metodi sono gli stessi delle periferiche standard.
Ho ripulito le #define doppie, adesso non c'è nessuna warning durante la compilazione.
La patch contiene solo i file aggiuntivi per l'IDE e la toolchain, quest'ultima va presa dal sito Atmel e sostituita a quella presente nel IDE prima di applicare la patch, il tutto è stato testato con l'IDE 1.6.5r5 e 1.6.8.
Per applicare la patch basta copiare la cartella hardware nella cartella hardware confermando la sovrascrittura del file avrdude.conf, quello inserito nella patch contiene la definizione per il 328PB.

Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 03:11 pm
Astro, ho visto che hai modificato la variante "standard" invece di farne una dedicata come aveva fatto Watterott ...
... la sua soluzione mi sembra più svincolata da qualsiasi cambiamento della variante "standard" essendo in un file a parte ... che dici, non è meglio tenere separate le due cose ?

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 03:15 pm
Astro, ho visto che hai modificato la variante "standard" invece di farne una dedicata come aveva fatto Watterott ...
Questa non l'ho capita, io ho usato come base il lavoro di Watterott dove ho modificato il file pins_Arduino e aggiunto le librerie Wire e SPI adattate per il 328PB, il tutto è totalmente indipendente dalla configurazione standard del IDE, è solo una aggiunta e non tocca nulla del IDE originale.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 03:31 pm
Provo a rispiegare meglio ... :smiley-mr-green:

Ora mi viene il dubbio che fossero quelli di Hackaday, comunque, uno dei due, invece di modificare il file pins_arduino.h che trovi dentro variants/standard (che è quello che arriva di base), hanno creato una cartella variants/atmega328pb con il pins_arduino.h dedicato al 328PB, così da essere svincolati da quello standard (e sue eventuali modifiche future).

Ovviamente nel fine boards.txt si fa riferimento a tale variante e non a standard ...

Mi chiedevo se questa soluzione non fosse più pulita ed indipendente da quella di Arduino UNO (standard) ... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 03:36 pm
Altra domanda ...
... perché alleghi il file platform.txt ? Non va bene quello standard ? Io ho usato quello che arriva con l'IDE senza modificarlo e non mi ha dato problemi ... esattamente che modifiche ci sono ?

Grazie,

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 03:59 pm
Provo a rispiegare meglio ... :smiley-mr-green:
Infatti il file pins_arduino.h modificato si trova nella cartella "arduino-1.6.8\hardware\atmega328pb\avr\variants", non ho toccato quello standard del IDE, in pratica se selezioni il 328PB l'IDE prima cerca dentro "hardware\atmega328PB", solo se non trova i file prosegue la ricerca nel percorso standard.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 04:00 pm
Altra domanda ...
... perché alleghi il file platform.txt ?
Era presente nella distro di Watterott e non ho nemmeno guardato cosa contiene :)
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 04:15 pm
Infatti il file pins_arduino.h modificato si trova nella cartella "arduino-1.6.8\hardware\atmega328pb\avr\variants", non ho toccato quello standard del IDE, in pratica se selezioni il 328PB l'IDE prima cerca dentro "hardware\atmega328PB", solo se non trova i file prosegue la ricerca nel percorso standard.
Aha ... ok ... però ribadisco che, anche se in un altra cartella, invece di chiamare la variante "standard" (... che può generare confusione nell'utente poco smaliziato) forse converrebbe chiamarla proprio "atmega328pb", ovvero variants/atmega328pb/pins_arduino.h così da far risaltare la cosa ...
... non so, dimmi tu, e solo la questione di un nome, come ritieni più logico ... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 16, 2016, 04:40 pm
Ora mi viene il dubbio che fossero quelli di Hackaday....
Era il mio  :) .
Ho chiamato la variante PB.
--> https://github.com/PaoloP74/ATmega328PB-Testing/blob/master/hardware/atmega328pb/avr/variants/pb/pins_arduino.h (https://github.com/PaoloP74/ATmega328PB-Testing/blob/master/hardware/atmega328pb/avr/variants/pb/pins_arduino.h)

Comunque, a breve, mi riallineo alla versione di Astro.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 04:45 pm
... non so, dimmi tu, e solo la questione di un nome, come ritieni più logico ... ::)
Farlo non è certo un problema, basta modificare "atmega328pb.build.variant=standard" in "atmega328pb.build.variant=atmega328pb" dentro boards.txt.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 04:49 pm
Comunque, a breve, mi riallineo alla versione di Astro.
Tieni presente che la "mia" versione è un mix tra quella di Watterott, che ho usato come base, a cui ho modificato il file pin_arduino.h, che alla fine è quasi identico a quello che avevi fatto tu, e ho aggiunto le librerie per la Wire e la SPI, per quest'ultima ho usato il lavoro di Guglielmo per estrarre la classe SPI1.
Alla fine questa patch è un lavoro di diverse persone :)
Visto che hai già postato sulla sezione internazionale nel topic sul 328PB se gli segnali questa patch magari rimediamo altri beta tester :)
Ho fatto molte prove però non posso essere certo al 100% che è tutto ok.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 04:52 pm
Farlo non è certo un problema, basta modificare "atmega328pb.build.variant=standard" in "atmega328pb.build.variant=atmega328pb" dentro boards.txt.

Io nella versione OS X l'ho fatto ... per pulizia ... ora dimmi tu se lo lascio così e allinei tu la versione Win o lo cambio io e mettiamo "standard" (... che standard non è :D :D :D). ;)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 04:53 pm
Visto che la questione software ora è sistemata possiamo ricominciare a parlare della scheda Arduino like, con molte feature aggiuntive, con sopra il 328PB.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 04:55 pm
Io nella versione OS X l'ho fatto ... per pulizia ...
Ok, lo faccio pure io così abbiamo le versioni allineate, almeno per Win e Mac OS, che sono quelli ci interessano sul serio, se poi VB ha voglia di fare prove con Linux ben venga così abbiamo la certezza per tutti i tre S.O., io di sicuro non mi metto a rifare tutte le prove sotto Linux. :)
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 05:01 pm
In allegato la patch modificata con "variants->atmega328pb"

Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 05:05 pm
Argh ... sei troppo svelto ...  :smiley-confuse: :smiley-confuse: :smiley-confuse:

... volevo proporti il boards.txt che ho usato io ... come vedi i fuse sono leggermente diversi da quelli di Watterott (Brown-out enabled a 2.7V, Serial Programming enabled, Boot size 512, Boot reset vector enabled, External clock RESET:6 CK/14 CK +65ms) :

Code: [Select]
##############################################################
menu.speed=Speed

atmega328pb.name=Atmel ATmega328PB
atmega328pb.menu.speed.16mhz=16 MHz
atmega328pb.menu.speed.16mhz.build.f_cpu=16000000L
atmega328pb.menu.speed.8mhz=8 MHz
atmega328pb.menu.speed.8mhz.build.f_cpu=8000000L
atmega328pb.menu.speed.4mhz=4 MHz
atmega328pb.menu.speed.4mhz.build.f_cpu=4000000L
atmega328pb.menu.speed.1mhz=1 MHz
atmega328pb.menu.speed.1mhz.build.f_cpu=1000000L
atmega328pb.menu.speed.20mhz=20 MHz
atmega328pb.menu.speed.20mhz.build.f_cpu=20000000L
atmega328pb.bootloader.tool=avrdude
atmega328pb.bootloader.low_fuses=0xE0
atmega328pb.bootloader.high_fuses=0xDC
atmega328pb.bootloader.extended_fuses=0xF5
atmega328pb.bootloader.file=optiboot_m328pb.hex
atmega328pb.bootloader.unlock_bits=0x3F
atmega328pb.bootloader.lock_bits=0xCF
atmega328pb.upload.tool=avrdude
atmega328pb.upload.protocol=arduino
atmega328pb.upload.maximum_size=32256
atmega328pb.upload.maximum_data_size=2048
atmega328pb.upload.speed=57600
atmega328pb.build.mcu=atmega328pb
atmega328pb.build.board=AVR_UNO
atmega328pb.build.core=arduino:arduino
atmega328pb.build.variant=atmega328pb

##############################################################

Che ne pensi ?

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 05:09 pm
... volevo proporti il boards.txt che ho usato io ... come vedi i fuse sono leggermente diversi da quelli di Watterott
Se li hai già provati con il loro bootloader per me va bene, purtroppo non hanno messo i sorgenti, sembra essere un optiboot modificato per andare a 57600 bps, invece dei 115200 standard, probabilmente perché pure loro hanno iniziato a fare le prove con la Xplained dove l'mEDBG non funziona correttamente a 115200 bps.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 16, 2016, 05:41 pm
A questo punto meglio fare due configurazioni all'interno di board.txt. Una per l'Xplained e una per la Mini di Watterott. I fuse sono diversi.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 05:53 pm
Se li hai già provati con il loro bootloader per me va bene, purtroppo non hanno messo i sorgenti, sembra essere un optiboot modificato per andare a 57600 bps, invece dei 115200 standard, probabilmente perché pure loro hanno iniziato a fare le prove con la Xplained dove l'mEDBG non funziona correttamente a 115200 bps.
Si, si, il bootloader è il loro e l'ho installato sulla Xplained ... a 57600 non da alcun problema e quel boards.txt, come vedete, usa appunto i 57600 ;)

@PaoloP: non dovrebbe essere necessario ... la velocità è quella richiesta, il resto ... sono "gusti" personali (es. il BOD attivo a 2.7) ;)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 05:55 pm
Mi sa tanto che è meglio fare così visto che se si carica il bootloader da IDE, tramite un qualunque programmatore ISP, i fuse standard per la UNO, ma pure quelli di Watterott, non vanno bene per via del diverso sistema di clock.
Sulla Xplained il clock arriva dal mEDBG e non c'è il quarzo sul 328PB, ci sono già passato e senza un programmatore che supporta HVPP vuol dire ritrovarsi il micro brickato. :)
Title: Re: ATmega328PB
Post by: PaoloP on Mar 16, 2016, 06:02 pm
Code: [Select]
menu.speed=Speed

##############################################
watt328pb.name=Watterott Pro Mini PB

watt328pb.bootloader.tool=avrdude
watt328pb.bootloader.low_fuses=0xFF
watt328pb.bootloader.high_fuses=0xD6
watt328pb.bootloader.extended_fuses=0xFD
watt328pb.bootloader.file=optiboot_m328pb.hex
watt328pb.bootloader.unlock_bits=0x3F
watt328pb.bootloader.lock_bits=0xCF

watt328pb.upload.tool=avrdude
watt328pb.upload.protocol=arduino
watt328pb.upload.maximum_size=32256
watt328pb.upload.maximum_data_size=2048
watt328pb.upload.speed=57600

watt328pb.build.mcu=atmega328pb
watt328pb.build.f_cpu=16000000L
watt328pb.build.board=AVR_PRO_MINI
watt328pb.build.core=arduino:arduino
watt328pb.build.variant=atmega328pb

##############################################
Xplained328pb.name=ATmel Xplained328PB mini

Xplained328pb.menu.speed.16mhz=16 MHz
Xplained328pb.menu.speed.16mhz.build.f_cpu=16000000L
Xplained328pb.menu.speed.8mhz=8 MHz
Xplained328pb.menu.speed.8mhz.build.f_cpu=8000000L

Xplained328pb.bootloader.tool=avrdude
Xplained328pb.bootloader.low_fuses=0xFF
Xplained328pb.bootloader.high_fuses=0xD6
Xplained328pb.bootloader.extended_fuses=0xFD
Xplained328pb.bootloader.file=optiboot_m328pb.hex
Xplained328pb.bootloader.unlock_bits=0x3F
Xplained328pb.bootloader.lock_bits=0xCF

Xplained328pb.upload.tool=avrdude
Xplained328pb.upload.protocol=arduino
Xplained328pb.upload.maximum_size=32256
Xplained328pb.upload.maximum_data_size=2048
Xplained328pb.upload.speed=57600

Xplained328pb.build.mcu=atmega328pb
Xplained328pb.build.board=AVR_XPLAINED
Xplained328pb.build.core=arduino:arduino
Xplained328pb.build.variant=atmega328pb

##############################################
atmega328pb.name=ATmega328PB standalone

atmega328pb.menu.speed.16mhz=16 MHz
atmega328pb.menu.speed.16mhz.build.f_cpu=16000000L
atmega328pb.menu.speed.8mhz=8 MHz
atmega328pb.menu.speed.8mhz.build.f_cpu=8000000L
atmega328pb.menu.speed.4mhz=4 MHz
atmega328pb.menu.speed.4mhz.build.f_cpu=4000000L
atmega328pb.menu.speed.1mhz=1 MHz
atmega328pb.menu.speed.1mhz.build.f_cpu=1000000L
atmega328pb.menu.speed.20mhz=20 MHz
atmega328pb.menu.speed.20mhz.build.f_cpu=20000000L

atmega328pb.bootloader.tool=avrdude
atmega328pb.bootloader.low_fuses=0xFF
atmega328pb.bootloader.high_fuses=0xD6
atmega328pb.bootloader.extended_fuses=0xFD
atmega328pb.bootloader.file=optiboot_m328pb.hex
atmega328pb.bootloader.unlock_bits=0x3F
atmega328pb.bootloader.lock_bits=0xCF

atmega328pb.upload.tool=avrdude
atmega328pb.upload.protocol=arduino
atmega328pb.upload.maximum_size=32256
atmega328pb.upload.maximum_data_size=2048
atmega328pb.upload.speed=57600

atmega328pb.build.mcu=atmega328pb
atmega328pb.build.board=AVR_STANDALONE
atmega328pb.build.core=arduino:arduino
atmega328pb.build.variant=atmega328pb


Bisogna cambiare i fuse.  :)
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 06:03 pm
Ho invece un problema su OS X ...
... nella prova che avevo fatto con la 1.6.7 NON avevo messo le cose del 328PB in una cartella a parte, hardware/atmega328PB, ma avevo direttamente toccato i files nella  hardware/arduino e NON ho avuto alcun problema.

Sto ora provando lasciando intatta la hardware/arduino ed utilizzando la hardware/atmega328pb per i files relativi al PB.

Tutto va bene, ma quando arriva a dover lanciare avrdude per caricare il programma ... cerca una path inesistente che inizia con ___REMOVE___/bin/avrdude :o :o :o

Da dove salta fuori quel ___REMOVE___ ? ? ? Non posso credere che vada a cercare in qualche modo la toolchain originale (che ho cancellato) invece di prendere quella nuova ... e poi ... perché solo per avrdude e non pe tutto il resto ? ? ?

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 06:05 pm
Bisogna cambiare i fuse.  :)
E per quale motivo ? :o  La scheda di Watterott ha il quarzo a 16MHz ? Se si non c'è nulla da cambiare ... DEVE funzionare ugualmente ...

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 06:12 pm
... aggiornamento, il problema del ___REMOVE___ deve essere altrove ... sto facendo delle verifiche ...

Guglielmo


Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 06:13 pm
E per quale motivo ? :o  La scheda di Watterott ha il quarzo a 16MHz ? Se si non c'è nulla da cambiare ... DEVE funzionare ugualmente ...
Purtroppo non è così, quando ho provato a caricare il bootloader di Watterott, con i loro fuse, sulla Xplained, tramite IDE e AVRISP MKII, il micro è rimasto senza clock ed è cominciata l'odissea per collegare tutti i 20 cavi richiesti per la HVPP per ripristinare i fuse.

Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 06:14 pm
... aggiornamento, il problema del ___REMOVE___ deve essere altrove ... sto facendo delle verifiche ...
Facci sapere perché è la prima volta che vedo un simile errore.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 16, 2016, 06:17 pm
Mi correggo.
Bisogna controllare i fuse.  :)
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 06:22 pm
Purtroppo non è così, quando ho provato a caricare il bootloader di Watterott, con i loro fuse, sulla Xplained ...
Frena ... io mi sono ben guardato da usare il LORO fuse ... conosco i miei polli, NON mi fido mai e i fuse me li calcolo io :D :D :D

Per cui quelli della mia boards.txt sono i MIEI non quelli di Watterott e funzionano perfettamente con la Xplained ;)

Guglielmo

P.S.: E non vedo motivo perché non debbano funzionare con la loro board, purché abbia il quarzo ;)
Title: Re: ATmega328PB
Post by: PaoloP on Mar 16, 2016, 06:25 pm
Non posso credere che vada a cercare in qualche modo la toolchain originale (che ho cancellato) invece di prendere quella nuova
Si, va a cercare la toolchain originale perché i percorsi sono quelli della originale.
Io li ho modificati così nel mio platform.txt
Code: [Select]
compiler.path={runtime.hardware.path}/avr/tools/avr8-gnu-toolchain/bin/
tools.avrdude.path={runtime.hardware.path}/avr/tools/avr8-gnu-toolchain/


Nota che io ho messo la toolchain nella stessa cartella di platform.txt.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 06:29 pm
Invece il problema c'è, infatti nella Xplained i fuse del clock sono settati per "EXTCLK_6CK_14CK_65MS", che è una configurazione specifica per il clock esterno e non è compatibile con il quarzo, idem il contrario.

Dal data sheet del 328P/328PB.

Code: [Select]
To drive the device from an external clock source, EXTCLK should be driven as shown in the Figure
below. To run the device on an external clock, the CKSEL Fuses must be programmed to '0000':


Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 06:36 pm
No, no, era qualche altra cosa che dovevo aver incasinato nelle prove ...
... ora sono riuscito a creare una cartella come quella di astro che ho provato su più macchine e che NON da alcun problema :)

C'è però un particolare con la toolchain ...
... contrariamente a quella per Win (... almeno credo), su quella per OS X tocca mettere le mani copiando alcuni files da una cartella all'altra.

Per evitare problemi ho creato uno zip che contiene già tutto quello che occorre bello che pronto ...

1. tasto destro su Arduino.app
2. selezionare la cartella Contents, Java, hardware
3. cancellare la cartella tools che si trova dentro hardware
4. copiare le due cartelle che sono nello zip (atmega328pb e tools) dento la hardware

... finito ;)

Solo che lo zip, causa toolchain, è di ... 44MB e non la posso allegare ...
... la metto su DropBox e metto il link pubblico da dove scaricarla ;)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 16, 2016, 06:41 pm
Alla fine la via più pratica è creare una distribuzione con file JSON.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 06:55 pm
Invece il problema c'è, infatti nella Xplained i fuse del clock sono settati per "EXTCLK_6CK_14CK_65MS"
Arggghhh ... hai ragione ... m'era sfuggita la cosa ...  :smiley-confuse:

... a questo punto mettiamo TRE configurazioni nel boards.txt:

1. Con quarzo, 16MHz
2. Con external clock
3. con internal clock a 8Mhz

... così abbiamo coperto una bella gamma di possibilità, poi, se uno vuole, aggiunge le altre. Che dici ?

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 07:03 pm
Arggghhh ... hai ragione ... m'era sfuggita la cosa ...  :smiley-confuse:
Io l'ho scoperta nel peggiore dei modi, 328PB brickato :)
Un paio di info aggiuntive nel caso succede, per poter usare la programmazione HVPP è necessario rimuovere la resistenza da 0 ohm R101, collega le linea di reset del 328PB con un pin del 32u4, onde evitare di friggere il 32u4 con i 12V applicati al reset.
Il clock generato dal programmatore HVPP, nel mio caso un AVR Dragon, va applicato al vias marcato EXT_CLK, si trova di fianco al led del mEDBG.

Quote
... a questo punto mettiamo TRE configurazioni nel boards.txt:
Concordo.

Title: Re: ATmega328PB
Post by: PaoloP on Mar 16, 2016, 07:11 pm
Code: [Select]
menu.speed=Speed

##############################################
watt328pb.name=Watterott Pro Mini PB

watt328pb.bootloader.tool=avrdude
watt328pb.bootloader.low_fuses=0xFF
watt328pb.bootloader.high_fuses=0xD6
watt328pb.bootloader.extended_fuses=0xFD
watt328pb.bootloader.file=optiboot_m328pb.hex
watt328pb.bootloader.unlock_bits=0x3F
watt328pb.bootloader.lock_bits=0xCF

watt328pb.upload.tool=avrdude
watt328pb.upload.protocol=arduino
watt328pb.upload.maximum_size=32256
watt328pb.upload.maximum_data_size=2048
watt328pb.upload.speed=57600

watt328pb.build.mcu=atmega328pb
watt328pb.build.f_cpu=16000000L
watt328pb.build.board=AVR_PRO_MINI
watt328pb.build.core=arduino:arduino
watt328pb.build.variant=atmega328pb

##############################################
Xplained328pb.name=ATmel Xplained328PB mini

Xplained328pb.menu.speed.16mhz=16 MHz
Xplained328pb.menu.speed.16mhz.build.f_cpu=16000000L
Xplained328pb.menu.speed.8mhz=8 MHz
Xplained328pb.menu.speed.8mhz.build.f_cpu=8000000L

Xplained328pb.bootloader.tool=avrdude
Xplained328pb.bootloader.low_fuses=0xFF
Xplained328pb.bootloader.high_fuses=0xD6
Xplained328pb.bootloader.extended_fuses=0xFD
Xplained328pb.bootloader.file=optiboot_m328pb.hex
Xplained328pb.bootloader.unlock_bits=0x3F
Xplained328pb.bootloader.lock_bits=0xCF

Xplained328pb.upload.tool=avrdude
Xplained328pb.upload.protocol=arduino
Xplained328pb.upload.maximum_size=32256
Xplained328pb.upload.maximum_data_size=2048
Xplained328pb.upload.speed=57600

Xplained328pb.build.mcu=atmega328pb
Xplained328pb.build.board=AVR_XPLAINED
Xplained328pb.build.core=arduino:arduino
Xplained328pb.build.variant=atmega328pb

##############################################
atmega328pb.name=ATmega328PB standalone

atmega328pb.menu.speed.16mhz=16 MHz
atmega328pb.menu.speed.16mhz.build.f_cpu=16000000L
atmega328pb.menu.speed.8mhz=8 MHz
atmega328pb.menu.speed.8mhz.build.f_cpu=8000000L
atmega328pb.menu.speed.4mhz=4 MHz
atmega328pb.menu.speed.4mhz.build.f_cpu=4000000L
atmega328pb.menu.speed.1mhz=1 MHz
atmega328pb.menu.speed.1mhz.build.f_cpu=1000000L
atmega328pb.menu.speed.20mhz=20 MHz
atmega328pb.menu.speed.20mhz.build.f_cpu=20000000L

atmega328pb.bootloader.tool=avrdude
atmega328pb.bootloader.low_fuses=0xFF
atmega328pb.bootloader.high_fuses=0xD6
atmega328pb.bootloader.extended_fuses=0xFD
atmega328pb.bootloader.file=optiboot_m328pb.hex
atmega328pb.bootloader.unlock_bits=0x3F
atmega328pb.bootloader.lock_bits=0xCF

atmega328pb.upload.tool=avrdude
atmega328pb.upload.protocol=arduino
atmega328pb.upload.maximum_size=32256
atmega328pb.upload.maximum_data_size=2048
atmega328pb.upload.speed=57600

atmega328pb.build.mcu=atmega328pb
atmega328pb.build.board=AVR_STANDALONE
atmega328pb.build.core=arduino:arduino
atmega328pb.build.variant=atmega328pb


Bisogna cambiare i fuse.  :)
Tre configurazioni.  :smiley-mr-green:
Bisogna lavorare sulla terza per settare diversi fuse per i clock interni o esterni.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 16, 2016, 07:12 pm
Tre configurazioni.  :smiley-mr-green:
Ottimo, adesso ti tocca provare tutti i fuse sulle tue schede. :D

Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 07:14 pm
Io l'ho scoperta nel peggiore dei modi, 328PB brickato :)
(http://www.nikonland.eu/forum/public/style_emoticons/default/bigemo_harabe_net-01.gif)

Concordo.
... ok, allora dopo lo preparo e più tardi lo metto qui, così lo includi nel tuo zip ;)

Guglielmo

@PaoloP: Lo standalone senza quarzo lo mettiamo a 8MHz fissi (è da fuse) ... e non si può scegliere da menu la velocità.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 16, 2016, 07:17 pm
Perchè fisso?
Oltre alla velocità puoi cambiare tutti i parametri che vuoi quando scegli una configurazione.

Ad esempio --> https://github.com/SpenceKonde/ATTinyCore/blob/master/avr/boards.txt (https://github.com/SpenceKonde/ATTinyCore/blob/master/avr/boards.txt)
Cambiando velocità cambiano anche i fuse.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 07:21 pm
Ad esempio --> https://github.com/SpenceKonde/ATTinyCore/blob/master/avr/boards.txt (https://github.com/SpenceKonde/ATTinyCore/blob/master/avr/boards.txt)
Cambiando velocità cambiano anche i fuse.
Ah, be, se ti vuoi mettere tu a scrivere tutte le varie combinazioni velocità/fuse per l'internal clock fai pure ...
... per me è sufficiente la 8MHz che è la più usata  :smiley-twist:

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 08:31 pm
Occhi Astro, nella Wire, nel primo esempio (digital_potentiometer), t'è rimasto un riferimento alla #include Wire0.h e da errore ;)

Ho corretto nella versione OS X, sistemalo nella versione Win :)

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 16, 2016, 09:53 pm
Ok, ho dedicato un po' di tempo al boards.txt ...  :smiley-mr-green:

... cortesemente controllate che i fuse siano giusti (Brown-out enabled a 2.7V, Serial Programming enabled, Boot size 512, Boot reset vector enabled, clock come da selezione):

Code: [Select]
##############################################################

menu.speed=Speed

atmega328pbcc.name=Atmel ATmega328PB Crystal Clock
atmega328pbcc.bootloader.file=optiboot_m328pb.hex
atmega328pbcc.bootloader.unlock_bits=0x3F
atmega328pbcc.bootloader.lock_bits=0xCF
atmega328pbcc.upload.tool=avrdude
atmega328pbcc.upload.protocol=arduino
atmega328pbcc.upload.maximum_size=32256
atmega328pbcc.upload.maximum_data_size=2048
atmega328pbcc.upload.speed=57600
atmega328pbcc.build.mcu=atmega328pb
atmega328pbcc.build.board=AVR_UNO
atmega328pbcc.build.core=arduino:arduino
atmega328pbcc.build.variant=atmega328pb
atmega328pbcc.bootloader.tool=avrdude
atmega328pbcc.bootloader.low_fuses=0xFF
atmega328pbcc.bootloader.high_fuses=0xDC
atmega328pbcc.bootloader.extended_fuses=0xF5
atmega328pbcc.menu.speed.16mhz=16 MHz
atmega328pbcc.menu.speed.16mhz.build.f_cpu=16000000L
atmega328pbcc.menu.speed.8mhz=8 MHz
atmega328pbcc.menu.speed.8mhz.build.f_cpu=8000000L
atmega328pbcc.menu.speed.4mhz=4 MHz
atmega328pbcc.menu.speed.4mhz.build.f_cpu=4000000L
atmega328pbcc.menu.speed.1mhz=1 MHz
atmega328pbcc.menu.speed.1mhz.build.f_cpu=1000000L
atmega328pbcc.menu.speed.20mhz=20 MHz
atmega328pbcc.menu.speed.20mhz.build.f_cpu=20000000L

atmega328pbec.name=Atmel ATmega328PB External Clock
atmega328pbec.bootloader.file=optiboot_m328pb.hex
atmega328pbec.bootloader.unlock_bits=0x3F
atmega328pbec.bootloader.lock_bits=0xCF
atmega328pbec.upload.tool=avrdude
atmega328pbec.upload.protocol=arduino
atmega328pbec.upload.maximum_size=32256
atmega328pbec.upload.maximum_data_size=2048
atmega328pbec.upload.speed=57600
atmega328pbec.build.mcu=atmega328pb
atmega328pbec.build.board=AVR_UNO
atmega328pbec.build.core=arduino:arduino
atmega328pbec.build.variant=atmega328pb
atmega328pbec.bootloader.tool=avrdude
atmega328pbec.bootloader.low_fuses=0xE0
atmega328pbec.bootloader.high_fuses=0xDC
atmega328pbec.bootloader.extended_fuses=0xF5
atmega328pbec.menu.speed.16mhz=16 MHz
atmega328pbec.menu.speed.16mhz.build.f_cpu=16000000L
atmega328pbec.menu.speed.8mhz=8 MHz
atmega328pbec.menu.speed.8mhz.build.f_cpu=8000000L
atmega328pbec.menu.speed.4mhz=4 MHz
atmega328pbec.menu.speed.4mhz.build.f_cpu=4000000L
atmega328pbec.menu.speed.1mhz=1 MHz
atmega328pbec.menu.speed.1mhz.build.f_cpu=1000000L
atmega328pbec.menu.speed.20mhz=20 MHz
atmega328pbec.menu.speed.20mhz.build.f_cpu=20000000L

atmega328pbic.name=Atmel ATmega328PB Internal Clock
atmega328pbic.bootloader.file=optiboot_m328pb.hex
atmega328pbic.bootloader.unlock_bits=0x3F
atmega328pbic.bootloader.lock_bits=0xCF
atmega328pbic.upload.tool=avrdude
atmega328pbic.upload.protocol=arduino
atmega328pbic.upload.maximum_size=32256
atmega328pbic.upload.maximum_data_size=2048
atmega328pbic.upload.speed=57600
atmega328pbic.build.mcu=atmega328pb
atmega328pbic.build.board=AVR_UNO
atmega328pbic.build.core=arduino:arduino
atmega328pbic.build.variant=atmega328pb
atmega328pbic.bootloader.tool=avrdude
atmega328pbic.menu.speed.8mhz=8 MHz
atmega328pbic.menu.speed.8mhz.build.f_cpu=8000000L
atmega328pbic.menu.speed.8mhz.bootloader.low_fuses=0xE2
atmega328pbic.menu.speed.8mhz.bootloader.high_fuses=0xDC
atmega328pbic.menu.speed.8mhz.bootloader.extended_fuses=0xF5
atmega328pbic.menu.speed.1mhz=1 MHz
atmega328pbic.menu.speed.1mhz.build.f_cpu=1000000L
atmega328pbic.menu.speed.1mhz.bootloader.low_fuses=0x62
atmega328pbic.menu.speed.1mhz.bootloader.high_fuses=0xDC
atmega328pbic.menu.speed.1mhz.bootloader.extended_fuses=0xF5

##############################################################

Attendo feedback ;)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 17, 2016, 10:53 am
Ok, ho dedicato un po' di tempo al boards.txt ...  :smiley-mr-green:

... cortesemente controllate che i fuse siano giusti (Brown-out enabled a 2.7V, Serial Programming enabled, Boot size 512, Boot reset vector enabled, clock come da selezione):
Per me è ok.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 17, 2016, 12:01 pm
Per me è ok.
Ok, se prepari allora la versione definitiva del .zip siamo allineati ;)

Così poi metto entrambi i .zip in una cartella condivisa Dropbox e metto qui il link :)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 17, 2016, 01:24 pm
Ok, se prepari allora la versione definitiva del .zip siamo allineati ;)
Lo sto facendo adesso, aggiungo anche un esempio per l'uso della doppia wire e doppia spi.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 17, 2016, 01:51 pm
Ok, perfetto ... poi magari li aggiungo anche io ;)

Intanto il link alla cartella su DropBox è QUESTO (https://www.dropbox.com/sh/li5bk75864n1oa7/AAArRFBf7xjFnPajDL_v_RYna?dl=0) ;)

Terrò aggiornato il contenuto così che il link alla cartella rimanga sempre lo stesso.

Guglielmo

P.S.: Se qualcuno con Mac scaricasse lo zip e lo applicasse (c'è un README per come fare) ... potrebbe cominciare a fare un po' di beta test e segnalare qui eventuali problemi ;)
Title: Re: ATmega328PB
Post by: astrobeed on Mar 17, 2016, 02:49 pm
Ecco la versione aggiornata 1.0.1, ho corretto la presenze del wire0 che era rimasto negli esempi, ho inserito il boards.txt di Guglielmo, ho aggiunto due esempi, spi e wire, per l'uso simultaneo delle interfacce.
Mi sono accorto di un piccolo bug sulla SPI1, avevo lasciato #ifndef del file spi1.h con la stessa definizione di quello presente in spi.h, questo porta ad un errore di classe  SPI o SPI1 non definita quando si usano assieme le due spi, errore corretto in questa versione.


@Paolo
Mi sono accorto che nel readme sul github di Watterott c'è anche il link a questa discussione, oltre al loro file pins_arduino aggiornato con la tua revisione, fagli presente che ora abbiamo anche le librerie così le aggiungono.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 17, 2016, 02:54 pm
Se mi autorizzi butto nel mio github e faccio una pull-request nel loro.
Hai inserito nei file una intestazione con nome, data e modifiche fatte?
Title: Re: ATmega328PB
Post by: astrobeed on Mar 17, 2016, 02:57 pm
Se mi autorizzi butto nel mio github e faccio una pull-request nel loro.
Hai inserito nei file una intestazione con nome, data e modifiche fatte?
Certo che ti autorizzo, nel readme ho solo inserito la versione e la data, se ci pensi tu ad editarla, magari metti pure i credit, mi fai un favore che oggi sono un pochino incasinato col lavoro e ho poco tempo da dedicare a queste cose.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 17, 2016, 03:08 pm
Astro, il tuo esempio mi da un errore con la SPI1 ...

Code: [Select]
/Applications/Arduino 1.6.8 Portable.app/Contents/Java/hardware/atmega328pb/avr/libraries/SPI/examples/dual_digipot/dual_digipot.ino: In function 'void setup()':
dual_digipot:46: error: 'SPI1' was not declared in this scope
  SPI1.begin();
  ^
/Applications/Arduino 1.6.8 Portable.app/Contents/Java/hardware/atmega328pb/avr/libraries/SPI/examples/dual_digipot/dual_digipot.ino: In function 'void digitalPotWrite(int, int)':
dual_digipot:78: error: 'SPI1' was not declared in this scope
  SPI1.transfer(address);
  ^
Using library SPI at version 1.0 in folder: /Applications/Arduino 1.6.8 Portable.app/Contents/Java/hardware/atmega328pb/avr/libraries/SPI
Using library SPI1 at version 1.0 in folder: /Applications/Arduino 1.6.8 Portable.app/Contents/Java/hardware/atmega328pb/avr/libraries/SPI1
exit status 1
'SPI1' was not declared in this scope

... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 17, 2016, 03:13 pm
... mentre quello con la doppia Wire (Wire e Wire1) funziona ::)

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 17, 2016, 03:19 pm
...
Mi sono accorto di un piccolo bug sulla SPI1, avevo lasciato #ifndef del file spi1.h con la stessa definizione di quello presente in spi.h, questo porta ad un errore di classe  SPI o SPI1 non definita quando si usano assieme le due spi, errore corretto in questa versione.
Occhio ... mi sembra che NON lo hai corretto ... nella SPI1 c'è ancora #ifndef _SPI_H_INCLUDED ...
... messe le due righe con _SPI1_H_INCLUDED tutto funziona :D

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 17, 2016, 03:29 pm
Occhio ... mi sembra che NON lo hai corretto ... nella SPI1 c'è ancora #ifndef _SPI_H_INCLUDED ...
Vero, ho ricavato lo zip dalla copia che tengo separata dall'area di test e mi sono scordato di fare la modifica prima di preparare lo zip, quello allegato contiene anche questa modifica.

Title: Re: ATmega328PB
Post by: gpb01 on Mar 17, 2016, 03:30 pm
Ok, l'ho corretto e ri-zippato ...

... come detto in precedenza le due versioni (Win e OS X) sono scaricabili da QUESTO (https://www.dropbox.com/sh/li5bk75864n1oa7/AAArRFBf7xjFnPajDL_v_RYna?dl=0) link.

Guglielmo

Edit: Abbiamo postato assieme, avevo corretto direttamente nel tuo e rifatto lo zip che ora è su Dropbox ;)
Title: Re: ATmega328PB
Post by: astrobeed on Mar 17, 2016, 03:32 pm
Anche se non previsto sulla UNO il prossimo step software potrebbe essere l'implementazione dei tre canali PWM aggiuntivi, magari evitando di inizializzare i timer se non viene esplicitamente dichiarato.
Meglio ancora una libreria dedicata ai timer aggiuntivi che permette di usarli in vario modo, a partire dal PWM.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 17, 2016, 03:59 pm
Pull request n°1 fatta.
Ho aggiunto al volo la modifica indicata da Guglielmo.
--> https://github.com/watterott/ATmega328PB-Testing/pull/1 (https://github.com/watterott/ATmega328PB-Testing/pull/1)
Title: Re: ATmega328PB
Post by: PaoloP on Mar 17, 2016, 04:01 pm
Anche se non previsto sulla UNO il prossimo step software potrebbe essere l'implementazione dei tre canali PWM aggiuntivi, magari evitando di inizializzare i timer se non viene esplicitamente dichiarato.
Meglio ancora una libreria dedicata ai timer aggiuntivi che permette di usarli in vario modo, a partire dal PWM.
Tipo una extendedPWM.h? :)
Title: Re: ATmega328PB
Post by: testato on Mar 17, 2016, 04:06 pm
È facile creare il .json per farlo diventare un core da installare via board manager ?
Title: Re: ATmega328PB
Post by: PaoloP on Mar 17, 2016, 04:10 pm
Non è complicato.
--> https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.6.x-package_index.json-format-specification (https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.6.x-package_index.json-format-specification)
Il problema è dove mettere i file che l'IDE scarica automaticamente. Non so se funzionano i soliti dropbox, gdrive o simili.

Stavo guardando gist di github, ma non so se possa funzionare.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 17, 2016, 04:17 pm
È facile creare il .json per farlo diventare un core da installare via board manager ?
Non so, ma il problema, almeno su OS X, è che, per fare una cosa fatta bene, bisogna cancellare la "tools" originale e sostituirla con quella allegata, altrimenti, sovrascrivendo, si rischia di lasciare porcherie sparse ...

Non so se si può fare da json ... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 17, 2016, 04:28 pm
Da json carichi una tua toolchain e può essere diversa per ogni sistema operativo.
Naturalmente bisogna modificare il platform.txt per indicare il percorso corretto.
Title: Re: ATmega328PB
Post by: testato on Mar 17, 2016, 04:31 pm
La filosofia del .json è di non toccare il core originale, quindi il core nuovo ha una sua tool.

Per il posizionamento online si puo' usare github stesso, caricando i .zip in una dir separata dai sorgenti
Title: Re: ATmega328PB
Post by: gpb01 on Mar 17, 2016, 04:33 pm
Da json carichi una tua toolchain e può essere diversa per ogni sistema operativo.
Naturalmente bisogna modificare il platform.txt per indicare il percorso corretto.
Aha ... ok ...
... magari, se il team di Arduino non aggiornerà la toolchain in una delle prossime release ... ci si può pensare ::)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 17, 2016, 05:25 pm
Pull request n°1 fatta.
Che fulmini, hanno già chiuso la pull e il nostro lavoro è disponibile per tutti. :)
Title: Re: ATmega328PB
Post by: gpb01 on Mar 17, 2016, 05:31 pm
Che fulmini, hanno già chiuso la pull e il nostro lavoro è disponibile per tutti. :)
... speriamo in un bel po' di beta tester :)

Guglielmo

P.S.: Io riporto sempre il link per il download diretto da DropBox delle versioni Win e OS X ... QUI (https://www.dropbox.com/sh/li5bk75864n1oa7/AAArRFBf7xjFnPajDL_v_RYna?dl=0)
Title: Re: ATmega328PB
Post by: astrobeed on Mar 17, 2016, 05:45 pm
... speriamo in un bel po' di beta tester :)
In effetti ci servono beta tester, provare tutto richiede un sacco di tempo.
Title: Re: ATmega328PB
Post by: SukkoPera on Mar 17, 2016, 05:46 pm
Se mi dite come procurarmi una scheda ad un prezzo ragionevole (ergo senza pagare più di spedizione che di scheda) vi aiuto volentieri!
Title: Re: ATmega328PB
Post by: PaoloP on Mar 17, 2016, 06:10 pm
Che fulmini, hanno già chiuso la pull e il nostro lavoro è disponibile per tutti. :)
Andreas Watterott ha scritto
Quote
Thanks.
PS: I am working on a BSP with the Atmel Toolchain.
Title: Re: ATmega328PB
Post by: testato on Mar 17, 2016, 09:29 pm
l'ho letta anche io sta cosa, e volevo capire cosa intende per BSP
ho visto ad esempio che e' un termine che usdano nella creazione di distribuzioni linux personalizzate, ma lui in che senso intende BSP ?

Title: Re: ATmega328PB
Post by: gpb01 on Mar 17, 2016, 09:48 pm
l'ho letta anche io sta cosa, e volevo capire cosa intende per BSP
... forse intende QUESTO (https://it.wikipedia.org/wiki/Board_Support_Package) ::)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 17, 2016, 10:23 pm
ho visto ad esempio che e' un termine che usdano nella creazione di distribuzioni linux personalizzate,
Si usa anche per Windows, in particolare CE e Windows Embedded, senza il BSP non puoi compilare il sistema operativo.
Il BSP è un pacchetto che contiene tutto quello che serve per compilare su una specifica piattaforma hardware, in particolare gli eventuali driver e tutte le informazioni, per il compilatore, sul hardware.
Title: Re: ATmega328PB
Post by: testato on Mar 18, 2016, 07:57 am
ed a cosa puo' servire in questo caso ?

un BSP da quel che vedo e' poi legato ad un sistema operativo ben preciso, sempre meglio lavorare al .json e creare un core terze parti ufficialmente supportato dall'ide su tutti gli OS

Ora glielo scrivo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 18, 2016, 08:20 am
Ora glielo scrivo
... non è meglio vedere cosa fa esattamente e solo poi, se non ti piace, rompergli le scatole ? Perché per ora è solo una frase buttata li di cui neanche sappiamo bene il senso o l'idea di ciò che vuole fare ... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 18, 2016, 08:45 am
E' possibile che collabori con ATmel per meglio implementare le definizioni e il supporto del 328PB nella loro toolchain?

Comunque, avere una toolchain funzionante è nel loro interesse visto che hanno preparato l'hardware... che vogliono vendere.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 18, 2016, 09:09 am
Quote from: awatterott
I mean with BSP a json file, which can be installed via the boards manager.
Title: Re: ATmega328PB
Post by: testato on Mar 18, 2016, 09:44 am
ecco  :)

Title: Re: ATmega328PB
Post by: astrobeed on Mar 18, 2016, 10:31 am
un BSP da quel che vedo e' poi legato ad un sistema operativo ben preciso
Test hai totalmente frainteso cosa sia un BSP, non è legato al sistema operativo, è legato al hardware, è tutto l'insieme di informazione e codice sorgente per poter utilizzare una specifica piattaforma hardware, p.e. la patch che abbiamo realizzato per l'IDE di Arduino è assimilabile ad un mini BSP per l'Atmega 328BP orientato ad Arduino.
Il file json serve solo per dire al IDE cosa deve caricare, dove prenderlo e dove metterlo, non contiene informazioni su come va utilizzato un certo hardware, è una cosa diversa dal BSP.

p.e. questo è il contenuto del json abbinato alla libreria encoder:

Code: [Select]

{
  "name": "Encoder",
  "keywords": "encoder, signal, pulse",
  "description": "Encoder counts pulses from quadrature encoded signals, which are commonly available from rotary knobs, motor or shaft sensors and other position sensors",
  "repository":
  {
    "type": "git",
    "url": "https://github.com/PaulStoffregen/Encoder.git"
  },
  "frameworks": "arduino",
  "platforms":
  [
    "atmelavr",
    "teensy"
  ]
}


Come vedi contiene solo quale repository git usare, le informazioni di cosa si tratta e per quali piattaforme è utilizzabile.
Title: Re: ATmega328PB
Post by: testato on Mar 18, 2016, 11:54 am
capi',

probabilmente pero' non viene comunemente usato nel mondo MCU senza OS
vedo dalle ricerche su google che viene usato piu' nei sistemi embedded con sistema operativo.

un nuovo termine imparato e' sempre cosa buona  :)
Title: Re: ATmega328PB
Post by: PaoloP on Mar 18, 2016, 04:09 pm
E anche AVRdude 6.3 con il .conf modificato funziona!
Code: [Select]
avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb/avr/tools/avr8-gnu-toolchain//etc/avrdude.conf"

         Using Port                    : COM16
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega328PB
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 6.2
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9516 (probably m328pb)
avrdude: reading input file "C:\USERS\PAOLO\APPDATA\LOCAL\TEMP\buildbcf6f058b8a5a22ce0dc73eca589f0be.tmp/BlinkWithoutDelay.ino.hex"
avrdude: writing flash (1214 bytes):

Writing | ################################################## | 100% 0.34s

avrdude: 1214 bytes of flash written
avrdude: verifying flash memory against C:\USERS\PAOLO\APPDATA\LOCAL\TEMP\buildbcf6f058b8a5a22ce0dc73eca589f0be.tmp/BlinkWithoutDelay.ino.hex:
avrdude: load data flash data from input file C:\USERS\PAOLO\APPDATA\LOCAL\TEMP\buildbcf6f058b8a5a22ce0dc73eca589f0be.tmp/BlinkWithoutDelay.ino.hex:
avrdude: input file C:\USERS\PAOLO\APPDATA\LOCAL\TEMP\buildbcf6f058b8a5a22ce0dc73eca589f0be.tmp/BlinkWithoutDelay.ino.hex contains 1214 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.25s

avrdude: verifying ...
avrdude: 1214 bytes of flash verified

avrdude done.  Thank you.


Tra le altre cose adesso la 6.3 riconosce come programmatore ISP la Xplained.
Vedo se riesco a creare un file programmer.txt da inserire nelle pacchetto.  :)

Il file ha la doppia estensione.... togliere il .txt
Title: Re: ATmega328PB
Post by: PaoloP on Mar 18, 2016, 04:27 pm
--> https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/tree/master/module/variants (https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/tree/master/module/variants)
Title: Re: ATmega328PB
Post by: astrobeed on Mar 18, 2016, 04:30 pm
Tra le altre cose adesso la 6.3 riconosce come programmatore ISP la Xplained.
 Vedo se riesco a creare un file programmer.txt da inserire nelle pacchetto.  :)
Vedo che supporta anche il modo debugwire come programmazione, il che fa comodo nel caso si vuole usare il debug hardware.
Se riesci ad inserire tra i programmatori anche l'mEDBG sarebbe una gran bella cosa.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 18, 2016, 04:32 pm
--> https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/tree/master/module/variants (https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/tree/master/module/variants)
Bello il disegno in ASCII, però mancano tutti i pin aggiuntivi del 328PB.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 18, 2016, 04:50 pm
Tra le altre cose adesso la 6.3 riconosce come programmatore ISP la Xplained.
Ho fatto una prova al volo con avrdudess, tra i programmatori supportati appare la Xplained mini, però all'atto pratico non la trova.
Sicuramente un problema di driver, anche per l'AVRISP MKII tocca usare la libusb altrimenti con i driver nativi di Atmel studio non funziona, tocca capire come fare per la Xplained.

Title: Re: ATmega328PB
Post by: gpb01 on Mar 18, 2016, 05:08 pm
E anche AVRdude 6.3 con il .conf modificato funziona
Ma ... non se ne era già parlato ? :o

Pensa che nella distribuzione OS X che ho messo in linea c'è già  dentro avrdude 6.3 ... :D :smiley-mr-green: :D

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 18, 2016, 10:25 pm
Ho fatto una prova al volo con avrdudess, tra i programmatori supportati appare la Xplained mini, però all'atto pratico non la trova.
Nel .conf la Xplained ha un VID/PID di riferimento. Non è che con la XplainedPB è cambiato e basta aggiungerlo?
Devo provare...
Title: Re: ATmega328PB
Post by: PaoloP on Mar 18, 2016, 10:27 pm
Ma ... non se ne era già parlato ? :o

Pensa che nella distribuzione OS X che ho messo in linea c'è già  dentro avrdude 6.3 ... :D :smiley-mr-green: :D

Guglielmo
Si  :smiley-confuse:
Però mi sono guardato riga per riga il nuovo .conf è ho visto tutto quello che hanno aggiunto.  :)
Title: Re: ATmega328PB
Post by: astrobeed on Mar 18, 2016, 10:32 pm
Non è che con la XplainedPB è cambiato e basta aggiungerlo?
Verificato, VID e PID sono quelli previsti nel .conf, tra parantesi la Xplained usa un device USB di tipo duale, implementa un device CDC per la Vcom e poi c'è un device HID per la parte programmatore/debugger.
Per me il problema è lo stesso del AVRISP MKII, se non si installa tramite libusb non funziona con avrdude, i driver Jungo di Atmel Studio non vengono riconosciuti da avrdude.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 12:08 pm
Funziona!
Quote
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude.exe: Device signature = 0x1e9516 (probably m328pb)
avrdude.exe: reading lfuse memory:

Reading | ################################################## | 100% 0.02s

avrdude.exe: writing output file "C:\USERS\PAOLO\APPDATA\LOCAL\TEMP\1800d72d-2c2f-489a-9922-9c1759cc7304.TMP"
avrdude.exe: reading hfuse memory:

Reading | ################################################## | 100% 0.00s

avrdude.exe: writing output file "C:\USERS\PAOLO\APPDATA\LOCAL\TEMP\36e3a867-f608-4de4-aa24-4e472bd3b459.TMP"
avrdude.exe: reading efuse memory:

Reading | ################################################## | 100% 0.02s

avrdude.exe: writing output file "C:\USERS\PAOLO\APPDATA\LOCAL\TEMP\37ce2643-97e9-497c-9646-c98212522264.TMP"

avrdude.exe done.  Thank you.

Ho installato il filtro sul driver multiplo jungo e AVRdude vede la usb della Xplained.
--> https://sourceforge.net/projects/libusb-win32/
 (https://sourceforge.net/projects/libusb-win32/)
Va fatto per ogni periferica Xplained installata.

(http://s11.postimg.org/a3qylqsz7/AVRdude_6_3_xplained.jpg)
Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 12:22 pm
 :smiley-mr-green:  :smiley-mr-green:  :smiley-mr-green:  :smiley-mr-green:

Da IDE 1.6.8.
Quote
avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb/avr/tools/avr8-gnu-toolchain//etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : xplainedmini
avrdude: usbdev_open(): Found mEDBG CMSIS-DAP, serno: ATML2523030200001661
avrdude: max packet size expected 512, but found 64 due to EP 0x81's wMaxPacketSize
avrdude: Found CMSIS-DAP compliant device, using EDBG protocol
         AVR Part                      : ATmega328PB
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : JTAG3_ISP
         Description     : Atmel AVR XplainedMini in ISP mode
         Vtarget         : 5.0 V
         SCK period      : 8.00 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e9516 (probably m328pb)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "C:\USERS\PAOLO\APPDATA\LOCAL\TEMP\buildbcf6f058b8a5a22ce0dc73eca589f0be.tmp/BlinkWithoutDelay.ino.hex"
avrdude: writing flash (1214 bytes):

Writing | ################################################## | 100% 1.14s

avrdude: 1214 bytes of flash written
avrdude: verifying flash memory against C:\USERS\PAOLO\APPDATA\LOCAL\TEMP\buildbcf6f058b8a5a22ce0dc73eca589f0be.tmp/BlinkWithoutDelay.ino.hex:
avrdude: load data flash data from input file C:\USERS\PAOLO\APPDATA\LOCAL\TEMP\buildbcf6f058b8a5a22ce0dc73eca589f0be.tmp/BlinkWithoutDelay.ino.hex:
avrdude: input file C:\USERS\PAOLO\APPDATA\LOCAL\TEMP\buildbcf6f058b8a5a22ce0dc73eca589f0be.tmp/BlinkWithoutDelay.ino.hex contains 1214 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.19s

avrdude: verifying ...
avrdude: 1214 bytes of flash verified

avrdude done.  Thank you.

Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 12:23 pm
Che dite.... provo "Scrivi Bootloader"?  :o
E se i fuse sono sbagliati?
Title: Re: ATmega328PB
Post by: astrobeed on Mar 19, 2016, 12:29 pm
E se i fuse sono sbagliati?
Se non hai un AVR Dragon butti la scheda, fammi sistemare il tutto e ci provo io. :)
Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 12:46 pm
Ho un ATmel ICE.  :)
(http://media.digikey.com/Photos/Atmel%20Photos/MFG_ATATMEL-ICE.jpg)

Andrebbe bene ugualmente?
Title: Re: ATmega328PB
Post by: astrobeed on Mar 19, 2016, 12:54 pm
Provato a caricare da IDE il bootloader, va in errore, devo controllare ma ho l'impressione che c'è qualche problema con l'eMDBG usato da IDE per caricare il boot, per caricare i programmi va bene però ho notato che a volte la Vcom va in blocco e tocca scollegare l'alimentazione (reset) per ripristinarla.

Title: Re: ATmega328PB
Post by: astrobeed on Mar 19, 2016, 12:55 pm
Ho un ATmel ICE.  :)
Non sono sicuro al 100%, però mi pare che non permette la HVPP.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 12:56 pm
 :smiley-confuse:
Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 12:56 pm
Intanto ho mandato le modifiche al tedesco. Almeno aggiorna ad AVRdude 6.3.
Title: Re: ATmega328PB
Post by: testato on Mar 19, 2016, 01:11 pm
No, non supporta alta tensione.
Ik dragon è l'unico cge la supporta, però puoi sempre resettare tutto collegando tutti i cavi e buttando manualmente i 12V sul reset
Title: Re: ATmega328PB
Post by: astrobeed on Mar 19, 2016, 02:52 pm
Ik dragon è l'unico cge la supporta
L'AVR Dragon non è l'unico programmatore Atmel che supporta l'HVPP, p.e. anche l'STK600 la supporta, però non si tratta solo del 12V sul reset, ci sono ben 16 segnali da collegare, di cui 8 bit dati, 8 bit di controllo e 1 clock, scordatelo di farlo con l'Atmel ICE, ho appena verificato.
Che poi l'HVPP di Atmel sia una cosa assurda, mi piacerebbe sapere sotto l'effetto di quale droga era chi l'ha inventato, è un altro paio di maniche, infatti nel 99.99% dei casi non è applicabile col micro montato sul circuito, quindi perfettamente inutile e se sbagli a programmare i fuse puoi buttare la scheda se non cambi il micro.

Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 03:00 pm
Ho controllato i fuse e provato a scrivere il bootloader dall'IDE.
Come hai detto va in errore.
Quote
avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb/avr/tools/avr8-gnu-toolchain//etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : xplainedmini
avrdude: usbdev_open(): Found mEDBG CMSIS-DAP, serno: ATML2523030200001661
avrdude: max packet size expected 512, but found 64 due to EP 0x81's wMaxPacketSize
avrdude: Found CMSIS-DAP compliant device, using EDBG protocol
         AVR Part                      : ATmega328PB
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : JTAG3_ISP
         Description     : Atmel AVR XplainedMini in ISP mode
         Vtarget         : 5.0 V
         SCK period      : 8.00 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e9516 (probably m328pb)
avrdude: erasing chip
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xff != 0x3f
avrdude: verification error; content mismatch

avrdude done.  Thank you.

Errore durante la scrittura del bootloader
:smiley-confuse:
Title: Re: ATmega328PB
Post by: astrobeed on Mar 19, 2016, 03:07 pm
Quanto mi piace questa warning di avrdude. :D

Quote
avrdude: Device signature = 0x1e9516 (probably m328pb)
Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 03:08 pm
Se programmo il bootloader da AVRdudess funziona.
Quote
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude.exe: Device signature = 0x1e9516 (probably m328pb)
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex"
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex auto detected as Intel Hex
avrdude.exe: writing flash (32748 bytes):

Writing | ################################################## | 100% 0.00s

avrdude.exe: 32748 bytes of flash written
avrdude.exe: verifying flash memory against D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex:
avrdude.exe: load data flash data from input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex:
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex auto detected as Intel Hex
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex contains 32748 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 0.00s

avrdude.exe: verifying ...
avrdude.exe: 32748 bytes of flash verified
avrdude.exe: reading input file "0xFF"
avrdude.exe: writing lock (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude.exe: 1 bytes of lock written
avrdude.exe: verifying lock memory against 0xFF:
avrdude.exe: load data lock data from input file 0xFF:
avrdude.exe: input file 0xFF contains 1 bytes
avrdude.exe: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of lock verified

avrdude.exe done.  Thank you.

Riga di comando: -c xplainedmini -p m328pb -P usb -U flash:w:"D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex":a -U lock:w:0xFF:m
Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 03:09 pm
Quanto mi piace questa warning di avrdude. :D
Esce anche con la Xplain328P
Code: [Select]
Unknown signature 1e950f(probablym328p)
Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 03:11 pm
La riga dell'IDE invece è:
Code: [Select]
-CD:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb/avr/tools/avr8-gnu-toolchain//etc/avrdude.conf -v -patmega328pb -cxplainedmini -e -Ulock:w:0x3F:m -Uefuse:w:0xF5:m -Uhfuse:w:0xDC:m -Ulfuse:w:0xE0:m


Contro
Code: [Select]
-c xplainedmini -p m328pb -P usb -U flash:w:"D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex":a -U lock:w:0xFF:m
Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 03:16 pm
Anche con i fuse
Code: [Select]
-c xplainedmini -p m328pb -P usb -v -U flash:w:"D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex":a -U lfuse:w:0xE0:m -U hfuse:w:0xDC:m -U efuse:w:0xFD:m -U lock:w:0xFF:m
Tramite AVRdudess funziona.
Quote
Unknown signature 1e9516(probablym328pb)
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

avrdude.exe: Version 6.3, compiled on Feb 17 2016 at 09:25:53
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2014 Joerg Wunsch

             System wide configuration file is "D:\Arduino\avrdudess_20140805\avrdude.conf"

             Using Port                    : usb
             Using Programmer              : xplainedmini
avrdude.exe: usbdev_open(): Found mEDBG CMSIS-DAP, serno: ATML2523030200001661
avrdude.exe: max packet size expected 512, but found 64 due to EP 0x81's wMaxPacketSize
avrdude.exe: Found CMSIS-DAP compliant device, using EDBG protocol
             AVR Part                      : ATmega328PB
             Chip Erase delay              : 9000 us
             PAGEL                         : PD7
             BS2                           : PC2
             RESET disposition             : dedicated
             RETRY pulse                   : SCK
             serial program mode           : yes
             parallel program mode         : yes
             Timeout                       : 200
             StabDelay                     : 100
             CmdexeDelay                   : 25
             SyncLoops                     : 32
             ByteDelay                     : 0
             PollIndex                     : 3
             PollValue                     : 0x53
             Memory Detail                 :

                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
               flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
               lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

             Programmer Type : JTAG3_ISP
             Description     : Atmel AVR XplainedMini in ISP mode
             Vtarget         : 5.0 V
             SCK period      : 8.00 us

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude.exe: Device signature = 0x1e9516 (probably m328pb)
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex"
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex auto detected as Intel Hex
avrdude.exe: writing flash (32748 bytes):

Writing | ################################################## | 100% 0.00s

avrdude.exe: 32748 bytes of flash written
avrdude.exe: verifying flash memory against D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex:
avrdude.exe: load data flash data from input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex:
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex auto detected as Intel Hex
avrdude.exe: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr\bootloaders\optiboot_m328pb.hex contains 32748 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% -0.00s

avrdude.exe: verifying ...
avrdude.exe: 32748 bytes of flash verified
avrdude.exe: reading input file "0xE0"
avrdude.exe: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude.exe: 1 bytes of lfuse written
avrdude.exe: verifying lfuse memory against 0xE0:
avrdude.exe: load data lfuse data from input file 0xE0:
avrdude.exe: input file 0xE0 contains 1 bytes
avrdude.exe: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of lfuse verified
avrdude.exe: reading input file "0xDC"
avrdude.exe: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude.exe: 1 bytes of hfuse written
avrdude.exe: verifying hfuse memory against 0xDC:
avrdude.exe: load data hfuse data from input file 0xDC:
avrdude.exe: input file 0xDC contains 1 bytes
avrdude.exe: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of hfuse verified
avrdude.exe: reading input file "0xFD"
avrdude.exe: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude.exe: 1 bytes of efuse written
avrdude.exe: verifying efuse memory against 0xFD:
avrdude.exe: load data efuse data from input file 0xFD:
avrdude.exe: input file 0xFD contains 1 bytes
avrdude.exe: reading on-chip efuse data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of efuse verified
avrdude.exe: reading input file "0xFF"
avrdude.exe: writing lock (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude.exe: 1 bytes of lock written
avrdude.exe: verifying lock memory against 0xFF:
avrdude.exe: load data lock data from input file 0xFF:
avrdude.exe: input file 0xFF contains 1 bytes
avrdude.exe: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of lock verified

avrdude.exe done.  Thank you.

Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 03:18 pm
Ecco... se metto in AVRdude Lockbit 0x3F invece di 0xFF va in errore.
Title: Re: ATmega328PB
Post by: testato on Mar 19, 2016, 03:53 pm
L'AVR Dragon non è l'unico programmatore Atmel che supporta l'HVPP, p.e. anche l'STK600 la supporta, però non si tratta solo del 12V sul reset, ci sono ben 16 segnali da collegare, di cui 8 bit dati, 8 bit di controllo e 1 clock, scordatelo di farlo con l'Atmel ICE, ho appena verificato.
Per manualmente intendo collegare il micro su una breadboard ed applicare il 12V al momento giusto.
Intendo il metodo manuale fatto con arduino stesso e l'apposito firmware

C'è anche uno schefino in vendita, certo che dissardare il micro falla explained, risaldarlo su un adattatore, resettsrlo, ridissaldarlo, risaldarlo sulla explained......
Fai prima a ricomprarla :-)

Se facessero la versione pdip sarebbe tutto più facile e tutti aggiorneremmo le uno
Title: Re: ATmega328PB
Post by: astrobeed on Mar 19, 2016, 04:00 pm
C'è anche uno schefino in vendita, certo che dissardare il micro falla explained,
Io ho usato la HVPP sulla Xplained senza dissaldare il micro, è bastato togliere una resistenza per non mandare i 12 V sul 32u4, però questo è uno dei rarissimi casi in cui è possibile farlo senza dissaldare il micro.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 04:03 pm
Sto andando avanti.
Fuse scritti.
Verifica fuse + unlockbit.
Bootloader scritto.
Verifica LockBit failed.
Quote
avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb/avr/tools/avr8-gnu-toolchain//etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : xplainedmini
avrdude: usbdev_open(): Found mEDBG CMSIS-DAP, serno: ATML2523030200001661
avrdude: max packet size expected 512, but found 64 due to EP 0x81's wMaxPacketSize
avrdude: Found CMSIS-DAP compliant device, using EDBG protocol
         AVR Part                      : ATmega328PB
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : JTAG3_ISP
         Description     : Atmel AVR XplainedMini in ISP mode
         Vtarget         : 5.0 V
         SCK period      : 8.00 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e9516 (probably m328pb)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr/bootloaders/optiboot_m328pb.hex"
avrdude: writing flash (32748 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 32748 bytes of flash written
avrdude: verifying flash memory against D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr/bootloaders/optiboot_m328pb.hex:
avrdude: load data flash data from input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr/bootloaders/optiboot_m328pb.hex:
avrdude: input file D:\Arduino\arduino-1.6.8\portable\sketchbook\hardware\atmega328pb\avr/bootloaders/optiboot_m328pb.hex contains 32748 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% -0.00s

avrdude: verifying ...
avrdude: 32748 bytes of flash verified
avrdude: reading input file "0xCF"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0xCF:
avrdude: load data lock data from input file 0xCF:
avrdude: input file 0xCF contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xff != 0xcf
avrdude: verification error; content mismatch

avrdude done.  Thank you.

Errore durante la scrittura del bootloader
WTF!
Title: Re: ATmega328PB
Post by: Etemenanki on Mar 19, 2016, 04:22 pm
... WTF
Che codice di errore e', hardware o software ? ... :P :D :D :D
Title: Re: ATmega328PB
Post by: astrobeed on Mar 19, 2016, 04:25 pm
Che codice di errore e', hardware o software ? ... :P :D :D :D
Non è un codice di errore, wtf = codice ISO 639-3 della lingua dumpu. :D

Title: Re: ATmega328PB
Post by: PaoloP on Mar 19, 2016, 04:25 pm
Allora.... non riesco a scrivere correttamente i fuse.
Impostando l'unlockfuse a 0xFF invece che 0xcF e extended fuse a 0xFD al posto di 0xF5. Funziona.
Ovviamente non attiva il controllo sul clock e nemmeno la protezione del'area bootloader.
Dopo aver messi il filtro driver della libusb anche ATmel Studio non riesce a settare bene i fuse sul 328PB.
Non ricordo prima.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 20, 2016, 09:50 am
Ho fatto qualche prova con l'usb filter, però l'impressione è che ci sono ancora tanti problemi da risolvere da parte di Avrdude, primo tra tutti il blocco della seriale sul mEDBG dopo la programmazione.

Se non ci avete fatto caso i 328PB contengono un ID unico, impresso durante il processo di produzione, che permette di identificare il singolo chip, o scheda che lo contiene, il data sheet dice solo che c'è però non spiega come usarlo.
Cercando sulla AN che parla delle differenze tra Atmega328P e Atmega328PB ho trovato che l'ID si può leggere come un registro di I/O e occupa ben 9 byte, da 0xF0 a 0xF8, ecco un semplice sketch per leggere i 9 byte visto che non sono definiti nemmeno all'interno di iom328pb.h.
Forse vale la pena di realizzare una funzione dedicata.

Code: [Select]
#define UID0  _SFR_IO8(0xF0)
#define UID1  _SFR_IO8(0xF1)
#define UID2  _SFR_IO8(0xF2)
#define UID3  _SFR_IO8(0xF3)
#define UID4  _SFR_IO8(0xF4)
#define UID5  _SFR_IO8(0xF5)
#define UID6  _SFR_IO8(0xF6)
#define UID7  _SFR_IO8(0xF7)
#define UID8  _SFR_IO8(0xF8)

void setup() {
  Serial.begin(57600);

  Serial.println(UID0, HEX);
  Serial.println(UID1, HEX);
  Serial.println(UID2, HEX);
  Serial.println(UID3, HEX);
  Serial.println(UID4, HEX);
  Serial.println(UID5, HEX);
  Serial.println(UID6, HEX);
  Serial.println(UID7, HEX);
  Serial.println(UID8, HEX);
}
Title: Re: ATmega328PB
Post by: gpb01 on Mar 20, 2016, 10:31 am
... ho trovato che l'ID si può leggere come un registro di I/O e occupa ben 9 byte, da 0xF0 a 0xF8
... la cosa buffa è che non ce ne è traccia neanche all'interno di iom328pb.h dove si sono fermati con le definizioni a TWAMR1 (0xDD) e non sono andati oltre. Inoltre, sia nel Summary 10/2015 che nel Datasheet 10/2015, nella tabella di riepilogo dei registri (Register Summary), i suddetti registri vengono solo definiti "Reserved" ! :o

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Mar 20, 2016, 11:32 am
i suddetti registri vengono solo definiti "Reserved" ! :o
Che il data sheet del 328PB sia carente, fumoso, per non dire di peggio, già lo sappiamo, speriamo che rilasciano una nuova revisione a breve.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 20, 2016, 12:28 pm
Che il data sheet del 328PB sia carente, fumoso, per non dire di peggio, già lo sappiamo, speriamo che rilasciano una nuova revisione a breve.
... direi che anche il file iom328pb.h non è da meno ::)

Guglielmo
Title: Re: ATmega328PB
Post by: testato on Mar 20, 2016, 12:57 pm
Interessante questa funzione dell'ID.
Può essere utile contro la contraffazione.

Title: Re: ATmega328PB
Post by: gpb01 on Mar 20, 2016, 01:39 pm
Può essere utile contro la contraffazione.
Mmmm ... insomma ... dovresti fare delle versioni personalizzate, UNA AD UNA, ciascuna con il seriale della MCU bruciato nel codice ... un bel lavoraccio per una produzione in serie ... ::)

Molto più utile invece in applicazioni di sicurezza in cui il seriale può essere parte della chiave di crittografia ;)

Guglielmo
Title: Re: ATmega328PB
Post by: testato on Mar 20, 2016, 02:39 pm
Se sti seriali sono in serie si può fare un controllo su tutto il batch acquistato.
 If sn 00x to y00

Ottima anche lo a tua idea
Title: Re: ATmega328PB
Post by: gpb01 on Mar 20, 2016, 02:44 pm
Forse vale la pena di realizzare una funzione dedicata.
Una cosa tipo questa ? ...

Code: [Select]
void get_mcuSerialNumber(byte* pSerial) {
  for (byte i = 0; i < 9; i++) *(pSerial + i) = _SFR_IO8(0xF0 + i);
}

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Mar 20, 2016, 06:32 pm
... piuttosto non avevo fatto caso ad una cosa :smiley-confuse:  ... hanno messo la seconda seriale (Serial1) proprio sugli stessi pin del connettore ICSP (MISO0 e MOSI0) ... una bella rottura di scatole se si hanno delle periferiche seriali connesse e si vuole avere la possibilità di aggiornare il FW via ICSP   >:( >:( >:(

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 20, 2016, 07:45 pm
Lo chiamerei mcuSerialNumber. Serial e basta sa troppo di interfaccia Seriale e non di numero di serie.

In effetti il posizionamento delle doppie funzioni lascia a desiderare. Ma forse usano lo stesso hardware della SPI.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 20, 2016, 07:46 pm
Lo chiamerei mcuSerialNumber. Serial e basta sa troppo di interfaccia Seriale e non di numero di serie.
Corretto ;)

Guglielmo
Title: Re: ATmega328PB
Post by: testato on Mar 21, 2016, 07:58 am
Ci sono troppi asterischi per i miei gusti  :)
Come la richiami al fine di stamparlo su monitor seriale ?
Title: Re: ATmega328PB
Post by: gpb01 on Mar 21, 2016, 08:59 am
Ci sono troppi asterischi per i miei gusti  :)
Come la richiami al fine di stamparlo su monitor seriale ?
:D :D :D :D ... per un paio di piccoli pointer ...

Code: [Select]
char serialNumber[9];
....
get_mcuSerialNumber(serialNumber);
for (byte i = 0; i < 9; i++) Serial.println(serialNumber[i], HEX);

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Mar 21, 2016, 09:14 am
Anche la seconda pull request: merged!  :)
--> https://github.com/watterott/ATmega328PB-Testing (https://github.com/watterott/ATmega328PB-Testing)
Title: Re: ATmega328PB
Post by: PaoloP on Mar 21, 2016, 09:37 am
Potreste dargli qualche dritta "in inglese" --> https://forum.arduino.cc/index.php?topic=360407.msg2673703#msg2673703 (https://forum.arduino.cc/index.php?topic=360407.msg2673703#msg2673703)
Anche per capire cosa ha combinato.
Title: Re: ATmega328PB
Post by: astrobeed on Mar 21, 2016, 09:44 am
Anche per capire cosa ha combinato.
Sicuramente ha fatto qualche casino con i fuse.
Title: Re: ATmega328PB
Post by: PaoloP on Mar 21, 2016, 09:46 am
Si, ma su uno stand-alone, su una schedina Watterott o su Xplained?
Title: Re: ATmega328PB
Post by: astrobeed on Mar 21, 2016, 09:50 am
Si, ma su uno stand-alone, su una schedina Watterott o su Xplained?
Non specifica nulla di quello che ha fatto, tocca chiedergli di spiegare con che hardware sta lavorando e come ha settato i fuse.
Title: Re: ATmega328PB
Post by: testato on Mar 21, 2016, 02:11 pm
:D :D :D :D ... per un paio di piccoli pointer ...

Code: [Select]
char serialNumber[9];
....
get_mcuSerialNumber(serialNumber);
for (byte i = 0; i < 9; i++) Serial.println(serialNumber[i], HEX);

Guglielmo
Ok, ma non è Arduino like  :)

Lato core va bene scendere a basso livello, ma costringere poi lato user a dover sapere che servono 9 byte e poi doverli concatenare è complicato.

Io ingloberei tutto nella funzione e poi far ritornare solo l id già tutto intero.

In modo da chiamarlo con un semplice int mcuIDnumber();
E vedersi ritornato il dato
Title: Re: ATmega328PB
Post by: astrobeed on Mar 21, 2016, 02:22 pm
Io ingloberei tutto nella funzione e poi far ritornare solo l id già tutto intero.
Sono nove byte, puoi gestirli solo tramite un array e gli array non si passano tra funzioni, si possono passare solo i puntatori.
Diciamo che si può gestire il tutto tramite un singolo file .h dove ci sono le definizioni dei registri e una macro che li legge, però sempre con i puntatori dovrai litigare. :)

p.s.
Non esiste il software Arduino like, esiste solo il software scritto bene e quello scritto male. :)
Title: Re: ATmega328PB
Post by: gpb01 on Mar 21, 2016, 03:06 pm
In modo da chiamarlo con un semplice int mcuIDnumber();
E vedersi ritornato il dato
... aggiungo che non servirebbe a nulla, non c'è mica scritto nulla di stampabile, sono 9 bytes con valore da 0x00 a 0xFF che messi assieme fanno un codice univoco utilizzabile in ben poche applicazioni NON certo per "iniziandi" (...tipicamente chiavi crittografiche) ;)

Guglielmo
Title: Re: ATmega328PB
Post by: testato on Mar 21, 2016, 03:06 pm
Dai esiste, arduino ha come merito proprio questo, quello di aver inventsto l'arduino like.

Certo sempre con puntatori, non dico di fare diversamente, d'altronde un array cos'e' ?  :)

Dico che si deve inglobare il tutto e lasciare allo user solo l'onere di richiamare una funzione.
Dopo la scrivo, ma non posdo provarla  :)
Title: Re: ATmega328PB
Post by: astrobeed on Mar 21, 2016, 03:13 pm
ma non posdo provarla  :)
Raffredato ?  :smiley-mr-green:
Title: Re: ATmega328PB
Post by: PaoloP on Mar 21, 2016, 04:17 pm
Quindi il nostro caro 328, P o PB, non può più andare a 20Mhz  :smiley-cry:  :smiley-cry:
--> https://forum.arduino.cc/index.php?topic=360407.msg2674159#msg2674159 (https://forum.arduino.cc/index.php?topic=360407.msg2674159#msg2674159)
Title: Re: ATmega328PB
Post by: astrobeed on Mar 21, 2016, 04:40 pm
Quindi il nostro caro 328, P o PB, non può più andare a 20Mhz  :smiley-cry:  :smiley-cry:
Il datasheet dice l'esatto contrario :)

Code: [Select]
Up to 20 MIPS Throughput at 20MHz

La questione del full swing non ha nulla a che vedere con la frequenza massima, serve solo per migliorare l'affidabilità dell'oscillatore in ambienti molto rumorosi, per contro aumenta il consumo di energia.
Altro dettaglio, la questione quarzo da usare col micro è molto importante, tutti i produttori rilasciano AN specifiche e consigliano specifici modelli di quarzo, non si può avere la pretesa di usare quarzacci cineseria low cost e pretendere che tutto funziona sempre.
Giusto per curiosità ho appena fatto un test collegando al clock della Xplained il mio generatore di segnali con out a 20 MHz, il micro funziona perfettamente. :)

Title: Re: ATmega328PB
Post by: speedyant on Mar 21, 2016, 04:45 pm
Io arriverei al massimo a 10MHz, peccato...
Title: Re: ATmega328PB
Post by: testato on Mar 21, 2016, 05:55 pm
Raffredato ?  :smiley-mr-green:
Scorrettore automatico  :)

sembrava piu' facile, ma non riesco ad arduinizzare facilmente il fatto dell'ID
si potrebbe convertire l'array di byte in una String e ritornarla al chiamante.

Voi vedete altre soluzioni ? Intendo per poter fare, senza dover dichiarare nulla lato sketch

Code: [Select]
Serial.print(get_mcuSerialNumber());  
Title: Re: ATmega328PB
Post by: gpb01 on Mar 21, 2016, 06:03 pm
Testato, sei disattento ... :smiley-evil:

... t'ho già spiegato QUI (http://forum.arduino.cc/index.php?topic=374642.msg2674061#msg2674061) che è inutile e non si può fare; NON contiene caratteri stampabili, ma un numero binario di 9 byte che identifica univocamente il chip.

Se uno proprio vuole vederlo, l'unica è stampare carattere a carattere in HEX ... come ti ho già scritto ;)

Guglielmo
Title: Re: ATmega328PB
Post by: testato on Mar 21, 2016, 07:33 pm
distratto no, testa si  :)

l'ho letto il top post, ma volevo vedere come poter fare un
Code: [Select]
Serial.print(get_mcuSerialNumber());
 

in modo da stampare la sequenza del seriale convertito in decimale, quindi facendo tutto internamente alla funzione.
Ma mi sembra che l'unica strada sia usare String internamente sempre alla funzione e ritornare appunto la stringa. Un qualcosa di copiosamente grosso per una cosa del genere.

Per sfizio, non perche' sia utile o obbligatorio  :)
Title: Re: ATmega328PB
Post by: gpb01 on Mar 21, 2016, 08:14 pm
Quella funzione accede direttamente all'array che gli viene passato e NON torna nulla, ma mette i valori direttamente nell'array, quindi, in quel modo, NON la puoi usare.

O te ne scrivi un'altra (che fa un lavoro inutile  :smiley-twist:) e che ritorna il pointer ad una stringa dove metti quello che ti pare o, con quella che ho messo io, non lo fai.

Guglielmo
Title: Re: ATmega328PB
Post by: testato on Mar 21, 2016, 08:33 pm
Si l'ho riscritta così senza puntatori, riempio un array lo converto in decimale, lo converto in stringa e lo ritorno al chiamante, ma appunto devo mettere in gioco String e poi passare la stringa definitiva al chiamante. Diventa pesante.

Ho notato una cosa sulla tua funzione, se invece di stampare con println stampo solo con print mi stampa tutti zero.
Anche a te fa così ? Perché ? Print vs Println dovrebbe solo stampare tutto attaccato
Title: Re: ATmega328PB
Post by: gpb01 on Mar 23, 2016, 11:43 am
Ho notato una cosa sulla tua funzione, se invece di stampare con println stampo solo con print mi stampa tutti zero.
Anche a te fa così ? Perché ? Print vs Println dovrebbe solo stampare tutto attaccato
No, a me funziona allo stesso modo (ovviamente, per valori inferiori a 0x10 ... scrive solo UN carattere, ma lo fa sia con la print che con la println) ...

Code: [Select]
void get_mcuSerialNumber(byte* pSerial) {
  for (byte i = 0; i < 9; i++) *(pSerial + i) = _SFR_IO8(0xF0 + i);
}

void setup() {
  // put your setup code here, to run once:
  byte serialNumber[9];
  //
  delay(1000);
  Serial.begin(9600);
  //
  get_mcuSerialNumber(serialNumber);
  for (byte i = 0; i < 9; i++) Serial.print(serialNumber[i], HEX);
  Serial.println();
}

void loop() {
  // put your main code here, to run repeatedly:

}


Risultato : DA06E616E0696E

Se compilo con la pintln() :
D
A
0
6E
61
6E
0
69
6E

Guglielmo

Title: Re: ATmega328PB
Post by: PaoloP on Mar 23, 2016, 04:50 pm
Con il testo formattato
Code: [Select]
  for (byte i = 0; i < 9; i++){
    if (serialNumber[i] < 16) Serial.print(F("0"));
    Serial.print(serialNumber[i], HEX);
    if (i < 8) Serial.print(F("-"));
  }
Title: Re: ATmega328PB
Post by: testato on Mar 23, 2016, 04:55 pm
Che cosa strana,
Stai usando ide 1.6.8 ?
Lo provi su 328 standard ? Lo so che escono numeri ad minchian ma deve comunque comportarsi uguale tra println e print

Fosse un nuovo bug ?  :)

Title: Re: ATmega328PB
Post by: speedyant on Mar 23, 2016, 10:52 pm
Se ben mi ricordo il buon Guglielmo utilizza un Mac. Potenzialmente quindi potrebbe avere un comportamento diverso, ma è una idiozia dovuta alla stanchezza.
Title: Re: ATmega328PB
Post by: gpb01 on Mar 23, 2016, 11:00 pm
Se ben mi ricordo il buon Guglielmo utilizza un Mac. Potenzialmente quindi potrebbe avere un comportamento diverso ...
Si, esatto, io sono su Mac e quindi uso la toolchain compilata per OS X, ma ... spero bene che l'eseguibile generato sia lo stesso ...  :o

Guglielmo
Title: Re: ATmega328PB
Post by: speedyant on Mar 23, 2016, 11:07 pm
Spero anche io in una "assenza" di problemi, ma un velato dubbio mi rimane. Probabilmente si tratta di "paranoia da stanchezza", sono da circa una settimana a cercare soluzioni per mitigare i "cryptolocker" e non ho cicli sonno/veglia adeguati... ;)
Title: Re: ATmega328PB
Post by: gpb01 on May 07, 2016, 10:32 am
@Astro: hai visto che loro hanno realizzato la nostra idea originale? Arduino R4 con il ATmega328PB ... QUI (https://www.elektormagazine.com/labs/elektorino-uno-r4-150790)  :smiley-mr-green:  :smiley-mr-green:  :smiley-mr-green:

... solo che comunque costa il doppio della Atmel Xplained  :smiley-yell: :smiley-yell: :smiley-yell:

Guglielmo
Title: Re: ATmega328PB
Post by: Etemenanki on May 07, 2016, 11:41 am
... Arduino R4 ...
Solo che non sembra gli abbiano messo i connettori aggiuntivi per sfruttare il "di piu" come si voleva fare noi qui ... ed a quel punto, e' in pratica solo una "uno" un po dopata ed un po troppo costosa, imho ... :D
Title: Re: ATmega328PB
Post by: uwefed on May 07, 2016, 12:29 pm
Solo che non sembra gli abbiano messo i connettori aggiuntivi per sfruttare il "di piu" come si voleva fare noi qui ... ed a quel punto, e' in pratica solo una "uno" un po dopata ed un po troppo costosa, imho ... :D
Hanno aggiunto A6 e A7 e SDA2 e SCL2
Ma sopratutto sono solo disponibili a fine maggio.

Ciao Uwe
Title: Re: ATmega328PB
Post by: gpb01 on May 07, 2016, 12:29 pm
Solo che non sembra gli abbiano messo i connettori aggiuntivi per sfruttare il "di piu" come si voleva fare noi qui ...
Mi sembra che qualche cosa in realtà abbiano messo ... guarda BENE la foto ;)

(https://www.elektor.com/media/catalog/product/cache/4/thumbnail/9df78eab33525d08d6e5fb8d27136e95/e/l/elektor-uno-r4-front_1.jpg)

Guglielmo
Title: Re: ATmega328PB
Post by: Etemenanki on May 07, 2016, 02:25 pm
Vero, non avevo fatto caso al fatto che avevano prolungato il connettore vicino al jack dell'alimentazione ... :smiley-roll-blue:
Title: Re: ATmega328PB
Post by: PaoloP on May 07, 2016, 03:08 pm
Che core utilizzeranno? Il Watterott? O ne hanno fatto anche uno loro?
Title: Re: ATmega328PB
Post by: PaoloP on May 07, 2016, 03:12 pm
Creato il pacchetto che semplifica l'installazione
--> https://github.com/watterott/ATmega328PB-Testing (https://github.com/watterott/ATmega328PB-Testing)

json --> https://github.com/watterott/ATmega328PB-Testing/raw/master/package_m328pb_index.json (https://github.com/watterott/ATmega328PB-Testing/raw/master/package_m328pb_index.json)
Title: Re: ATmega328PB
Post by: gpb01 on May 07, 2016, 03:16 pm
Che core utilizzeranno? Il Watterott? O ne hanno fatto anche uno loro?
Mi sembra che ne hanno fatto uno "loro", SOLO per Windows, con qualche libreria in più rispetto alle nostre (... mi pare), si trova QUI (https://github.com/ElektorLabs/Arduino/)

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on May 07, 2016, 03:31 pm
Ho visto il loro core e non mi piace, per la I2C e la SPI usano Wire0, Wire1 e SPI0, SPI1, cosa che crea grossi problemi con la retrocompatibilità sketch/librerie esistenti, molto meglio il nostro lavoro che garantisce la retrocompatibilità. :)
Title: Re: ATmega328PB
Post by: testato on May 07, 2016, 03:39 pm
questo e' il .json da inserre in Board Manager
https://github.com/ElektorLabs/Arduino/blob/master/package_elektor_boards_index.json
 (https://github.com/ElektorLabs/Arduino/blob/master/package_elektor_boards_index.json)
Non funziona su 1.6.8 ?
Quote
Arduino IDE 1.6.8 should be avoided because it has a serial port issue
Title: Re: ATmega328PB
Post by: gpb01 on May 07, 2016, 03:46 pm
Ho visto il loro core e non mi piace, per la I2C e la SPI usano Wire0, Wire1 e SPI0, SPI1, cosa che crea grossi problemi con la retrocompatibilità sketch/librerie esistenti, molto meglio il nostro lavoro che garantisce la retrocompatibilità. :)
Infatti ... :)
... non ho solo capito cosa è quella libreria HID che rilasciano "/source/avrpb/libraries/HID" ?

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on May 07, 2016, 04:16 pm
Infatti ... :)
... non ho solo capito cosa è quella libreria HID che rilasciano "/source/avrpb/libraries/HID" ?
Credo sia un rimasuglio che non c'entra nulla col 328PB, infatti fa riferimento alla PluggableUSB infrastructure che è specifica per il 32u4, la DUE e la Zero.
Anzi vedo molta roba che non centra nulla con il 328PB nella loro distro, poi tocca vedere se realmente funziona tutto :)
Title: Re: ATmega328PB
Post by: PaoloP on May 07, 2016, 05:06 pm
Creato il pacchetto che semplifica l'installazione
--> https://github.com/watterott/ATmega328PB-Testing (https://github.com/watterott/ATmega328PB-Testing)

json --> https://github.com/watterott/ATmega328PB-Testing/raw/master/package_m328pb_index.json (https://github.com/watterott/ATmega328PB-Testing/raw/master/package_m328pb_index.json)
Ho inviato una pull request perché hanno sbagliato il percorso ed usano avrdude 6.0.1 con un .conf che non contiene il 328pb.
Spero la accettino.
Title: Re: ATmega328PB
Post by: PaoloP on May 07, 2016, 06:01 pm
Guglielmo tu hai un pacchetto con la toolchian aggiornata per OSX?
E come AVRdude cosa usi? Quale versione?
Title: Re: ATmega328PB
Post by: gpb01 on May 07, 2016, 07:00 pm
Si, io ho una 1.6.8 con dentro la toolchain funzionate ed Avrdude 6.3 ... la scarichi dal famoso link che ho messo tempo fa QUI (https://www.dropbox.com/sh/li5bk75864n1oa7/AAArRFBf7xjFnPajDL_v_RYna?dl=0)

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on May 07, 2016, 07:02 pm
... in realtà mo sono anche prodotto una versione 1.6.8 con AVR libc 2.0 ... ma non essendo ancora utilizzata dal team Arduino NON l'ho messa in Dropbox ;)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on May 07, 2016, 07:33 pm
Watterott sta creando una vera e propria distribuzione per l'ATmega328PB. Quindi occorre la toolchain e Avrdude per ogni sistema.
Al momento ha aggiunto solo le versioni per windows.
Title: Re: ATmega328PB
Post by: gpb01 on May 07, 2016, 07:56 pm
Passagli il link e si scarica il tutto ;)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on May 08, 2016, 09:40 am
Ho scaricato il file, ma non riesco a capire perché è tutto doppio? formato di OsX? E se lo modifico poi non posso controllare se funziona su Mac.

Potresti separare in due file toolchain e avrdude?  :)
Title: Re: ATmega328PB
Post by: gpb01 on May 08, 2016, 10:30 am
Ho scaricato il file, ma non riesco a capire perché è tutto doppio? formato di OsX?
Tutto doppio ? ? ? Cosa è doppio ? :o

Ah ... magari ti riferisci hai files .xxxxx ovvero gli stessi nomi ma con un punto davanti ? So SI, sono files invisibili sotto OS X (... come del resto sotto Linux) e ce li devi lasciale, contengono informazioni associate al vero file con lo stesso nome.

avrdude lo separi facilmente ... è solo un file ... /tools/avr/bin/avrdude basta questo ;)

Ma se gli passi tutto e loro ci giocano su un vero Mac non è meglio? ... invece di metterci le mani tu sotto Win ... ::)

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on May 08, 2016, 10:38 am
Ah ... per chi volesse giocarci sotto OSX ...
... al solito LINK (https://www.dropbox.com/sh/li5bk75864n1oa7/AAArRFBf7xjFnPajDL_v_RYna?dl=0) (pubblico) ho messo anche il file "Arduino 1.6.8 Portable libc_2.0.app.rar" che contiene l'IDE completo con la libc 2.0, binutils-2.26.51, gcc-5.3.0 ed il supporto per ATmega328PB  ;D

Ovviamente è una versione sperimentale, quindi ... da usare con cautela ... ;)

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on May 08, 2016, 12:36 pm
Ma se gli passi tutto e loro ci giocano su un vero Mac non è meglio? ... invece di metterci le mani tu sotto Win ... ::)
Non so se abbiano un Mac.
Lo so che se non tocco i file su Windows è meglio. Ecco perché ti ho chiesto se potevi separali tu.  :)
Title: Re: ATmega328PB
Post by: gpb01 on May 08, 2016, 01:19 pm
Ecco perché ti ho chiesto se potevi separali tu.  :)
Ma perché separare avrdude ?

E' UN solo file e, su Mac, DEVE stare in /tools/avr/bin/avrdude ... se vuoi li tiro furi e lo metto in uno zip, ma ... tanto li deve stare e quindi ... non capisco ... ::)

Guglielmo

Edit: Comunque l'ho messo in uno .zip e depositato nel al solito LINK (https://www.dropbox.com/sh/li5bk75864n1oa7/AAArRFBf7xjFnPajDL_v_RYna?dl=0) (pubblico)
Title: Re: ATmega328PB
Post by: PaoloP on May 26, 2016, 04:32 pm
E' stato aggiornato da Watterott il core per il 328PB.
Anche ATmel ha aggiornato il file delle definizioni.
Sono cambiate le sigle di alcuni registri.
Per vedere le differenze potete guardare qui --> https://github.com/watterott/ATmega328PB-Testing/commit/dd637e9c31764ed6c97cd2342b62124fd17cf4f0#diff-d6caabb3d02f32afddd7955205b5be4cL50 (https://github.com/watterott/ATmega328PB-Testing/commit/dd637e9c31764ed6c97cd2342b62124fd17cf4f0#diff-d6caabb3d02f32afddd7955205b5be4cL50)
Title: Re: ATmega328PB
Post by: PaoloP on Jul 19, 2016, 09:37 am
Aggiornato il core alla toolchain 3.5.3.
Title: Re: ATmega328PB
Post by: andreasw on Jul 27, 2016, 12:47 pm
Arduino v1.6.10 has now the latest Atmel toolchain integrated. However the header file, device-specs and avrdude config for the ATmega328PB are missing.
https://www.arduino.cc/en/Main/ReleaseNotes
Title: Re: ATmega328PB
Post by: PaoloP on Jul 27, 2016, 02:09 pm
 :smiley-mr-green:
Title: Re: ATmega328PB
Post by: testato on Jul 27, 2016, 04:27 pm
Arduino v1.6.10 has now the latest Atmel toolchain integrated. However the header file, device-specs and avrdude config for the ATmega328PB are missing.
https://www.arduino.cc/en/Main/ReleaseNotes

it is added the avrdude 6.3
also on 6.3 we miss the PB header file ?
Title: Re: ATmega328PB
Post by: SukkoPera on Jul 27, 2016, 11:21 pm
Arduino v1.6.10 has now the latest Atmel toolchain integrated. However the header file, device-specs and avrdude config for the ATmega328PB are missing.
https://www.arduino.cc/en/Main/ReleaseNotes
I tried to follow your instructions to get full 328PB support on 1.6.10 on Linux, but when installing from the boards manager (as described at https://github.com/watterott/ATmega328PB-Testing#manual-installation-arduino-1610 (https://github.com/watterott/ATmega328PB-Testing#manual-installation-arduino-1610)) I get the following error:


Quote
Lo strumento avrdude non è disponibile per il tuo sistema operativo.
which translates to "The avrdude tool is not available for your operating system". This sounds weird, as there seem to be no binaries in the package, as avrdude is actually installed with the IDE.
The manual installation works fine though, I can compile for the 328PB without any issues. I can't test the code as I have no boards yet, though.
Title: Re: ATmega328PB
Post by: pighixxx on Jul 28, 2016, 11:31 am
Nuova versione del pinout, rivisto e corretto :D

(http://www.pighixxx.com/test/wp-content/uploads/2016/07/328pb_rev1_pinout.png)

Il PDF si può scaricare al solito posto, Qui. (http://www.pighixxx.com/test/portfolio-items/atmega328pb/?portfolioID=337)
Title: Re: ATmega328PB
Post by: andreasw on Jul 28, 2016, 02:32 pm
I tried to follow your instructions to get full 328PB support on 1.6.10 on Linux, but when installing from the boards manager (as described at https://github.com/watterott/ATmega328PB-Testing#manual-installation-arduino-1610 (https://github.com/watterott/ATmega328PB-Testing#manual-installation-arduino-1610)) I get the following error...
The toolchain files from "ATmega328PB-Testing" are only available for Windows. I have now updated the instructions for the new IDE 1.6.10 and all operating systems.
github.com/watterott/ATmega328PB-Testing#installation-on-arduino-ide-1610 (https://github.com/watterott/ATmega328PB-Testing#installation-on-arduino-ide-1610)
Title: Re: ATmega328PB
Post by: andreasw on Jul 28, 2016, 02:34 pm
it is added the avrdude 6.3
also on 6.3 we miss the PB header file ?
Yes, the current avrdude.conf (6.3.0-arduino2) does not contain the ATmega328PB device.
Title: Re: ATmega328PB
Post by: gpb01 on Aug 18, 2016, 09:11 am
Ho scaricato il nuovo IDE 1.6.11 (versione OS X) e mi sono messo a sistemarlo per l'ATmega328pb ...
... come al solito mancano alcuni files di libreria (.o e .a), ecc. ecc. ed ho messo dentro avrdude 6.3 da me compilato sotto OS X.

Già che c'ero, essendomi appena arrivata una "Elektor R4 (https://www.elektor.com/elektor-uno-r4)" ho fatto qualche prova e ... tocca modificare il nostro file "boards.txt" dato che sulla R4 la velocità di upload è 115 Kbps.

In allegato uno .zip con dentro il boards.txt modificato e l'optiboot che Elektor rilascia (immagino sia lo stesso del nostro, ma con la velocità modificata).

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Aug 18, 2016, 09:46 am
Strano che continuano a non inserire i file aggiuntivi per il 328PB, in fin dei conti Watterott è uno dei produttori ufficiali di schede Genuino per l'Europa e dato che lui produce anche una board basata sul 328PB mi sembra, come minimo, dovuto l'introduzione ufficiale del supporto a questo micro nel IDE.
In fin dei conti il grosso del lavoro per il 328PB, anche grazie al nostro contributo, è fatto, non è che ci vuole molto lavoro per integrarlo nel IDE.
Intanto ho ripreso in mano il progetto della scheda Arduino UNO like, con molte migliorie, basata sul 328PB, mi sa tanto che aggiungo il chip mEDBG, lo spazio per farlo c'è e dato che supporta anche la comunicazione seriale posso eliminare il chip dedicato a questa funzione per compensare, parzialmente, il costo del 32u4 aggiuntivo.
Title: Re: ATmega328PB
Post by: PaoloP on Aug 18, 2016, 06:01 pm
Ma l'mEDBG va solo a 57k. Mi sembra di tornare alla 2009.
Title: Re: ATmega328PB
Post by: andreasw on Aug 21, 2016, 05:50 pm
I have updated the package_m328pb_index.json and platform.txt, so that avrdude 6.3 will be installed via the IDE.
https://github.com/watterott/ATmega328PB-Testing
Title: Re: ATmega328PB
Post by: GCalero on Aug 24, 2016, 12:00 pm
Hello, I have done everything in the Github instructions (the boards appear twice in the board manager even, irrelevant I guess), but I can't even verify any code, this is the error:


Code: [Select]
avr-g++: error: unrecognized argument in option '-mmcu=atmega328pb'

avr-g++: note: valid arguments to '-mmcu=' are: at43usb320 at43usb355 at76c711 at86rf401 at90c8534 at90can128 at90can32 at90can64 at90pwm1 at90pwm161 at90pwm2 at90pwm216 at90pwm2b at90pwm3 at90pwm316 at90pwm3b at90pwm81 at90s1200 at90s2313 at90s2323 at90s2333 at90s2343 at90s4414 at90s4433 at90s4434 at90s8515 at90s8535 at90scr100 at90usb1286 at90usb1287 at90usb162 at90usb646 at90usb647 at90usb82 at94k ata5272 ata5505 ata5702m322 ata5782 ata5790 ata5790n ata5795 ata5831 ata6285 ata6286 ata6289 ata6612c ata6613c ata6614q ata6616c ata6617c ata664251 atmega103 atmega128 atmega1280 atmega1281 atmega1284 atmega1284p atmega1284rfr2 atmega128a atmega128rfa1 atmega128rfr2 atmega16 atmega161 atmega162 atmega163 atmega164a atmega164p atmega164pa atmega165 atmega165a atmega165p atmega165pa atmega168 atmega168a atmega168p atmega168pa atmega168pb atmega169 atmega169a atmega169p atmega169pa atmega16a atmega16hva atmega16hva2 atmega16hvb atmega16hvbrevb atmega16m1 atmega16u2 atmega16u4 atmega2560 atmega2561 atmega2564rfr2 atmega256rfr2 atmega32 atmega323 atmega324a atmega324p atmega324pa atmega325 atmega3250 atmega3250a atmega3250p atmega3250pa atmega325a atmega325p atmega325pa atmega328 atmega328p atmega329 atmega3290 atmega3290a atmega3290p atmega3290pa atmega329a atmega329p atmega329pa atmega32a atmega32c1 atmega32hvb atmega32hvbrevb atmega32m1 atmega32u2 atmega32u4 atmega32u6 atmega406 atmega48 atmega48a atmega48p atmega48pa atmega48pb atmega64 atmega640 atmega644 atmega644a atmega644p atmega644pa atmega644rfr2 atmega645 atmega6450 atmega6450a atmega6450p atmega645a atmega645p atmega649 atmega6490 atmega6490a atmega6490p atmega649a atmega649p atmega64a atmega64c1 atmega64hve atmega64hve2 atmega64m1 atmega64rfr2 atmega8 atmega8515 atmega8535 atmega88 atmega88a atmega88p atmega88pa atmega88pb atmega8a atmega8hva atmega8u2 attiny10 attiny11 attiny12 attiny13 attiny13a attiny15 attiny1634 attiny167 attiny20 attiny22 attiny2313 attiny2313a attiny24 attiny24a attiny25 attiny26 attiny261 attiny261a attiny28 attiny4 attiny40 attiny4313 attiny43u attiny44 attiny441 attiny44a attiny45 attiny461 attiny461a attiny48 attiny5 attiny828 attiny84 attiny841 attiny84a attiny85 attiny861 attiny861a attiny87 attiny88 attiny9 atxmega128a1 atxmega128a1u atxmega128a3 atxmega128a3u atxmega128a4u atxmega128b1 atxmega128b3 atxmega128c3 atxmega128d3 atxmega128d4 atxmega16a4 atxmega16a4u atxmega16c4 atxmega16d4 atxmega16e5 atxmega192a3 atxmega192a3u atxmega192c3 atxmega192d3 atxmega256a3 atxmega256a3b atxmega256a3bu atxmega256a3u atxmega256c3 atxmega256d3 atxmega32a4 atxmega32a4u atxmega32c3 atxmega32c4 atxmega32d3 atxmega32d4 atxmega32e5 atxmega384c3 atxmega384d3 atxmega64a1 atxmega64a1u atxmega64a3 atxmega64a3u atxmega64a4u atxmega64b1 atxmega64b3 atxmega64c3 atxmega64d3 atxmega64d4 atxmega8e5 avr1 avr2 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrtiny avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 m3000

exit status 1
Error compiling for board Atmel ATmega328PB Internal Clock.


Same for the other 2 clocks. I am using USBasp as programmer, and burning the bootloader with success. Do I have to update avr-g++ in some way to accept the ATmega328PB?

I need to work with this microcontroller, I have installed Atmel Studio but I want to use the Arduino libraries, and I fear if I do the work to set them up, this error will pop again. Could you give me some advice / solution to this problem?

Thank you in advance.
Title: Re: ATmega328PB
Post by: astrobeed on Aug 24, 2016, 01:12 pm
Devi usare l'IDE 1.6.11 per poter utilizzare l'attuale versione della patch sul github di Watterot, le precedenti versioni versioni del IDE non hanno la tootlchain aggiornata per il 328PB.
Title: Re: ATmega328PB
Post by: GCalero on Aug 25, 2016, 12:40 am
I'm using IDE 1.6.11! I also tried uninstalling and using 1.6.10, and back to 1.6.11, never worked.

But although the Arduino folder is deleted when I uninstall, when I install it again, the ATmega328pb boards are still there... so I guess some files are left behind? Maybe that has something to do with it? But the first one I installed was 1.6.11
Title: Re: ATmega328PB
Post by: zoomx on Aug 25, 2016, 09:13 am
@GCalero
maybe you can try using the portable version. Download the zip instead of the installer, unzip the package and create a folder named "Portable" inside.
Title: Re: ATmega328PB
Post by: gpb01 on Aug 25, 2016, 10:46 am
... next, when you have done what zoomx said, download THIS (https://dl.dropboxusercontent.com/u/47777127/ATmega328PB/ATmega328PB-v1.0.1-Win.zip) and install following the enclosed README. Just don't download from Atmel the toolchain (also if is written to do inside the README) the IDE 1.6.11 already contains the last toolchain so ... just copy the files enclosend into the .zip

Guglielmo

P.S.: lo zip che gli sto passando è quello preparato da Astro per Win.
Title: Re: ATmega328PB
Post by: GCalero on Aug 25, 2016, 12:54 pm
I tried in Ubuntu and it compiled with no problem. To upload it, avrdude.conf was giving syntax errors, they were all "usbpid = ..." lines, I commented them and... success! Thanks for the answers!
Title: Re: ATmega328PB
Post by: PaoloP on Oct 27, 2016, 04:01 pm
Disponibile il nuovo pack degli ATmega 1.1.130
--> http://packs.download.atmel.com/ (http://packs.download.atmel.com/)
Una modifica riguarda anche il 328PB

Quote
1.1.130   Fix bitfields of PRR registers for PWM devices. Remove XDIV in ATmega128. Update CFD fuse for ATmega328PB.
1.0.118   Fix bitfield and register name issues for all 'Timer/Counter, 16-bit' for ATmega324PB.
1.0.105   Add PCINT[0,7] to ATmega2564 IO header.
1.0.98   Removed Full-Swing Crystal field for SUT_CKSEL of ATmega PB devices. Updated documentation links.
1.0.91   Initial release.
Title: Re: ATmega328PB
Post by: gpb01 on Jan 10, 2017, 07:35 am
Stavo provando ad applicare la nostra "patch" per ATmega328pb alla nuova versione (... 1.8.1, ma la cosa non è strettamente legata ad essa) con dentro la cartella "portable" e ... la cosa è leggermente più complessa.

Devo ancora capire bene (... per evitare inutili ridondanze e duplicazioni di files), ma alcune cose sembrano dover andare dove le mettevamo, altre vanno messe in varie cartelle all'interno della "portable/packages/arduino" altrimenti non le trova ... ::)

Quando arrivo alla soluzione esatta metto qui la struttura delle dir per la versione "portable" sotto macOS ...
... Astro, hai tempo anche tu per fare un po di prove su Win ?

Guglielmo
Title: Re: ATmega328PB
Post by: astrobeed on Jan 10, 2017, 07:55 am
Si ho il tempo per fare le prove, in effetti volevo proprio provare ad installare la patch con la 1.8.1 per vedere se è tutto ok.
Title: Re: ATmega328PB
Post by: astrobeed on Jun 06, 2017, 08:22 am
Watterott ha aggiornato la patch per i 328pb alla versione 1.8.x del IDE, non penso di riuscire a provarla prima di fine settimana.
Title: Re: ATmega328PB
Post by: gpb01 on Jun 06, 2017, 08:26 am
... poi aggiornaci :) ... che io mi sono perso dietro ai PIC32 ... :D :D :D

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Jun 06, 2017, 10:18 am
Purtroppo l'appello di integrare i file per il PB nella toolchain rimangono inascoltati.
Colpa anche di ATmel che invece di integrare le novità nella toolchain propone i Pack aggiuntivi (http://packs.download.atmel.com/) per ATmel Studio.
Title: Re: ATmega328PB
Post by: gpb01 on Jun 09, 2017, 02:40 pm
Watterott ha aggiornato la patch per i 328pb alla versione 1.8.x del IDE, non penso di riuscire a provarla prima di fine settimana.
Con la 1.8.x cambia solo la posizione di alcuni files, ma, ovviamente, non i contenuti ...
... le cose da mettere in tools, ora NON vanno più sotto la cartella atmega328pb, ma direttamente nella tools che si trova sotto hardware:
(https://image.prntscr.com/image/M8zXGJ7eS7_ojo6-E3MpHA.jpg)

... e tocca farlo a mano PRIMA di installare le "boards" dal "Board manager".

Per tutto il resto ... conviene fare l'installazione, come detto, tramite il "Board manager" aggiungendo :

Code: [Select]
https://raw.githubusercontent.com/watterott/ATmega328PB-Testing/master/package_m328pb_index.json
Allego lo zip con la cartella "hardware" ed i files che servono.

Guglielmo
Title: Re: ATmega328PB
Post by: gpb01 on Jun 09, 2017, 02:47 pm
... per chi possiede le "Elektor-UNO R4", senza stare ad impazzire, fatto quanto detto al post qui sopra occorre modificare il file boards.txt che si trova nella cartella "/m328pb/hardware/avr/1.1.0/" nei "packages" (... io uso la versione "portable") inserendo alla fine le seguenti righe :

Code: [Select]
#######################################################################
# Elektor Uno R4 is an Arduino Uno with an ATmega328pb.
#######################################################################

elektor_uno_r4.name=Elektor Uno R4
elektor_uno_r4.bootloader.file=optiboot_elektor_uno_r4.hex
elektor_uno_r4.bootloader.unlock_bits=0x3f
elektor_uno_r4.bootloader.lock_bits=0x0f
elektor_uno_r4.bootloader.low_fuses=0xff
elektor_uno_r4.bootloader.high_fuses=0xde
elektor_uno_r4.bootloader.extended_fuses=0x05
elektor_uno_r4.bootloader.tool=avrdude
elektor_uno_r4.upload.tool=avrdude
elektor_uno_r4.upload.protocol=arduino
elektor_uno_r4.upload.maximum_size=32256
elektor_uno_r4.upload.speed=115200
elektor_uno_r4.build.mcu=atmega328pb
elektor_uno_r4.build.board=AVR_UNO
elektor_uno_r4.build.core=arduino:arduino
elektor_uno_r4.build.variant=atmega328pb
elektor_uno_r4.build.f_cpu=16000000L

... ed aggiungendo nella cartella "bootloaders", dove si trova già il bootloader per il atmega328pb, quello di Elektor (che allego) dato che ... usa un'altra velocità.

Guglielmo
Title: Re: ATmega328PB
Post by: Etemenanki on Jun 09, 2017, 03:28 pm
... suppongo che fare una sola cosa, che andasse bene per tutto, non fosse abbastanza divertente ... :smiley-mr-green:
Title: Re: ATmega328PB
Post by: gpb01 on Jun 09, 2017, 04:53 pm
... suppongo che fare una sola cosa, che andasse bene per tutto, non fosse abbastanza divertente ... :smiley-mr-green:
Ehhhh ... no, che gusto c'è a non complicarsi la vita ...  :smiley-yell: :smiley-yell: :smiley-yell:

Guglielmo
Title: Re: ATmega328PB
Post by: PaoloP on Aug 02, 2017, 04:47 pm
Provate la nuova Toolchain con il 328PB nativo.
Quote from: https://github.com/arduino/toolchain-avr/pull/47
For the braves:
the toolchains can be tested by adding
http://downloads.arduino.cc/packages/package_avr_3.6.0_index.json
to the "Additional json" under Preferences.
This will prompt an update to avr core to version 1.6.200 (really 1.6.19 with only the new toolchain).

Please report any problem you may encounter since it has only been tested on Linux64 ATM
Title: Re: ATmega328PB
Post by: PaoloP on Aug 31, 2017, 11:31 am
Pensavo di avere sbagliato sito  :o
-> http://www.microchip.com/wwwproducts/en/atmega328pb (http://www.microchip.com/wwwproducts/en/atmega328pb)
Poi ho ricordato l'acquisizione.  :)
Title: Re: ATmega328PB
Post by: astrobeed on Aug 31, 2017, 11:38 am
Consiglio personale, d'ora in poi fai sempre riferimento al sito Microchip per i processori Atmel, anche per le A.N., oltre ad essere fatto meglio contiene più materiale di quello originale.
Idem per la vendita degli AVR, adesso sono tutti disponibili su Microchip Direct (https://www.microchipdirect.com/), vendono anche ai privati e non ci sono quantità minime imposte, i prezzi sono i migliori in assoluto che puoi trovare sia per i PIC che per gli AVR, unica "fregatura" è che se non acquisti almeno 50 E la spedizione costa 20 E, altrimenti è gratis, i prezzi in Euro sono giù inclusivi di oneri doganali, c'è solo da aggiungere l'iva.
Per chi ha una attività, oppure è uno studente/docente, Microchip invia sample gratuiti, previa registrazione e verifica credenziali, anche dei processori Atmel oltre che per i loro, idem per tutti i loro prodotti analogici.

Title: Re: ATmega328PB
Post by: Etemenanki on Aug 31, 2017, 11:55 am
...
Per chi ha una attività, oppure è uno studente/docente, Microchip invia sample gratuiti, previa registrazione e verifica credenziali, anche dei processori Atmel oltre che per i loro, idem per tutti i loro prodotti analogici.
Questa e' un'ottima cosa se si deve realizzare un prototipo ... Atmel i sample gratuiti o non li inviava, o prima ti faceva dannare l'anima ... Microchip e' molto piu "umana" in quel senso ...
Title: Re: ATmega328PB
Post by: gpb01 on Sep 01, 2017, 09:31 am
Consiglio personale, d'ora in poi fai sempre riferimento al sito Microchip per i processori Atmel, anche per le A.N., oltre ad essere fatto meglio contiene più materiale di quello originale.
Da QUESTO (https://www.microchip.com/DownloadZip/en/ATmega328PB/ATmega328PB-AppNote.zip) link si scarica un .zip ufficiale Microchip con TUTTE le Application Notes (46 MB di zip) ... ce ne sono di veramente interessanti :D

Guglielmo
Title: Re: ATmega328PB
Post by: Etemenanki on Sep 01, 2017, 10:30 am
Grazie ... prese e messe in "biblioteca" ...

Fra un po devo cambiare disco alla "biblioteca", non avrei mai pensato di riuscire a riempire un 500Gb solo con i pdf di datasheet ed AN, ma a forza di salvare ed aggiornare, sono rimasti 12Gb liberi e basta ...

EDIT: aspetta, aspetta ... cestino pieno, provo a svuotarlo ...

Spazio prima dello svuotamento 12,4GB, spazio dopo lo svuotamento 34,5Gb ... possiamo resistere ancora un po, prima di doverlo cambiare ... :D

Pero' mi sono accorto che e' quasi un'anno che non lo riordino piu ... dovrei mettermi a classificare e suddividere tutti i files e le cartelle che ho salvato al volo nell'ultimo anno, ma ... quando guardo la finestra delle proprieta' che mi dice "140.270 file, 15.732 cartelle", non so perche', ma improvvisamente mi passa la voglia di farlo ...
Title: Re: ATmega328PB
Post by: zoomx on Sep 01, 2017, 11:20 am
Io prima raccoglievo in sacco di PDF. Poi mi sono accorto che quando ne hai veramente tanti è un problema cercare quello che ti serve e ricorrevo daccapo a Google.
Per cui adesso salvo pochi PDF e il resto lo cerco con i motori di ricerca. Faccio prima.
Title: Re: ATmega328PB
Post by: Etemenanki on Sep 01, 2017, 12:05 pm
Io piu che altro lo faccio per salvare la roba piu vecchia ... ha l'irritante abitudine di scomparire lentamente dalla rete, a volte, specie i "vecchi" AN, che contenevano a volte parecchi suggerimenti utili ... stesso discorso con le riviste di elettronica, fra tutte quelle che mi sono passate per le mani e che ho scannerizzato io, e tutte quelle che ho trovato negli anni in rete (sia ita che inglesi), si e' quasi riempito un'altro disco ...
Title: Re: ATmega328PB
Post by: speedyant on Sep 07, 2017, 12:13 pm
Io ho meno "guai" come spazio, ma per l'ordine... Ecco forse dovrei migliorare, solo che ho un conflitto con il padre, il quale non e' mai d'accordo su come "catalogare" i file... :D
Title: Re: ATmega328PB
Post by: PaoloP on Jan 23, 2018, 09:29 am
Nuovo datasheet aggiornato al 5 gennaio 2018
-- > Datasheet ATmega 328PB (http://ww1.microchip.com/downloads/en/DeviceDoc/Microchip%20AVR%20microcontroller%20ATmega328PB%20Data%20Sheet%2040001906B.pdf)