ATmega328P a 3.3V, funziona I2C?

Ho un integrato che funziona a 3.3V che si interfaccia all'arduino tramite I2C; al momento non posso fare un adattatore di livello per il bus pertanto ho pensato di alimentare anche l'atmega a 3,3V.
Che ne pensate, funzionerà ugualmente?
E' necessario anche portare il clock a 1 MHz?
Ringrazio tutti in anticipo

Non c'è problema fino a 12 MHz coi 3.3v, io utilizzo quasi sempre il micro ad 8 MHz a questa tensione per compatibilità con altri componenti e maggior risparmio energetico.

Nel datasheet c'è un grafico che mostra la relazione che deve esserci tra frequenza e tensione
Ciao

Nel datasheet cap. Electrical characteristics

Maximum frequency is dependent on VCC. As shown in Figure 29-1, the Maximum Frequency vs. VCC curve is linear
between 1.8V < VCC < 2.7V and between 2.7V < VCC < 4.5V.

Ciao

Scordavo, per fare prima puoi anche seguire lo speed grade: 0 - 4MHz@1.8 - 5.5V, 0 - 10MHz@2.7 - 5.5.V, 0 - 20MHz @ 4.5 - 5.5V

Faccio un test, tanto sarà tutta una scommessa... :slight_smile:
Grazie

A pagina 2, le ultime righe delle specifiche:

Speed Grade:
– 0 - 4MHz@1.8 - 5.5V, 0 - 10MHz@2.7 - 5.5.V, 0 - 20MHz @ 4.5 - 5.5V

letta così e considerando che il grafico dice che l'intervallo 2,7-4,5 non è lineare, si potrebbe anche pensare che il micro possa arrivare anche a 16MHz con 3,3 volt, io lo ritengo probabile con 3,6V, tensione che dovrebbe essere tollerata anche dagli altri tuoi circuiti.
Detto questo ogni parte del micro funziona a qualsiasi frequenza tu lo imposti, resta solo da stabilire la frequenza; considera che normalmente le lib per Arduino sono testate a 8 e 16MHz, cioè le velocità standard Arduiniche, se invece il programma lo crei ex-novo non credo avrai difficoltà.
Per toglierti il dubbio frequenza/tensione prepara uno stand-alone a 16MHz col classico blink e prova ad avviarlo direttamente con 3,3-3,6V (magari provane più di uno vista l'incertezza della cosa...)

0 - 20MHz @ 4.5 - 5.5V

Dice chiaramente che se si vuole andare a 20 MHz servono almeno 4.5v mentre la riga che serve a lui è

0 - 10MHz@2.7 - 5.5.V

Ovvero che se si hanno almeno 2.7v si può andare fino a 10 MHz, col grafico e visto che ho specificato all'inizio qual'è il limite massimo a 3.3v è impossibile sbagliarsi

Ciao

Premesso che abbiamo postato assieme, nel senso che ho visto (ma non letto) il tuo post quando ho confermato l'invio, non ho dato una risposta a te, ma scritto come la vedo io, purtroppo non capisco il ragionamento dei 3,3V e come fai a parlare di 12MHz visto che:

the Maximum Frequency vs. VCC curve is linear between 1.8V < VCC < 2.7V and between 2.7V < VCC < 4.5V.

cioè stanno dicendo che non c'è linearità tra 2,7 e 4,5V in quel grafico.

Ti traduco in italiano

the Maximum Frequency vs. VCC curve is linear between 1.8V < VCC < 2.7V and between 2.7V < VCC < 4.5V.

La massima frequenza verso la curva di VCC è lineare tra 1.8V < VCC < 2.7V E tra 2.7V < VCC < 4.5V.

Mi aspetta una serata di test, sto facendo una board per un integrato da 20 pin in package QFN case 2059-01, praticamente 20 pin disposti in 3 mm quadrati :astonished:
Piste da 5 mils e assenza di pad sono due belle incognite... è il primo qfn che provo a saldare e me lo sono scelto bene nel mazzo XD

Sì ho letto male, ero convinto che la seconda coppia fosse tra 4,5 e 5,5 e di conseguenza restava fuori la sezione centrale, ti giuro che avevo capito che and = e, comunque grazie per la traduzione.
Allora dovrebbe bastare una proporzione:
10:2,7=x:3,3 quindi effettivamente a 12,2MHz

Chiarissimi ragazzi, vi ringrazio tantissimo, vada per gli 8MHz

Yes

Mi aspetta una serata di test, sto facendo una board per un integrato da 20 pin in package QFN case 2059-01, praticamente 20 pin disposti in 3 mm quadrati
Piste da 5 mils e assenza di pad sono due belle incognite... è il primo qfn che provo a saldare e me lo sono scelto bene nel mazzo

Che il saldatore sia con te!

BUD, 5mils? era questo il valore minimo dato dal limite della stampante? Ricordo quella discussione con Astro quando tu ritenevi di aver raggiunto 1mils, e come sono venute? se non ti scassi, una foto?

Avevo impostato e disegnato piste da 1 mil ma ha stampato più grande, non sono in grado di misurare la larghezza delle piste.
Quella attuale ancora devo farla, ho quasi finito di fare il master.
A occhio sembrano da 5 mils come quelle che avevo intenzionalmente fatto

puoi fare una prova su un pezzo libero: metti una pista per ogni dimensione da 1 a 8mils, una accanto all'altra, ad un certo punto diventeranno tutte uguali ed avrai capito qual'è lo spessore minimo :wink:

Pelletta:
Ho un integrato che funziona a 3.3V che si interfaccia all'arduino tramite I2C; al momento non posso fare un adattatore di livello per il bus pertanto ho pensato di alimentare anche l'atmega a 3,3V.
Che ne pensate, funzionerà ugualmente?
E' necessario anche portare il clock a 1 MHz?
Ringrazio tutti in anticipo

Il 328 lavora a 3V3 anche ad 8 MHz. Inoltre la 2-wire è gestita via HW, non avrai problemi. Casomai potresti avere una frequenza del bus ridotta visto che questo valore dipende dal clock di sistema. Ma non penso rappresenti un problema.
Ricordati solo che le pull-up vanno poi tarate per 3V3, per avere sempre i 3 mA richiesti dal bus. Quindi 1100 ohm, per cui 1K.

Controlla se l' integrato I2C sopporta 5V su sda e scl. alcuni lo fanno.
Ciao Uwe

@ Leo: grazie del consiglio!
@ Uwe: Già verificato, vuole al massimo 3.6V

Pelletta:
@ Leo: grazie del consiglio!
@ Uwe: Già verificato, vuole al massimo 3.6V

peccato ...