Autor Tema: PICDOWNLOADER ENIGMA  (Leído 3017 veces)

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

Desconectado pikman

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 682
PICDOWNLOADER ENIGMA
« en: 19 de Enero de 2004, 12:31:00 »
Hola, a todos, pues como dice el titulo, estoy en uno de esos problemillas que dan ganas de machacar el teclado y la placa de desarrollo........el tema es que hace tiempo uso el downloader que fer_taca colgo que por cierto anda muy pero muy bien, claro siempre lo use con codigo generado por CCS, el tema es que ahora quiero implementarlo en un sistema que el codigo ya esta hecho desde hace tiempo en ASM y que pasa?,  agregue las lineas sugeridas

org  0x1F00
clrf   PCLATH
goto INICIO

len la etiqueta INICIO hay una directiva org 0x005 que es donde empieza mi programa,

adivinen que......ANDA CUANDO QUIERE es como si no hubiese restet despues de la carga, ni idea de que pasa, compare el codigo mio con el de CCS y hay mas lineas a partir de la 0x1F00
pero no relevantantes ( creo ) pues hacen los mismo que pero una envia a la direccion 0x04 y otra a la 0x05, bueno quedo a la espera de que alguno de ustedes me salve de este maldito enigma, por lo que dice en la web del downloader sirve para cualquier compilador...........

saludos  

ARIEL - PIKMAN


saludos
PikMan

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
RE: PICDOWNLOADER ENIGMA
« Respuesta #1 en: 19 de Enero de 2004, 13:25:00 »
Hola Pikman:
Yo utilizo el dowloader con asm y va de miedo. Has comprobado si tienes deshabilitado el ORG 0x00 al principio del programa.
Las instrucciones que van despues de 0x1FF son para llamar al botloader. Despues tienes que volver a la página 0 de la memoria de programa con las instrucciones:
bcf      PCLATH,4   ;Con estas dos instrucciones se regresa al......
bcf     PCLATH,3   ;Banco 0 de la memoria de programa.
goto Inicio   ;Se empieza con el programa.

El goto inicio debe ir antes de ORG 0x05 en concreto queda:
               
ORG   0x1F00   ;Dirección del Vector de RESET cuando hay bootloader.

goto  Inicio       ;Comienzo del programa después del vector de Interrupción.

ORG   0x05              ;una posición detrás Vector_Interrupción.

Espero que te sirva, de todas formas, si sigues teniendo problemas te puedo enviar un ejemplo, aunque estoy un poco liado ultimamente por cosas del curro y no dispongo de todo el tiempo que me gustaria, pero prometo contestar.
Ssaludos
Fermin

Todos los días se aprende algo nuevo.

Desconectado pikman

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 682
RE: PICDOWNLOADER ENIGMA
« Respuesta #2 en: 19 de Enero de 2004, 13:59:00 »
HOLA FERMIN,
                      Para ser claro no entiendo lo que me explicas, o mejor dicho entiendo esto:

     org 0x005      
INICIO
     

     programa de usuario????????

      goto  INICIO



      org 0x1F00
       
         bcf    pclath,3
         bcf    pclath,4
         goto INICIO         ES ESTO LO QUE HAY QUE HACER???


GRACIAS DE NUEVO.

SALUDOS

ARIEL  
saludos
PikMan

Desconectado Elena2000

  • PIC24F
  • *****
  • Mensajes: 722
RE: PICDOWNLOADER ENIGMA
« Respuesta #3 en: 19 de Enero de 2004, 14:28:00 »
Hola Ariel,

A ver, te aconsejo que además de cambiar el vector de reset como has hecho, introduzcas la instrucción  "clrwdt" en tu código para que se ejecute cada 10 millisegundos.  
Otra cosa, la última versión del picDownLoader saltaba las 4 primeras líneas del código hex, así que te aconsejo que pongas el origen de tu programa a partir de 0x04. Bueno, a ver qué tal y nos cuentas, vale?

saludos!
Elena

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
RE: PICDOWNLOADER ENIGMA
« Respuesta #4 en: 19 de Enero de 2004, 15:30:00 »
Hola Ariel: Adjunto te envio como realizo mi cofiguracion en los programas. Espero que lo entiendas..
               LIST      P=16F876         ;Selecciona el tipo de micro.
               LIST      C=132            ;Número de caracteres por línea.

               #INCLUDE   <P16F876.INC>      ;Inserta librería igualdades de registros micro.

#Define            Banco_0      bcf   STATUS,RP0      ;Selección del banco 0 de la memoria de programa.
#Define            Banco_1      bsf   STATUS,RP0      ;Selección del banco 1 de la memoria de programa.
;   #Define            CS1_ON      bsf   PORTA,0         ;Se habilita las entradas.
;   #Define            CS1_OFF      bcf   PORTA,0         ;Se deshabilita las entradas.
#Define            CS3_ON      bsf   PORTA,1         ;Se habilita las salidas.
#Define            CS3_OFF      bcf   PORTA,1         ;Se deshabilita las salidas.

W_Temporal        EQU         0x20            ;Dir. a guardar el W en operaciones para salvar su valor.
Status_Temporal      EQU          0x21               ;Dir. a guardar el STATUS en operaciones y salvar su valor.
Delay_Tiempo_1      EQU         0x22            ;Dir. a guardar el valor de contaje a en rutinas de delay.
Delay_Tiempo_2      EQU         0x23            ;Dir. a guardar el valor de contaje a en rutinas de delay.
Byte_Entrada      EQU         0x24            ;Var_temporal del dato leido de las entradas.
Byte_Salida         EQU         0x25            ;Var_temporal del dato a WR para el periférico de Salida-1.

               ORG         0x00              ;Dirección del Vector de RESET. Desactivar si hay bootloader.
;   ORG      0x1F00                              ;Dirección del Vector de RESET cuando hay bootloader.
               goto      Inicio            ;Comienzo del programa después del vector de Interrupción.
                   ORG          0x05              ;una posición detrás Vector_Interrupción.


Mi programa.......
mas
y mas


;*********************************************************************************************************************

;               ORG         0x1F00            ;Página de memoria 4 donde se guarda el programa cargador.
;               bcf         PCLATH,4         ;Con estas dos instrucciones se regresa al......
;               bcf         PCLATH,3         ;Banco 0 de la memoria de programa.
;               goto      Inicio            ;Se empieza con el programa.


Todos los días se aprende algo nuevo.

Desconectado pikman

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 682
RE: PICDOWNLOADER ENIGMA
« Respuesta #5 en: 19 de Enero de 2004, 18:06:00 »
ok, ELENA, gusto de leerte, bueno lo que me tiene desconcertado es que cualqueir codigo generado por CCS funciona correctamente con el bootloader, hice una pequeña rutina en asm y tambien funciona pero un programa de 4 K que quiero usar no funciona otor que mide unas 600 palabra tampoco, ademas si te fijas en el ejemplo de Fermin hay algo que definitivamente no entiendo,

pone

          org 0x1FF00
          goto    INICIO
          ORG 0X05
           
          AQUI VA EL CODIGO.

DEPUES DEL CODIGO PONE


           org 0x1FF00
           bcf   pclath,3
           bcf   pclath,4
           goto INICIO

si pongo esto en mi programa el compilador me da error de sobreescritura, no se como es el truco con esto, lo que me tiene complicado es que el codigo generado por CCS, siempre fuciona el problema es con el ASM bueno de igual modo encontre con codigo escrito en y otro en asm de microchip para estudiar un poco esto.

saludos  


Ariel

saludos
PikMan

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: PICDOWNLOADER ENIGMA
« Respuesta #6 en: 20 de Enero de 2004, 06:58:00 »
Ahhhh , error de sobre escritura....
mira, creo que justamente, te estas pasando de alguna pagina, y como estas definiendo con el ORG, se te estan solapando las lineas..., y eso (aunque no lo uso) esta contemplado en el ccs..
tendrias que determinar que lineas se sobreescriben con el MPLAB...
yo, por ejemplo, marco en el f84 cada pagina

org 0

tablas y codigos

org 100

programa

org 200

programa

org 300

programa

y al compilar, veo en el exa generado, los espacio libres(3FFF),
y me fijo cuanto me queda en cada pagina para seguir cargando, y repartir mi codigo....
espero me entiendas....


suerte! y avisa como fue

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado pikman

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 682
RE: PICDOWNLOADER ENIGMA
« Respuesta #7 en: 22 de Enero de 2004, 00:29:00 »
Bueno, el error de sobreescritura era un error de tipeo pues habian dos directivas org con la misma direccion, esto esta mas que calro y solucionado, con respecto al booloader he conseguido de todas las versiones que hay en el sitio microchipc.com un codigo que funciona tanto en ASM y C de CCS, en el caso de CCS funcioan sin agragar nada al codigo pero en ASM debo agragar algunas lineas, las que ya todos saben y algunas mas, de igual modo no tengo claro como es el asunto pero ni bien lo tenga claro lo cuelgo aqui en foro, pues es una herramienta que yo no sabia lo que sirve cuando estas en el campo o en una planta en una puesta en marcha pues ademas de grabar el micro mucho mas rapido que cualquier programador no hay que sacarlo, y solo demanda el puerto serie del mismo,

un saludo y gracias a todos por vuestra ayuda,

Ariel
saludos
PikMan