TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: migsantiago en 21 de Julio de 2004, 10:42:00

Título: Cargar la EEPROM de un PIC en PROTEUS
Publicado por: migsantiago en 21 de Julio de 2004, 10:42:00
Hola,

he estado simulando con el PIC16F84A unos programas para LCD con Proteus. Hice uno en el que se cargan los caracteres desde la EEPROM del PIC.

Cuando cargo un archivo .hex compilado por MPLAB en Proteus no hay problema. Si edito el archivo .hex en ICPROG o WINPIC y le cargo los datos de la EEPROM, Proteus ya no lo lee y me marca el siguiente error:

-----
SIMULATION LOG
==============
Design:   D:santiagoPICsprogramasprimer_lcdprimer_lcd_proteus.DSN
Doc. no.: <NONE>
Revision: <NONE>
Author:   <NONE>
Created:  18/07/04
Modified: 18/07/04

Compiling source files...
Build completed OK.
Compiling netlist...
Linking netlist...
Partition analysis...

Simulating partition 1 [038BE3C4]...
Animation started sucessfully...
PROSPICE Release 6.1 SP2 (C) Labcenter Electronics 1993-2002.
SPICE Kernel Version 3f5. (C) Berkeley University ERL.

Reading netlist...
Net VDD taken as alias for VCC
Net VSS taken as alias for GND
Reading SPICE models...
Building circuit...
Instantiating SPICE models...
[U1] PIC16 model release 6.01.00 simulating PIC1684 device.
[U1] Loaded 64 bytes of persistent EEPROM data.
[U1] Loading HEX file "..segundo_lcdsegundo_lcd_icprog.hex".
FATAL: [U1] Program or EEPROM data has invalid address [2000] for this device

Real Time Simulation failed to start

Real Time Simulation FAILED.

----------------------

Cualquier .hex que no tenga datos en la EEPROM corre bien, pero si le cargo uno con datos manda ese mensaje.

¿Cómo le hago para poder cargar un hex que incluya datos de programa y eeprom del PIC16F84A en Proteus?
Título: RE: Cargar la EEPROM de un PIC en PROTEUS
Publicado por: migsantiago en 29 de Julio de 2004, 06:06:00
Bueno, ya encontré la forma de incluir los datos de la EEPROM en el archivo .hex sin que Proteus proteste.

Para esto hay que usar la directiva "de" en MPLAB de la siguiente forma:

org 2100   ;declaro datos EEPROM
      de "Santiago"
      de "prueba  "
      de "lcd"

Así MPLAB al generar el código HEX escribe en la dirección 2100 (correspondiente a 00 de la eeprom) la información que uno le dé, obviamente en ASCII.
Título: RE: Cargar la EEPROM de un PIC en PROTEUS
Publicado por: pocher en 29 de Julio de 2004, 11:29:00
Con C de CCS sería así: #rom 0x2100={"Santiago"}
Título: RE: Cargar la EEPROM de un PIC en PROTEUS
Publicado por: Golden_Eagle en 31 de Julio de 2004, 19:19:00
si mi .hex contiene un bootloader, y simulo la descarga de un codigo nuevo en el pic.
el proteus actualizaria el .hex?