Autor Tema: Bootloader para dsPIC  (Leído 4705 veces)

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

Desconectado Falkenauges01

  • PIC10
  • *
  • Mensajes: 8
Bootloader para dsPIC
« en: 09 de Septiembre de 2024, 00:04:54 »
Hola que tal, estoy probando un bootloader para dsPIC, en especifico el Tiny Bootloader, algo antiguo pero funcional, en dos modelos de dsPIC, el dsPIC30F4012 y el dsPIC30F4013, sin embargo no puedo hacer que la aplicación los detecte, el 4012 unas veces si lo reconocio pero no más.

He programado varias veces los dos dspic he revisado conexiones, de hecho hice una pcb con un convertidor UART-USB para probar pero obtengo los mismos resultados. En los pic16F he probado el mismo bootloader (el especifico para estos micros) y si ha funcionado.

Alguien ha probado ese bootloader en dsPIC que me pueda ayudar, ya que llevo varios meses intentando utilizar el bootloader y nada. :(

desde ya gracias por la ayuda! :-/

adjunto link de la pagina del bootloader:
http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Bootloader para dsPIC
« Respuesta #1 en: 09 de Septiembre de 2024, 10:40:37 »
Hola que tal, estoy probando un bootloader para dsPIC, en especifico el Tiny Bootloader, algo antiguo pero funcional, en dos modelos de dsPIC, el dsPIC30F4012 y el dsPIC30F4013, sin embargo no puedo hacer que la aplicación los detecte, el 4012 unas veces si lo reconocio pero no más.

He programado varias veces los dos dspic he revisado conexiones, de hecho hice una pcb con un convertidor UART-USB para probar pero obtengo los mismos resultados. En los pic16F he probado el mismo bootloader (el especifico para estos micros) y si ha funcionado.

Alguien ha probado ese bootloader en dsPIC que me pueda ayudar, ya que llevo varios meses intentando utilizar el bootloader y nada. :(

desde ya gracias por la ayuda! :-/

adjunto link de la pagina del bootloader:
http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm

Hola, no tengo experiencia con ese bootloader, pero si hecho algo con los proporcionados por MCHP.

¿Cuándo dices esto "no puedo hacer que la aplicación los detecte"?

¿Te refieres a que desde una aplicación externa envías a un comando u algo para forzar a que se reinicie el MCU y permanezca en el modo bootloader?

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

Desconectado Falkenauges01

  • PIC10
  • *
  • Mensajes: 8
Re:Bootloader para dsPIC
« Respuesta #2 en: 09 de Septiembre de 2024, 11:58:02 »
La aplicación propia del bootloader, que viene en el mismo paquete no los detecta, aunque reinicie el dspic.  :(
No, trato de reiniciar el pic para que la aplicación del bootloader lo detecte y pueda mandarle el .hex del programa que yo necesito, lo he hecho con un pulsador pero no funciona
« Última modificación: 09 de Septiembre de 2024, 12:01:25 por Falkenauges01 »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Bootloader para dsPIC
« Respuesta #3 en: 09 de Septiembre de 2024, 13:14:54 »
Yo te recomendaría que emules el primer paso que hace el bootloader RS232.

Estoy asumiendo que es lo mismo, esto es que para forzar al dispositivo a entrar en ese modo, envías un comando denominado brake, que básicamente, consiste en mantener la línea de recepción RS232, en bajo (0V), por un tiempo mucho más largo que lo que duraría un byte.

¿Qué se consigue con esto?

Al mantener la línea RX en bajo, produces una excepción en el UART (un error y una interrupción), al ser atendida por el CPU, verifica que la línea RX en realidad esté en cero lógico, si es así, se reinicia al microcontrolador, caso contrario, sólo limpia la bandera de interrupción y error, y retorna a donde se quedó.

Al reiniciarse, lo primero que se ejecuta, es el bootloader, que también verifica si esa línea, la RX, está en bajo, si estuviera en alto, modifica el contador de programa para que salte a la app de usuario.

Caso contrario, permanece en modo bootloader.

SI ese comando break, es muy corto de tiempo, es posible que nunca entre o se quede en el modo bootloader.

Error suele darse por una velocidad incorrecta de comunicación serial, o  se ha modificado el número de veces que se manda ese comando break (la versión del bootloader o software no son contemporáneos)

El software a veces no logran emular un comando break adecuadamente, sobre todo en un convertidor USB a serial, y lo que hacen es enviar muchos ceros (0x00) para entrar en ese modo, pero puedan que sean muy pocos.

Por eso deberías poner el terminal RX del microcontrolador a 0 voltios, para ver si entra en ese modo.

Nuevamente, así es como funciona el bootloader RS232 de MCHP, pienso que esa parte es igual, pero deberías comprobar viendo el código de como entra a ese cómo (app de usuario y bootloader)
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32