ATmega328P a 3.3V, funziona I2C?

Mah :roll_eyes:

Pelletta:
Ora ho solo lo standalone collegato impostato a 8MHz e alimentato a 3,3V.
Confermo che il protocollo I2C funziona anche con il micro a 8 MHz e che non servono convertitori di livello per il bus I2C.

Per la comunicazione seriale tra l'arduino e lo standalone ha funzionato solo se entrambi avevano lo stesso clock (anche se mi pare strano)

Se hai un Arduino a 16 MHz con baudrate 19200 e un AtMega328p ad 8 MHz devi impostare un baudrate doppio di 38400 se utilizzi lo stesso bootloader/codice, se hai un bootloader conscio di essere ad 8 MHz allora puoi impostare lo stesso baudrate

Ciao

Il circuito da cui ho preso spunto aveva un adattatore di livelli sul bus I2C perchè veniva collegato ad un arduino, quindi alimentato a 5V mentre l'integrato lavora fino a 3,6V.
Non avendo dei mosfet BSS138 per fare l'adattatore ho provato ad alimentare anche l'atmega a 3.3V in modo da poter testare fin da subito se ero in grado di saldare quel tipo di integrato così piccolo, l'ho detto fin da subito che era una sfida.
Non avendo mai provato la comunicazione I2C con clock inferiori a 16MHz e tensioni di alimentazione minori di 5V ho dovuto sperimentare un bel pò.
Di problemi ne ho (abbiamo) incontrati abbastanza ma sono stati tutti superati alla grande e vi ringrazio tantissimo.

Farò altri test con la seriale a questo punto

complimenti a te, i tuoi test con la seriale saranno importantissimi, visto che molti eravamo e siamo convinti che la differenza di clock non dovrebbe incidere in alcun modo su questo tipo di comunicazione e che tutto dovrebbe essere legato ai bps dei due circuiti.

Questo è per voi

Grande :wink:
Ma cosa era quella cosa che toccavi ?
Dal video non si capiva bene ma a me sembrava un connettore.

Sono strip maschio infilate nella breadboard
Effettivamente l'ho compresso troppo, qualità da schifo... i led ed il micro si vedono però :wink:

Si si led e micro si vedono bene, comunque ottimo lavoro per il pcb :wink:

flz47655:
Se hai un Arduino a 16 MHz con baudrate 19200 e un AtMega328p ad 8 MHz devi impostare un baudrate doppio di 38400 se utilizzi lo stesso bootloader/codice, se hai un bootloader conscio di essere ad 8 MHz allora puoi impostare lo stesso baudrate

Scusa, non capisco quest'affermazione. Il bootloader non influisce mica sulla comunicazione seriale del microcontrollore. Il bootloader è un programma come il firmware residente sulla parte bassa della Flash e come quest'ultimo è compilato per una certa velocità del microcontrollore.
Casomai l'incompatibilità derivava dai diversi livelli di tensione.

In passato ho fatto dialogare Tiny ad 8 MHz con l'Arduino a 16 MHz senza problemi, sia via I2C che via seriale, usando però chip alimentati a 5V, lo stesso livello dell'Arduino.

leo72:

flz47655:
Se hai un Arduino a 16 MHz con baudrate 19200 e un AtMega328p ad 8 MHz devi impostare un baudrate doppio di 38400 se utilizzi lo stesso bootloader/codice, se hai un bootloader conscio di essere ad 8 MHz allora puoi impostare lo stesso baudrate

Scusa, non capisco quest'affermazione. Il bootloader non influisce mica sulla comunicazione seriale del microcontrollore. Il bootloader è un programma come il firmware residente sulla parte bassa della Flash e come quest'ultimo è compilato per una certa velocità del microcontrollore.
Casomai l'incompatibilità derivava dai diversi livelli di tensione.

In passato ho fatto dialogare Tiny ad 8 MHz con l'Arduino a 16 MHz senza problemi, sia via I2C che via seriale, usando però chip alimentati a 5V, lo stesso livello dell'Arduino.

si volevo dire codice conscio di essere ad 8 MHz

Ciao

Pelletta:
Questo è per voi

MPR121 meets ATmega328P - YouTube

Grandissimo! Alla fine è bene tutto quel che finisce bene.

Ho preparato un altro adattatore per fare un test di temperatura; ho saldato un integrato con l'aria a 350 gradi e funziona ugualmente.
Dato che nei datasheet non c'è il valore o il grafico da seguire per la saldatura mi chiedo come ci si deve regolare.
I primi 3 li ho saldati a 270 gradi in meno di un minuto, l'ultimo a 350 gradi in una decina di secondi (volevo vedere se resisteva o si rompeva).
Prima di saldarlo però ho preriscaldato un pochino tutta la basetta girandoci intorno con l'aria.

Come ci si deve regolare per saldare i qfn?
C'è uno standard dato che nel datasheet non ho trovato dati utili?

C'è un profilo termico da seguire, ci sono diversi AN es. www.freqchina.com/cn/down.asp?ID=133 che mostra un grafico per una saldata in 6 minuti utilizzando stagno 63/37:

  • Scaldare da 25 a 140 °C a un ritmo di 1~3 °C/sec.
  • Pre-scaldare a 140-150 °C per 120 ~ 150 secondi
  • Solder reflow. Far salire la temperatura a 2-3 °C/sec fino a un picco di 220-225 °C. Temperature sopra i 183°C per 45 ~ 75 sec.
  • Raffreddare a temperatura ambiente a 2-4°C/sec per evitare strati composti tra metalli

Con questa procedura secondo me si saldano perfettamente ed i chip hanno lunga vita
Ciao

Quindi m'è andata di lusso con 350 gradi...

Però non capisco, dalle prove che ho fatto lo stagno sotto i 270 gradi non si scioglie

Decisamente, probabilmente hai accorciato la vita del chip..

Conta molto lo stagno che utilizzi, la temperatura di fusione deve essere molto bassa, influisce anche il PCB

Qui seguono più o meno il profilo di temperatura anche se utilizzano quello lead-free

Io ho preso questo http://www.digikey.it/product-detail/it/SMDSW.020%204OZ/SMDSW.020%204OZ-ND/2177060 che fonde a 183°C, non avendo una stazione termoregolata non ho verificato ma lo sciolgo senza problemi in un attimo con un saldatore da 15w

Ciao

Grazie per il video, è stato davero interessante.
Lo stagno una volta depositato sulla basetta non mi si scioglie con meno di 270 gradi, l'ho visto nei test.
Il grafico del video dice anche 260 gradi per 30-90 secondi, quasi ci siamo.

Astrobeed, se passi da queste parti mi piacerebbe avere anche un tuo parere :wink:

io nella parte finale leggo sul multimetro un bel 312, anche se devi starci accorto perché è di lato.
a mio modesto parere, col massimo rispetto per le AN, che non sono scritte certo per far perdere tempo, ci sono fattori diversi da prendere in considerazione: in quel video stanno usando il flussante gel, lo stagno senza piombo (che se non erro fonde prima) e la prestagnatura di un PCB già prestagnato, condizione quest'ultima irreplicabile da noi poveri creatori di cs col ferro da stiro; p.es. ci sono ottime possibilità, passando la treccia sul cs e senza il componente, che se ne venga appresso anche il rame, mandando il pcb alle signore disponibili. D'altra parte la prestagnatura è l'unico modo per creare uno strato preriscaldato che permetta una rapida saldatura, che credo sia il vero nocciolo della questione: il tempo, che conta moltissimo, come si vede anche in quel video.
Non penso che cercherò mai di memorizzare quel bordello di tempi e temperature, ho già la mia bella battaglia a tenere il componente con la pinzetta e saldarlo con l'altra, ho trovato la mia tecnica di saldatura e non ho mai danneggiato nulla finora, a parte una volta che ho preteso di levare una R smd usando il saldatore stilo, l'ho carbonizzata perché vi è rimasta attaccata.
In definitiva nel caso di quel tipo di componente la prestagnatura oltre che obbligatoria è indispensabile, io per levare lo stagno in eccesso non uso la treccia ma la pistola aspirante, non si corre il rischio di danneggiare il rame. La treccia è fondamentale quando si saldano i pin; in quel caso sono essi stessi che proteggono il rame, mentre la treccia si porta via tutto l'eccesso, garantendo la saldatura. Bisogna cercare di essere rapidi e se qualcosa va storto avere la pazienza di aspettare che la zona si raffreddi un poco senza insistere con l'aria calda.

Guarda Michele che non è per nulla difficile prestagnare il pcb, anzi... con la punta del saldatore adatta e con il flussante si fa in un attimo. Non serve nemmeno la treccia dissaldante, se fai caso alla seconda foto che ho messo si vede che il pcb è stato prestagnato.
Per i qfn le pinzette nemmeno servono, non hanno i "piedini" perciò non è possibile saldarli nel modo tradizionale.