Que tal amigos,
Primero me disculpo porque no supe donde colocar el post, si en este de PBP o en el de proteus.
Mi problema es el siguiente, estoy realizando pruebas con proton para simular memorias con protocolo I2C, especificamente la 24C128. Pero me di cuenta que la version de proton 6.9 SP5 no simula correctamente las memorias de este tipo. El codigo de prueba esta hecho en PBP, y exactamente el mismo codigo pero simulado en proton version 6.5 SP5 funciona a la perfeccion.
A continuacion el codigo:
DEFINE HSER_RCSTA 90H 'Habilita puerto serial asincrono y recepcion
DEFINE HSER_TXSTA 20H 'Habilita la transmision y baja velocidad del baudrate (16 MHz)
DEFINE HSER_SPBRG 25 'Valor del registro para el baud rate de 9600 bps
DEFINE OSC 16 'Se usa un cristal de 16MHz
'****************************************************************************************
' DEFINICION DE PUERTOS Y BITS DE REGISTROS
'****************************************************************************************
SDA VAR PORTA.1 'Pin de datos del bus I2C para la memoria AT24C128A
SCL VAR PORTA.0 'Pin de clock del bus I2C para la memoria AT24C128A
'****************************************************************************************
' DEFINICION DE VARIABLES Y BANDERAS
'****************************************************************************************
ADDR_COUNT VAR WORD
I2C_ADDR VAR WORD 'Variable que contiene la direccion de acceso para la memoria
'AT24C128A
I2C_ADDR_LOW VAR I2C_ADDR.BYTE0
I2C_ADDR_HIGH VAR I2C_ADDR.BYTE1
DATA_SER VAR BYTE 'Variable que contiene el byte recibido por el USART hardware
EE_DATA VAR BYTE[8]
I VAR BYTE
'****************************************************************************************
' DEFINICION DEW CONSTANTES
'****************************************************************************************
CTL CON $A0
@ __config _HS_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _LVP_OFF & _CP_ON & _BODEN_ON & _DATA_CP_ON
'****************************************************************************************
' INICIO DE PROGRAMA PRINCIPAL
'****************************************************************************************
INICIO:
CMCON = 7 'Configura puerto A como digital
INI: HSEROUT ["INTRODUCE NUMERO DE CELDA (4 DIGITOS)",13,10]
HSERIN [dec4 ADDR_COUNT]
HSEROUT [DEC4 ADDR_COUNT,13,10]
I2C_ADDR = (ADDR_COUNT-1)*8 'Prepara la direccion para el numero de celda que se eliminara
I2CWRITE SDA,SCL,CTL,I2C_ADDR,[$A5,$01,$02,$03,$04,$05,$06,$07]
PAUSE 10
FOR I = 0 TO 7
I2CREAD SDA,SCL,CTL,I2C_ADDR+i,[EE_DATA]
HSEROUT [HEX2 EE_DATA]
NEXT I
HSEROUT [13,10]
GOTO INI
Como pueden ver el codigo es bastante simple. El PIC usado para realizar las pruebas es PIC16F627A.
Entonces la pregunta es:
Alguien mas ha tenido este problema?
Como la ha resuelto?
Mi necesidad de usar proton ver 6.9 SP5 es porque necesito simular el ibutton DS1990 y la version 6.5 SP5 no contiene este dispositivo. De antemano agradezco su ayuda y su tiempo.
Saludos.
Elreypic.