Conexión de SDI y SDO a un solo pin DATA

En el acelerómetro MMA7455 , solo hay un pin DATA que se usa tanto para la entrada como para la salida. En el manual me dice que conecte este pin a SDI y SDO. Ahora todo está bien, pero en mi chip, estos son dos pines separados.

Si conecto los pines SDI y SDO al pin DATA, ¿los datos que salen de SDO no irán también al pin SDI? ¿Esto no causaría ningún problema?

¿Hay algún almacenamiento en búfer que pueda almacenar potencialmente los datos que ingresan a través de SDI? (Entonces, tal vez después de enviar algo fuera de SDO, pueda borrar el búfer en SDI para evitar leer lo que acabo de enviar).

ingrese la descripción de la imagen aquí

Respuestas (2)

Según la imagen, parece que tiene una placa/módulo de conexión para el MMA7455, de Parallex. El chip en sí permite spi de 4 y 3 cables, pero ese módulo solo tiene habilitado el modo de 3 cables.

Pero eso no es realmente un problema. Lo que pasa con el modo de 3 hilos es que es medio dúplex, solo transmite de una manera a la vez. Y este dispositivo es un dispositivo esclavo, no envía datos arbitrarios en todo momento. Al conectar sdi y sdo al mismo pin, solo tiene que liberar el pin sdo (modo tristate/input) cuando espera leer datos. Usted controla el reloj para controlar cuándo y qué tan rápido envía datos el acelerómetro. Afirma el pin cs, envía la dirección de registro con el bit de lectura, luego, antes de comenzar a registrar los datos, libera el pin SDO. Borra su búfer, luego registra los datos. Si no está listo, no marque el reloj spi.

Lo que quiere / necesita hacer también es echar un vistazo a la hoja de datos del chip, no solo a la hoja de datos del módulo.

Con este tipo de chip, no hay muchas ventajas en usar el periférico SPI integrado del microcontrolador. Simplemente conecte el acelerómetro a algunos pines IO de propósito general y escriba el software para hacer las formas de onda que se muestran en el diagrama de tiempo de la hoja de datos. ¡Estilo bit-bang!

O use el modo I2C en su lugar.

Es cierto que un acelerómetro no es apto para producir tantos datos que la ralentización de ~4x por el uso de E/S bit-bang plantearía un problema, y ​​la sugerencia de usar E/S bit-bang es buena. Sin embargo, vale la pena señalar que la pregunta es igualmente aplicable a otros dispositivos que pueden suministrar o consumir suficientes datos para que el rendimiento sea un problema.