Autor Tema: UCE para el control de un motor (automovil)  (Leído 8876 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
UCE para el control de un motor (automovil)
« en: 01 de Septiembre de 2013, 12:51:31 »
Bueno, pues pongo aqui mi proyecto a gran escala para compartir experiencias, recibir consejos y tambien ayudar al que lo necesite o le interese.

Se trata de hacer una centralita para el control completo de un motor (encendido, inyeccion, sensores, actuadores...) llevo unos años liado con el, despues de mirar miles de paginas, buscar el MCU adecuado, diseñar la placa, horas y horas de probar el software, diseñar el software para PC (que por cierto perdi el codigo y tuve que empezar de 0) pues esto es lo que tengo en la actualidad:

La placa:


El software (tuve que empezar de 0 y es lo que tengo actualmente):



La captura del osciloscopio (para comparar la duracion de la chispa en la realidad con la que marca el software):


El proyecto se trata de mejorar la ECU de serie ya que esta es de los '90 y tiene una electronica bastante antigua (usaba un MCU de 8bits) con memoria eprom y la mayoria de componentes son de la old-school xD en esta centralita se podra cambiar cualquier parametro a traves de usb (y proximamente a partir de una placa/glcd) tambien tiene la opcion de loggin y sensado de errores (errores en inyeccion, en la chispa...) cosa muy util, aparte de eso tendra muchas E/S las cuales se podran utilizar para cualquier proposito imaginable, las salidas las hay del tipo de baja intensidad y alta intensidad (hasta 5A), el encendido se mejora respecto al de la centralita original ya que este usa IGBT dedicado para bobinas en vez del BJT de toda la vida (se que direis que es lo mismo, pero no es asi ya que el IGBT esta diseñado para obtener el maximo rendimiento de la bobina.
Tambien tiene sensado de knock avanzado, con este modulo se podra saber que cilindro provoca knock y rectificar el tiempo de encendido/inyeccion para intentar resolverlo, en caso contrario se podra seleccionar entre dar error y evitar que el knock se siga produciendo.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: UCE para el control de un motor (automovil)
« Respuesta #1 en: 01 de Septiembre de 2013, 13:11:23 »
Esta semana aprovechando que tuve una contractura en la espalda le di mucha caña al software del MCU y me quede sorprendido del IC que use para el control de encendido (freescale MC33810),  tiene muchisimas opciones, cuando le eche un vistazo por encima al datasheet me sorprendio, pero ahora que lo estoy probando y viendo los resultados es increible. Entre las pruebas que hice fueron las siguientes:
-Sensado de la corriente de la bobina MAXIMA y NOMINAL: cuando supera la maxima el IC corta la corriente para evitar quemar cualquier componente, imaginaos en un cortocircuito lo util que seria esto, el sensado nominal sirve para ver si la bobina esta enchufada, en un circuito abierto podriamos saber que la bobina no esta conectada, o que bien tiene mucha resistencia (se puede elegir cuanta intensidad de umbral).
-Sensado de duracion de la chispa: muy util para saber el estado de las bujias, tambien se puede usar para calcular un dwell adecuado ya que un dwell demasiado largo causa el sobrecalentamiento de las bobinas y sin embargo no da ningun beneficio, he podido comprobar que a partir de 3ms de dwell la duracion de la chispa no aumenta, ya lo pongas a 5ms como 8ms, segun la curva de corriente a partir de los 4ms no aumenta mas la intensidad de la bobina.
-Sensado de secundario abierto: util para cuando una bujia se deteriora y no hace chispa o para detectar los errores de missfire, aun no lo he probado.

Luego tiene mas opciones como duracion maxima del dwell, y otras funciones que aun no las he visto muy claras, todo estos errores se guardan en registros que pueden ser leidos por SPI por lo cual se tiene un control total sobre el encendido y su diagnostico.

Aqui adjunto una captura del osciloscopio de una bobina, para que veais como funciona, si mirais la captura del software podreis observar que la duracion que indica (2,1ms) es la misma/aproximada que la captura del osciloscopio.


Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: UCE para el control de un motor (automovil)
« Respuesta #2 en: 01 de Septiembre de 2013, 14:53:33 »

¿ Esa centralita será compatible con algún modelo conocido, de Bosch, Siemens, Magneti Marelli.. ?
¿ Para que tipo de motores ?, como hablas de inyección supongo que podría funcionar con motores TDI, así puedes crear mapas de potencia que puedan ser reprogramados para potenciar el motor.

Yo la haría compatible OBDII CAN bus, con un conector OBD de 16 pines estandar, así puedes acceder con cualquier escaner OBD, para lectura de DTC de averías, lectura de sensores en tiempo real, datos congelados para averías, y reprogramacion (mapas de potencia, inmovilizador, etc...). Si necesitas los códigos y descripciones en español de los DTC estandar OBDII, te los puedo pasar, también tengo muchos DTC de averías por marcas, sobre todo de Audi-Volkswagen, sacados de VAGCOM. Mejor conectar por OBD, con compatibilidad OBDII por CAN bus, que usar un puerto USB.

¿ Lleva pin secreto para un sistema de inmovilizador ?, así puedes usar una llave codificada, que mejora mucho la seguridad. Si es para reemplazar la electrónica de un vehículo antiguo, de los 90, creo que no existía todavía el inmovilizador, a principios de los 90 todavía se usaban carburadores y al menos en Europa no existía todavía la diagnosis OBD, que llegó en 2001 para los gasolina y 2003 para Diesel.

Las eprom que montaban las centralitas hasta 2001 aproximadamente, eran las 27c, que no se podían reprogramar eléctricamente, todas las modificaciones exigían abrir la centralita, desoldar el chip y cambiarlo por otro, lo que llamaron el chip-tuning, a partir de 2001 se usan las 28F que ya pueden ser reprogramadas eléctricamente, y todas las tareas se hacen por OBD, para potenciar motores, modificar kilometraje, activar-desactivar inmovilizador, y mil historietas más, como desactivar la EGR en VW, configurar faros de Xenon, activar-desactivar los chivatos de los cinturones de seguridad, etc...


Es un proyecto muy interesante.


« Última modificación: 01 de Septiembre de 2013, 14:55:56 por planeta9999 »

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: UCE para el control de un motor (automovil)
« Respuesta #3 en: 01 de Septiembre de 2013, 15:16:20 »
Sería muy interesante lo de la programación de la centralita... Mi seat león, lo está esperando desde hace algún tiempo Jajaja
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: UCE para el control de un motor (automovil)
« Respuesta #4 en: 01 de Septiembre de 2013, 15:36:00 »
Merlinz, sospechaba que tu proyecto era algo parecido, y por fin ha llegado tu confirmación. Es muy interesante.
Me suscribo al hilo.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: UCE para el control de un motor (automovil)
« Respuesta #5 en: 01 de Septiembre de 2013, 15:43:12 »
planeta9999 en principio quiero hacer esta centralita para un modelo de coche en concreto (nissan 200sx s13) del cual posteriormente lo podria adaptar a mas modelos nissan ya que la mayoria usan los mismos sensores/actuadores/bobinas por lo cual simplemente seria cuestion de unas minimas modificaciones, incluso se puede modificar para modelos de mas cilindros como el 300zx, skyline.... con solo modificar poco mas.

El porque¿?¿ Pues simple, es el coche que tengo y es el que puedo usar de conejillo de indias, si hubiese tenido un VAG pues iria destinado a este sin embargo no puedo hacer este tipo de proyecto sin disponer de un modelo para probar, lo mismo ocurre con los TDI, no tengo ningun diesel por lo cual no puedo hacer pruebas ni tampoco dispongo de los parametros de estos.  Muchos de los parametros que indicas (xenon, chivatos....) estan en otras UCEs y no en la de motor (creo que en el modulo de confort) reproducir un sistema completo de vag es muy complejo y sinceramente pudiendo modificar su funcionamiento con el VAS seria perder el tiempo en replicar algo que ya esta hecho y es moderno.

Sobre el ODB2 lo estuve pensando, sin embargo veo mas util enchufarle el USB y utilizar el software especifico, la centralita dispone de CAN el cual se podra usar para interconectarlo con otros modulos ya sea fabricados o echos por mi para distintas funciones, por ejemplo tengo pensado hacer un inmovilizador pero de otra forma, incluso un mando para activar/desactivar la alarma a distancia incluso poder arrancar el motor con solo pulsar el boton del mando, pero todo esto es en un FUTURO MUY LEJANO ya que no es una prioridad.

Por ultimo, una vez consiga hacer funcionar todo correctamente sacaria una centralita universal (gasolina) para poder utilizar cualquier motor con cualquier configuracion, pero esto tambien esta muy lejos, en el mercado existen infinidad de centralitas de este tipo (motec, power fc, aem...) sin embargo suelen ser caras (minimo 1000€) yo querria hacer algo parecido con menor coste (digamos que el coste de piezas/pcb serian unos 150€) y segun vea ponerlo a un precio mas asequible.

ppyote seguro que hay algo en el mercado para modificar los parametros de tu leon xDD si es TDI hay infinidad de cosas, incluido mapas de distintas stages para aumentar la potencia.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: UCE para el control de un motor (automovil)
« Respuesta #6 en: 01 de Septiembre de 2013, 15:47:53 »
Merlinz, sospechaba que tu proyecto era algo parecido, y por fin ha llegado tu confirmación. Es muy interesante.
Me suscribo al hilo.

Despues de ver el conector "cinch automotive" debiste sospechar algo xDD. Por cierto, tengo que pedir unas cosillas mas, si vas a hacer algun pedido (en digikey tengo que pedir algo, es el unico que lo tiene) no dudes en comentarmelo y hacemos lo de siempre, no me corre mucha prisa ya que tengo que mandar a fabricar la v2.0 de la PCB y de aqui a que ocurra eso tengo que revisar el esquema miles de veces para no meter la pata como hice en la anterior.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: UCE para el control de un motor (automovil)
« Respuesta #7 en: 01 de Septiembre de 2013, 17:35:44 »
Sería muy interesante lo de la programación de la centralita... Mi seat león, lo está esperando desde hace algún tiempo Jajaja

Compra un cable de VAG-COM o VCDS de los chinos, y se quieres potenciar el motor, un cable clónico de MPPS también de los chinos.
También hay unas cajitas para Common Rail, VP37 y PD que se conectan directamente a la bomba, al sensor de temperatura del combustible o la rampa del CR, y te suben unos 20-30CV, si lo que quieres es potenciar el motor.

Con los vehículos del grupo VW, se pueden hacer muchas cosas, con herramientas baratas como VAG-COM o VCDS.

Otra opción barata, que hace lo mismo es un escaner portátil de V-Checker, la versión en español, se las traduje yo a los chinos, igual que la versión en español de los escaner de Autel. Estos productos los comercializó yo en España desde hace años y van de categoria, son originales y muy baratos.












« Última modificación: 01 de Septiembre de 2013, 17:47:22 por planeta9999 »

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: UCE para el control de un motor (automovil)
« Respuesta #8 en: 07 de Septiembre de 2013, 13:10:53 »
Bueno, estos dias he estado liado con el software ya que me sirve para poder ir modificando valores sin tener que cargar un nuevo firmware cada vez que quiera modificar algo aparte ver que valores toman las variables, etc...

La verdad es que odio el c++ managed, con lo bien que estaba con mi c++ nativo... Pero bueno asi aprendo algo nuevo, para algunas cosas se hace muy sencillo, para otras da mucha lata, sobretodo cuando tienes que mezclar nativo+managed...

Este es el resultado:




Tambien, otra cosa que he conseguido ha sido una precision de 0,05º@10.000RPM (incluso menos pero bueno por no exagerar xD), y he definido una variable para poder cambiar la latencia y asi obtener la precision que el usuario quiera puesto que si se ponen otras bobinas, se alargan cables... la capacitancia aumenta y tambien la latencia de la chispa, ya por defecto he contrarestado la capacitancia del igbt, del IC....
« Última modificación: 07 de Septiembre de 2013, 13:17:07 por MerLiNz »

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: UCE para el control de un motor (automovil)
« Respuesta #9 en: 07 de Septiembre de 2013, 13:29:59 »
Otra cosa a comentar es la eleccion del MCU, en este caso le ha tocado a un dspic33ep256mu810 (intercambiable con el 512 que lleva mas flash), muchos os preguntareis porque este y no un 32 por ejemplo... Pues el tema esta en que los pics32 de microchip tienen pocos timers/oc/ic que es lo que mas requiero en esta aplicacion, para el control de encendido+inyeccion he tenido que usar 9 OC y aun me sobra 7OC mas que seguro que usare la mayoria de los sobrantes...
Tambien contar los timers que son 9 (tendre en uso unos 5)
Incluso la velocidad de proceso es hasta 70MIPS, se que el 32 tiene mas, pero actualmente con 60MIPS voy bastante sobrado, no creo que requiera mucho mas.

Otro MCU que estuve mirando son los 32 de freescale que estos sin son verdaderamente "la ostia" el caso es que cambiarme a freescale tendria que volver a aprender todo, pillarme programador/debugger y etc... por lo cual al final decidi seguir con el dspic, estuve mirando ECUs profesionales (haltech, linkecu...) y estos la mayoria usan mcus mas pequeñas que el dspic que yo estoy usando asi que eso me supone una ventaja, ya de por si la centralita de serie lleva una mcu de 8bits del año '90 xD

Resumiendo, tengo MCU de sobra, y todo esto es porque pienso seguir actualizando ya que la idea es ir sacando nuevas funciones y para todo esto siempre necesito algo sobrado y que no falte.

Desconectado Diego Gonzalez

  • PIC18
  • ****
  • Mensajes: 323
    • Visita mi web sobre electronica,fisica,mecanica y demas temas....
Re: UCE para el control de un motor (automovil)
« Respuesta #10 en: 19 de Septiembre de 2013, 06:04:39 »
Me suscribo, es realmente interesante. Yo tambien llevo todo este verano trabajando para mi proyecto en el cual una parte emplea una ECU casera para controlar la inyección en un motor 4t monocilindrico. En mi caso no empleo control de encendido.
Seguire de cerca tus avances y tratare de poner alguno de los mios si me veo con tiempo para documentar un poco.

Saludos Merlinz
Visita mi web sobre electronica,fisica,mecanica y demas temas....

http://sites.google.com/site/skygaps/Home

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: UCE para el control de un motor (automovil)
« Respuesta #11 en: 19 de Septiembre de 2013, 09:37:22 »
Me suscribo, es realmente interesante. Yo tambien llevo todo este verano trabajando para mi proyecto en el cual una parte emplea una ECU casera para controlar la inyección en un motor 4t monocilindrico. En mi caso no empleo control de encendido.
Seguire de cerca tus avances y tratare de poner alguno de los mios si me veo con tiempo para documentar un poco.

Saludos Merlinz

De la inyeccion tengo algo hecho pero aun no he probado nada porque he estado dejando fino el encendido, al ser inyectores de baja impedancia estoy haciendo un sistema de peak & hold para evitar tener que usar resistencias y optimizar el maximo la apertura del inyector (dead time), tambien hice un calculo para que inyecte la gasolina segun el tiempo del pulso y la posicion del cigueñal asi se inyecta la gasolina antes de la apertura de las valvulas y se optimiza la mezcla. Tambien hice los calculos para que segun un mapa de VE (eficiencia volumetrica) y la presion del colector se pueda poner la mezcla que desees, es decir, si le pones 14,7:1 que se mantenga en ese rango con un calculo sin tener que ir cambiando valores hasta llegar al correcto.
El caso es que estoy buscando ahora que transistores usar para la inyeccion ya que queria evitar ponerle zener y demas para no dañar el mosfet y he visto unos transistores que tienen gran capacidad de soportar las avalanchas de las cargas inductivas.

Desconectado Diego Gonzalez

  • PIC18
  • ****
  • Mensajes: 323
    • Visita mi web sobre electronica,fisica,mecanica y demas temas....
Re: UCE para el control de un motor (automovil)
« Respuesta #12 en: 19 de Septiembre de 2013, 10:27:20 »
Hola Merlinz
mi proyecto consiste en una conversion de un motor de 150cc carburacion a inyeccion.he tenido que realizar muchas piezas incluso diseñe y fabrique un cuerpo de acelerador con mariposa.aunque finalmente estoy empleando la parte de la compuerta de un carburador comercial.
Aguas abajo se encuentra el cuerpo de soporte para el inyector
Mi principal problema esta siendo el adecuado control del volumen del combustible ya que los inyectores que tengo son de un caudal superior al necesario y el minimo tiempo de apertura es algo mas de 1milisegundo.
He de decir que no presentan demasiada inductancia y los picos son perfectamente soportados por el irf540 que empleo.
suelen rondar los 15v, muy por debajo de la capacidad del mosfet.ademas he instalado un diodo de proteccion.

Lo que mas puedo destacar es a modo de anecdota, que he logrado hacer funcionar el motor muy bien con la centralita en mi opinion mas simple del kundo, un NE555 para controlar el pulso del inyector y disparado por un sensor hall con iman instalado en el arbol de levas.
para mi fue todo un logro.

como ves no tiene tanto que ver con tu proywcto pues empleas un motor preparado y componentes optimizados, pero trabajamos en esencia para lograr lo mismo, por eso si quieres seguiremos hablando
Visita mi web sobre electronica,fisica,mecanica y demas temas....

http://sites.google.com/site/skygaps/Home

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: UCE para el control de un motor (automovil)
« Respuesta #13 en: 19 de Septiembre de 2013, 10:45:50 »
Buscate otro inyector mas pequeño porque en ralenti puede que vayas demasiado rico por no poder controlar el pulso minimo. En sistemas donde se utilizan inyectores de alta capacidad para controlar el ralenti/baja carga se le suele poner 2 inyectores, uno de menor capacidad y otro de mayor para altas cargas, segun la carga actua uno u otro.

Si le has puesto un diodo (supongo que el tipico diodo inverso de source a +12V) es logico que no te de esos picos, pero yo quiero evitar tener que poner un diodo, en principio he visto mosfets especiales que soportan hasta 200mJ de avalancha que supongo que nunca superaria esa carga, incluso otros con auto-descarga (llevan un diodo entre drain-gate) y cuando supera de X voltaje se abre el mosfet evitando tener que absorver la energia.

Desconectado Diego Gonzalez

  • PIC18
  • ****
  • Mensajes: 323
    • Visita mi web sobre electronica,fisica,mecanica y demas temas....
Re: UCE para el control de un motor (automovil)
« Respuesta #14 en: 19 de Septiembre de 2013, 11:02:06 »
Hola Merlinz

si efectivamente ese es mi objetivo.aun no he podido localizarlo pero no me va a quedar remedio.

Pues la verdad es que me interesa escucharte. seguire atento posibles mejoras o ideas que podamos emplear ambos.
Lo mio es un prototipo y logicamente no esta optimizado para nada y estoy empleando los circuitos y conocimientos de los que dispongo.perp esto es todo nuevo para mi :-/

un video de mi pequeña creacion para ilustar jeje

Visita mi web sobre electronica,fisica,mecanica y demas temas....

http://sites.google.com/site/skygaps/Home