Estoy intentando configurar un programa simple (vista de laboratorio) para usar un potenciómetro digital como resistencia variable y luego leer el voltaje. Precisamente he utilizado un dpot SPI con éxito, sin embargo, estoy teniendo problemas al cambiar a un dpot controlado por i2C.
Siguiendo la hoja de datos que se encuentra aquí ( enlace ) He realizado las siguientes conexiones.
[1] A1 - > 5V
[2] W1 - > Entrada analógica
[3] B1 - > DGND
[4] Vdd - > 5V
[5] SHDN - > Vdd (5V)
[6] SCL - > I2C SCL
[7] SDA - > I2C SDA
[8] AD0 - > Salida analógica 0V
[9] AD1 - > Salida analógica 0V
[10] DGND - > DGND
[11] Vss - > DGND
[12-14] - > Sin conexiones
Cuando hago estas conexiones y ejecuto mi programa, termino leyendo un voltaje constante que no cambia con la variación de la entrada de 8 bits. Además, estoy experimentando un sobrecalentamiento del chip si el programa se ejecuta durante demasiado tiempo, lo que no debería estar ocurriendo.
Hay varias áreas en las que creo que el error puede surgir de:
- Las conexiones de pines descritas anteriormente son incorrectas.
- La dirección del esclavo es incorrecta. No estoy seguro de si debo enviar salidas analógicas o digitales a los pines AD para definir la dirección del esclavo. los estados de la hoja de datos "Paquetes de bits de dirección programables del pin. Deben coincidir con los estados lógicos en el pin AD1 y el pin AD0". He establecido tanto el valor lógico bajo (creo) y, por lo tanto, supongo que AD0 y AD1 son 00. Por lo tanto, el bit de dirección del esclavo es 01011 y luego 00 es 255. También he intentado configurar ambos en boolean false con una salida digital pero Experimento los mismos problemas.
- Soldadura incorrecta. El chip es un chip SOIC y lo he soldado a mano en una placa adaptadora (winslow w9502RC) para poder colocarlo en mi tablero.
¿Alguien tiene una idea de cuáles podrían ser los problemas?