Autor Tema: CAN BUS para XC8  (Leído 3237 veces)

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

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
CAN BUS para XC8
« en: 16 de Marzo de 2016, 11:55:12 »
Necesito programar un PIC18F26K80 con un bus CAN en XC8, he buscado por el foro, pero algunos hilos son antiguos y faltan imagenes y archivos ¿sabeis de alguna apnote de Microchip o librería en cuestión?

Saludos!!!
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re:CAN BUS para XC8
« Respuesta #1 en: 16 de Marzo de 2016, 16:37:48 »
Ese post recuerdo que se centra mas bien en el IC para CAN que en un pic con CAN integrado. Lo mas facil seria configurar los registros de forma manual y a volar... Yo ya ni recuerdo como se hacia, pero tengo alguno de ese tipo.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re:CAN BUS para XC8
« Respuesta #2 en: 16 de Marzo de 2016, 17:04:26 »
En la pagina de Microchip aparecen las appnotes relacionadas a ese PIC, aqui tienes una idea, y hay mas de uno en CAN.



En breve voy a revisar los link que se perdieron en el hilo de CAN.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re:CAN BUS para XC8
« Respuesta #3 en: 17 de Marzo de 2016, 15:52:46 »
Algunas de esas notas de aplicación vienen con ejemplos, de ahí puedo ir tirando, son para C18, pero no creo que tenga muchos problemas en pasarlo a XC8.

Gracias  ;-)

PD: Una cosa más, como conversor de señales del bus usaré un MCP2551, tengo una duda, la línea RX del conversor va con la RX del PIC, y la TX con TX, ¿o cruzadas?
« Última modificación: 17 de Marzo de 2016, 15:59:29 por micro_pepe »
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re:CAN BUS para XC8
« Respuesta #4 en: 17 de Marzo de 2016, 16:19:38 »
RX -> RX; TX -> TX

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re:CAN BUS para XC8
« Respuesta #5 en: 18 de Marzo de 2016, 18:20:40 »
Buff, los ejemplos son para otros micros distintos al PIC18F26K80, cambian los registros y es una locura cambiarlos todos, necesito tener algo funcionando en poco tiempo, por eso me vendría bien algo para ese micro en XC8, o C18.

Saludos!!!
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re:CAN BUS para XC8
« Respuesta #6 en: 19 de Marzo de 2016, 16:30:52 »
Bueno, encontré unos ejemplos en la página de Microchip para mi micro, vienen con el .hex y lo he montado en Proteus, pero no funciona, supongo que los ejemplos sean correctos ¿Alguien probó CAN BUS en Proteus? Uso versión 8.3 SP2.

Hasta el Lunes no podré probar con un bebuger, y pensaba avanzar un poco con Proteus el fin de semana.

Saludos!!!
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re:CAN BUS para XC8
« Respuesta #7 en: 20 de Marzo de 2016, 10:03:10 »
en proteus no hay simulacion de can bus o almenos cuando yo lo probe no habia y creo que era la version que dices.

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 664
Re:CAN BUS para XC8
« Respuesta #8 en: 03 de Abril de 2016, 07:32:52 »
buen dia, proteus no tiene para simular can bus y menos can integrado en el pic.

disculpa mi pregunta pero en que consiste tu proyecto con can bus

Saludos
« Última modificación: 03 de Abril de 2016, 07:36:47 por ASTROCAR »
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re:CAN BUS para XC8
« Respuesta #9 en: 03 de Abril de 2016, 19:31:06 »
buen dia, proteus no tiene para simular can bus y menos can integrado en el pic.

OK, gracias  ;-)

disculpa mi pregunta pero en que consiste tu proyecto con can bus

Tengo que diseñar un nodo que se conecte a una red CAN, y actue como control del resto de nodos, no puedo dar muchos datos, pues es un proyecto comercial.

Saludos!!!
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re:CAN BUS para XC8
« Respuesta #10 en: 06 de Abril de 2016, 08:48:56 »
Bueno, estoy haciendo una prueba inicial, tengo mi PIC conectado a un nodo que envía trafico de broadcast, y pretendo escucharlo, la configuración puesta para un PIC18F26K80 es la siguiente:

Código: [Seleccionar]
TRISCbits.TRISC7 = 1;
    TRISCbits.TRISC6 = 0;
    LATCbits.LATC6 = 0;
    LATCbits.LATC7 = 0;
    // Enter CAN module into config mode
    CANCON = 0b10001110;    //Solicito modo configuracion, ventana para RX0
    while(!(CANSTATbits.OPMODE == 0x04));
    // Enter CAN module into Mode 0
    ECANCON = 0x00;

// Initialize CAN Timing     
    //  500 Kbps @ 64MHz
        BRGCON1 = 0x83; //0000 0111     //SJW=3TQ     BRP  3
        BRGCON2 = 0xB8; //1011 1000     //SEG2PHTS 1    sampled once  PS1=8TQ  PropagationT 1TQ 
        BRGCON3 = 0x05; //0000 0101     //PS2  6TQ

//  config RX para broadcast.       
    RXF0SIDH = 0x00;
    RXF0SIDL = 0b1000000;
    RXF1SIDH = 0x00;
    RXF1SIDL = 0b1000000;

RXM0SIDL = 0b10000000;//Mascara, solo importa el bit de broadcast.
    RXM0SIDH = 0b00000000;
    RXM1SIDL = 0b10000000;//Mascara, solo importa el bit de broadcast.
    RXM1SIDH = 0b00000000;

// Enter CAN module into normal mode
    CANCON = 0b00001110;
    while(CANSTATbits.OPMODE==0x00);

Como fuses tengo puesto estos:

Código: [Seleccionar]
#pragma config XINST = OFF
#pragma config WDTEN = SWDTDIS
#pragma config CANMX = PORTC//Seleccion de pines del bus can.
#pragma config FOSC = INTIO1

La configuracion del oscilador:

Código: [Seleccionar]
// Set the internal oscillator to 64MHz
    OSCCONbits.IRCF = 7;
    OSCTUNEbits.PLLEN = 1;

No recibo nada, supongo que el error está en la configuración, no sé si me olvido de algun registro por configurar.

Saludos!!!
« Última modificación: 06 de Abril de 2016, 10:47:30 por micro_pepe »
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re:CAN BUS para XC8
« Respuesta #11 en: 06 de Abril de 2016, 19:31:02 »
el nodo que pretendes escuchar tiene la misma configuracion de velocidad?

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re:CAN BUS para XC8
« Respuesta #12 en: 07 de Abril de 2016, 06:48:44 »
el nodo que pretendes escuchar tiene la misma configuracion de velocidad?

El nodo funciona a 125KB/s, para esa velocidad la configuración que pongo es esta:

Código: [Seleccionar]
//  125 Kbps @ 64MHz
        BRGCON1 = 0x8F; //0000 0111     //SJW=3TQ     BRP  15
        BRGCON2 = 0xB8; //1011 1000     //SEG2PHTS 1    sampled once  PS1=8TQ  PropagationT 1TQ 
        BRGCON3 = 0x05; //0000 0101     //PS2  6TQ

pero no estoy seguro de que funcione a esa velocidad ¿hay alguna forma de medirla en el pic?

Saludos!!!
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re:CAN BUS para XC8
« Respuesta #13 en: 07 de Abril de 2016, 07:08:55 »
Ambos deben ir a la misma velocidad, si el nodo va a 125kbps y el pic a 500kbps (segun lo que has puesto en el codigo) entonces no detectara los mensajes correctamente.

Detectar la velocidad es algo complicado, lo mas sencillo es ir probando velocidades hasta que funcione. Lo tipico, 100kbps, 125, 150, 200...

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re:CAN BUS para XC8
« Respuesta #14 en: 07 de Abril de 2016, 10:52:39 »
Bueno, tengo el código del nodo con el que quiero comunicarme, está configurado para 125Kb/s, mi configuración para esa velocidad es esta:

Código: [Seleccionar]
//  125 Kbps @ 64MHz
        BRGCON1 = 0x0F; //0000 0111     //SJW=1TQ     BRP  15
        BRGCON2 = 0xB8; //1011 1000     //SEG2PHTS 1    sampled once  PS1=8TQ  PropagationT 1TQ
        BRGCON3 = 0x05; //0000 0101     //PS2  6TQ

entonces suponiendo bien configurada la velocidad, el error tiene que estar en otro sitio.

Saludos!!!
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡