ATmega328PB

Inglobato ufficialmente non so, ma di certo uscirà a breve il core terze parti da installare via board manager

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.

Wire0.cpp (406 Bytes)

Wire1.cpp (269 Bytes)

Wire.cpp (22.8 KB)

Wire.h (4.61 KB)

Andre Moehl su *uino Mini Super (Atmega328PB) | Hackaday.io
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

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.

A breve pubblicheró una nuova versione della libreria Wire.
Ho preso ispirazione dalla HardwareSerial e dalla DallasTemperature/OneWire.

Ecco la libreria Wire.
Purtroppo non compila perchè da un errore nel linker. (undefined reference to)
Potete dare uno sguardo al codice?

Wire.zip (18.1 KB)

Materiale arrivato da Mouser ... :smiley:

Paolo ...

PaoloP:
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

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).

Come librerie aggiuntive usa quelle di Andre Moehl su 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.

PaoloP:
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

Debug Wire non ti serve abilitato almeno che non abbia un software che lo supporti.

PaoloP:
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.

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à ::slight_smile:

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

Guglielmo

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

Testato:
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 :slight_smile:

Infatti visto che lui ne ha due di prog adatti gli dicevo appunto di non preoccuparsi

Disponibile la WattDuino 328PB ProMini
--> Wattuino Pro Mini PB 5V/16MHz (ATmega328PB) - Watterott electronic

PaoloP:
Disponibile la WattDuino 328PB ProMini
--> 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ò !

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 :slight_smile:

Guglielmo

nid69ita:
Con una bella scritta: "The ATmega328PB microcontroller is currently not directly supported from the Arduino IDE" però !

E' giusto che avvisino.