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

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

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #165 en: 11 de Diciembre de 2007, 09:08:49 »
Vuelve a subir el ultimo programa que hagas, asi te lo reviso nuevamente, con uno de los Nodos basta...
Y si tuvieras el esquematico del circuito que utilizas, podria revisartelo a ver si veo cosas que se escapen... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Mis experiencias con el BUS CAN
« Respuesta #166 en: 11 de Diciembre de 2007, 15:20:05 »
saludos, me han llegado los samples de texas de los CAN transceiver :-/ :-/ :-/

ahora a comenzar mejor con esto, tb tengo 2 de microchip, weno ahora comenzare con una placa para ellos, un saludo
.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #167 en: 11 de Diciembre de 2007, 15:46:11 »
Felicidades !!! :-/ :-/
Me alegro mucho por ver un nuevo participante activo del hilo!! :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pierno10

  • PIC10
  • *
  • Mensajes: 25
Re: Mis experiencias con el BUS CAN
« Respuesta #168 en: 11 de Diciembre de 2007, 17:54:59 »
Buenas noches MGLSOFT!!!
Es que en España es de noche ja ja ja....

Ya he montado la nueva placa y lo único que me falta es el detalle de  que el conflagración me hablas de un "H4 a CERO".
Pero no se a que te refieres  :shock:.

Te importaría aclarármelo  :).

Muchas GRACIAS  :-/

Un saludo


                   PERE.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #169 en: 11 de Diciembre de 2007, 18:22:30 »
Buenas noches MGLSOFT!!!
Es que en España es de noche ja ja ja....

Ya he montado la nueva placa y lo único que me falta es el detalle de  que el conflagración me hablas de un "H4 a CERO".
Pero no se a que te refieres  :shock:.

Te importaría aclarármelo  :).

Muchas GRACIAS  :-/

Un saludo


                   PERE.

Por eso te pedí que vuelvas a publicar tu codigo, para verificar si ese bit esta activo.
El problema puede ser que actives el PLL (eso hace ese fuse) y multipliques por 4 la frecuencia de entrada, en ese caso el calculo de velocidad del Nodo CAN no sirve y nunca comunicaria, se entiende ?? :mrgreen:

Algo mas puedo hacer por tí, ya que no uso el MikroC...
Publica tu esquema (en pdf, a mano alzada escaneado, etcetera) y yo te hago un codigo de pruebas para testear si no anda el hardware o que puede pasar...
Te sirve?? :lol:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pierno10

  • PIC10
  • *
  • Mensajes: 25
Mis experiencias con el BUS CAN
« Respuesta #170 en: 11 de Diciembre de 2007, 18:44:34 »
MGLSOT con mucha diferencia eres el número 1.....  :mrgreen:

1º Te mando el código  del nodo que solo realiza envíos:

NODO1 solo TX
Código: [Seleccionar]

unsigned short init, init_send, len;
unsigned char count,  data[8];
long id;
unsigned short zr;



void main() {

 
// ******************* CONFIGUATACION DE LOS PUERTOS        ****************//
// con el TRIS_ lo que decimos si el bit = 1 que es entrada y =0 que es salida
 TRISA = 0x00;
 ADCON0 = 0;     // con esto digo q NO uso los conversores A/D pag 247 manual
 ADCON1 = 0x0F;  // y q I/O son digitales para A,B,C pag 248 manual del 18F2580
 // OJO con la asignacion a los registros ADCON0 y ADCON1, si no la haces no
 // funcionan como entradas digitales y lospulsadores RA0...RA3 no funcionan.



  TRISB = 0X04; //Pin CAN TX lo congfiguro como digital OUT
 //TRISB.F3 = 1; //Pin CAN RX lo congfiguro como digital INPUT
 LATB.F3 =0;






 // La configuracion de los puertos de SALIDA se realiza mediante la sentancia
 // TRIS, pero ahora el acceso a estos puertos se realiza mediante la sentencia
 // LATX. Siendo X el nombre del puerto en cuestion. OJO ESTO ES SOLO PARA LOS
 // PUERTOS DE SALIDA OUTPUT.  (Pag 130 del manual 18F2580)


// *******************  CONFIGURACION CAN BUS PARA 500.000 Kbs ***************//

  init = 0;
  init_send = 0;

init_send =  CAN_TX_PRIORITY_0 &           // Form value to be used
          CAN_TX_XTD_FRAME &            //  with CANSendMessage
          CAN_TX_NO_RTR_FRAME;

  init =   CAN_CONFIG_SAMPLE_THRICE &    // Form value to be used
          CAN_CONFIG_PHSEG2_PRG_ON &    //  with CANInitialize
          CAN_CONFIG_STD_MSG &
          CAN_CONFIG_DBL_BUFFER_ON &
          CAN_CONFIG_VALID_XTD_MSG &
          CAN_CONFIG_LINE_FILTER_OFF;


  data[0] = 0;

  // CANInitialize(SJW, BRP, PHSEG1, PHSEG2, PROPSEG, CAN_CONFIG_FLAGS);
  CANInitialize(1,0,8,6,1,init);              // initialize CAN

  // CANSetOperationMode(mode, wait_flag);
  CANSetOperationMode(CAN_MODE_CONFIG,0xFF); // Pasamos a modo configuracion

  id = -1;   // 0xFFFFFFFFFFFFFFFF

  // Configuramos las mascaras con todo a 1, ya que id=(-1 q es lo mismo 0xfffffffffffff)
  // CAN_CONFIG_XTD_MSG se refiere a CAN extendido
  CANSetMask(CAN_MASK_B1,id,CAN_CONFIG_XTD_MSG);   // set all mask1 bits to ones
  CANSetMask(CAN_MASK_B2,id,CAN_CONFIG_XTD_MSG);   // set all mask2 bits to ones

  CANSetFilter(CAN_FILTER_B2_F3,3,CAN_CONFIG_XTD_MSG); // set id of filter B1_F1 to 3
  CANSetOperationMode(CAN_MODE_NORMAL,0xFF);       // set NORMAL mode



  for(id=0; id<8;id++)
  {
   data[id]=id;
  }

  LATA = 0;

  LATA.F3 = 1;
 
  count=0;
  id = 12111;

  while (1) {
 
    LATA.F3 = ~LATA.F3;                    //     output second byte at portA

    if(count==5)
    {
     data[0]= LATA.F0;
     CANWrite(id, data, 8, init_send);
     count=0;
     LATA.F0= ~LATA.F0;
    }

    Delay_ms(1000);
    count++;
  }
}



NODO 2 es el nodo que ha de interpretar el envio
Solo RX

Código: [Seleccionar]

unsigned short init,init_send, len, aa2;
unsigned char data[8];
long id;
unsigned short zr;


void main() {


// ******************* CONFIGUATACION DE LOS PUERTOS        ****************//
// con el TRIS_ lo que decimos si el bit = 1 que es entrada y =0 que es salida
 TRISA = 0x00;
 ADCON0 = 0;     // con esto digo q NO uso los conversores A/D pag 247 manual
 ADCON1 = 0x0F;  // y q I/O son digitales para A,B,C pag 248 manual del 18F2580
 // OJO con la asignacion a los registros ADCON0 y ADCON1, si no la haces no
 // funcionan como entradas digitales y lospulsadores RA0...RA3 no funcionan.


 TRISB = 0X04; //Pin CAN TX lo congfiguro como digital OUT
 //TRISB.F3 = 1; //Pin CAN RX lo congfiguro como digital INPUT
 LATB.F3 =0;



  init = 0;
  init_send = 0;

  init_send =  CAN_TX_PRIORITY_0 &           // Form value to be used
          CAN_TX_XTD_FRAME &            //  with CANSendMessage
          CAN_TX_NO_RTR_FRAME;

  init =   CAN_CONFIG_SAMPLE_THRICE &    // Form value to be used
          CAN_CONFIG_PHSEG2_PRG_ON &    //  with CANInitialize
          CAN_CONFIG_STD_MSG &
          CAN_CONFIG_DBL_BUFFER_ON &
          CAN_CONFIG_VALID_XTD_MSG &
          CAN_CONFIG_LINE_FILTER_OFF;

  data[0] = 0;
 
 // CANInitialize(SJW, BRP, PHSEG1, PHSEG2, PROPSEG, CAN_CONFIG_FLAGS);
  CANInitialize(1,0,8,6,1,init);              // initialize CAN
 
  CANSetOperationMode(CAN_MODE_CONFIG,0xFF); // set CONFIGURATION mode
  id = -1;

  CANSetMask(CAN_MASK_B1,id,CAN_CONFIG_XTD_MSG);   // set all mask1 bits to ones
  CANSetMask(CAN_MASK_B2,id,CAN_CONFIG_XTD_MSG);   // set all mask2 bits to ones

  CANSetFilter(CAN_FILTER_B2_F3,12111,CAN_CONFIG_XTD_MSG); // set id of filter B1_F1 to 3

  CANSetOperationMode(CAN_MODE_NORMAL,0xFF);       // set NORMAL mode

  //id = 3;

  LATA=0;
 
  LATA.F3 = 1;

  while (1) {
    zr = CANRead(&id , data , &len, &aa2);
    if ((id == 12111) && zr)
    {
      LATA.F0 = data[0];
      Delay_ms(1000);
                             // output data at portC
    }
    else
    {
     LATA.F3 = ~LATA.F3;
     Delay_ms(500);
    }

  }
}//~!



Cuando termine la noche si no he conseguido nada te remito el esquema de lo que tengo montado.

Muchas GRACIAS  :-/


Un saludo

                PERE.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #171 en: 11 de Diciembre de 2007, 22:41:10 »
No le veo problemas, debe estar en el Hardware el problema... :? :?
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #172 en: 15 de Diciembre de 2007, 08:25:03 »
Has tenido novedades en cuanto al funcionamiento?? :shock:
Por favor relatanos tus experiencias, por malas o buenas que sean, serviran para todos, ademas para seguir con la ayuda!! :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pierno10

  • PIC10
  • *
  • Mensajes: 25
Re: Mis experiencias con el BUS CAN
« Respuesta #173 en: 16 de Diciembre de 2007, 19:41:12 »
Buenas noches MGLSOFT!!!  :-/

Como va todo?? Espero que bien.

Bueno hoy he terminado mi segundo diseño del HW del entrenador para CAN BUS con PIC18F2580 (ya que el anterior me esta dando muchos problemas para comunicar). Lo he adjuntado todo en PDF (listo para su impresión y posterior insolación).

El archivo adjunto contiene 4 ficheros PDF:
1- Esquema eléctrico.
2- Placa de circuito impreso con los componentes.
3- Placa circuito impreso por el lado de las pistas.
4- Placa con pistas y componentes todo junto.

Os agradecería que si observáis algún tipo de anomalía me lo comunicaseis.

Espero que le sea de ayuda a todos aquellos que se inician en la materia.

Disfrutarlo.

Un saludo

                    PERE.
PD: Si crees que se puede mejorar comunicarmelo y lo haré. :mrgreen:
« Última modificación: 21 de Enero de 2008, 05:00:46 por pierno10 »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #174 en: 16 de Diciembre de 2007, 21:29:02 »
Pierno:

Es posible que tu error este tambien en tu anterior desarrollo.
Aunque solo mire el circuito, ya encontre que cruzas las lineas de TX y RX entre el PIC y el MCP2551...
Asi nunca va a funcionarte, definitivamente no creo que sea de codigo tu problema, es de circuito!!

El pedazo de esquema:


En el dibujo explico lo que esta mal... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pierno10

  • PIC10
  • *
  • Mensajes: 25
Re: Mis experiencias con el BUS CAN
« Respuesta #175 en: 17 de Diciembre de 2007, 04:16:50 »
Buenos días MGLSOFT!!!

MUCHAS GRACIAS POR TU CORRECCIÓN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  :-/  :-/

Estos son los detalles que hacen que uno se quede en la estacada durante varios días.
Nunca me canso de de decirlo, pero te lo repito de nuevo ¡¡¡¡¡¡¡¡¡¡¡¡ GRACIAS!!!!!!!!!!!!.

He realizado la corrección pertinente a todos los niveles circuito eléctrico, y placa lado pistas.

Contenido del ZIP ( Ya con la corrección pertinente).

El archivo adjunto contiene 5 ficheros PDF:
1- Esquema eléctrico.
2- Placa de circuito impreso con los componentes.
3- Placa circuito impreso por el lado de las pistas.
4- Placa con pistas y componentes todo junto.
5- Puntes conexión en la parte inferior de la placa.

Todo el error me viene de esta explicación de la ayuda de mickroC. Os adjunto el GIF con ese esquema erróneo.

Un saludo

                    PERE.

PD: Si crees que se puede mejorar comunicarmelo y lo haré.  :mrgreen:
« Última modificación: 17 de Diciembre de 2007, 08:14:21 por pierno10 »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #176 en: 17 de Diciembre de 2007, 08:26:47 »
Te propongo lo siguiente, asi no pierdes tiempo y esfuerzos en el nuevo circuito...
Hazle el cambio a dos de los nodos de la placa que no te funciona...
Prueba tu codigo alli, hasta que no estes seguro que funciona, no hagas tu nueva placa...

Esto ya lo pase, hay informacion bastante confusa en la web al respecto de como conectar estos componentes, pero yo me guié con los circuitos de Microchip de sus placas para CAN !!! :-/
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pierno10

  • PIC10
  • *
  • Mensajes: 25
Re: Mis experiencias con el BUS CAN
« Respuesta #177 en: 17 de Diciembre de 2007, 11:20:24 »
Buenas tardes MGLSOFT  :-/ !!!

Ok por lo de proposición, pero ahora ya las tengo insoladas y atacadas. He terminado ahora mismo.
Solo me falta taladrar y montar los componentes que si no pasa nada lo haré a lo largo de la tarde.
Esta noche colgare los resultados y comentare como ha ido la cosa.

GRACIAS por el apoyo que me estas prestando. Seguro que con este seguimiento tan preciso no puedo fracasar  :mrgreen: .

Un saludo
                     PERE.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #178 en: 17 de Diciembre de 2007, 11:27:58 »
Bueno, bueno!! :D :D
Veo que es mas rapido el hecho que el pensamiento allí !! :D :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pierno10

  • PIC10
  • *
  • Mensajes: 25
Re: Mis experiencias con el BUS CAN
« Respuesta #179 en: 18 de Diciembre de 2007, 04:10:58 »
Buenos días MGLSOFT!!!

Encestaría (si lo tienes o donde lo puedo bajar)  un SNIFFER (o analizador de paquetes) de red CANBUS.

Me explico. Ahora para saber que tipo de paquete estoy transmitiendo necesito un circuito que este escuchando todo los paquetes que pasan por el bus.
Si sabes de algún circuito y el SW que se requiera???? comunicarmelo.

Un saludo


                    PERE.