IIC-Spezifikation einhalten mit ATmega

OP #1921719
Lesenswert?

Hallo,

hoffe hier kann mir jemand weiterhelfen.
Kann es sein, dass die Hardware-TWI-Schnittstelle nicht die
Spezifikation des IIC-Buses einhält?
Ich meine, dass das SDA-Signal mindestenz 5µs noch anliegen muss wenn
SCL schon low ist. tHD;Date data hold time.( Bei 100Khz )
Hab nichts gefunden, wo man da drehen kann. OK Software-Schnittstelle 
machen. Hab aber schon ein größeres Program, das ich nicht unbedingt 
mehr umstricken will.

Ich bin auf das Problem gekommen, weil ich nen anderen IIC-Bus 
Teilnehmer habe, der das leider sehr genau einhält und Probleme macht 
wenn das nicht so ist. Vielleicht kann mir jemand helfen. Bin für jede 
HILFE sehr dankbar.

Gruss patt
#1921784
Lesenswert?

Patt :-) schrieb:
> Ich meine, dass das SDA-Signal mindestenz 5µs noch anliegen muss wenn
> SCL schon low ist. tHD;Date data hold time.( Bei 100Khz )

Also laut offizieller NXP I2C-Spezifikation (S.32, Table 5) ist tHD;DAT 
min = 0ns.
Die 5µs gelten nur für den CBUS (3-Wire).
Auch ein original NXP I2C-Master, wie z.B. P80C552 macht nur knapp über 
0ns bei 24MHz CPU-Takt (0,3µs bei 12MHz).
5µs sind schon rein logisch nicht möglich, da ja SCL nach 4,7µs wieder 
high ist.

Wenn Dein IC also mehr als 0ns benötigt, hält er die I2C-Spezifikation 
nicht ein.
Da hilft wohl nur, sich in SW das nicht I2C konforme Timing selber zu 
stricken. Der Hersteller wird kaum seinen IC korrigieren.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren