Programación de un PIC16F182x sin programador por puerto serie

Cursos, reparaciones, fichas, tutoriales, etc.

Moderador: Fundadores

Responder
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 6052
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1239 times
Been thanked: 2978 times
Contactar:

Programación de un PIC16F182x sin programador por puerto serie

Mensaje por cacharreo »

Días atrás el compañero @navecitas montaba un ZX DD! MTD 1.5 diseñado por @merlinkv y se encontraba con el inconveniente de que no tenía un programador para el PIC16F1826. Probó algunas soluciones basadas en clones de UNO/Nano pero eran primitivas y posiblemente no compatibles con esta familia de PIC por lo que no programaban la memoria de datos (EEPROM) ni fijaban adecuadamente los bits de configuración.

Este problema puede soslayarse utilizando un módulo USB-TTL (ó USB-Serie) ⁽¹⁾, la última versión del programa gratuito PICpgm para Windows, un par de resistencias muy comunes y una placa de prototipos (breadboard).

Así quedaría en su configuración (casi⁽²⁾) mínima para un PIC16F1827,

Imagen

y, como se puede observar en la siguiente captura de pantalla, el programa PICpgm detecta este engendro como un "JDM Programmer".

Imagen

Después sólo quedaría usar la opción para programar o su correspondiente icono (el de la llama roja, a la derecha de la persiana de selección de PIC).

La programación del código (Flash), datos (EEPROM) y bits de configuración puede llevar hasta 10 minutos e incluso acabar con algunos errores de verificación de datos (EEPROM) o de los bits de configuración (normalmente el bit correspondiente al modo de programación alta tensión/baja tensión) pero, para el caso que nos ocupa (el PIC del DD!) no afecta en absoluto y cuando he probado el PIC en mi ZX VaDeRetror! 2.1c con su ZX VaDeRetror+ 1.02 todo ha funcionado perfectamente a la primera.

A continuación el esquema con las dos posibles variantes, a la izquierda LVP para programación a baja tensión compatible con los PIC16F182x; y, a la derecha, HVP para programación a alta tensión para quienes necesiten usarlo con PIC que no soporten LVP pero que requiere una alimentación externa a +12VDC.

Imagen

La lista de componentes adicionales para la variante LVP es muy simple,

Lista de componentes (2)
 Cantidad  Referencia  Valor  Formato 
1R1,R210kΩ1/8W ó 1/4W
y para la variante HVP sería como sigue.

Lista de componentes (4)
 Cantidad  Referencia  Valor  Formato 
3R1,R2,R310kΩ1/8W ó 1/4W
1Q1BC548Transistor NPN universal como BC547, BC548,...
⁽¹⁾ El módulo USB-TTL debe contar al menos con los siguientes pines: CTS DTR RTS TX +5V y GND. Se sugiere su uso puesto que los PC modernos no disponen de puerto serie pero, en caso de tenerlo, se puede utilizar y prescindir del módulo USB-TTL.
⁽²⁾ Casi mínima porque, en teoría, la resistencia R1 no es imprescindible.
© cacharreo
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 6052
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1239 times
Been thanked: 2978 times
Contactar:

Re: Programación de un PIC16F182x sin programador

Mensaje por cacharreo »

Muchos módulos USB-serie como los usados en las pruebas del mensaje anterior se pueden comprar por uno o dos euros (o menos en oferta), por ejemplo y sin buscar por precio,
- https://es.aliexpress.com/item/1005006157753097.html (los dos primeros modelos)
- https://es.aliexpress.com/item/1005006127199624.html
- https://es.aliexpress.com/item/1005005445079669.html
- https://es.aliexpress.com/item/1005005398343620.html
- https://es.aliexpress.com/item/32668866076.html
- https://es.aliexpress.com/item/1005006480913372.html

Mis pruebas las he hecho con un modulo USB-serie basado en un FT232RL pero disponiendo de las señales serie requeridas (todos llevarán además un pin RX ó RXD), los resultados deben ser idénticos con otros basados en CH34x, un CP210x,... y con un puerto serie real.

Lo bueno de estos módulos es que tienen usos muy variados. Los conoceréis por utilizarse para programar microcontroladores (p.e. AVR) que carecen de puerto USB-serie y placas de desarrollo como la Pro Mini.
© cacharreo
Responder

Volver a “Cursos y Tutoriales”