sábado, 26 de febrero de 2011

Primeros mensajes CAN:

Ya tengo listo los primeros resultados del análisis del bus en estático, es decir dentro de un parking. Para acabar de mapear correctamente algunos valores tendré que hacer un análisis conduciendo. Tampoco he conseguido mapear algunas cosas como las luces, los elevalunas o la temperatura exterior, posiblemente porque esten en el bus de motor o no estén. La temperatura exterior debe estar en alguno de los mensajes, ahora que he localizado donde está el sensor (delante del radiador) podré calentarlo para ver que mensaje queda afectado.
 El funcionamiento del climatizador y los datos de consumos y velocidad media que se muestran en el ordenador de a bordo también están claros donde están, el consumo instantáneo falta ver que formato muestra. Otras cosas que no he comprobado simplemente porque ni me he acordado son los sensores de cinturón de seguridad y los retrovisores eléctricos.
Otro cosa que me hubiera gustado encontrar es la marcha que hay puesta, para poder diseñar un algoritmo que te recomiende cambiar de marcha en base a la velocidad, consumo instantáneo actual, revoluciones.. Y avisarte en el LCD que cambies a otra marcha. Quizás mas adelante conecte el bus de motor para poder hacer esto. Estos mensajes si están en el análisis que hizo Madox, seguramente porque su Mazda es mas nuevo, y al ser una versión americana marca las marchas automáticas (1,2,3, P, N, R). Otra diferencia muy importante es que él ve los mensajes 290 y 291 que son los códigos ascci de lo que hay que mostrar por el LCD. Esto es así porque en el reestilyng del Mazda el LCD tiene su propia centralita CAN y no depende directamente de la radio. Parece ser que en Mazda se dieron cuenta de que era una putada muy grande para quien quisiera cambiar la radio quedarse sin todas las funcionalidades del LCD. Esto le permitió a Madox y otros hacks que circulan por internet con este LCD interactuar con él simplemente lanzando los mensajes necesarios sobre el CAN Confort. Pero tiene un inconveniente, tienes que enviar los mensajes más rápido y en mayor cantidad de los que envia la radio a su vez para evitar el flickering al mostrar dos mensajes a la vez.
En mi caso va a ser algo más complicado. La comunicación con el LCD parece ser que es un SPI pero aún he de descubrir que señales son exactamente porque tengo 5 señales de datos/sincronismo y con el SPI solo serian 4. Bueno, aquí dejo el documento y unas fotillos de como he empezado a analizar las comunicaciones del LCD.

Mensajes CAN Mazda 3 2004 (google Docs)

 
Set de Hacking CAN y del LCD.
Comunicaciones SPI?

viernes, 11 de febrero de 2011

Conexión del LCD.

Como el objetivo principal es controlar el LCD hay que descubrir que señales envía la radio para poder reproducirlas después. Para ello he de interceptar las comunicaciones desmontando el LCD. EL conector es un JST de 14 vias paso 2.0mm por lo que la 'centralita' que diseñe tendrá un conector macho en el PCB para conectar el LCD.

LCD Mazda 3.

La conexión en el propio LCD solo tiene 12 cables, por lo que haré un conector externo con 12 pines para poder ver las comunicaciones con el osciloscopio.
.
Conector en el LCD
  Al intentar desmontar el circuito para poder ver el micro que controla el LCD veo que debería desoldar todos los pines que van al LCD, así que mejor no meto mano porque si me lo cargo tendría que buscar otro. Por suerte los que diseñaron el PCB dejaron un regalito:

Leyenda del conexionado del LCD
Al lado del conector tenemos la leyenda de los pines, que me servirán para poder entender mejor que señales capto con el osciloscopio. Por ahora ya veo una tensión de 8V para el LCD que tendrá que generar. Las linea LCD-DAT, LCD-SCL y LCD-CS dan pistas sobre que la comunicación puede ser SPI, pero también puede ser una comunicación síncrona corriente. Para descubrirlo sueldo una serie de cables a los pines del conector del PCB que irán a una pequeña placa con tira de pines y me permitirán montar el LCD en el coche funcionando y observar las comunicaciones.


Cables soldados al conector del LCD.

Placa con tira de pines.

Conector instalado para el análisis.
Así que ahora además de las comunicaciones CAN tengo que trabajar también sobre la comunicación con el LCD, al menos ya tengo todo dispuesto para ello. Por otro lado he ido poniendo en marcha el entorno de desarrollo para PIC, ya tengo el MPLAB funcionando y pudiendo compilar en C, el programador/debugador ICD2 y un PIC 16F876 que tenía por ahí para ir abriendo boca, el que usaré finalmente será el 18f2480. Quizás primero adelante un poco con los mensajes de CAN, para tener claro que es lo que puedo mostrar en el LCD y diseñar los botones necesarios para configurar los mensajes a mostrar. Por cierto, buscando por ahí información me topé con esta imagen:
Mapa de centralitas.
Se parece a la imagen que cree en la entrada anterior con los números de centralitas, pero con las centralitas identificada. Algo así tiene que acabar siendo el mapa que hice pero además identificando los mensajes.

Próximamente más cosillas.