Ciao a tutti.
Ho recentemente fatto un progetto nel quale utilizzo un display grafico da 192x64 pixel, che monta il driver KS0108.
Cercando su google, ho visto che si può utilizzare la libreria u8g2, che supporta questo tipo di display.
Ho ovviamente avuto problemi col display, a partire dalla banalissima accensione di esso (non si vedevano i pixel nonostante il contrasto, e questo perchè lo alimentavo erroneamente a 3,3 Volt e non a 5 Volt).
Sistemato ciò, ho iniziato i test ed al classico "Hello World" ottengo una schermata piena di pixel accesi o spenti in modo casuale, senza alcuna frase scritta.
Ci tengo a precisare che ho il WiFi attivo sull'ESP32 ed ho notato che, qualora la connessione WiFi dovesse andar male per mancanza di rete (volutamente fatta mancare), il display non mostra più pixel random ma non mostra neanche le scritte: semplicemente, resta pulito.
Ho quindi la netta sensazione che si tratti di un problema di coesistenza tra display e WiFi, per i pin utilizzati, e che quindi il problema risieda in questa cosa qui. Tuttavia, non mi spiego perchè, quando va male la connessione, il display non mostra nulla. Forse perchè comunque viene utilizzata qualche funzionalità dal WiFi?
Chiedo aiuto a voi per favore, grazie mille.
Non conosco bene il ESP32-S2 ... ma, sul ESP32-S3, alcuni dei pin che tu usi NON possono essere usati così come fai tu ... io mi studierei bene il datasheet e verificherei quali pin sono liberamente utilizzabili e quali sono già in uso per altre cose ...
Non solo, io, con i display che lavorano a 5V, ho sempre messo dei level shifter anche sui segnali perché, dargli I/O a 3.3V ... a volte crea problemi ...
... dimenticavo, darei inoltre un'occhiata alle Hardware Design Guidelines specifiche per gli S2 che trovi QUI ... perché, mi sembra che, come sul S3, alcuni di quei pin sono in uso per altre cose (es. PSRAM)
Io un'informazione base che avevo, era quella dei pin sull'ADC2 che, con WiFi attivo, risulterebbero inutilizzabili se non come Input/Output semplici senza uso di ADC.
Questa è una delle informazioni che ho trovato prima dei tuoi documenti, che devo ancora leggere, e per quanto riguarda l'ESP usata da me pare che l'unico pin da non usare con il WiFi sia il 20, quello che uso proprio per i registri del display... Gli altri 9 pin associati all'ADC2 li ho già esclusi dal progetto
Inizialmente avevo collegato il pin RS del display al GPIO46, senza sapere che fosse l'unico pin "input only". Per provare, avevo quindi collegato il pin RS al GPIO20, senza ricordarmi che fosse un pin escluso dal WiFi....
Ora, per la terza volta xD, ho riprovato a cambiare pin usando il GPIO3... Vediamo come va a finire questo altro test...
Eureka! Pin 20 non utilizzabile, messo a pin 3 il pin RS e ci siamo! Leggiamo qualcosa!
Tuttavia, non proprio tutto... perchè la scritta "Hello World!" viene troncata, ad occhio poco dopo la metà...
Suggerimenti?
Intanto io, in background, cerco...