He leído que tenemos que levantar las líneas SDA y SCK porque las líneas son drenaje abierto/colector abierto. Pero no entiendo por qué no podemos usar el menú desplegable.
En segundo lugar, ¿por qué el valor de la resistencia cambia para diferentes velocidades de operación (creo que está relacionado con un pull-up débil/fuerte, pero no sé qué significa un pull-up débil/fuerte)?
I2C es un colector abierto. Lo que eso significa es que usa un transistor npn para sacar la línea de abierta (apagada) a tierra (encendida). Se utiliza un pull up para permitir la variación del voltaje al que trabaja el bus. La resistencia de sus pull ups cambia a diferentes velocidades y tamaño del bus y distancia del cable porque confía en la capacitancia del bus y el valor de la resistencia para cambiar el estado del bus. Es una red RC y el tiempo cambia a medida que cambia la frecuencia. Si su resistencia es demasiado débil, no puede cambiar la señal lo suficientemente rápido a las velocidades i2c más altas. Si es demasiado fuerte, sucede lo mismo y no puede colocar todos los dispositivos en el bus que desea.
La razón por la que no se usan pull downs es porque una señal con referencia a tierra es más fácil que una señal con referencia a VCC, si desea poder usar voltajes arbitrarios en el bus independientemente de VCC. Un transistor PNP de controlador de lado alto necesita un voltaje base cercano al voltaje del colector, lo que lo hace más difícil en comparación con el controlador NPN de lado bajo.
makoto
manu3l0us
makoto