Buongiorno,
sto facendo dei test sullo schermo e non riesco a capire il motivo della necessità dei delay dopo il trasferimento I2C. Ho capito che la scheda dello schermo necessita di un tempo di avvio di circa 500ms, periodo nel quale tutti i comandi vengono ignorati. Riducendo il delay dopo le trasmissioni sotto a 5ms, alcuni comandi sembra vengano direttamente ignorati, può essere dovuto ad un meccanismo asincrono di aggiornamento del display da parte del microcontrollore sulla scheda?
Guardando il firmware della scheda risulta in parte validata la mia prima affermazione, la funzione di init del driver HD44780U richiede circa 40ms + 40ms + 40ms + 40ms... la funzione send character invece ha dei delay totali di 116 cicli di un while senza operazioni (quindi circa 0.004375ms seguendo la documentazione sul firmware). Non ci sono altri delay tra la ricezione dell'interrupt e la chiamata alla funzione di scrittura dei caratteri. Supponendo che il firmware sia stato scritto per accomodare le richieste temporali del driver dell'LCD, come mai c'è bisogno di un delay superiore a 5ms dopo l'invio del comando via i2c?
Grazie per l'aiuto
Matteo Formenti