Go Down

Topic: CAN BUS: Red de Arduinos (Read 41068 times) previous topic - next topic

Igor R

Hola!!

Tenemos un nuevo producto!! Somos distribuidores de una nueva shield de bajo coste DIY para el bus CAN.


Más información en http://secuduino.blogspot.com/2011/02/tienda.html

yOPERO

#91
Jun 15, 2011, 09:52 am Last Edit: Jun 15, 2011, 09:55 am by yOPERO Reason: 1
Ahora si que hablamos el mismo idioma!!( el de los pobres) :)

Excelente!!!

La diferencia tecnica con el anterior es que no se puede usar 24 V, alguna otra cosa?
Engineering is the art of
making what you want from
things you can get.

     

[SOLUCIONADO]

Sergegsx

utiliza la misma libreria que el brick? lo digo a efectos de si son intercambiables?

no consigo ver si los pines si ya estan conectados a las patillas del shield o hay que cablearlo por arriba?
Pin 2: SPI, CS [input, active low]
Pin 3: SPI, SCK [input]
Pin 4: SPI, MOSI [input]
Pin 5: SPI, MISO [output]
Pin 6: Gnd

para que es el RJ45?
el rs232 en teoria no es necesario si se usa los pines hembra que tiene delante?

Igor R

#93
Jun 15, 2011, 10:31 am Last Edit: Jun 15, 2011, 11:09 am by Igor R Reason: 1
Hola,

El mcp2551 (transceiver) es apto tambien para 24V.

La shield viene preparada para ser flexible, por lo que viene con clema, db9 y rj45. Los conectores db9 y rj45 no estan incluidos para bajar el coste del kit. De esta forma, puedes adaptartela segun tus necesidades. El conector incluido es la clema. El disenyador ha dejado estos dos conectores, por si te quieres hacer tu propio cableado para domotica, automatizacion, OBD, .... intentando ser lo mas flexible posible. Conectado al transceiver solo esta la clema (bornas), para sacar senyales a los conectores hay soldarlos externamente.

La shield utiliza los pines SPI de Arduino (pines 10,11,12 y 13). Si se quiere usar el pin INT se debe soldar un cablecito a la entrada deseada, pero se puede monitorizar si se ha recibido un nuevo mensaje mediante comandos por SPI. Esto lo hizo asi el disenyador para minimizar el numero de pines usados.

La libreria del brick es compatible con esta shield. En breve incluire una nueva funcion para chequear nuevo mensaje por SPI a parte de por el pin INT del mcp2515.

No tiene filtro inductivo (choke). Por si alguien tiene curiosidad para que sirve, dejo pegado info de microchip:

"Common mode chokes increase the Common Mode Rejection Ratio, or CMRR, by providing high impedance for the common mode signal, that is, when the bus is in a recessive state with no differential voltage between the CANH and CANL pins and providing low impedance for differential signals, that is, when the bus is dominant.
Chokes are common on CAN buses and can implement filtering on the common mode signal without adding a lot of distortion. That's because the coils are usually matched fairly well.
Like RC and LC filters, any mismatch in the inductance of the coils can cause distortion of the differential signals. Another thing to be aware of is that the inductance of the coils and the capacitance of the PCB could theoretically create a tank circuit and cause oscillations, although that is rare.
"

Vaya, que tampoco vas a tener problemas por no tenerlo....  ;)


Saludos


Igor R

Igor R

Para los que quieran profundizar mucho.... http://www.eetimes.com/design/automotive-design/4019182/Common-mode-chokes-may-cause-unexpected-transients?pageNumber=0

Espero que os parezca "atractiva" esta nueva shield....

Por cierto, anyadi a la libreria trabajar con filtros hardware del controlador, aunque esto ya es para los que buscan sacar buena nota....je,je,je
http://secuduino.blogspot.com/2011/06/setfiltersuint16t-filtersuint16t-masks.html


;)

flico

Quote
La shield utiliza los pines SPI de Arduino (pines 10,11,12 y 13). Si se quiere usar el pin INT se debe soldar un cablecito a la entrada deseada, pero se puede monitorizar si se ha recibido un nuevo mensaje mediante comandos por SPI. Esto lo hizo asi el disenyador para minimizar el numero de pines usados.


pin 13   SCK   
pin 12   MISO   
pin 11   MOSI   

Me imagino que el pin 10 lo usas como CS.
Otra cosita, en la librería tuya tienes en cuenta la interrupción del MCP2515

Saludos y buen trabajo Igor.R
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Igor R

#96
Jun 15, 2011, 05:06 pm Last Edit: Jun 15, 2011, 05:12 pm by Igor R Reason: 1
Para SPI necesitas tener un pin para CS, en el caso de esta shield es el pin 10. Por cierto, esto puede crear incompatibilidades con otras shields.



Si uso el INT, ya que es mas rapido que mirarlo por SPI. Pero claro, todo depende de la velocidad o los datos que vas a procesar.... Segun la aplicacion, te sobra con mirar si hay un nuevo mensaje mediante comandos por el bus SPI.

Saludos



Igor R.

flico

Igor R. que pines usas en esta shield, lo digo para evitar incompatibilidades con otras shield que tengo.

Saludos.
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Igor R

flico, pero si tu mismo hiciste quote de lo que escribí !!! Lee para arriba....

bodhi

Igor, tienes implementado el Can para el protocolo J1939?

Igor R

#100
Jun 17, 2011, 07:10 pm Last Edit: Jun 17, 2011, 07:20 pm by Igor R Reason: 1
No tengo ningún protocolo de capa más alta sobre CAN implementado. Sólo algo de OBD que es bastante inmediato.
Si no me equivoco, el estandard de camiones usa CAN 2.0B (ID de 29 bits) por lo que habría que modificar también la librería un poquito (aunque es sencillo).

http://www.google.es/url?sa=t&source=web&cd=3&ved=0CEcQFjAC&url=http%3A%2F%2Fwww.md.kth.se%2F~magnper%2Fcourses%2Fmf2008%2FHT09%2FAN-ION-1-3100_Introduction_to_J1939.pdf&rct=j&q=J1939&ei=IIn7TcXDAoPAhAempqW2Aw&usg=AFQjCNH99NG_Yb0BtCiFZB73eCOHR2TPgw&sig2=boR1t6JBMm8vK-tX_ucUkQ&cad=rja

Parece no muy complicado, no? Aunque nunca lo he utilizado.....

Saludos,


Igor R.

ASTROCAR

Hola buenas tardes; alquien saber donde puedo ubicar librerias para can bus aparte de la del colega Raul Millar " ArCan".

Saludos y me gustaria ver mas librerias ya que logre armar mi interface can con arduino usando un placa can-spi de mikroelektronika.

flico

Quote
flico, pero si tu mismo hiciste quote de lo que escribí !!! Lee para arriba....


Perdonar, hay veces que me empano de tal manera que no termino de expresarme del todo bien, esto de tener tantas cosas en la cabeza, en fin ... jejeje

Me referia a que pin tienes asignado para la interrupcion, porque el resto lo tengo 13,12,11,10

Saludos.
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

ASTROCAR


Quote
flico, pero si tu mismo hiciste quote de lo que escribí !!! Lee para arriba....


Perdonar, hay veces que me empano de tal manera que no termino de expresarme del todo bien, esto de tener tantas cosas en la cabeza, en fin ... jejeje

Me referia a que pin tienes asignado para la interrupcion, porque el resto lo tengo 13,12,11,10

Saludos.



Segun la primera imagen que subir cuando abrio este post veo que tiene cableado el pin2 del arduino pero la verdad puede ser para reset como para int es cuestion de que el mismo igor defina eso para que salgas de duda.

Saludos

Igor R

#104
Jun 18, 2011, 12:23 pm Last Edit: Jun 18, 2011, 12:35 pm by Igor R Reason: 1
Cuidado que tengo 2 productos CAN: una shield y un "brick" .

Me explico otra vez:
- La shield sólo usa SPI (pin 10,11,12,13) a parte de Vcc y GND.

Lo que expliqué, que a lo mejor os lié más, es que el controlador CAN dispone un pin, llamado INT, que cambia de estado cuando hay un mensaje en alguno de sus 2 buffer de recepción.
Yo uso esta función, para no tener que hacer una petición por SPI para ver si hay un mensaje, ya que es más rápido simplemente chequear en Arduino el estado de un pin digital. Por el tema de ganar rendimiento.
Pero se puede hacer de las DOS maneras.

EL pin INT del controlador CAN puede ir conectado a CUALQUIER pin de Arduino.

Por lo que dependiendo de la rapidez o los pines que necesites en tu aplicación, puede quedarse tal cual como viene ó soldar un pequeño puente desde el pin INT a cualquier pin de Arduino (en la propia shield).

Astrocar, ya contesté a tu post más arriba con otras dos librerías que puedes usar a parte de la de ARcan (SKpang + Kreative Chaos). Existen más, una busqueda en google y las tendrás.

Espero haberme explicado mejor.


Saludos



Igor R.



Go Up