display 16x2 I2C
4 Anni 8 Mesi fa #11
da Mauro Laurenti
Risposta da Mauro Laurenti al topic display 16x2 I2C
prova a fare il Debug del sistema ed eseguire il programma passo passo.
Probabilmente si blocca all'interno delle routine I2C.
Se si blocca dopo aver inviato l'indirizzo e si mette in attesa dell'ACK, vuol dire che il modulo LCD non risponde e probabilmente l'indirizzo è errato.
Se le librerie I2C non si bloccano potrebbe ancora essere che l'assegnazione dei pin del PCF8574 e il modulo LCD non sia come la libreria.
Un oscilloscopio con cui analizzare il bus I2C aiuterebbe il debug.
Saluti,
Mauro
Probabilmente si blocca all'interno delle routine I2C.
Se si blocca dopo aver inviato l'indirizzo e si mette in attesa dell'ACK, vuol dire che il modulo LCD non risponde e probabilmente l'indirizzo è errato.
Se le librerie I2C non si bloccano potrebbe ancora essere che l'assegnazione dei pin del PCF8574 e il modulo LCD non sia come la libreria.
Un oscilloscopio con cui analizzare il bus I2C aiuterebbe il debug.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Mauro Laurenti
- Moderator
Riduci
Di più
4 Anni 8 Mesi fa #12
da x206
Risposta da x206 al topic display 16x2 I2C
Si prega Accedi o Crea un account a partecipare alla conversazione.
- x206
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 30
- Ringraziamenti ricevuti 0
4 Anni 8 Mesi fa #13
da Mauro Laurenti
Risposta da Mauro Laurenti al topic display 16x2 I2C
Bene,
allora non è problema di indirizzo.
Infatti si blocca quando deve inviare lo start, ma prima di fare questo controlla le linee.
Se si blocca sul controllo dell'idle mi fa pensare:
1) Le linee per il modulo I2C che stai usando non sono corrette.
2) non hai i resistori di pull-up.
Se controlli con un multimetro le linee SDL e SCL devono avere un valore pari a Vcc.
Ricontrolla poi l'indirizzo...
se l'indirizzo è errato ma lo invia non si blocca su idle...
Saluti,
Mauro
allora non è problema di indirizzo.
Infatti si blocca quando deve inviare lo start, ma prima di fare questo controlla le linee.
Se si blocca sul controllo dell'idle mi fa pensare:
1) Le linee per il modulo I2C che stai usando non sono corrette.
2) non hai i resistori di pull-up.
Se controlli con un multimetro le linee SDL e SCL devono avere un valore pari a Vcc.
Ricontrolla poi l'indirizzo...
se l'indirizzo è errato ma lo invia non si blocca su idle...
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
4 Anni 8 Mesi fa - 4 Anni 8 Mesi fa #14
da x206
Risposta da x206 al topic display 16x2 I2C
Salve Mauro,
finalmente dopo infiniti tentativi funziona!!! In pratica all'interno della libreria
"LCD_44780_I2C.c" c'è la funzione LCD_initialize, il DEVICE_ADDRESS era impostato su L quindi mi
prendeva l'indirizzo sbagliato che di default sta a 0x00, ho semplicemente sostituito
DEVICE_ADDRESS_L con DEVICE_ADDRESS_H e tutto funziona, credo di aver fatto bene, ho comparato anche la vecchia libreria dove li è in H.
Ho provato con il multimetro prima della modifica, la linea SDA era poco inferiore a Vcc mentre
SCL era a zero, ho abilitato i resistori di pull-up nel main, non ho capito bene se con queste
librerie vengono abilitate in automatico.
Saluti
Luca
finalmente dopo infiniti tentativi funziona!!! In pratica all'interno della libreria
"LCD_44780_I2C.c" c'è la funzione LCD_initialize, il DEVICE_ADDRESS era impostato su L quindi mi
prendeva l'indirizzo sbagliato che di default sta a 0x00, ho semplicemente sostituito
DEVICE_ADDRESS_L con DEVICE_ADDRESS_H e tutto funziona, credo di aver fatto bene, ho comparato anche la vecchia libreria dove li è in H.
Ho provato con il multimetro prima della modifica, la linea SDA era poco inferiore a Vcc mentre
SCL era a zero, ho abilitato i resistori di pull-up nel main, non ho capito bene se con queste
librerie vengono abilitate in automatico.
Saluti
Luca
Ultima Modifica 4 Anni 8 Mesi fa da x206.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- x206
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 30
- Ringraziamenti ricevuti 0
4 Anni 7 Mesi fa #15
da Mauro Laurenti
Risposta da Mauro Laurenti al topic display 16x2 I2C
Salve Luca,
bene che funziona il tutto.
...ma qualche cosa non mi torna.
Che valori di indirizzo sono scritti nella libreria PCF8574?
Nella libreria LCD_44780_I2C che valori hanno DEVICE_ADDRESS_L con DEVICE_ADDRESS_H ?
Le due librerie sono tra loro legate e questo cambio che funziona potrebbe essere legato alle configurazioni di entrambe le librerie.
Saluti,
Mauro
bene che funziona il tutto.
...ma qualche cosa non mi torna.
Che valori di indirizzo sono scritti nella libreria PCF8574?
Nella libreria LCD_44780_I2C che valori hanno DEVICE_ADDRESS_L con DEVICE_ADDRESS_H ?
Le due librerie sono tra loro legate e questo cambio che funziona potrebbe essere legato alle configurazioni di entrambe le librerie.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.