Go Down

Topic: ATmega328P a 3.3V, funziona I2C? (Read 4780 times) previous topic - next topic

pelletta


Michele Menniti

armati di tester e trova il/i cortocircuito/i sottochip
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

pelletta

Mi dispiace, ho prestato il miniaturizzatore :)
Corti non ce ne sono, ho testato pin per pin col tester.
Dato che il primo circuito non andava ho fatto solo un adattatore per l'integrato, testando i connettori a coppia faccio subito a trovare i corti

Michele Menniti

ma non puoi buttarci il classico blink almeno verifichi lo status generale?
flz quando è iniziata questa trattativa economica, in PM?
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

pelletta

L'atmega328 funziona alla grande, all'avvio accende in sequenza dei led.
L'operazione di saldatura è stata brevissima, meno di un minuto con aria a 270 gradi.
A parte che nel datasheet non c'è scritta la temperatura per saldarlo (ne ho scaricati diversi) ho fatto diverse prove per sapere la temperatura di fusione dello stagno; sotto i 270 non si scioglie nemmeno a pagarlo.
I test li ho fatti senza l'integrato.

Nessuna trattativa economica, te lo mando domani stesso se entro stasera ancora non funziona.
Ho già la busta pronta ;)

Michele Menniti

flz, era questo che volevo farti notare, il resto sono fattacci vostri, nessuna curiosità, solo che uno cammina su una strada asfaltata e non si aspetta che ad un tratto sbuchi un albero dal nulla :smiley-yell:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

Io ora non ho modo di far prove, se monti un 328 su una breadobard e lo clocchi a 8 MHz, riesci a farlo dialogare con un Arduino?
Perché se il chi apparentemente funziona, forse bisognerebbe puntare i fari sul software.

pelletta

Ho l'atmega328 alimentato a 3.3V, devo vedere che posso fare per adattare i livelli di trasmissione seriale dell'arduino.

Michele Menniti


Ho l'atmega328 alimentato a 3.3V, devo vedere che posso fare per adattare i livelli di trasmissione seriale dell'arduino.

Ti basta mettere un partitore sul TX di Arduino:
Una 15k ed una 10 k in serie, il capo libero della 15k al TX di Arduino, il contatto tra le due R all'RX del tuo mega a 3,3V, il capo libero della 10K a GND, sull'altro ramo non ti serve niente.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

Io comunque mi riferivo ad un 328 in formato DIP28. Iniziamo col capire se la Wire ha problemi a gestire l'I2C ad 8 MHz.
Quindi metti un DIP28 in standalone, e poi fallo comunicare via I2C con un Arduino, basta un semplice invio di un carattere al secondo, che tu replichi sulla seriale oppure usi per far lampeggiare il led integrato.
Da quel che ho visto la Wire adatta la velocità in base al clock di sistema, però cominciamo a farci un bel pavimento di certezze su cui camminare.

tonid

Quote
Io comunque mi riferivo ad un 328 in formato DIP28. Iniziamo col capire se la Wire ha problemi a gestire l'I2C ad 8 MHz.
Quindi metti un DIP28 in standalone, e poi fallo comunicare via I2C con un Arduino, basta un semplice invio di un carattere al secondo, che tu replichi sulla seriale oppure usi per far lampeggiare il led integrato.
Da quel che ho visto la Wire adatta la velocità in base al clock di sistema, però cominciamo a farci un bel pavimento di certezze su cui camminare.

Effettivamente sembra che il problema dipenda dalla frequenza della CPU.
A pag.222 del datasheet è mostrata la formula per calcolare  la frequenza di SCL ed è dipendente dal prescaler e dalla frequenza della CPU.

pelletta

Ho iniziato i test con la seriale, non va neanche questa.
Ho collegato un arduino (16MHz - 5V) con lo standalone (8MHz - 3.3V) e non rilevo dati sulla seriale.
Ho usato il partitore come suggerito.
Lo sketch prevedeva anche la trasmissione nel setup di una parola, doveva funzionare per forza.

A questo punto può dipendere dal fatto che gli atmega hanno clock differenti?

tonid

Secondo me si,perche non ci sarebbero i giusti sincronismi della trasmissione tra i due dispositivi.

Michele Menniti

Personalmente credo che la trasmissione seriale dipenda solo dai baud a cui sono impostate le due porte, se sono uguali non dovrebbero esserci problemi
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

pelletta

Bene, per sicurezza mando anche l'arduino a 8MHz sperando che non salta fuori qualcosa di nuovo.
Altro che impresa, sto chippettino è un calvario :)

Go Up