Hola de nuevo,
En esta ocasión vamos a activar el canal auxiliar del RCD300, tal y como si tuvieses activado el IPod en tu VW,
Para tal fin vamos a emular el protocolo que usa la radio para que crea que tiene un cargador de CD,
Esto lo podemos recrear con dos microcontroladores 12f629 y 16f628 los dos con osciladores internos por lo que nos facilita el trabajo,

El Pic 16F629 tiene que calibrarse el oscilador interno para que funcione correctamente y esto ya se nos complica, pero sobre una base deL Programador Pic chino DIY K150 me hice un PIC Kit 2 v2.61 que la verdad que funciona genial. como ya sabeis oficial de Microchip en su momento.
Pasamos a detallar un tutorial de calibración sin el PIC KIT 2
Esquema a crear
Descripción
Los dispositivos PIC 12F629 y 12F675 tienen un oscilador interno de 4Mhz que permite que los dispositivos se utilicen sin un cristal externo o una red RC. Esto libera uno o dos pines para el uso de E / S y permite que el dispositivo se construya en diseños de conteo mínimo de componentes.
Es necesario calibrar el oscilador interno y esto se logra leyendo un ajuste de calibración programado de fábrica y escribiéndolo en el registro OSCCAL durante la inicialización del dispositivo mediante el software de la aplicación.
La palabra de calibración se encuentra en la última dirección en el área de memoria del programa de usuario, dirección 0x3FF. Tiene la forma de una instrucción RETLW y el código de usuario debe incluir una instrucción CALL 0x3FF que retornará con la configuración de calibración en el registro W. Esto se puede escribir en el registro OSSCAL.
Los problemas surgen si por accidente o de otra manera, la memoria del programa en la dirección 0x3FF se borra o se sobrescribe. Como el valor de calibración es único para cada PIC individual, no hay forma de saber cuál era, pero es posible recuperarlo recalibrando contra una frecuencia conocida.
Ahí es donde este software y circuito entran en su cuenta. Cargue un PIC con el código en esta página y colóquelo en el circuito que se describe aquí y en un par de segundos proporcionará un nuevo valor de calibración para garantizar que el oscilador interno se ejecute dentro del 1% de 4Mhz.
Actualización de PICkit 2
Los dispositivos PIC 12F629 y 12F675 tienen un oscilador interno de 4Mhz que permite que los dispositivos se utilicen sin un cristal externo o una red RC. Esto libera uno o dos pines para el uso de E / S y permite que el dispositivo se construya en diseños de conteo mínimo de componentes.
Es necesario calibrar el oscilador interno y esto se logra leyendo un ajuste de calibración programado de fábrica y escribiéndolo en el registro OSCCAL durante la inicialización del dispositivo mediante el software de la aplicación.
La palabra de calibración se encuentra en la última dirección en el área de memoria del programa de usuario, dirección 0x3FF. Tiene la forma de una instrucción RETLW y el código de usuario debe incluir una instrucción CALL 0x3FF que retornará con la configuración de calibración en el registro W. Esto se puede escribir en el registro OSSCAL.
Los problemas surgen si por accidente o de otra manera, la memoria del programa en la dirección 0x3FF se borra o se sobrescribe. Como el valor de calibración es único para cada PIC individual, no hay forma de saber cuál era, pero es posible recuperarlo recalibrando contra una frecuencia conocida.
Ahí es donde este software y circuito entran en su cuenta. Cargue un PIC con el código en esta página y colóquelo en el circuito que se describe aquí y en un par de segundos proporcionará un nuevo valor de calibración para garantizar que el oscilador interno se ejecute dentro del 1% de 4Mhz.
Si tiene un programador de PICkit 2, obtenga el software de la versión 2.50 (o posterior) . Esto incluye una opción de menú para recalibrar y reprogramar la configuración OSSCAL en una sola operación. Esta página de proyecto permanece aquí para aquellos que no tienen acceso a un PICkit2.
Para calibrar el oscilador interno, se necesita una frecuencia de referencia conocida. Afortunadamente no necesitamos generadores de señal o equipo de prueba calibrado para esto. De hecho, una referencia precisa está disponible en el suministro eléctrico de la red eléctrica de CA. En la mayoría de las partes del mundo, el suministro de electricidad se genera a una frecuencia de 50 o 60 Hz (muchos relojes digitales aprovechan este hecho para mantener el tiempo).
Utilizando casi cualquier transformador (o Wall Wart) con una salida de CA RMS de 6 a 12 voltios, podemos obtener una fuente de referencia precisa para calibrar el oscilador PICs.
Esquema, construcción y Código
Así que sigamos con eso. Construya el circuito que se muestra a continuación usando un trozo de tabla o plataforma, o simplemente conéctelo en una placa de prueba sin soldadura.

La frecuencia del oscilador interno en el PIC varía tanto con los cambios de temperatura como con el voltaje de alimentación. A medida que aumenta la tensión de alimentación, la frecuencia disminuye ligeramente. Cuando el interruptor S1 está abierto, el suministro de 5 voltios al PIC se deja caer a través de los dos diodos a aproximadamente 3,4 voltios. Con S1 cerrado, el PIC funciona a 5 voltios. Microchip calibra partes a 3.5 voltios / 25 o C. Con este circuito tiene la opción de calibrar a 3.4 voltios o 5 voltios. A menos que tenga una razón específica para no hacerlo, se recomienda volver a calibrar el PIC con la configuración S1 abierta (3,4 voltios).
S1 abierto: la calibración se realiza a 3,4 voltios
S1 cerrada – la calibración se realiza a 5 voltios
S1 no es un interruptor de encendido / apagado
Los dos diodos 1N4148 proporcionan la caída de voltaje y la resistencia 150R consume suficiente corriente para garantizar que el voltaje en los diodos permanezca estable.
El condensador de desacoplamiento de 100nF debe colocarse lo más cerca posible de las clavijas de alimentación (1 y 8) del PIC.
La señal de referencia se suministra utilizando el transistor BC548, la resistencia 10K, el diodo 1N4148 y el transformador. Aquí puede usar cualquier transistor NPN de propósito general ya que no es crítico. El transformador tampoco es demasiado crítico, pero debe emitir entre 6 y 12 voltios AC RMS.
Es importante que la entrada al transistor sea una señal de CA. No use CC, ni siquiera CC sin filtro (sin condensador de suavizado)
Código PIC para re calibración
A continuación, debe programar el PIC para ser recalibrado con el siguiente código. El mismo código funcionará con los dispositivos PIC 12F629 y
12F675. Descárguelo ahora y programándolo en el PIC para ser calibrado.
Descargue el código HEX (para usar con 12F629 o 12F675)
Una vez que haya recalibrado con éxito el PIC y vuelva a leer el nuevo valor de calibración, puede reprogramar el PIC con su propio código de aplicación. Este software solo es necesario para calcular el nuevo valor de calibración, no necesita permanecer en el PIC después. (alguien preguntará, créeme!)
Ejecutando la calibración
- Cierre J1 si la potencia de la red en su área se genera a 60Hz y déjela abierta si es 50Hz. Asegúrese de hacer esto bien o la calibración fallará o empeorará, será incorrecta.J1 abierto – Fuente de alimentación de la Utilidad de CA 50Hz
J1 Cerrado – Fuente de alimentación de la Utilidad de CA 60Hz - La señal de referencia de CA debe estar presente antes de encender el PIC bajo calibración para garantizar que la señal sea estable y esté en funcionamiento.
- Inserte el PIC en el zócalo, abra el interruptor S1 y aplique 5 voltios al circuito.
- Cuando el PIC se inicia, ambos LED parpadearán una vez.
- Si no se detecta ninguna señal de referencia en GP2 (pin 5), el LED de falla se encenderá y el LED ‘done’ parpadeará hasta que se detecte una señal. ( Si esto ocurre, apague y encienda el PIC para asegurarse de que se calibra correctamente)
- Durante el proceso de calibración, ambos LED están apagados. La calibración tardará menos de 5 segundos en completarse.
- Si la calibración falla, el LED rojo se encenderá y el código se detendrá.
- Si la calibración es exitosa, se enciende el LED verde ‘hecho’ y se generará una señal de prueba de 5Khz en GPIO1. Si tiene un medidor de frecuencia a mano, puede usarlo para verificar la calibración.
- Una vez que se completa la calibración, puede abrir y cerrar el interruptor S1 mientras monitorea la señal de prueba de 5KHz para ver el cambio en la frecuencia frente al voltaje de suministro.
- Desconecte la alimentación, retire el PIC del circuito de prueba y colóquelo en su programador. Ahora vuelva a leer el PIC e inspeccione el contenido de la memoria EEPROM
Las direcciones EEPROM 0x00 y 0x01 contienen 0xFF Las direcciones EEPROM 0x00 y 0x01 contienen 0x00, La dirección EEPROM 0x00 contiene 0x34 y la dirección 0x01 contiene 0xNN donde NN es la nueva configuración de calibración. |
Actualizar:
Se me ha señalado que algunos programadores / software elevan el suministro de VDD antes que VPP. Esto permite que el código comience a ejecutarse antes de que el PIC ingrese al modo de programación antes de volver a leer la EEPROM. Si el LED verde indica una calibración exitosa, pero al leer la parte posterior EEPROM encontrará que contiene 0xFF en las direcciones 0x00 y 0x01, entonces su programador está haciendo esto.
Si tiene este problema, puede descargar una versión modificada del programa original a continuación. Esta versión no inicializa la EEPROM en el inicio, por lo que los datos de calibración no se borran cuando se vuelve a leer el PIC en el programador. Úselo solo si tiene este problema.
Usar la nueva palabra de calibración
|
Si la calibración se completa con éxito, elimine el PIC y vuelva a colocarlo en su programador. Lea de nuevo los datos de la memoria EEPROM PIC ( no memoria de programa ) donde se ha guardado el valor recién calculado. (ver ejemplo a continuación)
La dirección 0x00 contendrá 0x34 y la dirección 0x01 contendrá el valor de calibración. Es este valor el que debe escribirse en la ubicación de la memoria del programa 0x3FF usando una instrucción RETLW. Algún software de programador le permitirá ingresar el valor de calibración y programarlo de nuevo en el dispositivo por usted. Si su programador no hace esto, entonces debe poner una instrucción RETLW 0xNN en la dirección 0x3FF donde ‘NN’ es el valor de calibración hexadecimal leído de la EEPROM.
Pueden bajar los archivos en el link de más abajo.
Archivos de calibración, código, esquemas
Yo utilice el injerto de k150 a PICKIT2 mucho más fácil, os dejo una imagen

Adjunto los ficheros para crear, modificar o lo que gusten… como siempre probado, testeado por mi.
La gran ventaja del PICKIT2 Clone es que no le hacen falta driver especiales ya que utiliza Human Interface Device (hid)
Esquemas, pcb, software, código del Programdor PICKIT2 Clone (
Esquemas, pcb, software, código del Programador DIY K150 incluye windows 10
Pues una vez trabajado el tema de los programadores un punto muy importante, yo también os aconsejo el TL866 muy polivalente y barato, el mio versión TL866CS me costo unos 35 euros, luego lo actualice a TL866A con ISP, etc
Pues ahora ya solo nos queda hacernos el PCB del esquema que queramos utilizar, yo lo hice con el 16f628, este no es mio pero si la actualización a este pic ya que el desarrollador no lo contemplo,
Esquema si utilizamos el PIC 16F628A

Ejemplo de los fuses que vienen con el código HEX

fichero hexadecimal para grabar en el PIC 16F628A
Esquema si utilizamos el PIC 12F629

Ejemplo de los fuses que vienen con el código HEX

Esquema de preamplificador por si hace falta

fichero hexadecimal para grabar en el pic 12F629
Ya sólo queda añadir los comandos
;;; Codigos
;;; ————-
;
; Primer byte siempre 53
; Segundo byte es siempre 2C
; Tercero y Cuarto bytes siempre sumar a FF
; Todos los Códigos parecen ser multiplos de 4
;
;
; 53 2C 0C F3 CD 1
; 53 2C 10 EF DISABLE
; 53 2C 14 EB Change CD (ignored)
; 53 2C 18 E7 Previous CD (only on Audi Concert <)
; 53 2C 2C D3 CD 5 (first packet)
; 53 2C 38 C7 Change CD/Next CD (aka MINQUIRY)
; 53 2C 4C B3 CD 3 (first packet)
; 53 2C 58 A7 Seek Back Pressed
; 53 2C 60 9F Mix 1
; 53 2C 68 97 Up on Mk3 premium (Adam Yellen)
; 53 2C 78 87 Dn
; 53 2C 8C 73 CD 2 (first packet)
; 53 2C A0 5F Scan
; 53 2C A4 5B something to do with power on (Audi Concert)
; 53 2C A8 57 Dn on Mk3 premium (Adam Yellen <adam@yellen.com>)
; 53 2C AC 53 CD 6 (first packet)
; 53 2C CC 33 CD 4 (first packet)
; 53 2C D8 27 Seek Forward Pressed
; 53 2C E0 1F Mix 6
; 53 2C E4 1B ENABLE
; 53 2C F8 07 Up
Pues esto es todo y no es poco….
Para el próximo post os hablare sobre el protocolo CAN BUS en concreto del CAN BUS INFOTAINMENT que es el encargado de hacer las operaciones básicas de la radio RCD300 tanto como subir bajar volumen como el indicar que la radio no se apague, os recuerdo que estos tramites de apagar / enceder / modificar brillo / etc… se hace por protocolo CAN BUS
Y Para los enamorados de los VAG COM os voy adelantando el ultimo proyecto que ya lo tengo funcionando… actualización del cable VAG COM 12.12 (que me lo habían bloqueado) a la ultima versión operativa de VAG COM 18.9.0. en INGLES eso sí. y mas y mas, debido a los derechos de autor y licencias no puedo publicar códigos, todo se vera
HASTA LA PROXIMA

