TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Agustina en 13 de Diciembre de 2012, 09:12:51
-
Hola a todos! Estoy trabajando en el desarrollo de uns sistema de lectura de parametros en computadoras de abordo de camiones, buses y minibuses con protocolo J1939. La idea ahora es migrar este desarrollo a vehiculos livianos, los cuales algunos tienen CAN BUS con el protocolo OBDII.
La cuestion es que los vehiculos livianos no tienen la misma velocidad que los vehiculos con J1939 (250kbps). Algunos vehiculos tienen 500kbps y otros 50kbps.
Entonces, la pregunta concreta es como cambiar la velocidad del BUS a 500kbps.
Esoty utilizando un circuito diseñado por mi, con el PIC 18F2685, el cual anda perfectamente en J1939 y otras aplicaciones can (siempre a 250kbps).
Uso el compilador de CCS, version 1.20, PIC 18F2685, cristal de 10Mhz con PLL x4 (40mhz).
Si alguein tiene alguna sugerencia sera bienvenida!
Muchas gracias!
-
En el hilo Mis experiencias con el BUS CAN, se plantea como hacer esta configuración, aquí el indice del hilo:
Indice del Hilo de BUS CAN (http://www.todopic.com.ar/foros/index.php?topic=19182.msg189#msg189)
y en este link en especial, como van los registros en CCS:
Configuracion velocidad en CCS (http://www.todopic.com.ar/foros/index.php?topic=19182.msg138320#msg138320)
A propósito, la versión del software que debes tener, debe ser 4.120, porque la 1.20 nunca la conoci, y hace varios años que uso CCS.. :mrgreen: :mrgreen:
-
UU, si tenes razon, es 4.120, no se en que estaba pensando.
Una consulta, yo utilizo cristal de 10 mhz, pero con PLL, en las herramientas de calculo de valores, siempre pide la frecuencia de reloj, esta frecuencia es la del cristal o la del PLL?
gracias! Ahora miro los links que me enviaste.
-
La frecuencia a tomar para el calculo de velocidad es la que finalmente usa el micro, o sea en este caso si tienes cristal de 10 Mhz y PLL habilitado, sera de 40 Mhz.
Esos 40 Mhz son los que deberás usar en el calculo de velocidad.
-
Muchas gracias!
En el link que me enviaste usas un cristal de 10mhz, segun el programa "microchip can bit timing" queda a 40 mhz:
CNF1/BRGCON1 b'00000001' 0x01
CNF2/BRGCON2 b'10111010' 0xBA
CNF3/BRGCON3 b'00000111' 0x07
Pero con estos valores no logro hacerlo funcionar, tendras idea porque sera?
-
Son 40 Mhz y 500 Kbps.
A 20 TQ
CNF1/BRGCON1 b'00000001' 0x01
CNF2/BRGCON2 b'10111010' 0xBA
CNF3/BRGCON3 b'00000111' 0x07
A 10 TQ
CNF1/BRGCON1 b'00000011' 0x03
CNF2/BRGCON2 b'10100000' 0xA0
CNF3/BRGCON3 b'00000010' 0x02
A 8 TQ
CNF1/BRGCON1 b'00000100' 0x04
CNF2/BRGCON2 b'10010000' 0x90
CNF3/BRGCON3 b'00000010' 0x02
Prueba poner dos placas configuradas iguales y meter un sniffer CANBus a ver si realmente furulla a 500 Kbps, sino lo hace esta incorrecta la configuracion, pero si lo hace, esta mal la velocidad que crees tener en el bus a revisar...
-
Gracias MGLSOFT!
Despues de probar varias veces la configuracion, resulta que el problema era el USE_EXTENDED_ID.
Yo estaba enviando con una placa tramas can con id standard y la otra al parecer estaba tratando de leer tramas extendidas.
Asique ahi estaba el problema!
Muchas gracias.
-
Umhh!!
Una placa con ID extendida PUEDE leer tramas estandar, pero no al reves !! :shock: :shock: :shock:
Puede ser que te hayas equivocado al escribir?? :lol: :lol:
-
Si, porque al recibir un paquete con id ex se pone a 1 el flag de ID EXTENDIDA, sin embargo si recibes una trama std el flag de extendida se pone a 0.