I2C - pull up interno y externo

3

Tengo una duda en la resistencia I2C pull up. Actualmente estoy desarrollando un módulo I2C usando pines GPIO. He usado una resistencia de extracción externa (10k) para las líneas SDA y SCL. ¿Necesito habilitar el pull up interno también junto con el pull up externo o el pull up externo es suficiente? ¿Cómo afecta la comunicación la combinación externa e interna? Por favor responda

Gracias

    
pregunta Akshara Prasad

2 respuestas

2

Depende de la arquitectura específica que estés usando. Si el microcontrolador al que te diriges tiene dominadas internas, debes asegurarte de que sean lo suficientemente fuertes si las habilitas para poder omitir las flexiones externas.

Si no es lo suficientemente fuerte, entonces no es necesario que lo habilites y estarás bien con solo usar dominadas externas.

Si por alguna arquitectura extraña, el pull-up siempre está habilitado, puede tratar efectivamente el pull-up interno como una resistencia en paralelo con el pull-up externo, ya que ambos estarán llegando al VCC. Ten en cuenta que cuando están en paralelo, la resistencia resultante puede ser demasiado baja, así que asegúrate de que el resultado final todavía sea capaz de ser un pull-up adecuado.

    
respondido por el Funkyguy
0

Si lo comprendo correctamente, querrás golpear el bus I2C. Hay algunas cosas que debes tener en cuenta.
1. Los AVR y los PIC tienen detectores internos de resistencia bastante alta, por lo que de todos modos necesitas un resistor externo (2k a 4.7k).
2. Asegúrese de que sus GPIO tengan drenaje abierto, ya que el bus I2C es un bus de drenaje abierto. Sin embargo, los AVR o PIC no te permitirán hacer eso. La forma de hacerlo es utilizar el registro de dirección al conducir el bus en lugar del registro de salida y establecer el valor de salida en 0. Por lo tanto, si desea conducir el bus bajo, configure la dirección GPIO en salida y cuando quiera conducir el bus alto establecido en la entrada.

    
respondido por el Alexxx

Lea otras preguntas en las etiquetas