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

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

Desconectado robertdanyel

  • PIC10
  • *
  • Mensajes: 26
Re: Mis experiencias con el BUS CAN
« Respuesta #780 en: 10 de Abril de 2010, 01:43:47 »
No amigo, yo NO lo simule en proteus sino en fisico sobre un protoboard, pregunte y busque en google y no existe simulador para este protocolo, asi que nos toca montar todo, y como  no tengo ningun transceiver a la mano, estoy conectando dos nodos unicamente , aunque no se si funciona de la manera que lo hago, que es uniendo el TX de un dspic con el RX del otro y viceversa. ¿¿¿¿ alguien lo ha conectado anteriormente de esta manera ????
« Última modificación: 10 de Abril de 2010, 01:45:59 por robertdanyel »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7850
Re: Mis experiencias con el BUS CAN
« Respuesta #781 en: 10 de Abril de 2010, 18:49:19 »
Por lo mismo explicado anteriormente, no solo no se puede simular, sino que sin los MCP2551 NO hay forma que funcione el bus...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado robertdanyel

  • PIC10
  • *
  • Mensajes: 26
Re: Mis experiencias con el BUS CAN
« Respuesta #782 en: 11 de Abril de 2010, 00:48:49 »
Con razon.... gracias por la aclaratoria y no hacerme perder mas el tiempo sin el transceiver..... :D

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 662
Re: Mis experiencias con el BUS CAN
« Respuesta #783 en: 17 de Abril de 2010, 17:30:43 »
Con razon.... gracias por la aclaratoria y no hacerme perder mas el tiempo sin el transceiver..... :D

Hola robert con cuestiones de tiempo no te he enviado los transceiver pero luego esta semana estoy mas libre y con seguridad te contacto para que me reenvies la direccion y asi poder enviartelos y mil disculpas por eso hermano lo otro es que tamnbien puedes usar los tja1040 de la casa philips.

Saludos y estamos en contacto.
Atten.
Alexander Santana.
Venezuela-Barcelona.
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado InfectedDAS

  • PIC10
  • *
  • Mensajes: 12
Re: Mis experiencias con el BUS CAN
« Respuesta #784 en: 21 de Abril de 2010, 10:54:05 »
Hola otra vez, ya comencé a hacer un programilla en C, ahorita ando leyendo los ejemplos en mikroC sobre la librería CAN y me ha surgido una gran duda sobre las banderas y los filtros, estos se dejan en default? o que cambios se necesitan hacer para que se pueda comunicar con el carro?

Las banderas y filtros en que afectarían en caso de moverle??

Esto ha resultado ser algo complicado, en especial cuando no se sabía mucho del tema, pero es emcionante  ;-)

Código: [Seleccionar]
unsigned char Can_Init_Flags, Can_Send_Flags, Can_Rcv_Flags; // can flags
unsigned char Rx_Data_Len;                                   // received data length in bytes
char RxTx_Data[8];                                           // can rx/tx data buffer
char Msg_Rcvd;                                               // reception flag
const long ID_1st = 12111, ID_2nd = 3;                       // node IDs
long Rx_ID;

void main() {

  PORTC = 0;                                                // clear PORTC
  TRISC = 0;                                                // set PORTC as output

  Can_Init_Flags = 0;                                       //
  Can_Send_Flags = 0;                                       // clear flags
  Can_Rcv_Flags  = 0;                                       //

  Can_Send_Flags = _CAN_TX_PRIORITY_0 &                     // form value to be used
                   _CAN_TX_XTD_FRAME &                      //     with CANWrite
                   _CAN_TX_NO_RTR_FRAME;

  Can_Init_Flags = _CAN_CONFIG_SAMPLE_THRICE &              // form value to be used
                   _CAN_CONFIG_PHSEG2_PRG_ON &              // with CANInit
                   _CAN_CONFIG_XTD_MSG &
                   _CAN_CONFIG_DBL_BUFFER_ON &
                   _CAN_CONFIG_VALID_XTD_MSG;
 
  CANInitialize(1,3,3,3,1,Can_Init_Flags);                  // Initialize CAN module
  CANSetOperationMode(_CAN_MODE_CONFIG,0xFF);               // set CONFIGURATION mode
  CANSetMask(_CAN_MASK_B1,-1,_CAN_CONFIG_XTD_MSG);          // set all mask1 bits to ones
  CANSetMask(_CAN_MASK_B2,-1,_CAN_CONFIG_XTD_MSG);          // set all mask2 bits to ones
  CANSetFilter(_CAN_FILTER_B2_F4,ID_2nd,_CAN_CONFIG_XTD_MSG);// set id of filter B2_F4 to 2nd node ID

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

  RxTx_Data[0] = 9;                                         // set initial data to be sent

  CANWrite(ID_1st, RxTx_Data, 1, Can_Send_Flags);           // send initial message

  while(1) {                                                               // endless loop
    Msg_Rcvd = CANRead(&Rx_ID , RxTx_Data , &Rx_Data_Len, &Can_Rcv_Flags); // receive message
    if ((Rx_ID == ID_2nd) && Msg_Rcvd) {                                   // if message received check id
      PORTC = RxTx_Data[0];                                                // id correct, output data at PORTC
      RxTx_Data[0]++;                                                     // increment received data
      Delay_ms(10);
      CANWrite(ID_1st, RxTx_Data, 1, Can_Send_Flags);                      // send incremented data back
    }
  }
}

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7850
Re: Mis experiencias con el BUS CAN
« Respuesta #785 en: 24 de Abril de 2010, 21:36:05 »
Si te refieres a estas banderas:

Citar
  Can_Send_Flags = _CAN_TX_PRIORITY_0 &                     // form value to be used
                   _CAN_TX_XTD_FRAME &                      //     with CANWrite
                   _CAN_TX_NO_RTR_FRAME;

Lo que estan haciendo es que la prioridad de los mensajes sea 0 (ver prioridad en modulo ECAN de la hoja de datos), la trama es estandar y no usa el bit RTR.

Lo de los filtros no entiendo a donde apunta la pregunta.
Los filtros son utilizados para recibir solamente desde una direccion especificada o contestar solamente cuando el id corresponde a uno especifico.
Esto permite que un nodo se transforme por momentos en una especie de Master y luego vuelva al modo de escucha...
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 #786 en: 22 de Mayo de 2010, 08:46:28 »

   
CAN BUS
« : 21 de Mayo de 2010, 03:04:47 »
   Responder con cita Modificar mensaje
Hola a tods!!!

Quiero iniciarme en la comunicación serie entre dos pics, concretamente me ha llamado la atención la flexibilidad del CAN y mi primera gran duda es ¿que targeta de desarrollo puedo utilizar?, ya que iniciar realizando yo una propia resulta pesado. he

Ya he visto varios hilos sobre este bus, cuya información ha sido estupenda para un neofito en el tema, y veo que hablais del
MCP2515 CAN BusMonitor Demo Board Kit.

¿Os parece apropiado? ¿Es compatible con mi compilador de CCS?

He planteado este tema en el subforo general de programación en C y además de djarme un poko de código para saciar mi inquietud, me han remitido aqui.

Gracias de antemano, necesito una board para comenzar a probar programitas.


Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 662
Re: Mis experiencias con el BUS CAN
« Respuesta #787 en: 23 de Mayo de 2010, 10:10:34 »

   
CAN BUS
« : 21 de Mayo de 2010, 03:04:47 »
   Responder con cita Modificar mensaje
Hola a tods!!!

Quiero iniciarme en la comunicación serie entre dos pics, concretamente me ha llamado la atención la flexibilidad del CAN y mi primera gran duda es ¿que targeta de desarrollo puedo utilizar?, ya que iniciar realizando yo una propia resulta pesado. he

Ya he visto varios hilos sobre este bus, cuya información ha sido estupenda para un neofito en el tema, y veo que hablais del
MCP2515 CAN BusMonitor Demo Board Kit.

¿Os parece apropiado? ¿Es compatible con mi compilador de CCS?

He planteado este tema en el subforo general de programación en C y además de djarme un poko de código para saciar mi inquietud, me han remitido aqui.

Gracias de antemano, necesito una board para comenzar a probar programitas.


Hola buenos dias, aca te dejo un link de la pagina del colega Jim miembro de este foro, yo dispongo de uno m0odulo de la gente de mikroelektronika pero este al cual hago referencia lo mejor es que contamos con su creador en este mismo foro ladtima que no la vi antes para comprarlo y lo otro es que aun no no me dedico por completo al can bus tengo ya material y documentacion para empézar el tema pero simple poc¿r cuestiones de tiempo y ocupaciones laborales y personales no arranco de una ves en el tema pero te guste y nos comente tu opinion sobre este modulo can.

Saludos y estamos en contacto.
Atten.
Alexander Santana.
Venezuela-Barcelona.
link--- http://www.microingenia.com/electronics/product.php?id_product=5
http://www.microingenia.com/electronics/product.php?id_product=5
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado robertdanyel

  • PIC10
  • *
  • Mensajes: 26
hola amigos
« Respuesta #788 en: 23 de Mayo de 2010, 15:50:48 »
hola compañeros aparezco de nuevo, y de nuevo con nuevas dudas...

estoy trabajando con un cristal de 10Mhz, esto afectaria este codigo que saque de "mikroC for dspic"

Código: [Seleccionar]
aa =    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_MATCH_MSG_TYPE &
          CAN_CONFIG_LINE_FILTER_OFF;

  data[0] = 9;
  CAN1Initialize(1,3,3,3,1,aa);   
   

en realidad no entiendo muy el significado de cada bit.... esos (1,3,3,3,1,aa)???? porque???

que significan??

tienen que ver con el cristal que uso???, como lo configuro para un cristal de 10Mhz???

les pido ayuda         

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7850
Re: hola amigos
« Respuesta #789 en: 23 de Mayo de 2010, 16:12:26 »
hola compañeros aparezco de nuevo, y de nuevo con nuevas dudas...

estoy trabajando con un cristal de 10Mhz, esto afectaria este codigo que saque de "mikroC for dspic"

Código: [Seleccionar]
aa =    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_MATCH_MSG_TYPE &
          CAN_CONFIG_LINE_FILTER_OFF;

  data[0] = 9;
  CAN1Initialize(1,3,3,3,1,aa);   
   

en realidad no entiendo muy el significado de cada bit.... esos (1,3,3,3,1,aa)???? porque???

que significan??

tienen que ver con el cristal que uso???, como lo configuro para un cristal de 10Mhz???

les pido ayuda         
Hola.
Si miras en el indice del hilo, podras llegar a este y otros mensajes que permiten entender y configurar el formato de comunicacion segun el cristal que utilizes.

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

Desconectado conilete

  • PIC10
  • *
  • Mensajes: 29
Proyecto CAN open
« Respuesta #790 en: 09 de Junio de 2010, 06:52:36 »
Hola a todos.
Trabajo en un departamento de investigacion, y estamos trabanjando con un robot con una serie de sensores controlados mediante bus CAN.
Me han encargado realizar el siguiente trabajo:
Me han pasado una libreria de comunicaciones basada en CANOpen, y debo programar el controlador de una placa para controlar una serie de sensores. Estoy a la espera de que me den el PIC sobre el que se va a realizar el trabajo.
Dispongo de dos herramientas: el CAN Analyzer y el CAN Case XL.
No tengo experiencia en la programacion de PIC's, por lo que os pido consejo sobre cuales serian los primeros pasos que debo realizar y que documentacion debo ir mirando primero.
Segun he visto por Internet, es necesario usar el software CANOpen Design Tool y el CANOpen Device Manager...¿me equivoco?
Otro aspecto que me gustaria aclarar, es si el compilador que debo usar es el CCS.
Un saludo, y espero vuestra ayuda en forma de comentarios.
Muchas gracias

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7850
Re: Mis experiencias con el BUS CAN
« Respuesta #791 en: 09 de Junio de 2010, 08:28:35 »
Hola!!
Bienvenido al foro y en especial al hilo de CAN!!

Respecto a tus dudas:
Citar
Me han pasado una libreria de comunicaciones basada en CANOpen, y debo programar el controlador de una placa para controlar una serie de sensores. Estoy a la espera de que me den el PIC sobre el que se va a realizar el trabajo.

Cuales son esas librerias??
Si son las de Microchip son para armar un dispositivo CanOpen Slave.
En caso que no sepas cuales son, podras compartirlas por privado asi vemos de que se trata?? (eso si es que no te permiten publicarlas, ya que pueden pertenecer a tu universidad)

Citar
Dispongo de dos herramientas: el CAN Analyzer y el CAN Case XL.
Que envidia!!  :mrgreen: :mrgreen: :mrgreen:
Hermosas herramientas te han dado.!!

Citar
No tengo experiencia en la programacion de PIC's, por lo que os pido consejo sobre cuales serian los primeros pasos que debo realizar y que documentacion debo ir mirando primero.
En este hilo puedes aprender los conceptos de CAN, que va a ser la capa fisica de tu proyecto, sugiero que intentes guiarte con el Indice del primer Post, ya que leerlo completo te llevaria bastante y en el indice intente llevar la tematica mas importante sobre CAN Bus.
Respecto a CanOpen sugiero que busque bibliografia en la pagina de Can CIA, que es quien describe la norma de CanOpen, alli con solo registrarte vas a poder acceder a bastante informacion gratuita para entender tu aplicacion.
Hay una nota de aplicacion en Microchip que te puede servir de introduccion a CanOpen, esa nota deberias bajarla y leerla por completo, te introducira a CanOpen sobre microcontroladores PIC.
Aqui vamos a hacer una salvedad, solo la linea PIC18Fxx80 permite programar y usar una aplicacion de este tipo, ya que hacen uso de del modulo ECAN (Extended CAN), este modulo soporta DeviceNet y CanOpen, con otros PICs menores ni lo intentes, ademas la memoria y recursos utilizados son bien importantes en estas aplicaciones.

Citar
Segun he visto por Internet, es necesario usar el software CANOpen Design Tool y el CANOpen Device Manager...¿me equivoco?
Otro aspecto que me gustaria aclarar, es si el compilador que debo usar es el CCS.
Seguramente esas herramientas te garantizaran hacer una aplicacion seria y sin olvidarte detalles importantes de diseño.
Respecto a CCS, y muy a mi pesar, no creo que sea la mejor opcion para usar, ya que todo lo que hay en uso esta hecho en C18 y C30 o en PICC de Hitech, va a ser mas facil usarlo en esos compiladores que portarlo a CCS.

Ojala puedas compartir tus experiencias y avances aqui en el hilo, asi podras enriquecerlo.

Saludos!! :mrgreen:


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

Desconectado conilete

  • PIC10
  • *
  • Mensajes: 29
Re: Mis experiencias con el BUS CAN
« Respuesta #792 en: 16 de Junio de 2010, 08:51:52 »
Hola
Ante todo, muchas gracias por contestar, he buscado mucho por internet, y sin duda este es el mejor foro (y casi puedo decir unico) que trata Bus CAN que he encontrado.

Bien, en estos dias he progresado bastante sobre la programacion de PIC's en C. Buscando tutoriales sobre programacion en C de PIC's y practicas resueltas, he conseguido avanzar bastante sobre el uso de los puertos, transmision serie (USART), interrupciones, etc
Hablando con mi profesor, me recomendo usar el CCS, por lo que creo que ya es un poco tarde para cambiar de compilador :S, sin embargo, espero que esto no sea una gran trava para conseguir el objetivo!!
Todos las practicas que he hecho para familiarizarme con los PIC's las he realizado en CCS y usando el simulador PROTEUS.
Pero aun veo bastante lejos el poder programar un protocolo de comunicaciones basado en CAN sobre la placa.

Bien, empiezo a contarte:
La libreria que tengo es una que se ha comprado a la empresa alemana PORT, y me ha comentado que vale una pasta, por lo que aunque a mi no me importaria, comprenderas que me es imposible pasarla.

El objetivo global de nuestro proyecto, es controlar todos los sensores mediante CAN de un robot autonomo que realiza las funciones de un camion de bomberos.
Actualmente ya hay implementado un protocolo sobre J1939, por lo que lo primero que he hecho ha sido pedir dicho programa, para ver aspectos comunes que puedan ser reutilizados. Ya tengo este programa en mis manos.

Lo siguiente ha sido pedir el diseño de la placa sobre la que va a ir montado CANOpen, en formato electronico, para poder realizar simulaciones con el PROTEUS, ya que la placa, fisicamente hablando aun no esta terminada. Aun estoy a la espera de que me lo pasen. El pic que se va a utilizar es un PIC 18f2680, que cumple con los requisitos que me indicastes.

La norma CANOPen ya me la he leido, fue lo primero que hice.

Pues bien, voy a seguir tus indicaciones, y en los proximos dias voy a mirarme los post que considero que pueden ser mas interesantes. En cuanto a la nota que me dices de Microchip, he estado buscando, pero no se muy bien a cual te refieres...si pudieses pasarme el enlace...

Muchas gracias, y espero que sigamos en contacto.

Un saludo
Miguel Angel

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7850
Re: Mis experiencias con el BUS CAN
« Respuesta #793 en: 16 de Junio de 2010, 09:18:00 »
Lastima lo de la libreria, seguramente podria ayudarte mas si pudiera ver de que se trata..

Respecto a la nota de aplicacion de Microchip, podras encontrarla aqui:
http://ww1.microchip.com/downloads/en/AppNotes/00945a.pdf

Espero te sirva, esta hecha para C18, aunque en el foro de CCS haciendo una busqueda, tal vez consigas alguien que la haya portado a CCS. :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7850
Re: Mis experiencias con el BUS CAN
« Respuesta #794 en: 16 de Junio de 2010, 09:28:13 »
Creo que nadie le contesto al usuario del foro de CCS, ya que solo esta su pregunta...

http://www.ccsinfo.com/forum/viewtopic.php?t=32132&highlight=canopen+stack
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.