PIEZAS: Potenciómetro de volumen de audio I2C (DS1807)

March 28, 2023 0 By mnylkp

El DS1807 consta de dos potenciómetros digitales logarítmicos (potes) para el ajuste de volumen de audio. Cada olla tiene 64 niveles de volumen más un ajuste de silencio. El nivel de volumen de cada olla se establece sobre una interfaz serie I2C de dos cables. Le mostraremos cómo conectar y conectar el DS1807 a continuación.

Potenciómetro de volumen de audio DS1807 I2C (DIGIKIY # DS1807 + -ND, $ 3.04)

Conexiones

Pirata de autobús
DS1807 (PIN #)

Gnd
GND (1)

Gnd
A2 (2)

Gnd
A1 (3)

Gnd
A0 (4)

Gnd
AGND (11)

Sda
SDA (12)

Reloj
SCL (13)

+ 5Volts
VCC (14)

Conectuimos el DS1807 a la herramienta de interfaz de serie universal del pirata de bus como se muestra en la tabla, los mismos principios básicos se aplican a cualquier configuración hecha a medida. Utilizamos la fuente de alimentación de 5 Volt de Pirata del autobús, pero el DS1807 también funcionará a 3.3Volts. I2C requiere una resistencia de pull-up en cada línea de señal, utilizamos las resistencias a bordo del pirata del bus conectadas a la fuente de alimentación de 5VOLT a bordo.

Conecte el DS1807 a una fuente de audio como se muestra en la página 3 de la hoja de datos. Conecte la señal de audio en bruto al PIN de H y conecte el PIN a tierra, la señal de audio atenuada provendrá del PIN de W.

Interfaz

Primero, configure el pirata de bus para el modo I2C, y active la fuente de alimentación de 5VOLT. Cubrimos este procedimiento en nuestro último puesto de repuestos.

I2c> v <-voltage Monitor Monitor de voltaje 9XX: 5V: 4.9 | 3.3V: 0.0 | Vpullup: 5.0 | I2c>

Con la fuente de alimentación configurada, verifique el monitor de voltaje (V) para asegurarse de que la suministro de 5Volt esté activa y que 5Volts esté presente en las resistencias de pull-Up.

I2C> (0) <- Lista Macros disponibles 0.Macro Menu Búsqueda de direcciones de 1.7bit I2C> (1) <- Ejecutar búsqueda de direcciones XXX Búsqueda de 7 bits I2C Space. Dispositivos encontrados en: 0x50 0x51 0x52 <-Direcciones I2c>

La macro de búsqueda de direcciones del pirata del autobús es una forma rápida de localizar dispositivos I2C sin verificar la hoja de datos. 0x50 es una dirección de escritura I2C porque el último bit es 0, 0x51 es la dirección de lectura (Última bit 1). 0x52 es probablemente una dirección de escritura grupal / global porque no tiene una dirección de lectura correspondiente.

También podríamos descubrir la dirección de la hoja de datos: la dirección base es 0101 más las tres bits de selección de direcciones (A0-2, todas conectadas a tierra, 000) y la broca de escritura o lectura (0 o 1) le da 0B01010000 (0x50).

I2C> [0x51 R R] <- Lea los valores de la maceta 210 condición de inicio de I2C 220 I2C Escribir: 0x51 GOT ACK: Sí <-Device Lea la dirección 230 I2C Leer: 0x3F <-pot0 230 I2C Leer: 0x3f <-pot1 Condición de parada 240 I2C I2c>

Primero, leemos los valores del potenciómetro al inicio. [emite la condición de inicio de I2C, 0x51 es la dirección de lectura del dispositivo, “R R” lee dos bytes, y] emite el comando i2c de parada. El valor de inicio predeterminado es 63 (0x3F), una posición por encima de MUTE (Hoja de datos Página 2).

I2C> [0x50 0B10101001 0] <- Escribe Pot0 210 condición de inicio de I2C 220 I2C Escribir: 0x50 GOT ACK: Sí <-DS1807 Dirección de escritura 220 I2C Escribir: 0xa9 Got ACK: Sí <-pot0 Write Command 220 I2C Escribir: 0x00 GOT ACK: Sí <-Volume para establecer Condición de parada 240 I2C I2C> [0x50 0B10101010 64] <- Escribir Pot1 210 condición de inicio de I2C 220 I2C Escribir: 0x50 GOT ACK: Sí <-DS1807 Dirección de escritura 220 I2C Escribir: 0xaa Got ACK: Sí <-pot1 Write Command 220 I2C Escribir: 0x40 GOT ACK: Sí <-Volume para configurar Condición de parada 240 I2C I2C> [0x51 R R] <- Lea los valores de nuevo para verificar 210 condición de inicio de I2C 220 i2c Escribir: 0x51 GOT ACK: Sí <-DS1807 LEER LA DIRECCIÓN 230 I2C Leer: 0x00 <-pot0 Value 230 I2C Leer: 0x40 <-pot1 Value Condición de parada 240 I2C I2c>

A continuación, actualizamos cada olla de volumen con un comando separado. 0x50 es la dirección de escritura DS1807, 0B10101001 (0xA9) es el comando para actualizar POT0, y 0 establece el volumen a pleno. La siguiente secuencia utiliza el comando Update Pot1, 0B10101010 (0XAA), y establece el volumen para silenciar (64, 0x40). Finalmente, usamos el procedimiento de lectura para verificar que los valores son correctos.

I2C> [0x50 0xa9 64 0] <- Escribe ambos valores de la olla 210 condición de inicio de I2C 220 I2C Escribir: 0x50 GOT ACK: SI 220 I2C Escribir: 0xa9 Got ACK: Sí <-update pot0 comando 220 I2C Escribir: 0x40 GOT ACK: SI <-pot0 Value 220 I2C Escribir: 0x00 Got ACK: Sí <-Pot1 Valor Condición de parada 240 I2C I2C> [0x51 R R] <- Lea los valores de atrás 210 condición de inicio de I2C 220 I2C Escribir: 0x51 GOT ACK: SI 230 I2C Leer: 0x40 <-pot0 Value 230 I2C Leer: 0x00 <-pot1 Valor Condición de parada 240 I2C I2c>

El comando Pot 0 Write también se puede usar para configurar ambos valores de potenciómetro con un solo comando. Use el comando POT0 Update (0B10101001, 0xa9) y envíe el valor POT1 (0) siguiendo el valor POT0 (64).

I2c> [0x50 0b10101111 0x20] <- actualizar ambas ollas con el mismo valor 210 condición de inicio de I2C 220 I2C Escribir: 0x50 GOT ACK: SI 220 I2C Escribir: 0XAF GOT ACK: SÍ