Autor Tema: Problema al simular glcd en proteus con bus i2c  (Leído 3283 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jairotev

  • PIC10
  • *
  • Mensajes: 6
Problema al simular glcd en proteus con bus i2c
« en: 15 de Abril de 2022, 10:28:16 »
Hola amigos estoy queriendo simular en proteus el uso de un display gráfico 128x64, pero usando el PCF8574 para manejarlo con el bus I2C. El problema que se me presenta es que no logro visualizar nada en el glcd. Si lo conecto de forma paralela usando como 13 pines del pic, funciona perfecto, pero usandolo por bus I2C no me funciona. ¿Alguien me puede dar una mano para saber que estoy haciendo mal? O será que proteus no puede simular eso? Porque si lo simula sin problemas con cualquier otro tipo de LCD, 16x2, 20x4, etc, pero con glcd ahí ya no hace nada. Bueno espero su ayuda. Gracias amigos.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Problema al simular glcd en proteus con bus i2c
« Respuesta #1 en: 15 de Abril de 2022, 11:49:35 »
Hola amigos estoy queriendo simular en proteus el uso de un display gráfico 128x64, pero usando el PCF8574 para manejarlo con el bus I2C. El problema que se me presenta es que no logro visualizar nada en el glcd. Si lo conecto de forma paralela usando como 13 pines del pic, funciona perfecto, pero usandolo por bus I2C no me funciona. ¿Alguien me puede dar una mano para saber que estoy haciendo mal? O será que proteus no puede simular eso? Porque si lo simula sin problemas con cualquier otro tipo de LCD, 16x2, 20x4, etc, pero con glcd ahí ya no hace nada. Bueno espero su ayuda. Gracias amigos.

Deberías compartir el esquemático y el código de lo intentas hacer.
« Última modificación: 15 de Abril de 2022, 12:15:58 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado jairotev

  • PIC10
  • *
  • Mensajes: 6
Re:Problema al simular glcd en proteus con bus i2c
« Respuesta #2 en: 15 de Abril de 2022, 18:23:56 »
Ok. No sé cómo subir el esquemático, pero es muy simple la conexión con el PC8574. Sería scl y sda del Pc8574 van conectados a scl y sda del pic. Ambas líneas con 1 resistencia pullup a vcc de 4,7k. A0, A1 y A2 las conecto a vcc (son los pines de configuración de la dirección) lo que me da la dirección 0x4E. En la salida del PC 8574 P0 se conecta a RS del glcd, P1 a RW d l glcd, P2 al pin E del glcd. P3 del pc8574 sin conexión, Y desde P4 hasta P7 se conecta a D4 hasta D7 del glcd. Esa sería la conexión en el proteus. Algún dato más que necesites para poder ayudarme a simular? Gracias

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Problema al simular glcd en proteus con bus i2c
« Respuesta #3 en: 15 de Abril de 2022, 22:01:16 »
.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado jairotev

  • PIC10
  • *
  • Mensajes: 6
Re:Problema al simular glcd en proteus con bus i2c
« Respuesta #4 en: 15 de Abril de 2022, 22:07:00 »
Mi programa después de seleccionar el pic y la velocidad de trabajo que es de 20MHz tiene las siguientes líneas.

#use i2c (Master, Fast=100000, sda=Pin_C4, scl=Pin_C3,force_sw)

//////Librerías///////

#include <i2c_Flex_LCD.C>
#include<LIB_HDM64GS12.c>
#incluso<LIB_GRAPHICS.C>
#include<LIB_BMP_LCD.C>

Void Main () {

lcd_init(0x4e,128,64); //inicializo el display con el bus i2c.

glcd_init(ON);//inicializo el glcd.

glcd_fillScreen(0);//limpio la pantalla del glcd.

glcd_rect(1,1,127,63,0,1);//dibujo un rectángulo en el glcd a modo de prueba.

delay_ms(3000);

While(true){


}}

Desconectado jairotev

  • PIC10
  • *
  • Mensajes: 6
Re:Problema al simular glcd en proteus con bus i2c
« Respuesta #5 en: 15 de Abril de 2022, 22:10:36 »
Gracias dominus. Voy a ver si puedo subir la imagen del proteus y del ccs compiler.
Igual lo que puse respecto al programa y las conexiones en proteus son tal cual. Pero como dice el dicho, una imagen vale más que mil palabras.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Problema al simular glcd en proteus con bus i2c
« Respuesta #6 en: 15 de Abril de 2022, 22:12:19 »
Mi programa después de seleccionar el pic y la velocidad de trabajo que es de 20MHz tiene las siguientes líneas.

#use i2c (Master, Fast=100000, sda=Pin_C4, scl=Pin_C3,force_sw)

//////Librerías///////

#include <i2c_Flex_LCD.C>
#include<LIB_HDM64GS12.c>
#incluso<LIB_GRAPHICS.C>
#include<LIB_BMP_LCD.C>

Void Main () {

lcd_init(0x4e,128,64); //inicializo el display con el bus i2c.

glcd_init(ON);//inicializo el glcd.

glcd_fillScreen(0);//limpio la pantalla del glcd.

glcd_rect(1,1,127,63,0,1);//dibujo un rectángulo en el glcd a modo de prueba.

delay_ms(3000);

While(true){


}}

¿Las funciones glcd_init, glcd_fillScreen, glcd_fillScreen, etc son también para usarse en modo I2C o sólo cuando utilizas en un bus paralelo?
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Problema al simular glcd en proteus con bus i2c
« Respuesta #7 en: 15 de Abril de 2022, 22:25:24 »
Mi programa después de seleccionar el pic y la velocidad de trabajo que es de 20MHz tiene las siguientes líneas.

#use i2c (Master, Fast=100000, sda=Pin_C4, scl=Pin_C3,force_sw)

//////Librerías///////

#include <i2c_Flex_LCD.C>
#include<LIB_HDM64GS12.c>
#incluso<LIB_GRAPHICS.C>
#include<LIB_BMP_LCD.C>

Void Main () {

lcd_init(0x4e,128,64); //inicializo el display con el bus i2c.

glcd_init(ON);//inicializo el glcd.

glcd_fillScreen(0);//limpio la pantalla del glcd.

glcd_rect(1,1,127,63,0,1);//dibujo un rectángulo en el glcd a modo de prueba.

delay_ms(3000);

While(true){


}}

Me parece que estás mezclando las dos cosas, intentar manejarlo como I2C pero utilizar las funciones que son para el manejo en un bus paralelo.

Citar

La pantalla LCD se puede configurar de dos maneras:
a.) acceso al puerto o
b.) pin de acceso.

El acceso al puerto requiere toda la interfaz de 7 bits conectada a un puerto GPIO y los bits de datos (D4:D7 de la pantalla LCD) conectados a pines secuenciales en el GPIO.

El acceso al PIN no tiene requisitos.

Todos los 7 bits de la interfaz de control se pueden conectar a cualquier GPIO usando varios puertos.

Para usar el acceso al puerto, #defina LCD_DATA_PORT en la ubicación SFR, el puerto GPIO que contiene la interfaz, -Y- edite LCD_PIN_MAP
  de este archivo para configurar el orden de los pines. Si está utilizando un PIC de referencia (PCB), también se deben definir LCD_OUTPUT_MAP y LCD_INPUT_MAP.



Más info:

https://github.com/jorgemzz/PIC-C-Programming/blob/master/LCD%20Demo/lcd.c

¿O tal vez estoy equivocado?

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado jairotev

  • PIC10
  • *
  • Mensajes: 6
Re:Problema al simular glcd en proteus con bus i2c
« Respuesta #8 en: 16 de Abril de 2022, 00:26:33 »
Puede que tengas razón. Es la única librería que tengo en pic para manejo de glcd. Pero tal cual, funciona en modo paralelo. Habrá alguna librería en ccs que sirva para el manejo de un glcd por bus i2c?

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Problema al simular glcd en proteus con bus i2c
« Respuesta #9 en: 16 de Abril de 2022, 11:55:34 »
Puede que tengas razón. Es la única librería que tengo en pic para manejo de glcd. Pero tal cual, funciona en modo paralelo. Habrá alguna librería en ccs que sirva para el manejo de un glcd por bus i2c?

Mi experiencia en CCS es casi nula, así hay que esperar que alguien con conocimiento te responda.

Si no hay librerías en I2C, deberías crear las tuyas.

Debes crear una función para poner un punto en las coordenadas x, y (con I2C) y el resto de funciones las puedes copiar las que ya tienes.

Esto es posible ya que todas a la final terminan llamando a la función que pone un punto en alguna coordenada.

Por ejemplo la función que dibuja un cuadrado llama a la que dibuja líneas y está llama a la función que grafica un punto.

Yo hice eso para otro compilador y con una LCD con comunicación SPI.
« Última modificación: 16 de Abril de 2022, 12:09:02 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32


 

anything