4 votos

Cómo programar la flash de múltiples controlador PIC

Tenemos 6 dsPIC33F (16bit) los controladores del sistema y el sistema es bastante grande y complicado. Todos los controladores se encuentran en diferentes Pcb y conectados entre sí a través del bus RS485.

  1. Primera foto del controlador (Maestro) es conectado a la PC y el resto de los controladores (5 esclavos) están conectadas al Maestro mediante bus RS485.
  2. Para el programa de maestría dsPIC utiliza MPLAB-ICD programador conectado a la PC.
  3. Ahora Para el programa de Slave1 dsPIC tenemos que abrir la máquina, a continuación, busque el PCB y conecte el programador manualmente, entonces el programa.
  4. De igual manera debemos seguir el mismo procedimiento uno por uno para todos controlador mediante la eliminación de parte del programador y de la conexión a los respectivos PCB programa de los dsPIC.

Quiero el programa de todos los controladores a través de software, uno por uno desde el PC sin quitar la MPLAB_ICD cuando está conectado entre el Maestro y el PC por defecto. O hay algún otro método a través de hardware o software para el programa de todos los controladores de uno por uno desde el PC sin necesidad de hacerlo manualmente?

¿Qué hardware/software de los cambios tengo que hacer para programar el dsPIC sin necesidad de abrir el sistema?

6voto

Andreas Puntos 741

Puedo hacer casi lo mismo con PIC32 dispositivos con la excepción de que esta se realiza con un gestor de arranque y no un ICD. Nos programa el gestor de arranque en cada dispositivo cuando está fabricado y probado usando un MPLAB-ICD3. A continuación, utilizamos el gestor de arranque para actualizaciones de firmware.

El gestor de arranque es una versión modificada de la proporcionada por Microchip. Se hicieron las modificaciones para permitir el paso a través de las comunicaciones con los dispositivos esclavos. El PC del cargador de la aplicación también se necesita para ser modificado. Aquí es cómo funciona:

  1. Cada dispositivo tiene dos puertos de comunicaciones. Un puerto RS-232 y un puerto RS-485. El puerto RS-232 es por lo general sólo utiliza un maestro y todos los esclavos puede ser programado y configurado a través de paso a través de ese puerto. Los dispositivos esclavos se puede configurar o programar a través de su propio puerto RS-232.

  2. Cada dispositivo tiene un 8-posición de los dip-switch que establece la dirección del dispositivo. Cada dispositivo tiene también un maestro/esclavo seleccione dip-switch para definir el maestro. Usted podría usar un pre-definido de dirección para designar al maestro, pero teníamos razones para necesitar el interruptor separado, los cuales no están relacionados con esta cuestión.

  3. Incluido en los protocolos de comunicaciones para todos los puertos es un "Reset" de comandos. Este se utiliza para restablecer el procesador de ponerlo en modo de arranque. El procesador está en modo de arranque para un mínimo de 0,5 segundos. Este plazo se ampliará si el gestor de paquetes recibidos (ya sea para su dispositivo o a otros). El PC cargador de solicitud comienza el bootload proceso mediante el envío de un mundial comando reset para el maestro que se la transmitirá a los esclavos.

  4. Cada uno de los comandos y los datos de la PC viene en la forma de un paquete. Una dirección de byte se agrega al principio de cada paquete para designar el dispositivo de destino. La dirección está configurada por un control en la ventana de la PC del cargador de programa.

  5. Todos los paquetes son reconocidos por el dispositivo que está dirigido por el paquete.

  6. Un maestro va a usar un paquete si coincide con su propia dirección y reconoce que de paquetes. El maestro va a pasar-a través de los paquetes para el puerto RS-485 si la dirección no coincide con la que es propia. El maestro va a pasar-a través de reconocer los mensajes desde el puerto RS-485 para la PC.

  7. Un esclavo de recibir un paquete desde el puerto RS-485 se utiliza ese paquete y reconocer que es a través del puerto RS-485. Si el paquete es recibido desde el puerto RS-232 (y los partidos de la dirección), el uso y reconocer el paquete a través de ese puerto.

  8. Debido a que el tiempo adicional requerido para el paso a través de las comunicaciones, los tiempos de espera en la PC del cargador de la aplicación tenía que ser ampliado. Por razones adicionales relacionadas con nuestro producto, no estamos a favor del uso de Ethernet basado en puertos COM virtuales para actualizaciones de firmware. Si esto se hiciera, el tiempo adicional que sería necesario. La mayoría de los adaptadores de USB a serial (utilizando el puerto COM virtual drivers) funcionan bien con este método.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X