Comunicación SPI varios dispositivos

Hola que tal a todos? soy nueva por aca.

A pesar de que en general si tengo una duda acudo a este banco de foros a ver si a alguien en el mundo le ha pasado o tiene la misma duda que yo, en esta oportunidad no he encontrado una respuesta que me saque totalmente de dudas.

En este caso tengo una duda: tengo un arduino nano y quiero conectarle el dispositivo de radiofrecuencia NRF24 y un dispositivo para tarjetas SD para almacenar la información. Mi problema viene debido a que ambos chips utilizan los puertos designados para la comunicación SPI y en todos los sitios web que he consultado para ver como hacer el montaje no hablan de si los dispositivos que quiero tener como "esclavos" pueden estar conectados a los mismos pines MISO, MOSI y SCK y simplemente tener el SS en pines digitales distintos (teniendo en cuenta lo que he leido en otros foros de que entonces hay que establecer en el programa qué otro pin se utilizarías para SS), o si hay que hacer alguna otra cosa.

Por otro lado tampoco me queda claro si para uno de los dispositivos esclavos puedo utilizar los pines de ICSP y para el otro los que trae el nano de fábrica.

Estaría enormemente agradecida si alguien me ayudara a aclarar esta duda.

Saludos!

Cuando usas varios dispositivos SPI el CS es quien decide con cual comunicarse.
Solo se debe garantizar que los dos dispositivos queden inhibidos cuando no se usen y eso se hace con una R Pull-up de 10k si es que el dispositivo no la tiene. Algo que deberás verificar por tu cuenta.
El camino mas simple es que coloques ambos dispositovos y los pruebes como estan y si funcionan es porque tienen la R pull-up y si no, es porque a alguno o a los dos le faltan.

Prueba error o bien mirar el esquema si sabes de electrónica.

El CS es el pin con el que habilitas el dispositivo.

Ambos compartiran 11-12 y 13 y por ejemplo uno puede usar 10 y el otro 9 como CS.

Gracias, intentaré eso que me dices y les digo que tal me va!

Bueno, finalmente después de todo este tiempo logré solucionar mi problema. Al parecer hay adaptadores SD para Arduino que siempre tienen el pin de CS en un nivel lógico bajo (que para este tipo de comunicaciones quiere decir que está listo para comunicarse), por lo que si tu meta es colocar varios dispositivos periféricos como esclavos, no lo vas a poder hacer, porque ese tipo de adaptadores de tarjetas SD no permiten la comunicación de otros dispositivos con el Arduino.

Busqué miles de maneras de que por software o con alguna conexión extra (como un pull up) se pudiera solventar este problema, pero leyendo e investigando llegué a la conclusión de que no se puede, porque es un problema del adaptador en si; porque al parecer lo que hace que el pin CS, siempre esté ocupado es el convertidor de tensión de 5v a 3.3v.

La solución que le dí a mi problema y que yo creo es la más adecuada si quieres conectar varios dispositivos periféricos- que se comuniquen por el protocolo SPI- junto con un adaptador de memoria SD, es que adquieras algun adaptador que no posea el convertidor de 5v, sino uno que se alimente con 3.3v. Ni siquiera te recomendaría uno que posea los dos niveles de tensión. Simplemente compra aquel que SOLO se pueda alimentar con 3.3v.

A continuación les dejo un foro que encontré en el que hablan del problema que tuve.

Saludos!

Como haber siempre hay una solucion.
POnes un driver como este que habilita deshabilita todas las puertas SPI y solucionado.

Este es un transceiver 74hc245 que como dije deja pasar ida/vuelta las comunicacones.
Conectas cada pin en la direccion adecuada y con los pines de habiiltacion /OE o sea que habilitas con nivel bajo.
Debes fijar DIR en una dirección.

Conectas SCLK y MOSI en una dirección, conectas MISO al reves porque es entrada y con /OE controlas tu SD

este es reemplazo M74HC595 de >> 74hc245 ??

Porque reemplazo? El integrado de la familia TTL HC se llama asi 74HC245 y lo fabrican muchas empresas.
Que alguna lo llame M74HC245 no lo hace reemplazo.

Hay muchas familias además que tienen variación de características de todo tipo a la original 74245 que ya no debe conseguirse, tienes los LS, los HCT, ACT y tantas que no recuerdo.

Ademas el M74HCXXX lo fabrica STMicroelectronics
Texas lo llama Sn74HC245
Motorola lo llama MC74HC245
NXP lo llama igual 74hc245
y muchos otros mas, para mi no existe un reemplazo, si diferentes fabricantes.

ok surbyte, el problema que aca en Concordia no se consigue ni puntas de cerámica para soldador, lo que es peor no se consigue la medida del mio en hierro, me tuve que trae de china hace como 10 meses un pack de 700 capacitores cerámicos y otro de 2000 resistencias, para no hacerme mala sangre

Yo vivo en Comodoro Rivadavia, no es muy distinto de Concordia.