TODOPIC

Microcontroladores PIC => Programadores => Mensaje iniciado por: LABmouse en 08 de Septiembre de 2006, 21:22:12

Título: Como se come el hex
Publicado por: LABmouse en 08 de Septiembre de 2006, 21:22:12
En estos momento estoy intentando programar un PIC con otro, es que estoy desarrollando un programador autónomo, es decir, quiero descargar un archivo .hex en una memoria eeprom a través de un PC,  luego poder programarle esa información a unos PICS.

Solo se tendría que conectar al PC 1 vez, y luego programar los PICS que se vengan, hasta que tenga que cambiar el hex.

Pero tengo las siguientes preguntas:

Como interpreto el .hex generado en la compilación, que corresponde al tipo de oscilador, etc.

Como tengo que desarrollar el programa en visual Basic, no se como interpretar ese archivo .hex.

De antemano agradezco su ayuda. :-)
Título: Re: Como se come el hex
Publicado por: maunix en 09 de Septiembre de 2006, 17:38:36
En estos momento estoy intentando programar un PIC con otro, es que estoy desarrollando un programador autónomo, es decir, quiero descargar un archivo .hex en una memoria eeprom a través de un PC,  luego poder programarle esa información a unos PICS.

Solo se tendría que conectar al PC 1 vez, y luego programar los PICS que se vengan, hasta que tenga que cambiar el hex.

Pero tengo las siguientes preguntas:

Como interpreto el .hex generado en la compilación, que corresponde al tipo de oscilador, etc.

Como tengo que desarrollar el programa en visual Basic, no se como interpretar ese archivo .hex.

De antemano agradezco su ayuda. :-)


PICmouse, fíjate en el manual del MPASM, MPLINK y MPLIB.

Hay una pequeña sección dedicado al formato .HEX, en general seguramente trabajarás con el formato INTEL32.

 MPASM/MPLINK User's Guide  (http://www.microchip.com/Microchip.WWW.SecureSoftwareList/secsoftwaredownload.aspx?device=en019469&lang=en&ReturnURL=http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002#)

Saludos
Título: Re: Como se come el hex
Publicado por: djpalas en 10 de Septiembre de 2006, 11:12:57
El formato HEX de intel se trata de un archivo de texto ASCII que representa
la información de programación de algunas memorias, microcontroladores
o emuladores de hardware.

Este formato contiene seis campos que especifican la información en
formato hexadecimal

estos son:

RECORD MARK
1 caracter (1 byte)
Representa el inicio de linea con el numero 0×3A que en codigo ASCII
este se traduce como ’:’

RECLEN
2 caracteres (2 byte)
Numero de bytes de la linea INFO o DATA, el valor máximo de este
es 0xFF o 255 en decimal

LOAD OFFSET
4 caracteres (4 byte)
dirección en donde seran grabados el campo DATA

RECTYP
2 caracteres (2 byte)
tipo de linea

00 Registro de datos
01 Fin del Archivo de registro
02 Dirección de un segmento extendido del registro
03 Dirección de inicio de un segmento del registro
04 Extended Linear Address Record
05 Start Linear Address Record

DATA
0 -2n caracteres
son los datos a grabar en el componente en la direccion dada por LOAD OFFSET

CHKSUM
2 caracteres
cheksum o codigo verificador
representa dos complementos de 8 bits, el resultado de la conversion se toma
de los campos RECLEN y DATA

----------------------
Espero que os sirva de ayuda, puesto que también quiero empezar a hacer mi propio programador.
Título: Re: Como se come el hex
Publicado por: aitopes en 10 de Septiembre de 2006, 11:43:09
Preguntonta:
¿Es necesario saber como es internamente el HEX para copiarlo de un PIC a una memoria o viceversa? ¿No alcanzaria con copiar tal cual byte a byte y listo? :shock:

Saludos! :mrgreen:
Título: Re: Como se come el hex
Publicado por: elmasvital en 10 de Septiembre de 2006, 11:56:26
sin verlo me supongo que no... date cuenta de que eso significaria que un hex es tan solo un volcado de memoria hacia el pic y eso no es así. Date cuenta de que ahí va la configuración de los fuses del pic, los datos de la eeprom y los datos de programa. Es bastante mas versatil que lo que propones.

1 saludo
Título: Re: Como se come el hex
Publicado por: djpalas en 10 de Septiembre de 2006, 12:01:44
Creo que no, porque hay que saber las direcciones de memoria donde escribirlas, la cantidad de datos a escribir, etc etc. Soy un poco novato en esto, porque lo acabo de echarle un vistazo. Pero no crea que sea tan fácil como mandar solo los datos.

Una buena ayuda seria los grandes maestros de programadores dijeran algo para comprender mejor su uso ;)
Título: Re: Como se come el hex
Publicado por: aitopes en 10 de Septiembre de 2006, 12:47:15
Si, viendolo detenidamente tiene sentido...por un lado van todo el tema de los fuses, etc, y por otro el programa propiamente dicho...
No, si no hay nada facil en este mundo.... :lol:

Era nomas una preguntonta....ja ja ja!
Título: Re: Como se come el hex
Publicado por: LABmouse en 11 de Septiembre de 2006, 11:00:42
Gracias, por su colaboración, es de gran ayuda el archivo PASM/MPLINK User's Guide maunix te agradezco mucho, y con los parámetros  iniciales dados por djpalas se puede comenzar con el proyecto.

Que me recomiendan ustedes Visual Basic o VisualC, siempre trabaje con VBasic, pero algunas personas me dicen que con VC obtengo mayor control de los puertos del PC.
Título: Re: Como se come el hex
Publicado por: maunix en 11 de Septiembre de 2006, 11:15:37
Que me recomiendan ustedes Visual Basic o VisualC, siempre trabaje con VBasic, pero algunas personas me dicen que con VC obtengo mayor control de los puertos del PC.

Mmmm,... ¿Delphi?
Título: Re: Como se come el hex
Publicado por: maunix en 11 de Septiembre de 2006, 11:18:58
Preguntonta:
¿Es necesario saber como es internamente el HEX para copiarlo de un PIC a una memoria o viceversa? ¿No alcanzaria con copiar tal cual byte a byte y listo? :shock:

Saludos! :mrgreen:

No, no es posible.

El formato HEX incluye dentro del formato datos como el address al cual hacen referencia los datos, la cantidad de datos, el tipo de dato y un checksum.

Todo ello hace imposible una conexión así directa entre el HEX y el grabado en el PIC.

Se le puede pasar directamente el HEX línea por línea a un bootloader por ejemplo y que el mismo haga la tarea de desmenuzar el archivo aunque esto te origina un código mayor en el PIC.

También se puede desmenuzar antes el HEX para pasarlo "más simplificado" al pic.

 :) :)