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

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

Desconectado f0raster0

  • PIC10
  • *
  • Mensajes: 1
Re: Mis experiencias con el BUS CAN
« Respuesta #795 en: 20 de Junio de 2010, 16:20:45 »
Hola a todos y gracias por sus aportes que en conjunto forman una valiosa información..

Debo investigar el protocola CAN con el fin de leer datos de un Vehículo de transporte de pasajeros Mercedes Benz (autobus), he visto en el foro, primero un diseño para trabajar con CAN y un sistema para leer datos mostrandolos en un display..

¿Qué necesito del conector o del CAN BUS del vehículo para comenzar a pensar en lograr leer los datos en mi pc?

Claro que es una locura para un principiante, pero ya está a intentarlo.. ah¡¡¡ es recomendable la tarjeta de microchip  "MCP2515 CAN Bus Monitor Demo Board  Part Number: MCP2515DM-BM" ya la mostraron en el foro e inclusive un diseño basado en ella.. creo que la voy a pedir para comenzar a trabajar..

Gracias desde ya.. y espero pronto comenzar a aportar..
« Última modificación: 24 de Junio de 2010, 18:49:00 por MGLSOFT, Razón: No entiendo porque borrar un post... »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #796 en: 24 de Junio de 2010, 18:55:39 »
Amigo.
Tu tema esta bien planteado, y si miras en detalle el hilo hubo aqui un forero que hizo esto que necesitas, incluso esta dando vueltas por alli el manual de uso de su equipo, que puede darte mucha ayuda a desarrollar el tuyo.

Se un poco paciente, no hay problema en plantear una pregunta, pero no te apures a esperar una respuesta inmediata ya que todos los foreros aqui contestan y aportan sobre los temas que pueden leer en sus ratos libres.

Si bien somos muchos, los temas que hay exceden la capacidad de lectura de cualquier persona.

Bienvenido al foro y te recomiendo leer bien las reglas del foro. :mrgreen:

Saludos
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado fusaka

  • PIC10
  • *
  • Mensajes: 1
Re: Mis experiencias con el BUS CAN
« Respuesta #797 en: 05 de Julio de 2010, 17:38:35 »
MGLSOFT me gustaria que resolviera una duda estoy empezando a estudiar el can bus para hacerme un tarjeta de adquisición de datos y  estoy volviendo ha estudiar la programación y me gustaría saber si esas librerías que usas son solo para programar el pic e c
o sin pueden servir directamente el compiladores c para el ordenador
mi idea es  conectar los transceptores directamente en el rs-232 del pc y trabajar con el

y si sabes de algún sitio para bajarme librerías de can para c y visual basic

un saludo

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #798 en: 05 de Julio de 2010, 17:59:30 »
Los transceptores en el puerto serie no funcionan, pero si podrias hacer una placa conectada al port paralelo.

Una pagina que tiene un SDK para PC es Kvaser, alli hay librerias para desarrollar con el MCP2515 del lado del PC.
Puedes encontrarlo aqui:
http://www.kvaser.com/index.php?option=com_php&Itemid=288&swprod=eae5254261d5021aef7b14601e756283&ean=0000000000000

Deberas registrarte, pero te aseguro que no molestan luego con molestos mails. :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado daltonico82

  • PIC12
  • **
  • Mensajes: 89
Re: Mis experiencias con el BUS CAN
« Respuesta #799 en: 15 de Julio de 2010, 16:09:33 »
Hola amigos.

Llevo un tiempo leyendo este hilo y sinceramente os felicito, por lo profesionales, por lo ingeniosos y por lo mucho que sabeis y como lo compartis.

Mi objetivo en esta ocasión y como primera prueba para realizar futuros y más ambiciosos proyectos es el de comunicar dos PIC 18F4550 por una linea CAN.
Para ello dispongo de 2 entrenadoras de Microingenia con sus correspondientes targetas CAN donde se albergan el transceptor y controlador CAN.

Pretendo que se comuniquen del siguiente modo:

Nodo A: maestro.
Nodo B: esclavo.

Funcionamiento: En el momento que en el nodo A se accione un pulsador se enviará por CAN un byte que hará encerder 8 leds asociados a un puerto del nodo B.

Transcurridos unos segundos el nodo B enviará un bit al nodo A donde se prenderá un led verde como confirmación del envío.
Si esto no ocurriese se encerá un led rojo.

Bien, por ahora he escrito el código del MASTER, os pido vuestra colaboración para saber si estoy enviando y recepcionando correctamente.


//CANMASTER.C

#include "18F4550.h"
#include "can-mcp251x.c"
#define "can-18F4580.c"
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOBROWNOUT,PLL2,CPUDIV1,VREGEN,PUT,MCLR
#use delay(clock=48000000)
#define ON output_high
#define OFF output_low
#define BUTTON_PRESSED !input(BUTTON)
#define LEDV pin_B0
#define LEDR pin_B1
#define CAN_DO_DEBUG TRUE
#define set_250k_Baud TRUE


// Variables send can bus
struct rx_stat rxstat;
int32 rx_id;
int8 rx_len;
int buffer [8];

// Variables reception can bus
int32 tx_id;
int1 tx_rtr=0;
int1 tx_ext=1;
int8 tx_len=8;
int8 tx_pri=3;
int32 id=0;
int32 rx_id_resp=0;
int8 datos_slave=0;

// Other variables
int1 flag_rcvtrama=false;
int8 rcvchar=0;
int i;

void main()
{
   disable_interrupts(GLOBAL);
   disable_interrupts(INT_TIMER0);
   
   setup_timer_0(RTCC_DIV_2);
   
   enable_interrupts(GLOBAL);
   
   rx_id=id;
   tx_id=id;
   
   
   
   ON(LedR);
   OFF(LedV);
   delay_ms(1000);
   can_init();    // Init can bus
   ON(LedV);
   OFF(LedR);
   
   delay_ms(1000);
   OFF(LedV);
   OFF(LedR);
   
   for(i=0;i<8;i++){
   buffer=0;
   }
   
   while(TRUE)
   {
     
 
      if(can_kbhit())
      {
         can_getd(rx_id_resp, &datos_slave, rx_len, rxstat); // read data can bus
         
         if(rx_id_resp==rx_id)
         {
         disable interrupts(INT_TIMER0);
         OFF (LedR);
         ON (LedV);
         delay_ms(1000);
         OFF (LedV);
         }
      } 
     
     
      if(BUTTON_PRESSED)
      {
      while(BUTTON_PRESSED){}
      delay_ms(200);
      int32id=3;//id slave
     
      can_putd(int32id,0xFF,1,1,0,0);//send a byte=0xFF
      }
     
     
     

#int_Timer0    // if after 10ms from the sending no data is received, indicate the failure of communications lighting the red LED
void timer0(void)
{
   disable_interrupts(INT_TIMER0);
   ON(LedR);
}

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #800 en: 15 de Julio de 2010, 17:13:40 »
Código: C#
  1. //CANMASTER.C
  2.  
  3. #include "18F4550.h"
  4. #include "can-mcp251x.c"
  5.  
  6. #define "can-18F4580.c"                                      
  7. <<<<<<<<<<<<<<<<<<<<<<<<<<<<< que es esto ??
  8.  
  9. #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOBROWNOUT,PLL2,CPUDIV1,VREGEN,PUT,MCLR
  10. #use delay(clock=48000000)
  11. #define ON output_high
  12. #define OFF output_low
  13. #define BUTTON_PRESSED !input(BUTTON)
  14. #define LEDV pin_B0
  15. #define LEDR pin_B1
  16. #define CAN_DO_DEBUG TRUE
  17. #define set_250k_Baud TRUE
  18.  
  19.  
  20. // Variables send can bus
  21. struct rx_stat rxstat;
  22. int32 rx_id;
  23. int8 rx_len;
  24. int buffer [8];
  25.  
  26. // Variables reception can bus
  27. int32 tx_id;
  28. int1 tx_rtr=0;
  29. int1 tx_ext=1;
  30. int8 tx_len=8;
  31. int8 tx_pri=3;
  32. int32 id=0;
  33. int32 rx_id_resp=0;
  34. int8 datos_slave=0;
  35.  
  36. // Other variables
  37. int1 flag_rcvtrama=false;
  38. int8 rcvchar=0;
  39. int i;
  40.  
  41. void main()
  42. {
  43.    disable_interrupts(GLOBAL);
  44.    disable_interrupts(INT_TIMER0);
  45.    
  46.    setup_timer_0(RTCC_DIV_2);
  47.    
  48.    enable_interrupts(GLOBAL);
  49.    
  50.    rx_id=id;
  51.    tx_id=id;  
  52. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  los dos id NO PUEDEN ser iguales !!!
  53.    
  54.    
  55.    
  56.    ON(LedR);
  57.    OFF(LedV);
  58.    delay_ms(1000);
  59.    can_init();    // Init can bus
  60.    ON(LedV);
  61.    OFF(LedR);
  62.    
  63.    delay_ms(1000);
  64.    OFF(LedV);
  65.    OFF(LedR);
  66.    
  67.    for(i=0;i<8;i++){
  68.    buffer[i]=0;
  69.    }
  70.    
  71.    while(TRUE)
  72.    {
  73.      
  74.  
  75.       if(can_kbhit())
  76.       {
  77.          can_getd(rx_id_resp, &datos_slave, rx_len, rxstat); // read data can bus  
  78. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< no encuentro el array datos en la declaracion !!
  79.          
  80.          if(rx_id_resp==rx_id)
  81.          {
  82.          disable interrupts(INT_TIMER0);
  83.          OFF (LedR);
  84.          ON (LedV);
  85.          delay_ms(1000);
  86.          OFF (LedV);
  87.          }
  88.       }  
  89.      
  90.      
  91.       if(BUTTON_PRESSED)
  92.       {
  93.       while(BUTTON_PRESSED){}
  94.       delay_ms(200);
  95.       int32id=3;//id slave
  96.      
  97.       can_putd(int32id,0xFF,1,1,0,0);//send a byte=0xFF  
  98. <<<<<<<<<<<<<  deberias cargar el dato a enviar en la primer posicion de un array de datos tipo byte, sino no funciona !!
  99.       }
  100.      
  101.      
  102.      
  103.  
  104. #int_Timer0    // if after 10ms from the sending no data is received, indicate the failure of communications lighting the red LED
  105. void timer0(void)
  106. {
  107.    disable_interrupts(INT_TIMER0);
  108.    ON(LedR);
  109. }


Creo que deberias arreglar estas cosas que son a primera vista las que pueden estar fallando.
Ademas te recomiendo poner el codigo del esclavo.

Saludos y adelante con el CAN !! :mrgreen: :mrgreen:
« Última modificación: 15 de Julio de 2010, 17:16:38 por MGLSOFT »
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado daltonico82

  • PIC12
  • **
  • Mensajes: 89
Re: Mis experiencias con el BUS CAN
« Respuesta #801 en: 16 de Julio de 2010, 12:10:33 »
Hola; muchísimas gracias  :-/ :-/ MGLSOFT.

Estoy trabajando en el código del SLAVE pero antes he de retocar al MASTER.

Sobre lo escrito ayer;

La directiva #define "can-18F4580.c", , la coloco pues es la que trae el compilador de CCS por defecto y donde se encuentra la función can_set_baud(), la cual he modificado tal y como describias al principio del hilo para poder desde el main() poder escoger entre 125kb, 250 o 500kb. ¿Què hago, incluyo can_set_baud() modificada en 18f4550.h?

En cuánto a los id; ha sido un despiste, un gran despiste! :5] :5]. Correjizme si no estoy en lo cierto:
rx_id es el id de del NODO del que recibo la información.
tx_id es el id del NODO que envía la información.

En cuanto a las funciones can_getd() y can_putd() he leido la explicación que dabas pero tengo alguna duda:

can_getd(rx_id, &datos_slave, rxlen, rxstat)

"&datos_slave" es el puntero a los datos entrantes (recibo bit a bit) y lo tngo que declarar como variable de recepción: int8 datos_slave=0¿?¿?.
"rxlen": cantidad de datos a recibir.Yo recibo 1 byte. ¿Qé coloco aqui? ¿1 o 8?.

can_putd((tx_id , &datos_master, 1,1,0,0)

Por ejemplo si deseo enviar 0xFF  con el fin de activar la totalidad de un puerto del esclavo. Entonces primero declaro el array:

int8datos_master=0;
Después pongo el dato en la primera posición:

datos_master[0]=1;

La función can_getd() devuelve un "1" si hay datos en el BUS del rx_id correspondiente y "0" sino los hay.

La  función putd() devuelve "1" si se envía y "0" sino se hace el envío.

Esos flag si quiero utilizarlos en mi programa, ¿Cómo los consigo?, ¿Puedo preguntar directamente por can_putd, y can_getd como por cualquier otro int1 declarado por mi?, pejemplo:

if(can_getd==1)//hay datos en el bus
{..........}
else{....}

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #802 en: 16 de Julio de 2010, 15:06:50 »
Hola.
Vamos por partes, como dijo Jack...

La directiva deberias ponerla DENTRO de can-mcp251x.c , reemplazando el resto de la seleccion en Can_Set_Baud().

Quedaria algo asi:

Código: C
  1. #ifdef Set_125K_Baud {
  2.       BRGCON1 = 0x01;
  3.       BRGCON2 = 0xBA;      //modificado 5/11/07 para usar CAN a 125 KBps
  4.       BRGCON3 = 0x07;      //con reloj a 10 MHz
  5.    }
  6.    #endif
  7.    
  8.    #ifdef Set_250K_Baud {
  9.       BRGCON1 = 0x00;
  10.       BRGCON2 = 0xBA;      //modificado 5/11/07 para usar CAN a 250 KBps
  11.       BRGCON3 = 0x07;      //con reloj a 10 MHz
  12.    }
  13.    #endif
  14.    
  15.    #ifdef Set_500K_Baud {
  16.       BRGCON1 = 0x00;
  17.       BRGCON2 = 0x92;      //modificado 5/11/07 para usar CAN a 500 KBps
  18.       BRGCON3 = 0x02;      //con reloj a 10 MHz
  19.    }
  20.    #endif

Cuidado que esto es para usar un cristal de 10 Mhz llevando al pic a 40 Mhz con el bit de configuracion H4 activo.

Si usas el MCP2515 deberias calcular los valores de los bytes BRGCON1, 2 y 3 nuevamente segun el cristal que utilizes.
Recomiendo leer las hojas de datos de tus modulos CAN para saber cuales serian esos valores dependiendo del cristal con que esten equipados.


Respecto a tu siguiente pregunta:
can_getd(rx_id, &datos_slave, rxlen, rxstat)

"&datos_slave" es el puntero a los datos entrantes (recibo bit a bit) y lo tngo que declarar como variable de recepción: int8 datos_slave=0¿?¿?.
"rxlen": cantidad de datos a recibir.Yo recibo 1 byte. ¿Qé coloco aqui? ¿1 o 8?.

Depende en realidad de cuanto bytes envia el esclavo (eso lo programas vos), el minimo es un byte y el maximo es 8.
Solo hay un mensaje sin ningun byte y es cuando un dispositivo se arranca y envia un mensaje para avisar que esta listo.

En la funcion Can_Getd no puedes seleccionar cuantos bytes recibes, solo recibes y haces el conteo segun lo que viene en RxLen, se entiende??

La funcion que devuelve un 1 si hay trafico en el bus es:
 if ( can_kbhit() )

Si no se quiere utilizar se deben activar las interrupciones pero ese es un tema bastante mas complejo...

Respecto a como usar bits en este modo, te pongo un ejemplo de recepcion de un byte y el uso de cada bit de ese byte por separado.  (precisamente enciende tres leds dependiento del estado de cada bit.)  Es un ejemplo de CCS.

Código: C
  1. if ( can_kbhit() )
  2.       {
  3.          printf("\r\n");
  4.          if(can_getd(rx_id, &buffer[0], rx_len, rxstat)) {
  5.             if (rx_id == ASK_FOR_ID_AD_B) {
  6.                printf("Channel B AD: %X\r\n",buffer[0]);
  7.             }
  8.             else if (rx_id == RESPOND_TO_LED_C_ID) {  
  9.     //node C is an mcp250x0 which sends out a message upon edge detection on IO
  10.                printf("Chaning LEDs\r\n");            
  11.                //in_data[0]=iointfl, in_data[1]=gpio
  12.                a_leds=~(buffer[1]);
  13.                if (bit_test(a_leds,4)) {LED1_HIGH;} else {LED1_LOW;}
  14.                if (bit_test(a_leds,5)) {LED2_HIGH;} else {LED2_LOW;}
  15.                if (bit_test(a_leds,6)) {LED3_HIGH;} else {LED3_LOW;}
  16.             }
  17.          }
  18.       }

Aqui las definiciones de que es cada bit de esos:

Código: C
  1. #define PIN_LED1  PIN_A5
  2. #define PIN_LED2  PIN_B5
  3. #define PIN_LED3  PIN_B4
  4.  
  5. #define LED1_HIGH output_low(PIN_LED1)
  6. #define LED1_LOW  output_high(PIN_LED1)
  7. #define LED2_HIGH output_low(PIN_LED2)
  8. #define LED2_LOW  output_high(PIN_LED2)
  9. #define LED3_HIGH output_low(PIN_LED3)
  10. #define LED3_LOW  output_high(PIN_LED3)
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado daltonico82

  • PIC12
  • **
  • Mensajes: 89
Re: Mis experiencias con el BUS CAN
« Respuesta #803 en: 17 de Julio de 2010, 12:56:24 »
Hola MGLSOFT y a todos los que lean...

Hice lo que me dijiste de cambiar la función original can_set_baud() y con el bittiming calculé el valor de los registros BRGCON1, BRGCON2, BRGCON3 para las distintas velocidades. Lo hice a 125kbs, 250 y 500kbsy y 8MHz que es la frecuencia a la que trabaja el controlador MCP2515 de mi placa.
Queda así:
Código: [Seleccionar]
void can_set_baud(void){

#ifdef Set_125K_Baud {

     BRGCON1 = 0x01;

     BRGCON2 = 0xB8;      //modificado 17/07/10 para usar CAN a 125 KBps

     BRGCON3 = 0x05;      //con reloj a 8 MHz

  }

  #endif

 

  #ifdef Set_250K_Baud {

     BRGCON1 = 0x00;

     BRGCON2 = 0xB8;      //modificado 17/07/10 para usar CAN a 250 KBps

     BRGCON3 = 0x05;      //con reloj a 8 MHz

  }

  #endif

 

  #ifdef Set_500K_Baud {

     BRGCON1 = 0x00;

     BRGCON2 = 0x90;      //modificado 17/07/10 para usar CAN a 500 KBps

     BRGCON3 = 0x02;      //con reloj a 8 MHz

  }

  #endif
 
}

Me dices que tengo que intruducir la directiva #define"can-18F4580" dentro de can-mcp251x.c?????
Por otro lado cuando habro can-mcp251x.c me aparecé con el nombre can-mcp2510.c.  Yo traabajo con un MCP2515; vale la libreria???

El código del maestro lo tengo así, pero me sigue dando errores al compilar; ecahzle un vistazo, por favor:

Código: [Seleccionar]
//CANMASTER.C

#include "18F4550.h"
#include "can-mcp251x.c"
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOBROWNOUT,PLL2,CPUDIV1,VREGEN,PUT,MCLR
#use delay(clock=8000000)

#define ON output_high
#define BUTTON PIN_B2
#define OFF output_low
#define BUTTON_PRESSED !input(BUTTON)
#define LEDV pin_B0
#define LEDR pin_B1
#define CAN_DO_DEBUG TRUE
#define set_250k_Baud TRUE


// Variables send can bus
struct rx_stat rxstat;
int32 rx_id;
int8 rx_len;

// Variables reception can bus
int32 tx_id;
int1 tx_rtr=0;
int1 tx_ext=1;
int8 tx_len=8;
int8 tx_pri=3;
int32 id=0;
int32 rx_id_resp=0;
int8 datos_slave=0;
int8 datos = 1
// Other variables
//int1 flag_rcvtrama=0;
//int8 rcvchar=0;
int u;
int e;


void main()
{
   disable_interrupts(GLOBAL);
   disable_interrupts(INT_TIMER0);
   
   setup_timer_0(RTCC_DIV_2);
   
   enable_interrupts(GLOBAL);
   
   rx_id_resp=3; //id del esclavo, del que quiero recibir datos (para el ejmplo el único que hay)
   tx_id=1;//id del maestro
 
   ON(LedR);
   OFF(LedV);
   delay_ms(1000);
   can_init();    // Init can bus
   ON(LedV);
   OFF(LedR);
   
   delay_ms(1000);
   OFF(LedV);
   OFF(LedR);
   
  for(e=0;e<8;e++){
   datos[e]=1;
   }
   
  for(u=0;u<8;u++){
   datos_slave[i]=1;
   }
   ///////////////////////////////////////main
   while(TRUE)
   {
     
      if(can_kbhit())
      {
         can_getd(rx_id, &datos_slave[0], rx_len, rxstat); // read data can bus
         
         if(rx_id_resp==rx_id)
         {
         disable interrupts(INT_TIMER0);
         OFF (LedR);
         ON (LedV);
         delay_ms(2000);
         OFF (LedV);
         }
      } 
     
     
      if(BUTTON_PRESSED)
      {
      while(BUTTON_PRESSED){}
      delay_ms(200);
   
      can_putd(tx_id,&datos[0],1,1,0,0);//send a byte=0xFF
      }
     
   }//while
}//main
     
     
   

#int_Timer0    // if after 10ms from the sending no data is received, indicate the failure of communications lighting the red LED
void timer0(void)
{
   disable_interrupts(INT_TIMER0);
   ON(LedR);
}


Gracias, amigos.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #804 en: 19 de Julio de 2010, 08:52:07 »
Dejame ver y probar algunas cosas de tus ejemplos, que ahora caigo que los bajaste del sitio de Microingenia.
Como no se puede simular en Proteus, voy a tener que armar el hardware aunque sea en una proto, para ver donde estan los bugs.

Has probado los ejemplos tal cual vienen en su pagina, sin quitar ni agregar nada??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado daltonico82

  • PIC12
  • **
  • Mensajes: 89
Re: Mis experiencias con el BUS CAN
« Respuesta #805 en: 19 de Julio de 2010, 10:42:55 »
Hola MGLSOFT!!!!

Mis protoboards son de "Microingenia", fabulosas, por cierto.

No probe los ejemplos tal cual, ya que es para una comunicación usb-can.

Lo que pretendo es hacerla, can-can.

Más tarde, en cuanto el trabajo me lo permita, pongo el código del SLAVE y por supuesto desde aquí seguiré probando y probando.
Muchas gracias por tu interés.... Seré el ser más feliz del mundo cuando vea prender esos leds.

Atentamente, un saludo

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #806 en: 19 de Julio de 2010, 12:17:08 »
Hola MGLSOFT!!!!

Mis protoboards son de "Microingenia", fabulosas, por cierto.

No probe los ejemplos tal cual, ya que es para una comunicación usb-can.

Lo que pretendo es hacerla, can-can.

Más tarde, en cuanto el trabajo me lo permita, pongo el código del SLAVE y por supuesto desde aquí seguiré probando y probando.
Muchas gracias por tu interés.... Seré el ser más feliz del mundo cuando vea prender esos leds.

Atentamente, un saludo

El ejemplo reemplaza lo que seria una comunicacion a PC serial por una USB, pero por lo que leo escribe en el modulo esclavo usando el BUS CAN.

Pruebalo completo asi como viene, no deberias tener problemas.

Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado daltonico82

  • PIC12
  • **
  • Mensajes: 89
Re: Mis experiencias con el BUS CAN
« Respuesta #807 en: 21 de Julio de 2010, 10:42:20 »
hola; estoy probando, pero tengo algún que otro problemilla. En cuanto salga algo, lo comparto.

Saludos y muchas gracias MGLSOFT

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #808 en: 21 de Julio de 2010, 11:10:14 »
hola; estoy probando, pero tengo algún que otro problemilla. En cuanto salga algo, lo comparto.

Saludos y muchas gracias MGLSOFT
Que tipo de problemitas??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado daltonico82

  • PIC12
  • **
  • Mensajes: 89
Re: Mis experiencias con el BUS CAN
« Respuesta #809 en: 21 de Julio de 2010, 11:35:15 »
Nada relacionado con el CAN.

Alguna de las entrenadoras no va bien; ando reinstalando los drivers en otro equipo para probarlo de nuevo.