Forum: Mikrocontroller und Digitale Elektronik Flankensteilheit bei TWI bzw. I2C


von Felix T. (felix)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen

Ich beschäftige mich seit kurzem mit dem Hardware-TWI des ATMega16 um 
damit den LED-Controller TLC59116 anzusteuern.
Als Software-Basis hab ich die beiden Code-Dateien aus diesem Beitrag 
hier übernommen:
Beitrag "TLC59116 ansteuern mit C"

Mit einem ganz einfachen Programm möchte ich auf den TLC59116 zugreifen. 
Mein Problem ist, dass die Rechteck-Impulse an SCL und SDA sehr stark 
verschliffen sind. Siehe dazu den Screenshot.
Das Programm:
1
volatile uint8_t test, adr;
2
int main(void)
3
{
4
  DDRC=  0b00000011;  //SCL und SDA als Ausgänge
5
  i2c_init();
6
  adr=0;
7
  while(1)
8
  {
9
    test=i2c_start(adr);
10
    _delay_ms(1);
11
    adr++;
12
  }
13
  return 1;
14
}

Wenn ich stattdessen über Software einen einfachen Rechteckimpuls an den 
beiden Pins erzeuge sieht das Signal sehr gut aus, siehe Screenshot.
1
volatile uint8_t test, adr;
2
int main(void)
3
{
4
  DDRC=  0b00000011;  //SCL und SDA als Ausgänge
5
  i2c_init();
6
  adr=0;
7
  while(1)
8
  {
9
    PORTC = 0b00000011;
10
    _delay_us(5);
11
    PORTC = 0b00000000;
12
    _delay_us(5);
13
  }
14
  return 1;
15
}
Zwischen beiden Screenshots wurde lediglich die Software geändert. An 
beiden Pins sind immer zwei Pull-Ups mit 4,7k nach 5V dran.

So richtig kann ich mir das nicht erklären woran das liegt. Habt ihr 
eine Idee? An was könnte das liegen? Im Datenblatt selbst konnte ich 
bisher keinen Hinweis finden, dass sich die Flankensteilheit oder 
Signalverhalten mit Registern konfigurieren lässt.

Danke schon mal im Voraus.

Felix

von Floh (Gast)


Lesenswert?

Felix Tischer schrieb:
> So richtig kann ich mir das nicht erklären woran das liegt. Habt ihr
> eine Idee? An was könnte das liegen?

Liegt am Prinzip des i2c. Auf Masse ist die Leitungskapazität sofort 
gelegt (da Schalttransistor), bis die Leitungkapazität aber wieder auf 5 
Volt ist, ist abhängig vom Ladewiderstand (Pullup).

Mit kleineren Pullups steigt die Flankensteilheit also, aber der 
minimale Widerstand wird durch die Treiberleistung der Buskomponeneten 
bestimmt.

von quitschibo (Gast)


Lesenswert?

hab ich vorhin hier im forum gefunden -jetzt ist es weg: 
http://youtube.com/watch?v=u9Lqmj1lars

von John (Gast)


Lesenswert?

quitschibo schrieb:
> hab ich vorhin hier im forum gefunden -jetzt ist es weg:
> http://youtube.com/watch?v=u9Lqmj1lars

Und womit?
Mit Recht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.