Forum: Mikrocontroller und Digitale Elektronik I2C zu langsam Xmega


von Arne (Gast)


Lesenswert?

Hi,

ich initialisiere mit
1
TWIC_MASTER_BAUD      = 2000000/(2*nSystemFrequency) - 5;
2
  TWIC_MASTER_STATUS      = TWI_MASTER_BUSSTATE_IDLE_gc;
3
  TWIC_MASTER_CTRLA      = TWI_MASTER_ENABLE_bm

meinen I2C, bzw. TWI - jedoch stimmt die Frequenz auf den Leitungen 
überhaupt nicht. Sie scheint total willürlich zu sein und liegt idR 
unter 10kHz und bremst mein Programm aus.

Die Kommunikation an sich funktioniert. Mein Systemtakt ist 2Mhz. Weiß 
jemand rat? Danke!

von da1l6 (Gast)


Lesenswert?

Hallo

i2c wird automatisch langsamer falls die Pullups zu schwach (hochohmig) 
sind.
Überprüfe mal die Hardware.

da1l6

von Arne (Gast)


Lesenswert?

Diese sind mit 1.5k dimensioniert.

von Flip B. (frickelfreak)


Lesenswert?

Welche slaves? Verlängern die eventuell die taktzyklen? Die dürfen das 
und deine Anwendung muss dagegen immun sein.

von Arne (Gast)


Lesenswert?

Ein einzige Slave, ein ADC: ADS1115.

von Pete K. (pete77)


Lesenswert?

> 2000000/(2*nSystemFrequency) - 5;

( 2000000 / 2*2000000 ) -5 = 0,5 -5 = kein I2C Takt

von Arne (Gast)


Lesenswert?

Pete K. schrieb:
>> 2000000/(2*nSystemFrequency) - 5;
>
> ( 2000000 / 2*2000000 ) -5 = 0,5 -5 = kein I2C Takt

Ich will keine 2Mhz I²C takt haben. Bei 200000 kommt "3" heraus.
Es lag übrigens an der Übergabe des Funktionsparameters. Falsches cast.

Man soll halt immer vollständigen Code zeigen...

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Oszibild, Schaltplan...

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.