Autor Tema: Raspberry - Beaglebone - CAN bus - QT  (Leído 16380 veces)

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

Desconectado w00t

  • PIC10
  • *
  • Mensajes: 1
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #30 en: 02 de Octubre de 2014, 23:51:00 »
 :-/

((:-))
que bueno planeta!!

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #31 en: 03 de Octubre de 2014, 04:04:26 »
Muy profesional, enhorabuena!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #32 en: 08 de Octubre de 2014, 22:13:51 »


Información detallada para instalar y configurar CAN bus con el MCP2515 en Raspberry:
http://elinux.org/RPi_CANBus

Ya veremos como de complicado son todas estas gaitas de compilar el kernel.


Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #33 en: 09 de Octubre de 2014, 06:12:32 »
Al parecer la Raspberry es un poco opaca en su documentación y código. No es del todo open-hardware como otras plataformas.
Suerte. Ya nos contarás.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #34 en: 09 de Octubre de 2014, 08:55:13 »

No he tenido la oportunidad de profundizar con la Raspberry, lo bueno es que hay una comunidad enorme, seguro que cualquier cosa que se nos ocurra ya está resuelta.

De todas formas no descarto utilizar Ethernet, en ese caso en la placa principal no tendría que todar nada, y los módulos los rediseñaría añadiendo un ENC o usando un PIC con Ethernet y el controlador para la capa física, lo bueno con respecto a CAN bus, es que pasamos de 1Mb/s a 10Mb/s ó 100Mb/s.

Por aquí he localizado información para usar el MCP2515 con la Beaglebone Black:
http://the8thlayerof.net/tag/socketcan/
http://www.embedded-things.com/bbb/enable-canbus-on-the-beaglebone-black/

Lo que todavía no tengo claro es si se podría conectar directamente el MCP2551 a la Beaglebone Black, porque este chip va a 5 voltios, ahora lo tengo conectado a través del MCP2515 que actua como conversor SPI - CAN bus, pero sería mejor usar los puertos CAN bus que si tiene la BBB y añadirle solo el transceptor para la capa física, podria usar el ISO1050 que va a 3v3, pero es carísimo en comparación.

Empezaré con las pruebas, en cuanto lo ensamble todo, y ya veremos si está solución MCP2515-MCP2551 funciona decentemente.





Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #35 en: 09 de Octubre de 2014, 09:45:44 »
El MCP2515 MCP2551 tiene niveles TTL
La entrada está a nivel alto por encima de 2V
La salida puedes adaptarla con una o dos resistencias para reducirla a 3.3V

Saludos.
« Última modificación: 09 de Octubre de 2014, 14:36:06 por Picuino »

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #36 en: 09 de Octubre de 2014, 10:08:36 »
El MCP2515 tiene niveles TTL
La entrada está a nivel alto por encima de 2V
La salida puedes adaptarla con una o dos resistencias para reducirla a 3.3V

Saludos.

Esa solución la testeé en el pasado. No es buena idea adaptar niveles con divisores resistivos ya que la impedancia de entrada de los pines de un micro es bastante alta y varía dependiendo del micro por lo que "toca" hacerlo "a ojo"; además si pones un divisor con resistencias de valor muy alto corres el riesgo de que no llegue la corriente necesaria.

Bajo mi punto de vista y mi experiencia previa: si "la cagas" con niveles lo mejor es cambiar de IC o añadir un "level translator" que suelen ser baratos.

Saludos.
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #37 en: 09 de Octubre de 2014, 11:38:13 »

Lo probaré todo con el MCP2515, y si no tira bien o va lento, tendré que cambiar el MCP2551 por otro que vaya a 3v3 y conectarlo directamente a los puertos CAN de la BBB, en vez de utilizar el conversor SPI.

Otra duda que tengo, es al buscar información comparativa Ethernet versus CAN bus, parece que a pesar de que CAN bus va a 1Mb/s, tiene mejor rendimiento que Ethernet a 10Mb/s, esto me ha sorprendido un poco, además parece que CAN bus gestiona automáticamente todo el tema de colisiones, errores, y es más seguro, o al menos eso es lo que he leido aquí: http://www.ixxat.com/download/artikel_comparison_can_and_ethernet.pdf

De ser así, no me planteo pasarlo todo a Ethernet 10Mb/s, si al final CAN bus es en la práctica más rápido, y gestiona errores y colisiones automáticamente.







Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #38 en: 09 de Octubre de 2014, 11:46:04 »
Eso es para una red con muchos nodos y conexiones/desconexiones frecuentes . Para un punto a punto TCP es muuuucho más rápido.
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #39 en: 09 de Octubre de 2014, 14:32:59 »
Esa solución la testeé en el pasado. No es buena idea adaptar niveles con divisores resistivos ya que la impedancia de entrada de los pines de un micro es bastante alta y varía dependiendo del micro por lo que "toca" hacerlo "a ojo"; además si pones un divisor con resistencias de valor muy alto corres el riesgo de que no llegue la corriente necesaria.

La velocidad del bus Can no es alta. Como máximo 1 MHz.
Los divisores resistivos no deberían dar problemas en este caso.


Utilizando un divisor con una resistencia de 1K8 en serie con otra de 3K3, bajará la tensión de 5V a 3.24 Voltios
La corriente absorbida por el divisor es de 1mA (relativamente bajo)
La impedancia de salida (en el lado de 3.3V) será de 1.16K.
Con una capacidad de entrada en el lado de 3.3V de 200pF (mayor de lo habitual) la constante de tiempo es de 233ns
   El tiempo de subida desde cero hasta el nivel alto de 2.8 voltios será de 460ns.
   El tiempo de bajada desde 3.24V hasta el nivel bajo de 0.44V será de 460ns

Esto es suficiente para trabajar a 1MHz.

Para frecuencias mayores, este divisor te dará problemas de velocidad. Tendrías que reducir la impedancia.
Por ejemplo para 20MHz y capacitancia de entrada de 200pF, las resistencias deberían ser de 90 y 165 ohmios y la corriente absorbida 20mA, que está fuera del rango de muchas salidas de microcontrolador

Depende por lo tanto de la velocidad y de la capacitancia de entrada.

Saludos.

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #40 en: 09 de Octubre de 2014, 15:20:20 »
Perdón: me refería a que la impedancia de entrada era más baja de lo que esperaba. Picuino: no me refería a la velocidad de transmisión (capacidad) si no a la resistencia de entrada del pin.

Sigo pensando que por precio (0.2$ para pocos ICs) es mejor un "level translator", porque te ahorras sustos.

Por otro lado, te llevo siguiendo muchos posts y me encanta la forma rigurosa/académica con la que argumentas tus respuestas. Se aprende mucho de tí  ((:-)).

Saludos. 
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #41 en: 09 de Octubre de 2014, 17:32:22 »
Respecto al Can Versus Ethernet, con solo saber que CAN permite trabajar el bus en forma determinística y Ethernet es probabilístico (reenvia mensajes hasta recibir el Ack), se puede deducir que ante redes con mucho trafico en CAN sera mas eficiente siempre, porque maneja colisiones por hardware, parte en el transceiver y parte en el controlador, sin que tengas que tocar un solo bit de programa...

Si a esa evaluación le sumas que la nueva norma permitirá un flujo mayor de información, de 1 Mb/seg va a pasar casi a 5 Mb/seg, le va a sobrar rollo para bajárselo al ethernet varias veces...
Esa nueva normativa es para manejar audio y vídeo dentro de vehículos...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #42 en: 09 de Octubre de 2014, 17:39:56 »
En realidad no se porque el can esta limitado a 1mb, en un coche por ejemplo la red can no tiene mas de 5 metros, y con eso soportaria bastante, sin embargo los fabricantes lo limitan a 512 y cosas asi, habra alguna razon pero yo creo que podria ir a 1mb facilmente.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: Raspberry - Beaglebone - CAN bus - QT
« Respuesta #43 en: 09 de Octubre de 2014, 18:59:46 »
Sigo pensando que por precio (0.2$ para pocos ICs) es mejor un "level translator", porque te ahorras sustos.

Por otro lado, te llevo siguiendo muchos posts y me encanta la forma rigurosa/académica con la que argumentas tus respuestas. Se aprende mucho de tí  ((:-)).

Gracias manwenwe. Todos aprendemos de los demás, cada uno en su estilo. Y siendo riguroso uno aprende también de sí mismo.

Intento argumentar bien las respuestas porque así, en muchas ocasiones, aprendo tanto con mis respuestas, como con las preguntas que me responden.
La respuesta de antes era la primera vez que la calculaba. Al principio pensaba que el divisor resistivo valdría para frecuencias mucho mayores, pero el resultado me dió que sólo valía para 1MHz.

Tienes razón. En general será mejor un level translator: Consume menos, es más rápido, más fiable, vamos que es mejor solucíón.

Las resistencias son un pequeño apaño que funciona para velocidades bajas, aunque tienen la ventaja de ocupar muy poco para adaptar una sóla señal y son fáciles de implementar para hacer un apaño si no tienes a mano el level shifter.

Saludos.


 

anything