Autor Tema: Mis experiencias con el BUS CAN  (Leído 597580 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado estenolotienen

  • PIC10
  • *
  • Mensajes: 23
Re: Mis experiencias con el BUS CAN
« Respuesta #975 en: 15 de Julio de 2011, 04:10:33 »
Hay un problema, no le has puesto un Id al receptor, de todos modos deberia haber entrado en la linea
Citar
   if ( can_kbhit() )

Con que haces el debug??

Lo hago con un ICD3.

Me acabo de dar cuenta, el bus can no tiene 60 ohm... :?, solo tengo la terminación en una parte del bus :cry:. Ya hasta el lunes no puedo probarlo, pero en cuanto lo pruebe te comento que tal me ha ido.

Gracias de nuevo.

Desconectado handpic

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 70
Re: Mis experiencias con el BUS CAN
« Respuesta #976 en: 18 de Julio de 2011, 19:37:24 »
Hola.

Tengo un sensor que tiene cuatro cables (rojo, negro, blanco, amarillo). Dos de ellos son GND y V (negro y rojo) y los otros dos son CAN-H y CAN-L.

Hemos alimentado a este sensor con 11V, y hemos medido la tensión en los otros dos cables, y se tienen 9.1V en el amarillo y 8.3V en el blanco. El de mayor tensión tendría que ser el CAN-H y el de menor tensión el CAN-L.

¿CAN-H y CAN-L pueden tener tanta tensión? 

Saludos.
Buenas...
Estoy buscando información acerca del bus y la verdad es que estoy enganchado al hilo.
Pese a que soy totalmente neófito en lo que al Bus Can se refiere, quizás has medido la tensión sin carga en las líneas. No te olvídes de que el bus tienen resistencias de terminación y puede que con ellas esa tensión se vea reducida.

Saludos,

Desconectado estenolotienen

  • PIC10
  • *
  • Mensajes: 23
Re: Mis experiencias con el BUS CAN
« Respuesta #977 en: 19 de Julio de 2011, 13:14:01 »
Hay un problema, no le has puesto un Id al receptor, de todos modos deberia haber entrado en la linea
Citar
   if ( can_kbhit() )

Con que haces el debug??

Lo hago con un ICD3.

Me acabo de dar cuenta, el bus can no tiene 60 ohm... :?, solo tengo la terminación en una parte del bus :cry:. Ya hasta el lunes no puedo probarlo, pero en cuanto lo pruebe te comento que tal me ha ido.

Gracias de nuevo.

Bueno, pues aquí estoy de nuevo. Acabo de probarlo con una impedancia correcta en el bus, en modeo debbuger y sigue igual, no me entra en can_kbhit()... Se os ocurre que me puede estar pasando?

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7839
Re: Mis experiencias con el BUS CAN
« Respuesta #978 en: 20 de Julio de 2011, 09:10:23 »
Es posible que hayas conectado algo mal, puedes poner el esquema de tu circuito a ver si vemos algo??
Es normal equivocar el pin tx y rx de can en la conexión al MCP2551.
Ahí no anda nada.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado estenolotienen

  • PIC10
  • *
  • Mensajes: 23
Re: Mis experiencias con el BUS CAN
« Respuesta #979 en: 20 de Julio de 2011, 14:22:23 »
Es posible que hayas conectado algo mal, puedes poner el esquema de tu circuito a ver si vemos algo??
Es normal equivocar el pin tx y rx de can en la conexión al MCP2551.
Ahí no anda nada.

El HW debe de estar bien, estoy utilizando dos placas que hemos tenido en obra, es decir, que han estado funcionando, yo solamente he realizado el ramal para unir los 2 can. De todas formas mañana cojo esquemas y enseño como está. Otra cosa, yo no utilizo el MCP2551, uso el TJA1050, pero da igual, no? Por último, no se si tiene que ver, pero los mensajes de la placa emisora son extendidos y con "protocolo propio", eso influiría en algo?

Gracias,

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7839
Re: Mis experiencias con el BUS CAN
« Respuesta #980 en: 20 de Julio de 2011, 15:06:23 »
Eso no debiera influir, siempre y cuando el protocolo propietario ya estuviese en funcionamiento desde antes de realizar estas pruebas...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado estenolotienen

  • PIC10
  • *
  • Mensajes: 23
Re: Mis experiencias con el BUS CAN
« Respuesta #981 en: 21 de Julio de 2011, 08:50:01 »
Si si, en funcionamiento está, eso es seguro, lo he comprobado. Es más, podría coger el código de la empresa y hacerlo con ello, pero no es CCS, y me gustaría hacerlo en CCS. Seguiré probando a ver si doy con la causa. Si se os ocurre algo por favor, decidmelo!!!

Gracias!

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7839
Re: Mis experiencias con el BUS CAN
« Respuesta #982 en: 21 de Julio de 2011, 09:37:55 »
Si es otro lenguaje C, para que molestarse en cambiarlo??
Si es assembler, difícilmente puedas mejorarlo en C.
Si tuviera que portarlo a C, lo haría a un C que cumpla la norma ANSI C, como el C18 de Mchip.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado handpic

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 70
Re: Mis experiencias con el BUS CAN
« Respuesta #983 en: 21 de Julio de 2011, 21:21:31 »
Ya terminé mi proyecto, al final he conseguido comunicarme con el bus CAN del coche. El PIC lee los datos de OBD y muestra los PIDS seleccionados por la pantalla LCD.

Tiene 2 modos de funcionamiento, uno conectado al ordenador por puerto serie, y se le envían comandos para transmitir al vehículo y configurar las opciones. El otro modo, es automático cuando no se le envia nada por el puerto serie, comienza a hacer peticiones de los datos del OBD, según el protocolo ISO 15765 (OBD sobre CAN).

Muy buenas a todos,
Mi mas sincera enhora buena por tu placa Teleko....

En cuanto al bus can, mi intención es usar una placa de INGENIA que hace tiempo que tengo (ICM4011) y conectarla al ordenador por puerto USB, usando un hipertérminal, pero no se como se identifican los diferentes dispositivos e informaciones, se como es el bus can, pero no los valores de ID y los rangos de datos.
¿Está eso especificado en la norma ISO 15765 (OBD sobre CAN)? lo que a mi me interesa, mas que el OBD, que no se si está filtrado, es pinchar directamente sobre el bus CAN de datos y estar plenamente interconectado. De esta forma, si quieres comprobar algún componente por separado, puedes conectarte directamente a el.

Saludos y nuevamente enhora buena por el tema, mientras mas leo mas me engancho...

Desconectado handpic

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 70
Re: Mis experiencias con el BUS CAN
« Respuesta #984 en: 26 de Julio de 2011, 13:02:34 »
Aquí está la normativa de comunicación con las centralitas del coche:

sae OBD

Y aquí se explica el funcionamiento del ELM, más o menos lo que yo quiero hacer, se entiende bastante bien cómo es el proceso de comunicación, enviando comandos y recibiendo las respuestas (pag 20):




Hola Teleko,

He intentado bajar esta información que decías del link, pero me indica que ya no está disponible.

Estoy muy interesado en ella, ya que quiero gobernar una dirección asistida a través del bus y necesito el identificador y los valores de los códigos de velocidad para controlar su dureza.

Te agradecería me indicaras como conseguirlos o me los enviaras al correo.

muchas gracias de antemano por tu ayuda.

Ya he visto que al final has conseguido tu proyecto. Enhora buena.

Saludos, handpic.

Desconectado estenolotienen

  • PIC10
  • *
  • Mensajes: 23
Re: Mis experiencias con el BUS CAN
« Respuesta #985 en: 28 de Julio de 2011, 14:08:29 »
Si es otro lenguaje C, para que molestarse en cambiarlo??
Si es assembler, difícilmente puedas mejorarlo en C.
Si tuviera que portarlo a C, lo haría a un C que cumpla la norma ANSI C, como el C18 de Mchip.

Hola de nuevo, a ratos que puedo sigo intentando hacer correr el programa. He estado leyendo por ahí que hay que insertar por lo menos un mensaje en el bus para "despertar" mi TJA1050, por eso he añadido dos líneas nuevas, un "can_putd" y un "delay" justo debajo de can_init(). Pero me pasa una cosa curiosa y es que en el hyperterminal me sale lo siguiente:

CCS CAN EXAMPLE                                                                                    
                                                                                                    
CAN_PUTD(): BUFF=0 ID=00000100 LEN=1 PRI=1 EXT=1 RTR=0                                              
  DATA = 00    

Es decir, esa información me la manda por la UART y dudo si la envía por el CAN o no  :shock:. La otra placa sigue enviando mensajes, pero nada, nunca entra al can_kbhit().

El código en sí es el siguiente:

Código: [Seleccionar]
void main()
{
struct rx_stat rxstat;
int32 rx_id;
int buffer[8];
int rx_len;
  int i;

for(i=0;i<8;i++)
{
buffer[i]=0;
}

printf("\r\n\r\nCCS CAN EXAMPLE\r\n");


can_init();
can_putd(0x100, 0, 1, 1, TRUE, FALSE);
delay_ms(500);

enable_interrupts(GLOBAL);


while(TRUE)
{
if ( can_kbhit() )
{
printf("\n\rEntro al kbhit\n\r");
printf("\r\n");
if(can_getd(rx_id, &buffer[0], rx_len, rxstat))
{
printf("Byte 0: %X\r\n",buffer[0]);

}
}
delay_ms(500);
}

}
« Última modificación: 28 de Julio de 2011, 14:10:50 por estenolotienen »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7839
Re: Mis experiencias con el BUS CAN
« Respuesta #986 en: 28 de Julio de 2011, 16:15:45 »
Si en el código deshabilitas Debug_printf la librería deja de enviar por el puerto cada vez que transmite o recibe, lo que pasa es que nadie le contesta nada, por lo tanto es imposible saber si esta o no transmitiendo. Yo lo dejaría así, porque si en algún momento recibes algo, al menos entiendes que paso o que salio mal o si salio bien, entenderás las tramas del CANBUS.

Si miras en la placa que yo puse en los primeros puntos de este hilo, veras que le puse leds a las lineas de transmicion y recepción de cada nodo, precisamente para enterarme que pasa cuando tengo problemas de transmision o recepción.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado estenolotienen

  • PIC10
  • *
  • Mensajes: 23
Re: Mis experiencias con el BUS CAN
« Respuesta #987 en: 28 de Julio de 2011, 17:17:23 »
Ok, me haré una plaquita con LEDs para observar el TX y RX del CAN. Ya os contaré.

Gracias!!

Desconectado handpic

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 70
Re: Mis experiencias con el BUS CAN
« Respuesta #988 en: 28 de Julio de 2011, 18:14:18 »
Muy buenas.... MGLSOFT

Tengo una placa de INGENIA ICM4011, con un dsPic. En su página web ya hay un proyecto de ejemplo para conectarse al bus can y el manual en pdf, aunque no está el código abierto, si está el archivo .hex para cargarlo.

Lo he probado en casa conectando la dirección asistida de un nissan micra y el bus parece ir a 500kbs, porque a otras velocidades me da error.

Si desconecto la dirección también me da error, por lo que parece que es correcta la velocidad de transmisión, aunque realmente no he recibido nada, lógico, puesto que yo no conozco ningún id para preguntarle a la direccion, pero el formato de la información parece correcta.

como el módulo, que convierte CAN-RS232(USB), parece funcionar, quiero conectarselo al coche y ver que puedo extraer. El modo de escuchar es muy sencillo, puesto que lo hace con un hipertérminal.

Tiene alguien la información que posteó Teleko en su momento, con la norma OBD donde vienen los Id y los rangos? Los he intentado bajar de los enlaces, pero ya no estan habilitados.

Cuando logre controlar la dirección, el siguiente paso será acondicionar la señal de un hall para conocer la velocidad y que actúe de forma automática, si se desea, o manual con varias selecciones de asistencia.

En cuanto tenga mas datos os cuento como va el asunto....

Saludos,
« Última modificación: 28 de Julio de 2011, 18:51:32 por handpic »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7839
Re: Mis experiencias con el BUS CAN
« Respuesta #989 en: 28 de Julio de 2011, 19:15:22 »
Linda placa...
Cuentanos tus experiencias.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.


 

anything