Forum: Mikrocontroller und Digitale Elektronik STM32 I2C reichen interne Pull Ups?


von Bert S. (kautschuck)


Lesenswert?

Hi,

Ich möchte gerne meinen STM32 über I2C mit einem Arduino kommunizieren 
lassen, doch haben beide ja keine externen Pull-Up Widerstände. Reichen 
da die Internen? Und spielt es eine Rolle für I2C das der STM32 auf 3.3V 
läuft oder ist der auch 5V kompatibel (will den ja nicht töten)? Handelt 
sich um einen STM32F303x6.

von derjaeger (Gast)


Lesenswert?

>Reichen da die Internen?

Nein, immer externe benutzen z.B. 4k7

>Und spielt es eine Rolle für I2C das der STM32 auf 3.3V  läuft oder ist der auch 
5V kompatibel (will den ja nicht töten)

Ins Datenblatt schauen nach den Pins
>STM32F303x6

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

ST selber verbaut auf den Discovery Boards externe Pullups, beim z.B. 
F4-Discovery sinds 4,7 kOhm. Das hätten sie nicht gemacht, wenn die 
internen reichen.

Bert S. schrieb:
> Und spielt es eine Rolle für I2C das der STM32 auf 3.3V
> läuft oder ist der auch 5V kompatibel (will den ja nicht töten)

Dazu musst du im Ref. Manual nachschauen, ob der von dir gewählte I²C 
Bus auf 5V toleranten Pins aufläuft. Wenn ja, kein Problem und du 
schaltest die Pullups gegen +5V. Wenn nein, wirds etwas knapp, könnte 
aber klappen, dann allerdings darfst du die Pullups nur gegen 3,3V 
legen.
In jedem Fall musst du die Pins als Open Collector (Open Drain) 
konfigurieren.

von Stefan F. (Gast)


Lesenswert?

Lego NXT verwendet 82k Ohm Pull-Ups und das ist richtig mies. Man fängt 
sich damit allerlei Störungen ein.

von Bert S. (kautschuck)


Lesenswert?

Ok, danke, werde das mal im Datenblatt nachschauen.

von Bert S. (kautschuck)


Lesenswert?

Die Pins sind nach Datenblatt 5V tolerant. Auf dem Board habe ich nur 
einen 3.3V Spannungsregler, denkt ihr es reicht einen pull up für SDA 
und
SCL nach 3.3V zu verwenden?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Bert S. schrieb:
> denkt ihr es reicht einen pull up für SDA
> und
> SCL nach 3.3V zu verwenden?

Wie o.a. wird es etwas knapp. Der AVR sollte die 3,3V als high erkennen, 
aber wenn es geht, mach die Pullups auf seine Seite gegen 5V. Ist halt 
eine Fehlerquelle weniger.

von Stefan F. (Gast)


Lesenswert?

Löte sie doch an das Arduino Modul.

von Peter D. (peda)


Lesenswert?

Das ist eine Frage der Leitungslänge.
Ich hab z.B. einen 24LC512 direkt an einen ATmega328 gehängt, geht 
problemlos. Die Leitungslänge für SDA und SCL ist ~10mm.

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.