El PCA9955B es un controlador LED de 16 canales que cuenta con PWM programable y actual y tiene soporte de graduación . También presenta detección abierta / corta para todos los 16 canales, que se informa en los 4 registros de marcas de error EFLAG0 a EFLAG3 . Sin embargo, cuando leo esos registros obtengo valores inconsistentes. Los registros EFLAGx se dividen en cuartetos de dos bits, cuyos dos bits indican el estado de detección de errores para cada canal; cero significa que no hay error, 0x1
indica una condición de cortocircuito y 0x2
un circuito abierto.
De hecho, el registro de estado ( MODO2 ) tiene el bit 6 establecido, lo que significa que se detectó una condición de error en al menos un canal, pero cuando leí los cuatro registros EFLAG obtén 0x80
cuatro veces, independientemente de qué canal esté abierto o conectado a un LED, no intenté abreviar ninguno. Ocurrió mientras todos los 16 canales estaban conectados y eran funcionales. Pero también leí esos valores en una placa anterior que tenía varios canales no conectados.
Como informa la hoja de datos, la detección de errores no ocurrirá si los registros LDRx se configuran en 10b
o 11b
y el valor de PWM es menor que 8
o igual a 255
. No es el caso, ya que establezco el valor de esos registros en 0x20
, que está entre 8
y 255
.
Estoy usando un Atmel ATmega64M1 para hacer el trabajo I²C con una biblioteca de software propia, pero ya descarté posibles errores en el bus. Todos los chips I²C que he usado con mi biblioteca funcionan como se esperaba y comparé mis resultados con los de un Arduino y su soporte de hardware I²C. También he comparado las señales con un osciloscopio y no hay diferencia. Así que tiendo a creer que hay algo en particular con ese chip que no está en la hoja de datos ...
Dudé en preguntar la primera vez que usé el PCA9955B, pero ahora tengo dos de ellos funcionando completamente, pero esa misma característica, estoy publicando mi pregunta aquí. ¿Alguien puede explicar por qué obtendría valores inconsistentes para la detección de errores mientras el chip parece comportarse perfectamente de otra manera?
El chip es un PCA9955BTW Lo ordené a Digi-Key. Excepto en ese detalle, el chip se ajusta a la hoja de datos.