Tabla de contenido:

Comprensión de ICSP para microcontroladores PIC: 4 pasos (con imágenes)
Comprensión de ICSP para microcontroladores PIC: 4 pasos (con imágenes)

Video: Comprensión de ICSP para microcontroladores PIC: 4 pasos (con imágenes)

Video: Comprensión de ICSP para microcontroladores PIC: 4 pasos (con imágenes)
Video: Aprende la forma de programar un micro controlador - PIC 2024, Mes de julio
Anonim
Comprensión de ICSP para microcontroladores PIC
Comprensión de ICSP para microcontroladores PIC

Programar microcontroladores no es difícil. Construir un programador es un gran primer proyecto de electrónica. El objetivo de este instructivo es explicar el método simple de "programación en serie en circuito" que se utiliza con los PIC de Microchip.

Paso 1: ¿Por qué ICSP?

¿Por qué ICSP?
¿Por qué ICSP?

Programar un chip DIP (orificio pasante) grande es fácil. Mételo en un programador con enchufe, quémalo y vuelve al circuito de aplicación. Prueba y repite.

Las cosas se ponen más difíciles con chips más pequeños (montaje en superficie). No hay sockets estándar para QFN, SSOP, QFP o incluso los grandes paquetes SOIC.300. Hay clips realmente caros ($ 100) que se pueden acoplar y programar a estos chips. Se necesita un clip diferente para cada tipo de chip y número de pines que utilice. Existe una alternativa. Se llama ICSP. ICSP significa 'programador en serie en circuito (ing?)'. Es una forma de programar un PIC mientras aún está conectado al circuito de aplicación. Así es, no más intercambio de chips. ¿Por qué ICSP? 1. No hay conectores de programación para chips de paquetes pequeños. Los clips son caros. 2. Es un fastidio mover chips dentro y fuera del programador durante el desarrollo. Imposible para piezas de montaje en superficie.

Paso 2: ¿Qué es ICSP?

¿Qué es ICSP?
¿Qué es ICSP?
¿Qué es ICSP?
¿Qué es ICSP?
¿Qué es ICSP?
¿Qué es ICSP?
¿Qué es ICSP?
¿Qué es ICSP?

Se necesitan cinco conexiones para programar un PIC mientras está conectado a un circuito de aplicación. Agrego un encabezado de 5 pines a mis placas de circuito para que esta conexión sea rápida y fácil. Conceptos básicos de la programación PIC. Se requieren cinco conexiones para programar un PIC. Energía, tierra, un voltaje de programación, reloj y datos. + (Vdd) / - (Vss) Estas son las conexiones de energía y tierra (Vdd, Vss). Bastante estándar. Si está utilizando un programador con niveles de voltaje 'reales' (¡NO un JDM2!), Su aplicación puede ejecutarse desde su propia fuente de alimentación cuando se programa, eliminando estas conexiones. Vpp Este es el voltaje de programación. Los PIC ingresan al modo de programación cuando se colocan ~ 13 voltios en el pin MCLR / Vpp (generalmente el pin 1 en los PIC modernos, más sobre eso a continuación). Reloj / Datos o PGC / PGD El reloj y las líneas de datos se utilizan para escribir y leer el PIC firmware. Estos suelen ser los mismos pines que PORTB6 y PORTB7. Ejercicio: Identifique los puntos de conexión ICSP en los PIC en las imágenes a continuación. Si el PIC le queda bien, úselo. Recibo muchas preguntas sobre el diseño de mi JDM2 en instructables. El más frecuente es "¿Programará PIC X? '"'. Así es como puede saberlo: 1) Mire la hoja de datos. Busque el 'Diagrama de pines' que se parece a la imagen de abajo.2) Identifique la ubicación de los pines que deben estar conectados para la programación (Vpp, Vdd, Vss, Datos y Reloj).3) Mire la conexión del enchufe en el programador. ¿Puede hacer coincidir los pines requeridos con un enchufe en el programador?

Paso 3: ¿Cómo ICSP?

¿Cómo ICSP?
¿Cómo ICSP?
¿Cómo ICSP?
¿Cómo ICSP?
¿Cómo ICSP?
¿Cómo ICSP?
¿Cómo ICSP?
¿Cómo ICSP?

Dependiendo de su diseño, ahora puede realizar todas las conexiones necesarias y programar su PIC. Hay algunas capturas que debe conocer. El diseño para ICSP es importante. Microchip proporciona una buena nota de aplicación en PDF sobre el diseño de ICSP. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011744 Aquí hay algunos consejos y ejemplos de diseños ICSP de mis instrucciones anteriores. Consejo # 1, Nivel de amenaza: Importante No conecte nada más al RELOJ y pines de DATOS (generalmente RB6 y RB7, PGC y PGD). Simplemente no lo hagas. Hay situaciones en las que los ingenieros muy inteligentes se salen con la suya, pero no lo hagan. Los componentes conectados a los pines sesgarán el reloj y las señales de datos, lo que resultará en una programación impredecible. Además, si alguna vez desea utilizar un depurador en serie en circuito, no puede hacerlo. Simplemente no lo hagas. Consejo # 2 Nivel de amenaza: Explosivo Utilice siempre un diodo entre el voltaje de programación y el voltaje del sistema. Si usa MCLR (borrado maestro) en un PIC, debe proporcionar algo de voltaje en el pin MCLR a través de una resistencia de 10Kish. Este es también el pin al que aplicará ~ 13 voltios para ingresar al modo de programación. Puse un diodo 1n4148 (equivalente) entre la resistencia y el pin MCLR / Vpp (como se muestra en el esquema y la representación a continuación). Esto mantiene el voltaje de programación en el pin Vpp, evitando la destrucción de otros componentes en su tablero. Consejo # 3 Nivel de amenaza: (re) cansado La programación de bajo voltaje lo está frenando, hombre. Nunca he tenido éxito con LVP. Nunca lo he visto funcionar (consistentemente) con mis propios ojos. Simplemente muerda la bala y gaste $ 2.50 para construir un programador JDM2.

Paso 4: programadores de ICSP

Programadores de ICSP
Programadores de ICSP
Programadores de ICSP
Programadores de ICSP

ICSP no requiere un protocolo de programación diferente. Un programador basado en socket ya produce la señalización requerida, pero la envía al socket en lugar de a través de cables. La mayoría de los programadores de zócalos se pueden utilizar como ICSP colocando cables desde el zócalo al circuito de aplicación. Por ejemplo, el programador JDM2 original (aquí: https://www.jdm.homepage.dk/newpic.htm) se puede utilizar para Realice la programación ICSP llevando las 5 señales requeridas a un encabezado. Esto se puede ver en el programador aquí: https://www.belza.cz/digital/jdm.htm. Para tener las cosas a mano, rehice este diseño en Eagle Cad y lo adjunté a este instructable. Mire la orientación del transistor, una de las huellas puede ser incorrecta (hice esto hace más de un año, ya no recuerdo). De manera similar, mi programador JDM2 actualizado (aquí: https://www.instructables.com/id/EN28KZDDYVEP286GRI/) se puede usar para ICSP pegando cables en los enchufes DIP y conectándolos al PIC de destino. ***** Los JDM2 usan voltajes extravagantes … conéctelos al circuito SIN energía externa (o incluso tierra) conectada al circuito de la aplicación. Quite las conexiones ICSP antes de aplicar energía. No hacer esto no es destructivo, pero resultará en una programación fallida. ******* Otra opción es un programador (semi) adecuado de ICD. ICD le permite controlar la ejecución del firmware en su PIC estableciendo puntos de interrupción en el código o leyendo valores de memoria y puerto. Un ICD también puede animar la ejecución de código, alimentar el circuito de aplicación y programar el PIC. Hace todo esto a través de la misma conexión ICSP de 5 pines que hemos discutido. Aquí se pueden ver varios clones de ICSP que puede hacer usted mismo: https://www.icd2clone.com/wiki/Main_Page. Construí el PiCS (rev B) hace unos meses y me encanta.

Recomendado: