Go Down

Topic: Leer 2 Bus CAN con Arduino utilizando el SHIELD de SPARK FUN (Read 1 time) previous topic - next topic

Israel_Den_Adel

Jul 23, 2015, 06:18 pm Last Edit: Jul 24, 2015, 10:22 pm by Israel_Den_Adel
Que tal, he comenzado con el proyecto para leer 2 BUS CAN en Arduino con el shield de spark fun en automóbil VW pero no se si se puedan leer ambos CAN al mismo tiempo
Cualquier información relacionada con el tema me sería de mucha ayuda gracias.


surbyte

Como a la vez? Además en que contexto?
A la vez te aseguro que no puedes leer dos CAN BUSes.
Deberás poner algo para leer uno CAN BUS, conmutar y luego leer otro.

surbyte

El arduino tiene un solo SPI pero puede manejar multiples dispositivos SPI. Solo usas CS para seleccionar el que deseas cada vez. Asi que la respuesta es si.
Todos los dispotivos deben tener una Resistencia a VCC (5V) en el pin CS y eso los deja inhibilitados.
Cuando Arduino quiere tomar control del módulo 1, pone ese CS 0 LOW y se comunica. Mientras el otro no existe para la interfaz.
Lo mismo con el otro módulo.
Asi que la respuesta es si.

surbyte

Si un Modulo SPI esta inhibido la salida MOSI esta en un estado de alta impedancia o en otras palabras como si no existiera.
Lo que yo te digo es esto Asi se conectas varios dispositivos SPI al BUS SPI


El costo es usar un CS Chip Select por cada modulo. Como las Resistencias Pull up lo INHIBEN, todos los pines del módulo que estan a VCC es como si no estuvieran.
Solo aquel CS que se ponga en 0 (LOW) tendrà comunicación con el Arduino.

noter

No se pueden leer simultáneamente, es evidente. Sí se pueden leer cíclicamente, seleccionando alternativamente cada uno de los dispositivos. El problema a lidiar es mantener la atención requerida por ellos, para evitar que se pierda algún mensaje, aunque suelen tener memorias intermedias para guardarlos mientras esperan ser atendidos. En resumen, toca hojear bien los datasheets de los cacharros.

surbyte

Te repito mi primera respuesta
Quote
El arduino tiene un solo SPI pero puede manejar multiples dispositivos SPI. Solo usas CS para seleccionar el que deseas cada vez. Asi que la respuesta es si.
Todos los dispotivos deben tener una Resistencia a VCC (5V) en el pin CS y eso los deja inhibilitados.
Cuando Arduino quiere tomar control del módulo 1, pone ese CS 0 LOW y se comunica. Mientras el otro no existe para la interfaz.
Lo mismo con el otro módulo

surbyte

Todas las conexiones en paralelo.
Chip Select de los módulos con resistencia pull up a 5V.
Determina el CS1 y CS2 definiendo pines.
Prueba el módulo1 a través del SPI usando CS1. LOW lo habilita, HIGH lo deshabilita.
Luego en otro sketch haces lo mismo con CS2 con el cuidado de definir el objeto con un nombre distinto.

Luego integras los códigos y tienes el cuidado que cada vez que habilites (con LOW) uno debes deshabilitar el otro (ponerlo en HIGH).
Dicho asi es fácil.

ASTROCAR

buenos dias, todo eso que comenta el colega es si se maneja contralador externo y si se esta usando un micro con controlador can incorporado ya las cosas cambias lo otro es tener en cuenta el el bus si su protocolo recuente que estan hablando de dos red can y lo mas seguro es que operen a frecuencias de operacion distinda. en definitiva hay que toman varios aspecto a consideracion pero algo se puede hacer usando el ingenio y criterio propio. Pero hay que tal muy claro de las cosas y para eso debe comentarlos todos los detalles y explicarnos mejor el caso.

saludos

Go Up