Tengo un par de ADC en el mismo bus I²C, todos predeterminados en la misma dirección. Mi primer instinto me dice que use un multiplexor I²C como el TCA9544A , pero eso requeriría enviar un byte al MUX antes de obtener los datos del ADC y me gustaría evitar eso (ya que necesito leer datos continuamente con la misma rapidez como puedo).
Los ADC admiten la asignación de direcciones personalizadas a través de I²C, por lo que solo necesito asegurarme de que enviaré el byte de configuración a un solo ADC. Podría incluir un FET en la línea SDL para cada ADC para tener solo un ADC conectado durante la asignación de direcciones, pero probablemente haya una solución mucho más elegante, ya que debe haber un montón de personas con el mismo problema. Mis términos de búsqueda de Google simplemente no son lo suficientemente buenos para encontrar la respuesta :(
Este problema es, de hecho, bastante común. Aquí está la solución típica...
(Todo esto supone que tiene pines de repuesto para usar, lo que varía bien puede no ser el caso).
Si el chip tiene un pin de habilitación de chip (CE), debería poder usarlo para permitir múltiples dispositivos idénticos en el mismo bus y dirección. Desafortunadamente, su chip especificado no tiene este pin :(
Alternativamente, encienda los chips desde los pines MCU, lo que tendrá un efecto similar.
La primera es la mejor opción, ya que el chip no necesariamente tendrá que configurarse cada vez, y potencialmente podría estar ejecutando capturas de ADC mientras un chip diferente está usando el bus.
De lo contrario, el chip requerirá un poco de inicio y adquirirá tiempo cada vez que se habilite o inicie. Esto dañará el ancho de banda/la latencia, pero eso podría estar oculto.
Si no se puede hacer de la manera CE, y la alternativa es demasiado problemática para usted, entonces sí, lo más probable es que necesite algún tipo de IC de búfer. Hacen unidades que no requieren un comando de configuración. Vea el comentario de Mcmayer a la publicación original.
justamente
Clayton Louden
Transeúnte
el fotón
Clayton Louden
Nick Alexeev
Transeúnte
mcmayer
Clayton Louden