Go Down

Topic: ATmega328PB (Read 103213 times) previous topic - next topic

gpb01

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
Search is Your friend ... or I am Your enemy !

gpb01

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
Search is Your friend ... or I am Your enemy !

astrobeed

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.
Scientia potentia est

gpb01

#453
Mar 17, 2016, 12:01 pm Last Edit: Mar 17, 2016, 12:01 pm by gpb01
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
Search is Your friend ... or I am Your enemy !

astrobeed

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.
Scientia potentia est

gpb01

#455
Mar 17, 2016, 01:51 pm Last Edit: Mar 17, 2016, 01:52 pm by gpb01
Ok, perfetto ... poi magari li aggiungo anche io ;)

Intanto il link alla cartella su DropBox è QUESTO ;)

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 ;)
Search is Your friend ... or I am Your enemy !

astrobeed

#456
Mar 17, 2016, 02:49 pm Last Edit: Mar 17, 2016, 02:49 pm by astrobeed
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.
Scientia potentia est

PaoloP

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?

astrobeed

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.
Scientia potentia est

gpb01

#459
Mar 17, 2016, 03:08 pm Last Edit: Mar 17, 2016, 03:08 pm by gpb01
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
Search is Your friend ... or I am Your enemy !

gpb01

... mentre quello con la doppia Wire (Wire e Wire1) funziona ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

#461
Mar 17, 2016, 03:19 pm Last Edit: Mar 17, 2016, 03:20 pm by gpb01
...
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
Search is Your friend ... or I am Your enemy !

astrobeed

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.

Scientia potentia est

gpb01

#463
Mar 17, 2016, 03:30 pm Last Edit: Mar 17, 2016, 03:35 pm by gpb01
Ok, l'ho corretto e ri-zippato ...

... come detto in precedenza le due versioni (Win e OS X) sono scaricabili da QUESTO link.

Guglielmo

Edit: Abbiamo postato assieme, avevo corretto direttamente nel tuo e rifatto lo zip che ora è su Dropbox ;)
Search is Your friend ... or I am Your enemy !

astrobeed

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.
Scientia potentia est

Go Up