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

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

Desconectado Eldudas

  • PIC10
  • *
  • Mensajes: 4
Re: Mis experiencias con el BUS CAN
« Respuesta #915 en: 15 de Marzo de 2011, 19:09:19 »
Hola de nuevo, encontré esta página http://mcp2515ccs.sourceforge.net/ donde hay unas librerías que si permiten pasarles parámetros y además en castellano, me lo miré un poco y comencé a entender por que lo simplifican :shock:, hay un MONTÓN de registros.... :?... y la verdad que me tiene algo liado, intente ver como se gestiona la configuración de la velocidad y no tengo claro que valor o valores le tendría que pasar a config, coloqué algún comentario más para poder entender mejor como se gestiona, pero no lo tengo del todo claro os pongo  solo la parte del código para configurar la velocidad.

/************************http://mcp2515ccs.sourceforge.net/*******************************/
//
// CONFIGURACIÓN DE LA VELOCIDAD DEL BUS: Configura los parámetros de velocidad
// y sincronización del bus
//    Parámetros:
//       config: especifica alguna de las opciones de velocidad y de
//          sincronización
//       BRP (Baud rate Prescaler): Preescalado de la velocidad,registro CNF1 (2Ah) bits de 0 al 5
//       PRSEG (Propagation Segment Length): Longitud del segmento de
//          propagación, registro CNF2 (29h) bit 0 al 2
//       PHSEG1 (phase segment 1): segmento de fase 1, se utiliza para compensar
//          los retrasos de línea, registro CNF2 (29h)  del bit 3 al 5
//       PHSEG2 (phase segment 2): segmento de fase 2, se utiliza para compensar
//          los retrasos de línea, registro CNF3 (28h) del bit 0 al 2
//    Devuelve: true si los parámetros son correctos, y false en caso contrario
//
// Calculo para XT de 8Mhz y CAN a 125Khz Baud  250K_Baud  500K_Baud
//   Baud Rate Prescaler (BRP)       = 1           1            0
//     Propagation Delay (PRSEG))     = 1                        1            1
//     Phase Segment 1 (PRSEG)       = 8                        3            3
//     Phase Segment 2 (PRSEG)       = 6                        3            3
/******************************************************************************/
int1 can_set_baud(int32  config,unsigned int8 BRP,unsigned int8 PRSEG,unsigned int8 PHSEG1,unsigned int8 PHSEG2){
   int8 CNF1_b, CNF2_b, CNF3_b;
  
   // Comprobando los parametros
   if( (BRP > 0x3F )|| (PRSEG > 0x08) || (PHSEG1 > 0x08) || (PHSEG2 > 0x08)) return FALSE;
  
   // Cambiando a modo Configuracion
   while(!( can_set_mode(CAN_OP_CONFIG)));
  
   // Configurando registros
   CNF1_b = make8(config,0) | (BRP);
   CNF2_b = make8(config,1) | ((PHSEG1-1) << 3) | (PRSEG-1);
   CNF3_b = make8(config,2) | (PHSEG2-1);
  
   // Escribiendo en los registros
   mcp2510_write(CNF1, CNF1_b);
   mcp2510_write(CNF2, CNF2_b);
   mcp2510_write(CNF3, CNF3_b);
  
   while(!( can_set_mode(CAN_OP_NORMAL)));
  
   return TRUE;
}

Para configurar a 125KBs con un xt de 8Mhz creo que tendría que ser algo asi?

can_set_baud (???,1, 1, 8, 6); // no tengo claro que le tengo que pasar a config


Saludos

« Última modificación: 15 de Marzo de 2011, 19:13:28 por Eldudas »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7863
Re: Mis experiencias con el BUS CAN
« Respuesta #916 en: 15 de Marzo de 2011, 20:30:25 »
Citar
Para configurar a 125KBs con un xt de 8Mhz creo que tendría que ser algo asi?

can_set_baud (???,1, 1, 8, 6); // no tengo claro que le tengo que pasar a config

Yo uso una herramienta que permite obtener los valores correctos a poner en los registros de configuracion, que menciono aquí.

Si quieres entender como es la seleccion de los correctos valores de configuracion, puedes leerte la nota de aplicacion de Microchip AN754 que la encuentras aquí.

Estuve mirando y me han borrado varias imágenes de imageshak.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Eldudas

  • PIC10
  • *
  • Mensajes: 4
Re: Mis experiencias con el BUS CAN
« Respuesta #917 en: 16 de Marzo de 2011, 11:14:25 »
Me lo miraré. Gracias

Desconectado dravenar

  • PIC10
  • *
  • Mensajes: 9
Re: Mis experiencias con el BUS CAN
« Respuesta #918 en: 31 de Marzo de 2011, 15:25:38 »
Hola a todos.

He topado con este foro porque estoy en un haciendo un proyecto basado en BUS CAN usando J1939 y estoy buscando información sobre este protocolo.

El problema que tengo es que no se como interpretar el campo de datos que me da mi analizador. El mensaje del campo de datos es este: 46 C4 FF 00 FF FF FF FF

Buscando por internet no he encontrado como intrepretarlo. ¿Cómo se yo que valores me está dando este mensaje?

Espero haberme explicado bien. Muchas gracias a todos!
Saludos Sergio.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7863
Re: Mis experiencias con el BUS CAN
« Respuesta #919 en: 31 de Marzo de 2011, 15:49:37 »
Deberás tener el manual donde dice que son esos valores, ya que pueden ser solo bytes o words o flotantes los valores, y deberás saber que es cada uno...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado dravenar

  • PIC10
  • *
  • Mensajes: 9
Re: Mis experiencias con el BUS CAN
« Respuesta #920 en: 01 de Abril de 2011, 05:04:24 »
Deberás tener el manual donde dice que son esos valores, ya que pueden ser solo bytes o words o flotantes los valores, y deberás saber que es cada uno...

Esos valores los tengo. Según el manual, para este mensaje: 46 FF E0 25 FF FF FF FF, los posibles valores son:
* Byte 1 --> Temperatura agua (Factor: 1ºC, Offset: -40ºC, Rango: -40º a 210º).
* Byte 2 --> Temperatura combustible  (Factor: 1ºC, Offset: -40ºC, Rango: -40º a 210º).
* Byte 3-4 --> Temperatura aceite (Factor: 0,03125, Offset: -273ºC, Rango: -273º a 1735º)

Pienso que el Byte 1 = 46. ¿Estoy en lo cierto?

Haciendo cálculos 46 en decimal = 70. Si le restamos el Offset, nos queda una temperatura de 30ª. Así lo he hecho con el resto de byte de tal forma que para el Byte 3-4 la temperatura me sale 1520,15 ºC. La temperatura del Byte 2 parace que no la ha leido bien.

¿He realizado bien los cálculos?

Gracias y Saludos, Sergio

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7863
Re: Mis experiencias con el BUS CAN
« Respuesta #921 en: 01 de Abril de 2011, 08:07:32 »
Seguro que hay que restar el Offset a cada medida o ya viene hecho??
Por otro lado, no entiendo de donde obtienes el valor que dices en el byte 3 y 4, no encuentro forma de llegar al mismo valor.
Lo del byte 2 en FF, posiblemente lo hayas leído mal, aunque sospecho que es muy remota la posibilidad, yo me inclino a pensar que el sensor en cuestión se rompió y fue a sobrerrango la lectura.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado dravenar

  • PIC10
  • *
  • Mensajes: 9
Re: Mis experiencias con el BUS CAN
« Respuesta #922 en: 01 de Abril de 2011, 08:27:23 »
Seguro que hay que restar el Offset a cada medida o ya viene hecho??

Pienso que hay que restar el Offset al valor obtenido de pasar hexadecimal a decimal.

Por otro lado, no entiendo de donde obtienes el valor que dices en el byte 3 y 4, no encuentro forma de llegar al mismo valor.

El bit 3-4 es E025. Pasándolo a Decimal me sale 57381.  Este valor lo multiplico por 0,03125 y me sale 1793,15. Le resto el Offset que es 273 y me sale 1520,16

Lo del byte 2 en FF, posiblemente lo hayas leído mal, aunque sospecho que es muy remota la posibilidad, yo me inclino a pensar que el sensor en cuestión se rompió y fue a sobrerrango la lectura.

Al igual que tú, pienso que ha sido una mala lectura del sensor.

¿Es correcto el orden en el cual cojo los bits, es decir el bit 1 = 65, el bit 2 = FF y así sucesivamente?

Saludos.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7863
Re: Mis experiencias con el BUS CAN
« Respuesta #923 en: 01 de Abril de 2011, 08:37:32 »
Citar
El bit 3-4 es E025. Pasándolo a Decimal me sale 57381.  Este valor lo multiplico por 0,03125 y me sale 1793,15. Le resto el Offset que es 273 y me sale 1520,16

Y que es el 0,03125 ese, una conversión a ºC ??
Porque las otras temperaturas están en ºC entonces??

El orden de los bytes que tomas es correcto.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7863
Re: Mis experiencias con el BUS CAN
« Respuesta #924 en: 01 de Abril de 2011, 08:39:00 »
Que aceite trabaja a esa temperatura?? :shock: :shock:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado dravenar

  • PIC10
  • *
  • Mensajes: 9
Re: Mis experiencias con el BUS CAN
« Respuesta #925 en: 01 de Abril de 2011, 08:49:25 »
Que aceite trabaja a esa temperatura?? :shock: :shock:

Por ese motivo, no se si estoy haciendo bien los cálculos.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7863
Re: Mis experiencias con el BUS CAN
« Respuesta #926 en: 01 de Abril de 2011, 08:55:26 »
Ordena los bytes al revés y obtendrás un valor mas creíble.
Es normal transmitir el byte de mayor peso primero...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado dravenar

  • PIC10
  • *
  • Mensajes: 9
Re: Mis experiencias con el BUS CAN
« Respuesta #927 en: 01 de Abril de 2011, 09:04:21 »
Ordena los bytes al revés y obtendrás un valor mas creíble.
Es normal transmitir el byte de mayor peso primero...

Cierto es!!! Si en vez de E025 pongo 25E0, al pasarlo a decimal me sale 9696. Aplicándole el factor 0,03125 me sale 303 y quitándole el Offset, me da 30ºC.

Este si es un valor mucho más creíble, y sobre todo posible.

Gracias por la observación. Saludos Sergio.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7863
Re: Mis experiencias con el BUS CAN
« Respuesta #928 en: 01 de Abril de 2011, 09:07:11 »
Tienes lectura real de las temperaturas esas??
Yo creo que no hay que restar el offset.
Me suena que ese motor esta parado, si tiene lecturas de 30 grados... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado dravenar

  • PIC10
  • *
  • Mensajes: 9
Re: Mis experiencias con el BUS CAN
« Respuesta #929 en: 01 de Abril de 2011, 20:19:28 »
Tienes lectura real de las temperaturas esas??
Yo creo que no hay que restar el offset.
Me suena que ese motor esta parado, si tiene lecturas de 30 grados... :mrgreen: :mrgreen:

Lecturas reales no tengo. Sólo tengo los datos del mensaje que el analizador de tramas me muestra.

El motor estaba parado, es decir, sin encender. Por eso veo lógico que sean 30º. Si no le restariamos el Offset, nos saldría una tempreatura de 70º y eso si que no tiene sentido con un motor sin encender.