OLED SSD1306 128x32 e ATTiny85

Ciao a tutti,
da qualche giorno sto cercando di far funzionare un display OLED 128x32 su un ATTiny85, ma senza successo.

Ho provato infnite librerie, ma il display (purtroppo non ho il modello esatto/datasheet) non vuole proprio saperne di accendersi/mostrare qualcosa.

Sono sicuro che il display in se funzioni in quanto collegato ad un ESP8266 funziona regolarmente.

Avendo anche una dev board Digispark (sempre con ATTiny85), ho voluto provare e con quella il display funziona.

A sto punto mi chiedo: sono necessarie le resistenze di pullup su SDA/SCL? In tutti gli esempi di collegamento trovati in rete non vengono mai mostrate, ma in qualche guida ho letto che sono necessarie. A questo punto mi chiedo invece come possa funzionare senza sulla Digispark, che per quanto ho capito non ha alcuna resistenza di pullup integrata..

Grazie mille!

Buonasera,

... so che sei un vecchio utente della sezione Italiana del forum :slight_smile: , ma ... purtroppo non riesco a trovare il tuo post di presentazione :confused:, per cui, cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento, fai la tua presentazione NELL'APPOSITA DISCUSSIONE spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

Buonasera Guglielmo,
chiedo scusa se non mi sono presentato, ero convinto di averlo già fatto a suo tempo ma.. probabile non l'abbia fatto! Ho rimediato ora :wink:

... normalmente quei piccoli OLED montano come controller un SSD1306 e le varie breakout board che si trovano montano già le resistenze di pull-up sul bus I2C (resistenze che sono obbligatorie). Su ATtiny85 devi poi usare i pin relativi a PB0 (SDA) e PB1 PB2 (SCL) per la comunicazione.

Premesso questo, che "core" stai usando? che libreria stai usando per pilotare l'OLED? Ti serve solo testuale o anche la grafica?

Guglielmo

Parli delle breakout board con ATTiny85 o del display? Nel primo caso quindi le resistenze di pullup potrebbero già essere presenti sulla board Digispark (e quindi giustificare il funzionamento del display)?

Si su ATTiny85 sto usando PB0 e PB2 (tu hai scritto PB1, è un typo?), ma senza successo. Per programmare il chip uso uno Sparkfun programmer (USBTinyISP), altri sketch semplici come il classico blink o fade funzionano correttamente.

Ho provato sia ATTinyCore di Spence Konde che la attiny di David Mellis (già usata con successo per altri progetti con ATTiny85 molto più semplici).

Per questo progetto nello specifico devo solo mostrare un valore numerico sul display, quindi niente di complicato a livello grafico.

Ho fatto ulteriori tentativi, e forse ho spostato il problema su qualcosa di differente: praticamente ho 2 display 128x32 uguali, uno "volante" che uso per le prove, e uno già saldato su un custom PCB, dove vado a posizionare l'ATTiny85 dopo averlo programmato.

Mi è venuto anche il dubbio che il display potesse non funzionare lasciando il tutto collegato al programmer (ad es. perché c'è un LED connesso permanentemente su PB0), ma anche messo sulla PCB il risultato è il medesimo, quindi pensavo fosse un problema di circuito o sketch.

Invece ho voluto provare a mettere il tutto su breadboard, e lì invece funziona!

Quindi a questo punto qualcosa non va sulla custom PCB (lo schema è estremamente semplice), oppure il display saldato su questa non funziona.. proverò in primis a sostituirlo con l'altro e vedo cosa succede.

Si, scusa, ho corretto il post PB0 e PB2 ... come da datasheet del ATtiny85 ...

Guarda io uso tranquillamete gli ATtiny85 con i display OLED basati su SSD1306 e non ho mai avuto problemi.

Uso il "core" di Spence Konde che è il migliore e ti permette di usare la libreria "Wire" standard senza doversi inventare nulla d'altro e, usando io essenzialmente testo, uso la libreria SSD1306Ascii per gestire l'OLED (leggerissima, compatta e ben funzionante).

Quindi ... ricontrolla i collegamenti e usa uno degli esempi di libreria perché ... DEVE funzionare.

Guglielmo

Grazie per il suggerimento della libreria! Intanto cerco di capire cosa non va sul PCB e poi farò delle prove anche con quella! :+1:

Ho utilizzato il display "volante" su un nuovo PCB (per essere sicuro non ci fossero problemi sulle saldature, ecc) e finalmente funziona! Quindi alla fine ho buttato un sacco di tempo pensando fosse un problema di sketch mentre alla fine probabilmente qualcosa non va sull'altro PCB, o più probabilmente, è il display che non funziona più (l'avevo testato prima di saldarlo e funzionava)

Per curiosità, qual è il tuo setup per programmare gli ATTiny85? Perché appunto usando lo Sparkfun programmer, non si riesce a testare lo sketch appena caricato (almeno per quanto riguarda il display) e spostare il chip ogni volta è un po' una menata..

Cosa intendi? Come è fatto lo stampato?

... dipende dai casi: se ciò che colleghi sui pin NON disturba la programmazione ICSP, basta prevedere il classico connettorino a 6 pin per la programmazione; se invece ciò che è collegato disturba ... o zoccolo e metti e levi la MCU, o jumper/dip_switch sui pin incriminati e, nel momento della programmazione, isoli i pin da tutto il resto.

Guglielmo

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.