Go Down

Topic: [Solucionado] Compartir puertos ethernet shield ENC28j60, tlc5940, nRF24L01 (Read 1 time) previous topic - next topic

Market

Buenas... hace un tiempo estuve haciendo algunas pruebas con todos estos componentes / shields.
Todos por separado, siguiendo algún que otro tutorial.
Ahora estoy tratando interconectar todos estos componentes a través de un solo arduino duemilanove.

Antes de comenzar esta integración armé una hoja de cálculo donde se pueden ver los puertos del arduino (analog dig) y los puertos que consumen cada uno de estos componentes.


Como verán estos tres componentes comparten puertos digitales del 10 al 13.

No tengo mucho conocimiento de electrónica pero... creo que lo que voy a tener que hacer es multiplexar el uso de los puertos compartidos si es que no puedo reconfigurarlos (modificando las librerías).

¿Es correcta mi apreciación?
¿Alguien tuvo que lidiar con este tipo de problemas?
¿Como puedo abordar este tipo de problemas?

A la espera de opiniones y recomendaciones,

Saludos

Market

chiva

Tienes el ejemplo de la shield ethernet oficial, que utiliza el SPI para el Wiznet5100 y el lector de tarjetas SD
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

chiva


Hey, gracias por tu rápida respuesta... hoy estuve viendo esa placa...
El tema es que por un lado estoy tratando de reducir costos.

¿Como ves el tema de compartir esos pines?


Market, responde por el foro que así nos enteramos todos ;)

Pues eso te decía, que la shield de ethernet comparte esos pines (que corresponden a la comunicación por SPI) para comunicarse con el controlador de ethernet y la tarjeta SD, por lo que en las librerías debería aparecer como está hecho.
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

SrDonGato

con el SPI puedes conectar muchos elementos, 3 de los pines son comunes a todos, luego hay un "enable" por cada elemento que quieres conectar. si utilizas un elemento solo necesitas 4 pines, si usas 3 elementos 6 pines, 5 elementos 8 pines..


un saludo



Market


Tienes el ejemplo de la shield ethernet oficial, que utiliza el SPI para el Wiznet5100 y el lector de tarjetas SD

Tenés razón... la ethernet debería estar solucionando este problema para sí misma.
http://arduino.cc/es/Main/ArduinoEthernetShield

Pero en un apartado dice:

Quote from: Arduino Ethernet Shield
usa los pines digitales 10, 11, 12, y 13 (SPI) para comunicarse con el W5100 en la ethernet shield. Estos pines no pueden ser usados para e/s genéricas.

Lo que interpreto que puede llegar a costarme compatibilidad con otros shields o componentes que usen esos puertos ¿no?

No es mala voluntad pero mirando el esquema
http://arduino.cc/es/uploads/Main/arduino-ethernet-shield-schematic.pdf
no logro entender como está resolviéndolo  :smiley-red: .... osea, ¿cómo está haciendo para que estos pines los comparta con la sd card?

Market


con el SPI puedes conectar muchos elementos, 3 de los pines son comunes a todos, luego hay un "enable" por cada elemento que quieres conectar. si utilizas un elemento solo necesitas 4 pines, si usas 3 elementos 6 pines, 5 elementos 8 pines..

un saludo


SrDonGato, entiendo lo del SPI... así fue como me comuniqué con el TLC5940. Puede que no me haya explicado correctamente (pido disculpas si fue así)  pero la idea es tenerlos a los 3 funcionando al mismo tiempo.

Ahora bien, ¿cómo sugieres manejar estos 3 dispositivos? ¿serviría multiplexar a través del pin "enable" de cada uno de los componentes / shields ?

Gracias !

Igor R

#6
Nov 08, 2011, 10:47 pm Last Edit: Nov 09, 2011, 12:33 am by Igor R Reason: 1
Está en inglés, pero es muy bueno => http://www.ermicro.com/blog/?p=1050



SrDonGato

el pin CS o SS (el 10) es distinto para cada uno de los elementos , el MOSI, MISO y SCK son comunes para todos.

si no recuerdo mal el lector de tarjetas del shield de ethernet era el 4 ( hablo de memoria)


flico

Trabajando en ...

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

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

Market


Está en inglés, pero es muy bueno => http://www.ermicro.com/blog/?p=1050




Que buena info!!... lo voy a leer tranquilo, está muy bien explicado.

Market


el pin CS o SS (el 10) es distinto para cada uno de los elementos , el MOSI, MISO y SCK son comunes para todos.

si no recuerdo mal el lector de tarjetas del shield de ethernet era el 4 ( hablo de memoria)


Esclarecedor... ja, CS (chip select) debe ser único por componente... perfecto!, ahora leyendo un poco el artículo que me pasó Igor R + tu comentario empiezo a entender esto.

Creo que estás en lo correcto.. usa el D4
Quote from: Arduino Ethernet Shield v5.0
D4 is used for the SD card and can only be used for general I/O if the SD slot is not occupied.

http://shieldlist.org/arduino/ethernet-v5

Market


Para ver los pines que usa cada shield tenemos http://shieldlist.org/


Muchas gracias flico! no tenía este fabuloso link.... ahora sí  XD

Market

SOLUCIÓN:

Investigando un poquito mas.... la librería que estaba utilizando para controlar el componente TLC5940 me permitió modificar los pines que originalmente estaban asociados con la comunicación SPI.
La librería está en  http://code.google.com/p/tlc5940arduino/
Acá están los pasos para modificar el uso de los pines
http://blog.derouineau.fr/2011/07/tlc5940-library-ethernet-shield-arduino-mega/

Para lo que es manejos SPI el site que compartió Igor R me fue muy útil para comprender el funcionamiento de este tipo de comunicación.
http://www.ermicro.com/blog/?p=1050

Saludos,

Market

Go Up