Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

20/08/2009 #1

Avatar de Rijiru

Interface entre CAN bus y RS232
Buen dia, en cierta ocacion me propuse en capturar datos provenientes de una red CAN bus y luego los datos obtenidos enviarlos por el puerto serie con protocolo RS232, pero, la problematica aqui es, que los datos nunca salian por el puerto serie. Si alguien sabe cual podria ser la causa, se le agradeceria su ayuda.


Saludos
21/08/2009 #2

Avatar de tecnogirl

Puedes enviar un esquema o programa que usaste ?. Salu2.
21/08/2009 #3

Avatar de Rijiru

Buen dia, a continuacion es el codigo con el que pretendi realizar la tarea:

Código:
#int_canwake //Esta interrupcion captura los datos provenientes de la red CAN y los transmite por el puerto serie RS232
isr()
{
 can_getd(ID,data,len,stat);
 printf("%32X %X %X %X", ID, data, len, stat);
}
#int_canerr  // Esta interrupcion nos depsliega una alarma encendiendo y apagando un indicador cuando hay errores en la red CAN
default_isr()
{
 k: c=0;
 output_high(PIN_A0);
 counter: c++;
 if(c>=500)
 {
  output_low(PIN_A0);
  if(c==1000)
  {
   goto k;
  }
  else
  {
   goto counter;
  }
 }
 else
 {
  goto counter;
 }
}

 void main()
{
 can_init();
 enable_interrupts(INT_CANERR);
 enable_interrupts(INT_CANWAKE);
}
Saludos.
07/10/2009 #4


Respuesta: Interface entre CAN bus y RS232
que tal Rijiru, oye tengo mas de una semana intentando echar a andar el CAN bus del PIC18F2685 con el compilador C18, pero la verdad es que no entiendo como es que funcionan lo de las filtros y las mascaras, es decir no se como usar los registros
TXBnSIDH,TXBnSIDL, TXBnDm, asi como los de recepcion de mensajes, si puedieras darme un ejemplo de como usarlos te lo agradeceria ampliamente.

Muchas Gracias.
13/10/2009 #5

Avatar de Rijiru

Respuesta: Interface entre CAN bus y RS232
Hola buen dia, la verdad, no es toy seguro si eso se configura en el registro CANCON o CANSTAT, pero d elo que estoy seguro es que en el Datasheet deben venir las palabras de configuracion. En lo personal estoy usando PIC C compiler, pues espero y esto te ayude la verdad soy nuevo en esto.


Saludos
16/12/2009 #6

Avatar de Rijiru

Respuesta: Interface entre CAN bus y RS232
Rijiru dijo: Ver Mensaje
Hola buen dia, la verdad, no es toy seguro si eso se configura en el registro CANCON o CANSTAT, pero d elo que estoy seguro es que en el Datasheet deben venir las palabras de configuracion. En lo personal estoy usando PIC C compiler, pues espero y esto te ayude la verdad soy nuevo en esto.


Saludos
Hola gente del foro, la problematica anterior fue resuelta, en el compilador PIC C, a lo que he leido esta basado en un kit de entrenamiento, por consecuencia las librerias que contienen los drivers vienen ya con caracteristicas por default. En este caso se altero el driver CAN-18XXX8.h
En el archivo de cabecera en donde se declara Baud Rate hay una formula en la cual el valor del preescalar debe ser calculado:

Tq=(2(PRE+1))/Fosc

una vez obtenido el valor de preescalar el driver se guarda y se incluye en el programa.

Con esto el problema quedo resuelto.
07/11/2010 #7

Avatar de astrocar

Rijiru dijo: Ver Mensaje
Hola gente del foro, la problematica anterior fue resuelta, en el compilador PIC C, a lo que he leido esta basado en un kit de entrenamiento, por consecuencia las librerias que contienen los drivers vienen ya con caracteristicas por default. En este caso se altero el driver CAN-18XXX8.h
En el archivo de cabecera en donde se declara Baud Rate hay una formula en la cual el valor del preescalar debe ser calculado:

Tq=(2(PRE+1))/Fosc

una vez obtenido el valor de preescalar el driver se guarda y se incluye en el programa.

Con esto el problema quedo resuelto.
Hola buenas noches, entonce si lograstes ver la captura de la red can en la pc podrias dar mas dettales por favor.

Saludos.
Atten.
Alexander Santana.
Venezuela-Barcelona
10/11/2010 #8

Avatar de Rijiru

Si, asi es y se visualizo en una interface en C#, dejame busco los documentos, y en la brevedad los posteo.

saludos
10/11/2010 #9

Avatar de astrocar

Rijiru dijo: Ver Mensaje
Si, asi es y se visualizo en una interface en C#, dejame busco los documentos, y en la brevedad los posteo.

saludos
oye me gustaria ver esos documento asi que quedo al pendiente.

Saludos y gracias por tu pronta respuesta.
Atten.
Alexander Santana.
Venezuela-Barcelona.
30/01/2011 #10

Avatar de Rijiru

Buen dia foristas, disculpenme la tardanza aqui les posteo el codigo del MCU para capturar datos por la red CAN (=
Archivos Adjuntos
Tipo de Archivo: txt Programa_PIC.txt (1,1 KB (Kilobytes), 333 visitas)
05/03/2011 #11

Avatar de astrocar

Rijiru dijo: Ver Mensaje
Buen dia foristas, disculpenme la tardanza aqui les posteo el codigo del MCU para capturar datos por la red CAN (=
hola, gracias por el codigo lo que no entiendo es como configuras la velocidad del bus can en ese codigo no lo veo lo otro es los datos lo monitores en un pc via rs232 y me imagino que usas un terminar o diseñastes alguna interface grafica para verlos a tu manera.

Saludos y espero tu gentil ayuda.
bye.
09/03/2011 #12

Avatar de Rijiru

Buen dia, la libreria para CAN bus cuando se ejecuta el comando can_init(), este llama a una rutina llamada can_set_baud() por default se programa el PIC para trabajar a 125kBaud. Para alterar el Baud Rate es necesario en el archivo 'can-18xxx8.h' en la libreria buscar el registro BRG y cambiar el valor del preescaler la formula cambiar al Baud Rate deseado seria:

Baud_Rate=(Fosc)/(2(PREESCALER+1))

Saludos
12/10/2011 #13


por favor como se puede capturar o captar datos de velocidad y tacometro de una red CAN bus J1939 y J1708 estas viene en los camiones,saludos desde Peru
15/10/2011 #14

Avatar de astrocar

Rijiru dijo: Ver Mensaje
Buen dia, la libreria para CAN bus cuando se ejecuta el comando can_init(), este llama a una rutina llamada can_set_baud() por default se programa el PIC para trabajar a 125kBaud. Para alterar el Baud Rate es necesario en el archivo 'can-18xxx8.h' en la libreria buscar el registro BRG y cambiar el valor del preescaler la formula cambiar al Baud Rate deseado seria:

Baud_Rate=(Fosc)/(2(PREESCALER+1))

Saludos
ok, gracias por su gentil respuesta me cambie a la ploataforma arduino y he logrado desarrollar mi aplicacon can sin problema y de una manera muy rapida y hasta con velocidades que yo mismo asigno.

Saludos.,
08/11/2011 #15


Hola, resulta que estoy haciendo un dispocitivo para leer una red can, y utilicé un programa muy parecido al tuyo que levanta los datos de la red, y los manda por serie, en un hipertermial se pueden ver los resultados, ahora cuando conecto mi dispocitivo a la red resulta que se empiesan a caer uno a uno todos los nodos de la red.
El programa está diseñado en un PIC 18F2680, y uso un MCP2551 para conectarlo a la red.
Alguien sabe que puede estar pasando????
Desde ya muchas gracias.
Saludos.
09/11/2011 #16

Avatar de astrocar

GuilleSpurio dijo: Ver Mensaje
Hola, resulta que estoy haciendo un dispocitivo para leer una red can, y utilicé un programa muy parecido al tuyo que levanta los datos de la red, y los manda por serie, en un hipertermial se pueden ver los resultados, ahora cuando conecto mi dispocitivo a la red resulta que se empiesan a caer uno a uno todos los nodos de la red.
El programa está diseñado en un PIC 18F2680, y uso un MCP2551 para conectarlo a la red.
Alguien sabe que puede estar pasando????
Desde ya muchas gracias.
Saludos.
Hola buenos dias revisastes que tu nodo esta operando a la velocidad que esta la red establecida por eso puede ser que no ves los mensajes de lo otros nodos.

Saludos.
10/11/2011 #17


Hola astrocar, gracias por contestar, pero quizas me exprecé mal y no se entiende cual es mi problema, resulta que yo si veo los datos que circulan por la red Can, lo que pasa es que mi dispocitivo mete algún tipo de interferencia en la red que hace que los otros nodos comiencen a perder la conección.
No se por que pero cuando pongo el osciloscopio para ver como recibe un dato mi plaqueta, resulta que ni bien lo recibe, el mc2551 responde al mensaje con un mensaje muy similar, yo creo que es esto lo que me está metiendo ruido en la red y hace que se caigan los demas nodos.
Digamos que mi dispocitivo tendría que funcionar de alguna manera a lazo abierto, sin responder los mensajes, yo utilizo "can_set_mode(CAN_OP_NORMAL);" veo que existe un modo que es "CAN_OP_LOOPBACK" o "CAN_OP_LISTEN", pero con estos modos de operacion no puedo hacer que reciba datos el pic.
Desde ya muchas gracias por responder.
Saludos.
18/11/2011 #18


Rijiru dijo: Ver Mensaje
Buen dia, la libreria para CAN bus cuando se ejecuta el comando can_init(), este llama a una rutina llamada can_set_baud() por default se programa el PIC para trabajar a 125kBaud. Para alterar el Baud Rate es necesario en el archivo 'can-18xxx8.h' en la libreria buscar el registro BRG y cambiar el valor del preescaler la formula cambiar al Baud Rate deseado seria:

Baud_Rate=(Fosc)/(2(PREESCALER+1))

Saludos
Hola Rigiru, tengo algunas dudas respecto al CAN bus, y estoy desarrollando un dispocitivo para leer datos de una red, entiendo que tienes un poco mas de experiencia en esto que yo, y agradecería me puedas dar alguna orientación al respecto, mi idea es hacer un dispocitivo que haga algo similar al "Microchip Can Busm Analyzer", pero que en un principio solo monitoree la red CAN bus y lo retransmita por puerto serie a una PC, para ello utilizé un pic 16F2680 con una interfas MCP2551, resulta que cuando lo conecto a la red veo los datos sin problema, pero mi dispocitivo mete interferencia en la red, y hace que los otros nodos de la red pierdan su comunicación, estoy dudando del modo de operación del PIC, que lo tengo configurado en "Normal mode", veo que existe la pocibilidad de ponerlo en "Listen Only mode", esto podrá ayudar en algo?
si necesitas algún dato adicional para poder ayudarme no dudes en pedirmelo.
Desde ya muchas gracias.
Saudos cordiales.

PD: disculpa si tengo muchos errores ortograficos, la lengua nunca fue lo mio
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.