fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Conectar varios pics al mismo conector de programación

6 Respuestas
5 Usuarios
0 Me gustas
6,191 Visitas
fusion
Respuestas: 391
Topic starter
(@fusion)
Ardero
Registrado: hace 17 años

Quiero poner tres pics smd en un mismo pcb y no quiero poner tres conectores, ¿hay una solución estandar?
Se me ocurre poner un switch que alimente solo al que se vá a programar, pero no sé si es la solución óptima (lo suyo es los pics tuvieran una señal de disable)

Responder
5 respuestas
garrocha
Respuestas: 1110
(@garrocha)
Ardero
Registrado: hace 19 años

Creo que la mejor opcion sería aislar el VPP/MCLR! ya que es el que pone la tensión de programación, indicándole al pic que se le va a programar.
Creo que cortando esa pista en los que no programes sería suficiente (si el resto no te mete basura en los PGD/PGC (déjalos en alta impedancia/entrada)

Responder
jmn
Respuestas: 376
 JMN
(@jmn)
Ardero
Registrado: hace 12 años

Por lo general los puertos de los microcontroladores llevan diodos de protección, clamp diodes, que conectan cada pin del puerto con Vcc y Gnd, si se mete un valor de tensión mayor que Vcc por el pin este diodo protege el pin dejando ese valor de tensión a Vcc + la caída del diodo, por estos diodos solo pueden pasar unos pocos mA antes de que se rompan. Lo anterior significa que aunque quites los pines de alimentación el micro se puede alimentar por el resto de los pines si en estos hay tensión, a través de los diodos de clamp que conectan cada pin con Vcc y GND.

Lo que dice Garrocha puede ser la solución correcta, en los pics (hace mucho que no uso uno) hay dos modos de programación, uno de alto voltaje y otro de bajo. En el de alto voltaje se le indica al micro que se va a programar poniendo MCLR a un voltaje mayor de Vcc, una opción puede ser poner un interruptor de estos:

http://www.aliexpress.com/item-img/PCB-DIP-Switch-Lot-of-500-pcs-2-Position-4-Pin-SPST/312019782.html " onclick="window.open(this.href);return false;

conectar todos los pines del interruptor de un lado al pin del programador que proporciona la tensión mayor, es decir el que va al MCLR, y los pines del otro lado del interruptor llevarlos a cada uno de los MCLR de los micros, y con cada interruptor seleccionar que micro vas a programar. Teniendo en cuenta que si por error dos interruptores se quedan activados los dos pines de MCLR de un microcontrolador están cortocircuitados.

El resto de los pines del programador (el pin de datos y el de reloj) los llevas a cada unos de los pines de programación del micro, si estos pines de programación no se usan nada más que para programar se puede hacer, quizás te debas plantear la adición de una resistencia en serie con cada pin de programación de cada microcontrolador, para separar los pines de un micro de los del otro.

Si estos pines además de para programar se usan para otra cosa pues ya hay que ver como separarlos.

Es solo una idea, en el modo de programación de bajo voltaje tienes un pin del micro que indica a éste que se va a programar. En el datasheet del microcontrolador que estés usando y en el manual de la familia tendrás un apartado que te describe como funciona la programación en serie de ese micro, y es lo primero que hay que mirar para pensar cómo se puede hacer.

Respecto a añadir el icsp, pues a no ser que sea un diseño que se vaya a replicar lo suyo es añadir un puerto que te permita hacer debug (JTAG, o el que tenga el microcontrolador) ya que si hay algún problema en la programación va a ahorrar muchas horas tener la opcion de poder debugear, aunque en los pics no recuerdo si el propio icsp te permitia debugear.

S2

Responder
dragonet80
Respuestas: 1328
(@dragonet80)
Ardero
Registrado: hace 17 años

La opción que comentan Garrocha y JMN podría funcionar, pero los PICs son muy "delicados" con el tema de tener "algo" conectado en sus pines de programación PGD y PGC y conectar esos pines entre tres micros a priori me suena a problemas. No lo he probado, así que sería cuestión de hacerlo, por si acaso funciona correctamente.

Otra opción sería dejar en cada micro los pines PGD y PGD en un conector, por ejemplo, de 2 pines macho y el Reset en uno de 1 pin macho. Hacer eso es fácil en la placa, ya que casi no necesitas espacio extra, pones los espadines junto a los pines del micro. Después para programar, tienes que usar un cable que tenga los 5 conectores hembra separados, de manera que puedas conectar cada uno donde le corresponda. Vendría a ser algo así, pero con los conectores adecuados (no he encontrado ninguna otra foto):

Me parece la forma más fácil, sencilla y económica.
Respecto a añadir el icsp, pues a no ser que sea un diseño que se vaya a replicar lo suyo es añadir un puerto que te permita hacer debug (JTAG, o el que tenga el microcontrolador) ya que si hay algún problema en la programación va a ahorrar muchas horas tener la opcion de poder debugear, aunque en los pics no recuerdo si el propio icsp te permitia debugear.
Los micros de Microchip (excepto los de 32bits) no llevan JTAG y el mismo conector sirve programar y debuguear. Además los programadores que se suelen usar (pickit, icd, ...) permiten hacer ambas cosas.

Responder
fusion
Respuestas: 391
Topic starter
(@fusion)
Ardero
Registrado: hace 17 años

Muchas gracias, evidentemente no puedo conectar entre sí PGC, PGD pues entonces no puedo hacer debugging. Tendré que poner un interruptor trilple que conecte PGC, PGD y MCLR para que vayan del programador a un micro ó al otro. No importa que Vcc y tierra estén conectados en ambos.

He encontrado este interruptor que conecta a un pic u otro con un solo click:

http://es.farnell.com/erg-components/ds16c4-2/interruptor-dil-tetrapolar-2-vias/dp/422927

Estas son las especificaciones, el que hay que usar es el DS16C 4-2:
http://www.farnell.com/datasheets/5442.pdf

Responder
Página 1 / 2
Compartir: