Mostrando entradas con la etiqueta 16F876A. Mostrar todas las entradas
Mostrando entradas con la etiqueta 16F876A. Mostrar todas las entradas

jueves, 31 de octubre de 2013

Base oruga Tamiya track & whell (Prueba 2)

Muy buenas a todos!!!

He estado probando diferentes configuraciones para el set de ruedas oruga de Tamiya. y por el momento para hacer las pruebas me quedo con la típica configuración de un tanque. Para la alimentación de los motores voy a utilizar un driver L293D. Utilizare unos de los dos canales HPWM que tiene el 16F876A para controlar la velocidad.

Al driver L293D le he puesto un ventilador que ahora mismo va fijo, pero cuando el proyecto este más avanzado solo se encendera cuando el Driver se caliente, esto lo haré con un Lm35.

Para la transmisión de los datos lo haré con unos módulos de radio frecuencia de 433mhz que compre por Ebay. Aun no se la distancia a la que es capaz de transmitir y recibir...

Todo va controlado con un 16F876A con bootloader que es el que se encarga de recibir los datos a trabes del puerto RC0. El HPWM situado en el RC2 (CCP1). Los 4 movimientos posibles están situados en RB7, RB6, RB5, RB4. Por el momento esos son los únicos pines que voy a utilizar.

Todo el conjunto va alimentado con una batería de 9,6V.

Para enviar los datos al tanque estoy utilizando un convertidor USB-RS232 y un max232 conectado a el transmisor de RF.
Y el software para los movimientos he rescatado un programa que hice hace tiempo llamado Peyutsubot 2.5 al cual le he encontrado un par de fallos y estoy intentando subsanar, además de incluir el control de PWM.

Ire poniendo avances, saludos!!!

jueves, 18 de julio de 2013

Comunicación Serial, transmitiendo datos PIC a Visual Basic 6

Muy Buenas a todos y todas!!!

Después de actualizar a la versión 1.1 del programa CDLA, ahora le toca el turno al programa en Visual Basic 6 para controlar las locomotoras desde el PC.

Este programa ya transmitía datos desde el PC al PIC, ahora lo que quiero que haga es que lea el control manual y muestre en la pantalla del ordenador los datos que envía el microcontrolador.

Para esto he utilizado el objeto MSCOMM1 que ya trae Visual Basic 6 con la instrucción "MScomm1.input".

Intentare explicarlo un poco y espero que sea comprensible:

Enviando datos desde PIC a VB6

Los datos que se mandan desde el microcontrolador PIC son transmitidos a una velocidad de 9600 bauds y cada variable va separada por ",":


include "modedefs.bas"   'Activa el modo de comunicación

Masterout var portc.6

Serout portb.1, N9600, [#variable1,#variable2,#variable3,"AK"]

* La variable 1 es una variable tipo BYTE que va desde 0 a 255
* La variable 2 es una variable tipo BYTE que va desde 1 a 8
* La variable 3 es una variable tipo BIT que va desde 0 a 1

Con serialComunicator de Mecanique nos mostrará en pantalla los datos en el siguiente formato:

010AK 010AK 010AK.... (Variable1 = 0, Variable2 =1, Variable3 =0, AK)

12831AK 12831AK 12831AK... (Variable1 = 128, Variable2 =,3 Variable3 =1, AK)

Esta es la trama de datos que se envían desde el microcontrolador PIC y que tendremos que decodificar en VB6.


Obtención de datos en VB6

Ahora, ¿como extraemos de esa maraña de caracteres los datos que nos interesan?

Para obtener los datos tenemos la función .Input de MScomm. con el adquirimos los datos del cual luego iremos desgranando dato por dato.

La rutina que vamos a utilizar esta dentro de un timer como podemos ver en el siguiente ejemplo:


Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim dataIn, tdataIn, Vel, total As String
Dim C, T, N, X As Integer   'cantidad, tipo, numero, valor

Private Sub Command1_Click()
  Timer1.Enabled = True
  MSComm1.PortOpen = True
  Command1.Enabled = False
  Command2.Enabled = True
End Sub

Private Sub Command2_Click()
  Command1.Enabled = True
  Command2.Enabled = False
  Timer1.Enabled = False
  MSComm1.PortOpen = False
End Sub

Private Sub Form_Load()
  Timer1.Enabled = False
  Command1.Enabled = True
  Command2.Enabled = False
End Sub

Private Sub Timer1_Timer()

  dataIn = MSComm1.Input
  If dataIn <> "" Then ' Si no es un texto vacio entonces...
    tdataIn = Len(dataIn)
    
    If tdataIn = 7 And Right(dataIn, 2) = "AK" Then
      Text2.Text = (Right(dataIn, 2))
      Text1.Text = dataIn
    
      Vel = Mid$(dataIn, 1, 3)
      total = ""
      For X = 1 To Len(Vel)
        If InStr("0123456789", Mid$(Vel, X, 1)) Then
          total = total & Mid(Vel, X, 1)
          N = total
        End If
      Next X
    
      dataIn = (Right(dataIn, 4))
      C = Left(dataIn, 1)
    
      dataIn = Right(dataIn, 3)
      T = Left(dataIn, 1)
    
      Text3.Text = C
      Text4.Text = T
      Text5.Text = N
    End If
  End If
End Sub

  • Text1: Lectura de toda la trama de datos enviados por el PIC.
  • Text2: Lectura de los caracteres de confirmación (AK).
  • Text3: Lectura de la Variable2
  • Text4: Lectura de la Variable3
  • Text5: Lectura de la Variable1


El tema de como sacar el los números de una cadena, viene muy bien explicado y con varios ejemplos en este magnifico foro de Visual Basic.


Espero que les sea de ayuda para entender como comunicar un microcontrolador PIC 16F628 o 16F876A con un sistema Visual Basic 6

Saludos a todos y todas!!!

martes, 25 de diciembre de 2012

Control locomotoras 16F876A modelismo ferroviario HO parte 2

Con la ampliación de la maqueta, me he metido de lleno a mejorar el tema de la electrónica y aprovechar al máximo los micro controladores, y se me ocurrió, que podría hacer algo parecido al sistema DCC pero en analógico. Para mi esto significa tener una central (Master) y los demás dispositivos auxiliares (Slaves).

De esta manera espero poder tener un control mucho más personalizado para cada circuito.

Nunca había caído en la cuenta de poder usar arrays para mejorar el código y estoy bastante contento ya que con ellos he podido resumir el código y hacerlo más compacto y espero que eficiente.

La velocidad esta controlada por el potenciómetro, que es común para todas las locomotora. Bueno no es lo más correcto llamarlas locomotoras, en realidad se refiere a cada circuito, ya que al ser analógico no alimento las locomotoras como en el sistema DCC, si no las vías.

Para entrar en el modo manual se pulsa 1, ya que en el montaje final la pantalla ira sobre el teclado. El modo PC aun no esta terminado así que ahora mismo no funciona.


Para seleccionar el circuito pulsaremos 1, 2 o 3 . Una vez dentro, aparecerá el número de circuito, la velocidad, y la dirección en la que va la locomotora situada en ese circuito. Para salir de ese circuito y volver al menú principal hay que pulsar "#"


martes, 18 de diciembre de 2012

Comunicación MAX485 PIC-PIC 16F876A

PIC 16F876a 20MHz

Bienvenidos a todos y todas!!!

Para la maqueta he decidido cambiar el sistema que utilizo en la comunicación entre PIC‘s.

Antes lo hacia directamente PIC a PIC, pero se me quedaba corto para poder añadir más microcontroladores.

Primero mire si se podía con un MAX232, pero tiene el problema de no ser multipunto, es decir que no se pueden conectar más de 2 microcontroladores así que no servía para mi propósito de poder crear módulo independientes.

Investigando un poco encontré el MAX485, que se adapta mejor al tipo de configuración que se utilizará finalmente.

Después de ver algunos ejemplos de libros y la web, he hecho este pequeño programa de comunicaciones con MAX485. El programa es un bucle que comunica un pic con el otro haciendo que se enciendan la luz verde cuando recibe el dato.

Si bien este programa es para 2 micros, la idea seria ir añadiendo más, (el MAX485 admite hasta 32 dispositivos). El mayor problema que estoy teniendo hasta ahora es el tema de la sincronización, ya que para que funcione, cuando enviamos un dato, tenemos que poner el control bajo, es decir, el pin que hayamos seleccionado tiene que estar en LOW para poder recibir y el HIGH para poder transmitir.

Código para microcontrolador principal:


'PRINCIPAL

define LOADER_USED 1   
DEFINE OSC 4
include "modedefs.bas"   'Activa el modo de comunicación
ADCON1=6 

rojo    var portb.1
verde   var portb.0 
control var portc.0
entrada var portc.6
salida  var portc.7 


dato var byte
repet var byte

'para saber que el pic esta encendido
high rojo : high verde
pause 1000
low rojo : low verde

Estado:
  low control
  serin entrada,T2400,dato
  if dato = "E" then 
    high verde
    pause 250
    low verde
    pause 250
    goto enviando
  endif
goto estado

enviando:
  for repet = 1 to 10
    high control
    serout salida,T2400, ["D"]
  next
  high rojo
  pause 250
  low rojo
goto estado

end

Código para microcontrolador secundario:


define LOADER_USED 1   
DEFINE OSC 4
include "modedefs.bas"   'Activa el modo de comunicación
ADCON1=6 

rojo    var portb.1
verde   var portb.0 
control var portc.0
entrada var portc.7
salida  var portc.6 

cnt var bit 
dato var byte
repet var byte

'para saber que el pic esta encendido
high rojo : high verde
pause 1000
low rojo : low verde


Enviando:
  for repet = 1 to 10
    high control
    serout salida,t2400, ["E"]
  next
  high rojo
  pause 250
  low rojo

Estado:
  low control
  serin entrada,T2400,dato
  if dato = "D" then 
    high verde
    pause 250
    low verde
    pause 250
    goto Enviando
  endif
goto Estado

end


Por otro lado también estoy barajando la posibilidad de utilizar HSERIN y HSEROUT, pero eso sera dentro de un tiempo ya que ahora estoy un poco liado con la navidad y el trabajo.

También me gustaría poder hacer un ejemplo con más microcontroladores, pero como he comentado tendrá que ser un poco más adelante.

Saludos a todos y todas y felices fiestas!!!

lunes, 21 de mayo de 2012

Cambiando a bootloader tinybld198

Después de llevar utilizando un tiempo el bootloader Screamer-v1.4, la verdad me fue muy bien hasta que comencé a trabajarlo con un LCD 16X02. En ese momento empezó a darme un error y no había manera de poder pasar al Pic el programa mediante este bootloader. Decidí buscar otro... y lo encontré!!! Se llama Tiny PIC bootloader.

Pues bien con este bootloader este error desaparece, bueno realmente no desaparece del todo. Tiny bootloader detecta este problema y lo repara. si, así de fácil.

El error tiene algo que ver con GOTO que al compilarlo se pone donde no debe, o eso entendí yo cuando estuve buscando información.



Bien por el momento voy a seguir utilizando este con el PIC 16f876A a 20Mhz aunque tengo que mirar la manera de hacerlo funcionar a 4Mhz, ya que tengo un par por ahí y me gustaría aprovecharlos también.

En la carpeta \picsource\ vienen los .hex para los diferentes microcontroladores.
Para el 16F876A a 20Mhz estoy utilizando el archivo tinybld_16F876A_20MHz.HEX  con una velocidad de transmisión de 115200 Baudios y por el momento estoy muy contento con el resultado.

TinyBootloader lo puedes encontrar en la sección de descargas o en la pagina del autor.

Un Saludo!!

By PeYuTrOn

martes, 1 de mayo de 2012

Comunicación con MAX233 PC to PIC PIC to PC

Buenas a todos y todas!!!

Siguiendo con mi maqueta ha llegado la hora de comunicar todos los módulos con el PC.

Para comunicarlo todo hemos decidido usar un MAX 233.

El MAX233 es muy parecido al MAX232, pero no utiliza los condensadores, así que son menos componentes, y por tanto, menos probabilidad de fallo. En el datasheet del MAX233 tenéis más información sobre lo que estoy comentando.


El circuito que he montado para el MAX233 es el siguiente:


También he montado en algún otro el MAX232 y aunque con más componentes el resultado siempre ha sido muy bueno. tenéis más información en la siguiente entrada del blog:

Comunicación PC con PIC con MAX232 - Infotronikblog.com

Saludos a todos y todas!!!

viernes, 30 de marzo de 2012

Control locomotoras 16F876A modelismo ferroviario HO

Muy Buenas a todos!!!

Bien ya solo me queda un poco para terminar todo el conjunto de desvíos y controles para los 3 circuitos de la maqueta.

Ya solo faltaría el modulo de detección para, por ejemplo, paradas en caso de choque inminente, detención frente a el desvió, para ceder el paso a otra locomotora etc.

Supongo que este sera un poco más complicado que estos 2 últimos ya que sera el encargado de interconectar todo.

Bien hoy solo pongo una foto para que se vea como quedan todo el conjunto de circuitos. Espero organizarlo todo un poco mejor ya que hoy solo he tenido tiempo para unas pocas pruebas y todavía hay cosas que se pueden mejorar.


Por fin ya esta casi casi terminado, le he añadido un LCD 16x2 al conjunto del micro que controla los desvíos y el teclado.

Ahora puedo ver en la pantalla que desvíos (Dx) y que cruces (Cx), o significa circuito en su posición predeterminada y 1 si esta activado, el otro conjunto es para las velocidades de los 3 circuitos, en la imagen corresponden a el grupo de la derecha.

Las velocidades que son controladas por el otro microcontrolador aparecen reflejadas en LCD y las envío mediante la instrucción SEROUT a una velocidad de 9600.

Todo funciona correctamente, pero se puede mejorar, por ejemplo, haciendo que el LCD me indique la dirección en la que va cada circuito.

 

Bien por el momento esto es todo!!! Un saludo!!

sábado, 10 de marzo de 2012

16F876A ADC y HPWM

Muy buenas a todos y todas!!!

Buscando como controlar las locomotoras de la maqueta encontré como configurar la instrucción HPWM que tiene internamente el 16F876A.

¿Qué es HPWM?

HPWM es una instrucción que hacia tiempo que quería probar pero siempre me había dado fallos, eso unido a mi poca paciencia y tiempo...

Al final junto con un ejemplo que encontré en Todo PIC y revisando la ayuda de Microcode Studio, hice este pequeño programa para controlar la intensidad de 2 leds con los conversores analógicos.

Una de las ventajas que tiene es que se ejecuta en segundo plano así que puedes hacer otras cosas mientras que se ejecuta hpwm.

Una de las desventajas es que utiliza pines específicos del PIC llamados CCP, en el caso del 16F876A son 2 y están situados en los pines 12 y 13 (CCP2 y CCP1 respectivamente).

Para activar el HPWM en PBP se utilizan los siguientes DEFINE'S en la configuración inicial del programa:

DEFINE CCP1_REG PORTC ' Hpwm 1 pin port
DEFINE CCP1_BIT 2 ' Hpwm 1 pin bit
DEFINE CCP2_REG PORTC ' Hpwm 2 pin port
DEFINE CCP2_BIT 1 ' Hpwm 2 pin bit

Con esto se habilita el HPWM, y la instrucción es así:


HPWM Channel, Dutycycle, Frequency

  • Channel: Es el canal del CCP que estemos usando, 1 para CCP1 y 2 para CCP2
  • Dutycycle: pondremos la variable o el número que queramos para los ciclos que especifica el encendido / apagado en relación a la Frecuencia (Frequency).
    Con una variable Byte, 0 es totalmente apagado, 127 es la mitad de la onda y 255 seria la onda completa, en el caso del led, este brillara a su máxima potencia.
  • Frequency: estoy utilizando el valor de 255 aunque no lo tengo muy claro asi que lo mejor es que lo consulteis en el datasheet del mismo 16F876A

Ejemplo para el uso de HPWM


' Control HPWM con la lectura ADC del microcontrolador 16F876A
' Lee los potenciómetros y ajusta la intensidad de los leds conectados
' a los puertos  CCP1 y CCP2


define LOADER_USED 1  ' Para usar el bootloader del 16F876A

DEFINE OSC 4          ' Define la velocidad de reloj del microcontrolador


define ADC_BITS 10     ' Conversión A/D a 10 bits
Define ADC_CLOCK 3   
DEFINE ADC_SAMPLEUS 50 ' Tiempo de muestreo
DEFINE CCP1_REG PORTC  ' Hpwm 1 pin port
DEFINE CCP1_BIT 2      ' Hpwm 1 pin bit
DEFINE CCP2_REG PORTC  ' Hpwm 2 pin port
DEFINE CCP2_BIT 1      ' Hpwm 2 pin bit

' Variables para el dato
Dato1 var word       
Dato2 var word
Dato3 var word

dato1 = 0
dato2 = 0
dato3 = 0

TRISA = %11111111
TRISC = %00000000
portc = %00000000   

ADCON1 =%10000000

Pause 1000

Inicio:

  adcin 0, dato1
  dato1 = (dato1 / 4)
  hpwm 1, dato1, 250


  adcin 1, dato2
  dato2 = ( dato2 / 4)
  hpwm 2, dato2, 250
goto inicio
end        


Imagen del montaje en Proteus:


Otros artículos sobre PWM en microcontroladores que te pueden interesar:


Un saludo a todos y todas!!!

lunes, 27 de febrero de 2012

Control de desvios con pic 16f876A


Muy Buenas a todos y todas!!!

Esto es lo que tengo recopilado hasta ahora sobre el control de los desvíos de la maqueta con el microcontrolador PIC 16F876A.

En la maqueta tengo hasta 7 desvíos y todos son relés, así que es básicamente un control de relés con teclado y LCD de 16x02.

El programa es muy similar a uno que ya publique anteriormente sobre el control de LEDs llamado "Teclado y el port A del PIC 16F628".

Una de las diferencias es que se muestra el resultado en una pantalla LCD 16x2 conectada en el puerto C del 16F876A.

En un futuro también se mostrara la velocidad en una escala de 0 a 85, la verdad es que ya le he estado tocando aquí y allí y más o menos ya lo tengo controlado, aunque sigue en periodo de pruebas.


Como comenté anteriormente el programa es muy parecida a la entrada Teclado y portA. Con el LCD tuve un pequeño problema relacionado con el bootloader.

El Screamer1.4 / 1.6 tiene un problema al cargar el bootloader en el principio de la memoria del PIC y cuando lo intentaba cargar me daba un fallo relacionado con GOTO, como si intentara escribir en la zona donde esta el bootloader.

Lo solucione buscando otro bootloader llamado Tiny PIC bootloader. Resulta que este bootloader se programa en la parte final de la memoria y ya no da el error. Bueno lo mismo estoy equivocado, pero lo que si es cierto es que funciono... ¡¡Y a la primera!!


Os dejo los archivos en PBP y Proteus para el control de desvíos con 16f876A por si queréis dar un vistazo. Encontrareis los archivos en la sección de descargas.

Un Saludo!!!

lunes, 20 de febrero de 2012

Maqueta tren a escala control con VB6

Buenas a todos y todas!!!

Esta es la interfaz que estoy diseñando para el control de la maqueta mediante el ordenador con Visual Basic 6.

Por el momento no publico el código porque solo esta empezado y falta bastantes partes que no están terminadas.

Con el teclado se controlan los desvíos, numerados desde el 1 al 7 y "/" y "\" para los cruces de vías.



Los controles son 3 uno para el circuito exterior, otro para el interior y el tercero para realizar maniobras.

Y bueno esto sera a grandes rasgos la pantalla de control.

Espero hacerle también una especie de base de datos de los sensores para poder hacer paradas programadas y saber en que parte de la maqueta se encuentran los trenes.



Después de un tiempo y algunos problemas con el PC he conseguido comunicar el micro 16f876A con el programa que he estado realizando para la maqueta.

Como se puede ver en la imagen los cambios no son muchos, pero suficientes para que quedara todo mucho más claro.

Las lineas representan la posición de los desvíos. Azul para abierto y Negro para la posición de cerrado.

A día de hoy funciona perfectamente la velocidad y espero tener pronto los botones para las direcciones y los botones de Stop.

Los botones de Stop pararan la maqueta en su totalidad sea cual sea el botón que se pulse.

También tengo que resolver como mandar los datos de una manera más ordenada.

He visto algo pero no he tenido mucho tiempo. Otra función que me tengo pendiente es para hacer itinerarios y paradas programadas.

Aquí esta para descargar lo ultimo que hice de este programa: Visual Maqueta VB6

Próximamente más avances!!

Un saludo!!!

sábado, 1 de octubre de 2011

Primer programa 16f876A ADC y PWM

Muy buenas a todos y todas!!!

Primero de todo comentar que el bootloader con el microcontrolador 16F876A es lo más cómodo que he utilizado desde que empecé con los microcontroladores. Realmente animo a todos los que crean que tiene mucho lio, que se pongan, es realmente fácil y sobre todo muy cómodo.

Dicho esto, este es el primer programa que he realizado en PBP para el PIC 16F876A, aparte del mítico Blink (parpadeo) para comprobar que todo esta correcto con la programación.

Es un programa para utilizar un potenciómetro con el conversor analógico que integra el PIC internamente.

Primero lee el potenciómetro en una de las entradas analógicas del microcontrolador, en este caso AN0 y con ello controlamos la intensidad del un led mediante la función PWM (Pulse Width Modulation).


DEFINE LOADER_USED 1	' Para usar el bootloader

DEFINE OSC 20			' Defino la velocidad del cristal
DEFINE ADC_BITS 10 		' Conversión A/D a 10 bits
DEFINE ADC_CLOCK 3  
DEFINE ADC_SAMPLEUS 10 

Led1 VAR portc.1	' El puerto C1 pasa a llamarse Led1
Dato VAR WORD		' Variable para el dato

TRISA = %11111111	' Puerto A todo como entradas
ADCON1 = %10000010
PAUSE 1000

Inicio:

  ADCIN 0, Dato	' Lee el puerto AN0 y lo guarda en la variable Dato.
  Dato = Dato /4	' Al tener la conversión en 10bits la variable es de 0 a 1023 dividimos
      			' entre 4 para tener una variable de 0 a 255.
  PWM Led1, dato, 30	'PWM lee la variable almacenada en Dato y la transmite atraves de Led1.
  GOTO Inicio 
    
END
    

Una imagen de las conexiones:


Otros artículos sobre PWM en microcontroladores que te pueden interesar:

Un saludo!!

sábado, 24 de septiembre de 2011

Entrenador para PIC 16F876A Con Bootloader

Muy buenas a todos y todas!!!

Después de muchas pruebas y mucho leer en un foro por aquí, algunas webs por allá, me he decidido a construir esta placa entrenadora para el PIC 16F876A.

Esta placa además de ser entrenadora con unas pocas modificaciones podemos ampliar su versatilidad y usarla para otros proyectos que incluyan cada vez más sensores o actuadores.

Normalmente, con los medios adecuados y sin fallos en un par de días podemos tenerla lista.

En mi caso he tardado un poco más (cerca de un par de meses jejeje) pero entre el trabajo y un par de pequeños problemas que me surgieron con el puerto COM del portátil.

Otra de las cosas que decidí hacer es un programador JDM en condiciones.

¿El motivo? Lo hice porqué pensaba que era el programador el que tenía un problema y no funcionaba bien Finalmente resulto ser el puerto COM, que curiosamente si programa el 16F628, pero no el 16F876A

Fue la placa en el ordenador de sobremesa y con WinPic800, se programo a la primera.

Para hacer la placa entrenadora para PIC 16F876A, primero hice el circuito en un protoboard, y hasta que no lo tuve 100% probado no empecé con el diseño de la placa, la cual hice con el método de la "plancha" y con agua fuerte y agua oxigenada

Placa para 16F876A

Para hacer la PCB tome como referencia la que aparece en esta página, esta en alemán, pero lo básico se entiende.

Otra referencia que ha sido muy útil es este tema del foro de RobotsPeru y aunque se refiera el 16F877 se puede extrapolar al 16f876A.



El Bootloader es el de este mismo RobotsPeru en su sección de descargas, en mi caso el Screamer-v1.4 es por el momento, el que mejor me funciona.

Próximamente edito y subo los archivos para Inkscape y un paquete con toda la información que he recopilado.


Nuevo Bootloader en Cambiando a bootloader tinybld198

Un saludo a todos!!!

domingo, 25 de julio de 2010

Programador Micro JDM 16f628 y 16f84

Buenas a todos y todas!!!

Este es el segundo programador que he fabricado para poder programar el microcontrolador 16f628. Lo bueno es que con un adaptador también nos sirve para el microcontrolador PIC16f84 el JDM Serial Programmer.

El circuito original de este programador lo he sacado de esta web. Esta en ingles, pero no creo que sea un gran problema si conoces un poco los componentes.

Por mi parte la única modificación que le he realizado al circuito ha sido para que tenga un led más que indica cuando se esta programando.

Este es el circuito modificado:

Circuito programador Micro JDM
JDM Serial Programmer

Y aquí esta es la lista de componentes que he utilizado para el montaje del programador micro JDM:

  • R1 10k
  • R2 15k
  • R3 3k3
  • R4 10k
  • Z1 5.1v Zener
  • Q1 BC547
  • C1 100uF 16v
  • D1 Led rojo
  • D2 Led verde
  • J1 DB9F
  • J2 Socket DIL 18

Bueno como se puede ver son muy pocos y fáciles de conseguir en cualquier tienda o pagina web donde vendan componentes electrónicos.

Y esto es lo que me ha salido a mi:

Micro JDM - vista superior
Vista superior

Micro JDM - vista de las pistas
Vista de las pistas

JDM Serial Programmer
JDM Serial Programmer

En esta ultima fotografía se puede apreciar bien lo pequeño que es en comparativa con una llave.

Espero que os guste y que os sea practico. Las pruebas las he realizado con el portátil, el otro que tengo es bastante grande y para usarlo tenia que estar con cable, este programador micro es más practico y más cómodo de usar.

NOTA: Puede que en las fotos los componentes como los transistores no tengan la misma posición, revisa el datasheet primero.

NOTA2: En este enlace tenéis la configuración que uso para el programador.

NOTA3: En este enlace tenéis una ampliación de zócalo de 18 pines a zócalo de 28 pines.

NOTA4: Este programador NO funciona con convertidores USB/RS232


By PeYuTrOn

El apartado que viene a continuación ha sido extraída de la pagina https://soloelectronicos.com y NO LO HE PROBADO PERSONALMENTE. Así que no me hago responsable si no funciona o hace que tengáis algún problema con la electrónica del PC/Portátil:

Si el voltaje MCLR# no fuera suficientemente alto (este problema se ha visto en portátiles, pero también en PCs con un puerto COM débil), puedes proporcionar este voltaje desde el exterior de 15-20v en los extremos de C1(de 100mf). Usa dos baterías de 9V o un PSU que entrega al menos 15V. No hace falta ningún regulador ya que los diodos zener limitan el voltaje.No olvides la resistencia de 220 Ohm – que limita la corriente y protege el circuito JDM.

También te puede interesar: