flera enheter på I2C buss...
flera enheter på I2C buss...
Skulle vilja koppla min PIC16F877A till en quad 10-bit DAC DAC6573 från TI och även ett seriellt eeprom från Microchip: 24LC512 eller liknande.
Eftersom både minnet och dac:en kan anslutas via I2C så tänkte jag använda det, men jag undrar om det går att ha flera enheter på en I2C buss eller om det finns något smidigare sätt att ansluta enheterna till PIC:en?
Eftersom både minnet och dac:en kan anslutas via I2C så tänkte jag använda det, men jag undrar om det går att ha flera enheter på en I2C buss eller om det finns något smidigare sätt att ansluta enheterna till PIC:en?
Du kan ha fler olika enheter på samma I²C-bus men märk väl: OLIKA enheter.
Varje enhetstyp/fabrikat KAN ha olika adressor men t.ex. EEPROM kan har samma adress oberoende på tillverkare. Men som sodjan säger: de flesta EEPROM har "lokala" adressbitar som medger att man kan ha upp till 8 st på bussen.
Man ska även (vid "många" enheter på bussen) ha koll på strökapacitanser, pull-up motståndsvärden osv så att specifikationerna på bussen kan upprätthållas.
Varje enhetstyp/fabrikat KAN ha olika adressor men t.ex. EEPROM kan har samma adress oberoende på tillverkare. Men som sodjan säger: de flesta EEPROM har "lokala" adressbitar som medger att man kan ha upp till 8 st på bussen.
Man ska även (vid "många" enheter på bussen) ha koll på strökapacitanser, pull-up motståndsvärden osv så att specifikationerna på bussen kan upprätthållas.
i databladet för DAC6573 står det att pull-up motsåndet ska vara: 1kohm - 10kohm och i databladet för 24LC512 står det att pull-up motståndet ska vara "typical 10 kohm for 100 KHz, 2 kohm for 400 kHz and 1 MHz"... sen står det i en exempel kod för EEPROM:et : "do not forget to connect to this point a 820 ohm pull up resistor to VCC", koden är för övrigt skriven av en Microchip ingenjör tror ja...
Hur viktigt är värdet på pull-up motståndet egentligen? Vad tycker ni jag ska välja?
Hur viktigt är värdet på pull-up motståndet egentligen? Vad tycker ni jag ska välja?
Det som står i databladet för EEPROM'et verkar väll vara "fylligast".
Med dina två kretser är det säkert inte kritiskt, speciellt inte om
du inte kommer att köra nära övre hastightetsgränsen (vad den nu är).
Jag skulle välja 1-10 Kohm.
Lägre I2C hastighet = högre värde = lägre strömförbrukning, vilket kan
vara intressant om det är batteridrivet...
Och när det gäller app notes och exempelkod skriven av Microchip, så är
regel nummer 1 att "den är buggig"...
Med dina två kretser är det säkert inte kritiskt, speciellt inte om
du inte kommer att köra nära övre hastightetsgränsen (vad den nu är).
Jag skulle välja 1-10 Kohm.

Lägre I2C hastighet = högre värde = lägre strömförbrukning, vilket kan
vara intressant om det är batteridrivet...
Och när det gäller app notes och exempelkod skriven av Microchip, så är
regel nummer 1 att "den är buggig"...
