¿Cómo conectar spi de 3 cables con un arduino a la resistencia digital Maxim DS1801?

0

Acabo de recoger un Arduino Due con el chip SAM3x 3.3v. Estoy intentando comunicarme con un potenciómetro digital para controlar el nivel de volumen de un amplificador, pero no tengo ni idea de cómo Ir enganchando la conexión SPI de 3 hilos. Si estoy en lo correcto, ¿el Arduino no usa una configuración de 4 cables?

He visto que es posible desde enlaces como esto pero para se honesto contigo no lo entiendo ¿Alguien puede descomponerlo y decirme exactamente dónde conectar los pines para D, RESET (barra) y CLK en el DS1801 en el Arduino Due?

    
pregunta John August

1 respuesta

2

Tenga en cuenta que esto no es específico de Arduino, sino de cualquier maestro SPI.

Unidad DS1801 CLK de entrada desde SPI master SCLK output.

Entrada DS1801 D de la salida maestra de SPI, datos de entrada de esclavo (puede denominarse MOSI o, a veces, DOUT para la salida de datos)

Los datos SPI Master-In, Slave-Out MISO no necesitan estar conectados a nada. Opcionalmente, puede controlar MISO desde la salida DS1801 COUT : esta es la "salida en cascada" del registro de desplazamiento interno. Los datos que aparecen en COUT son los mismos datos que escribió originalmente en la entrada D, pero con un retraso de 16 bits (porque DS1801 usa un registro de desplazamiento de 16 bits para recibir comandos de SPI). Con esta conexión, puede verificar en el software que el dispositivo DS1801 está conectado, esto puede ser útil si está alejado del maestro SPI. De lo contrario no te preocupes por eso.

Drive DS1801 ~RST de entrada de SPI master CS output, pero tenga en cuenta que esta señal es una habilitación de chip SPI active-high en lugar de la más común active-low chip habilitado. En el software, la unidad CS alta (1) cuando está activa justo antes de ejecutar la transferencia SPI, y luego la unidad CS baja (0) cuando está inactiva. Esto es justo lo contrario de la mayoría de los códigos SPI de ejemplo que encontrarás.

La mayoría de los sensores de temperatura Dallas Semiconductor (ahora Maxim Integrated) utilizan este método de selección de chip con restablecimiento activo / SPI activo alto. Es un poco inusual, pero funciona bien.

Las cosas específicas de Arduino involucran llamar a digitalWrite(slaveSelectPin, HIGH); luego a SPI.transfer(data); y terminar con digitalWrite(slaveSelectPin, LOW); . El Arduino viene con un código SPI de ejemplo; puede hacer preguntas de seguimiento específicas de Arduino en enlace

Divulgación completa: soy ingeniero de aplicaciones y diseñador de kits de evaluación en Maxim Integrated; Si tiene más preguntas, póngase en contacto con nuestro equipo de aplicaciones a través del enlace de Soporte en el sitio web de Maxim Integrated.

    
respondido por el MarkU

Lea otras preguntas en las etiquetas