Estoy usando un MIDAS MCCOG21605B6W , con interfaz I2C, LCD tipo COG.
También estoy usando un microcontrolador PIC16F616 para interconectarlo y estoy golpeando el protocolo I2C.
Puedo inicializar la pantalla LCD, escribir en la pantalla LCD, mover el cursor a la posición que desee, borrar la pantalla LCD, configurar el contraste, encender / apagar la pantalla LCD, etc. Todo funciona, excepto los comandos 0x10, 0x14 , 0x18, 0x1C, que son para desplazar el cursor o la pantalla, hacia la izquierda o hacia la derecha. ¿Cómo puedo hacer que funcionen? ¿Qué estoy haciendo mal?
He notado una cosa; cuando miro desde diferentes ángulos, y cuando doy el comando 0x14 (mover el cursor a la derecha), o cualquier otro comando de cambio que he mencionado en el párrafo anterior, veo algún tipo de cambio de contraste, aunque no es muy aparente, tiene para captar el ángulo.
También, para fines de prueba, he enviado solo el comando "Cambiar cursor a la derecha", que es 0x14, luego lo he investigado en el alcance, y SDA, SCLK líneas y datos parecen estar bien, se transfiere y el esclavo reconoce.
He creado un código de prueba I2C ficticio para mostrar las trazas para SDA y SCLK en el alcance, de la siguiente manera. Puede ver en la captura de alcance que la pantalla LCD crea un ACK en el noveno pulso de reloj tirando de la línea BAJA.
software_I2C_startCondition();
software_I2C_sendByte(0x7C);
software_I2C_stopCondition();
AcontinuaciónsemuestranmisrutinasI2CymicódigodeinterfazLCD.