ENCICLOPEDIA DE RADIOELECTRÓNICA E INGENIERÍA ELÉCTRICA Programación de PIC16, PIC12 modernos en PonyProg. Enciclopedia de radioelectrónica e ingeniería eléctrica. Enciclopedia de radioelectrónica e ingeniería eléctrica. / Microcontroladores Como sabe, el programador PonyProg está diseñado para programar un número limitado de tipos de microcontroladores PICmicro de Microchip (PIC12C50x PIC16F8x, PIC16F87x). Sin embargo, se puede utilizar para programar otros, incluidos los nuevos microcontroladores de las series PIC12 y PIC16. El artículo describe cómo hacer esto. Muchos radioaficionados construyen sus diseños basándose en el popular controlador PIC PIC16F84 (PIC16F84A). Sin embargo, el tiempo no se detiene y la gama de microcontroladores (MCU) PICmicro producidos se amplía constantemente. Han aparecido MCU nuevas y más avanzadas de las series PIC16F y PIC12F (por ejemplo, PIC12F629, PIC12F675, PIC16F628, PIC16F630, PIC16F676). Contienen un comparador capaz de funcionar con una tensión de entrada cercana a cero, lo que resulta muy tentador con un suministro único. El ADC de 10 bits incluido en su composición tiene una precisión no peor que la de los microcircuitos especializados, lo que, junto con mayores capacidades de procesamiento y visualización de información, le permite crear dispositivos únicos con una cantidad mínima de elementos externos. Los nuevos MK tienen mayor memoria, temporizadores adicionales, un puerto de comunicación universal y otras mejoras. Además, su costo es significativamente menor que el PIC16F84 y FLASH PIC16F630 es más barato que el PIC16C505 (ambos en paquetes de 14 pines). La organización de la memoria del PIC12Fx es la misma que la del PIC16F84 (una página), lo que facilita la adaptación de programas que no requieren el uso de MCU en paquetes multipin. Si decide utilizar nuevos microcontroladores en sus diseños, antes de estudiarlos y escribir programas, piense en qué programarlos. Comprar un programador de marca a un costo comparable al costo de una unidad de sistema informático es casi imposible para los radioaficionados. Sin embargo, muchos de ellos montaron el programador PONYPROG [1]. Averigüemos cómo puedes usarlo para programar nuevos MK. Todos los MK se programan mediante un bus de tres hilos. Para la programación se necesitan las señales Upp (transferencia al modo de programación), CLK (sincronización) y DAT (datos). Los aficionados que no tengan un programador pueden utilizar un dispositivo sencillo ensamblado según el diagrama de la Fig. 1. Está conectado al puerto COM de la PC, para alimentar el MK se utiliza una fuente separada con un voltaje de salida de 5 V. En "Configuración del equipo" indique el tipo de programador: JDM API. Los terminales están conectados de acuerdo con la tabla. La programación se puede realizar directamente en el dispositivo terminado utilizando su fuente de alimentación (sólo es necesario eliminar la derivación de los pines de programación MK por parte de los elementos del producto). La tensión de alimentación durante la programación debe estar entre 4,5...5,5 V (si es necesario, seleccione el diodo Zener VD1). La tabla muestra que el propósito de los pines PIC16F84 y PIC16F628 utilizados durante la programación es el mismo, por lo que se pueden programar en el mismo zócalo del programador. Para otros microcircuitos, deberá instalar enchufes adicionales conectados al adaptador de acuerdo con la tabla. Puede encontrar información más detallada sobre los controladores PIC en el sitio web [2]. Se dan más explicaciones utilizando el PIC16F628 como ejemplo, ya que no requiere modificaciones de hardware en el programador PonyProg y está más disponible en las tiendas que otros. Como se señaló, todos los PICmicro MK se programan mediante tres cables (más precisamente, dos). El protocolo de programación (comandos) también es el mismo. La memoria del programa comienza en la dirección 0000 y termina dependiendo de su volumen en un tipo particular de chip. Esto significa que al seleccionar el MK adecuado para este parámetro de la lista de PonyProg, puede grabar el programa deseado. En nuestro caso, PIC16F871 es adecuado. Hay que tener en cuenta que la línea inferior de la ventana de PonyProg indica la cantidad de memoria en bytes, y las características técnicas del MK suelen indicar el número de palabras (14 bits). En otras palabras, el programador muestra un volumen mayor. PIC16F871 y PIC16F628 tienen una capacidad de memoria de 2048 palabras. Además, esto se puede verificar en el archivo .Ikr del MK correspondiente (ubicado en la carpeta de instalación de MPLAB) leyéndolo usando el programa Bloc de notas estándar. La dirección de la memoria del programa se indica de la siguiente manera: CODEPAGE NAME=vectores START=0x0 END=0x4 PROTECTED (transferencias condicionales) CODEPAGE NAME=página START=0x5 END=0x7FF (transferencias condicionales) En esta etapa, ya puedes intentar escribir información en la memoria del programa. Cualquier archivo HEX que no supere las 2048 palabras es adecuado para esto. Después de iniciar el programa de servicio, conecte el dispositivo al puerto de la computadora, inserte el MK en el enchufe correspondiente y luego encienda el programador. Seleccione PIC16F871 en el menú, cargue el archivo HEX seleccionado y haga clic en el botón "Escribir memoria de programa (FLASH)". Aparecerá un mensaje de error que le notificará sobre problemas con el MK y que contendrá tres botones (Fig. 2): "Abortar" (abortar), "Reintentar" (repetir), "Ignorar" (ignorar). Haga clic en el último ("Ignorar") y comenzará el proceso de programación. Al finalizar, debería aparecer un mensaje indicando que la grabación se realizó correctamente. Si el programador genera un "Error de escritura", verifique el contenido de la memoria del programa, considerándolo el comando correspondiente. La presencia de errores indica que el programador puede estar funcionando demasiado rápido (esto sucede si la computadora tiene WINDOWS XP instalado; con WINDOWS 98 el programa corre más lento y escribe de manera más confiable). La causa también puede ser interferencias (si los cables de conexión son demasiado largos) y, en casos excepcionales, antivirus y otros programas en segundo plano. Si la entrada falta por completo, entonces el hardware del programador está defectuoso o el programa está configurado incorrectamente (en el menú). La siguiente etapa, la más importante, es escribir la palabra de configuración. Su dirección también se puede encontrar en el archivo .Ikr del MK correspondiente. La línea en el archivo se ve así: CODEPAGE NAME=.config START=0x2007 END=0x2007 PROTEGIDO (transferencias condicionales). La palabra de configuración se encuentra en la dirección 0x2007. En nuestro caso, PIC16F871 y PIC16F628 tienen direcciones 2007, es decir, son aptos para sustitución (cabe señalar que la palabra de configuración para todos los PIC16 y PIC12F se encuentra en esta dirección). No es recomendable configurar los bits de configuración directamente en el programador, ya que su designación en el panel del programador para PIC16F628 y PIC16F871 es diferente y es posible que se produzcan errores, y algunos bits están atenuados y no se pueden configurar directamente. Es mejor anotar la configuración de MK al compilar un programa. Para MPLAB, estas líneas podrían verse así: en lude p16f628.inc> list p=16f628_config H'0242" El valor de '0242' se compila según el propósito de cada bit en la palabra de configuración y puede ser diferente en su caso particular. Puede encontrar una descripción detallada de todos los bits en el sitio web [2]. Las abreviaturas de los bits de configuración están contenidas en el archivo .INC del MK correspondiente en la carpeta de instalación de MPLAB. Vista aproximada: BODEN EN EQU H'3FFF' BODEN APAGADO EQU H'3FBF' CP TODO EQU H'03FF' CP 75 EQU H'17FF' CP 50 EQU H'2BFF' CP APAGADO EQU H'3FFF' CP DE DATOS EN EQU H'3EFF' CP DE DATOS APAGADO EQU H'3FFF' APAGADO EQU H'3FFF' PWRTE EN EQU H'3FF7' WDT EN EQU H'3FFF' WDT APAGADO EQU H'3FFB' LVP EN EQU H'3FFF' LVP APAGADO EQU H'3F7F' MCLRE EN EQU H'3FFF' MCLRE APAGADO EQU H'3FDF' ER OSC CLKOUT EQU H'3FFF' ER OSC NOCLKOUT EQU H'3FFE' INTRC OSC CLKOUT EQU H'3FFD' INTRC OSC NOCLKOUT EQU H'3FFC EXTCLK OSC EQU H'3FEF' LP OSC EQU H'3FEC XT OSC EQU H'3FED' HS OSC EQU H'3FEE' Usando estas notaciones, la cadena de entrada podría verse así: __config CP_ALL & WDT APAGADO & BODEN ENCENDIDO & _PWRTE_ON & _HSJ3SC &_LVP APAGADO; (las transferencias son condicionales). De esta manera puedes escribir una palabra de configuración para cualquier MK usando su archivo .INC. Esto resulta útil a la hora de adaptar un programa ya preparado, por ejemplo, en el caso de sustituir el PIC16F627 por un PIC16F627A más económico. Cuando incluya la configuración en el texto del programa, se incluirá en el archivo HEX y también se establecerán los bits sombreados. Después de haber ingresado la palabra de configuración en el programador leyendo el archivo HEX del programa que la contiene, la grabación se realiza de la forma habitual, ingresando el comando apropiado. Del mismo modo, se puede leer desde MK. Puede asegurarse de que la configuración se escriba borrando el panel de programación de configuración del programador después de escribir y luego leyendo la configuración del MK, o leyendo la memoria del programa desde un chip protegido contra lectura: antes de escribir la configuración, se lee. , pero después de escribir, no lo es (si se establece la protección). En este caso, la configuración también es legible en el microcircuito protegido. No se recomienda configurar bits de seguridad a menos que sea absolutamente necesario. El hecho es que algunos MK tienen diferentes comandos de borrado y no podrás reprogramarlos, ya que los bits de protección en PonyProg no se borrarán. Sin embargo, al escribir en un chip desprotegido a través del “firmware” que contiene, el código que se escribe borrará la información anterior y no será necesario borrarlo. Sin embargo, esto no se aplica a PIC16F627, PIC16F628; la información que contienen se puede proteger sin temor. Los datos se escriben en EEPROM de la forma habitual, ya que los datos en las MCU PIC16F y PIC12F se colocan desde la dirección 2100p. También puedes ver esto en el archivo .Ikr. Una línea de ejemplo: CODEPAGE NAME=eedata START=0x2100 END=0x217F PROTEGIDO (transferencias condicionales). Varios para controladores PIC: solo el final del área de datos (debido a diferentes volúmenes): para PIC16F628 - 128, para PIC16F871 - 64 bytes, pero si el volumen necesario para trabajar no excede el tamaño de la EEPROM del reemplazo seleccionado chip (para PIC16F871 - 64 bytes), entonces puede programar sin cambiar el tipo MK en el menú: el exceso de memoria del PIC16F628 simplemente no se utilizará. Si necesita escribir un volumen mayor, entonces en el menú del programador debe reemplazar el tipo MK con una capacidad de memoria similar al PIC16F628 (en nuestro caso, es un PIC16F874 con EEPROM de 128 bytes) y escribir de la forma habitual. Puede cambiar el tipo de MK en el menú en cualquier etapa de la programación. Cabe señalar que aunque el PIC16F874 tiene una memoria de programa dos veces más grande que el PIC16F628, puede escribirle información configurando PIC16F874 e incluso PIC16F877 (16K) en el menú; sin embargo, al verificar la grabación, el programador mostrará un mensaje de error. El hecho es que al leer una parte de la memoria que no está implementada en el PIC16F628, el MK producirá información escrita en direcciones más bajas (se ignoran los bits de dirección altos), es decir, la memoria del programa se leerá dos veces (en el PIC16F877, cuatro veces). En otras palabras, esto no es un error en el programa, sino una relectura de la memoria; el programa se escribe normalmente. Literatura
Autor: A. Sizov, Ivanovo Ver otros artículos sección Microcontroladores. Lee y escribe útil comentarios sobre este artículo. Últimas noticias de ciencia y tecnología, nueva electrónica: Cuero artificial para emulación táctil.
15.04.2024 Arena para gatos Petgugu Global
15.04.2024 El atractivo de los hombres cariñosos.
14.04.2024
Otras noticias interesantes: ▪ Tatuaje biométrico monitorea la salud ▪ Cristal cuántico para buscar materia oscura ▪ Placas base ASUS TUF Sabertooth Z97 y Gryphon Z97 Feed de noticias de ciencia y tecnología, nueva electrónica
Materiales interesantes de la Biblioteca Técnica Libre: ▪ sección del sitio Electrónica de consumo. Selección de artículos ▪ artículo ¿Qué nunca puedes encontrar en un casino? Respuesta detallada ▪ artículo cortador de gas. Descripción del trabajo ▪ artículo Antena KB combinada. Enciclopedia de radioelectrónica e ingeniería eléctrica. ▪ artículo Transceptor RW4LQ. Enciclopedia de radioelectrónica e ingeniería eléctrica.
Deja tu comentario en este artículo: Todos los idiomas de esta página Hogar | Biblioteca | Artículos | Mapa del sitio | Revisiones del sitio www.diagrama.com.ua |