Forum: Mikrocontroller und Digitale Elektronik kleinster uC mit I2C (nicht unbedingt AVR)


von hmann (Gast)


Lesenswert?

Hi!

Ich suche den kleinst möglichen uC der ein I2C interface besitzt.
Ich will mehrere davon in einem Multimastersystem als Master und Slave
laufen lassen. Es sollte also ein vollwertiges I2C interface sein.
Ich habe schon einiges gesucht, aber entweder sind die uC zu groß oder
sie haben kein I2C.
Wenn möglich sollten es 8 Pins max. sein.

Danke
  hmann

von rayelec (Gast)


Lesenswert?

Guck dir mal den C8051F305 von Silicon Laboratories (www.silabs.com) an.
Auch die anderen C8051F3xx könnten in Frage kommen!

Die Daten des F305:
3x3mm Gehäuse
25MHZ Core (ca. 15MIPS)
2KB Flash
Interner Osc.
In-Circuit Debugging

Ok, ich gebs zu, zum Löten braucht's eine gut geätzte LP, gute Nerven
und etwas Geduld. Aber mit einem feinen Lötkolben geht es ganz flott,
ich habe selber schon viele solche Gehäuse gelötet!

von KoF (Gast)


Lesenswert?

such dir irgend einen kleinen und implementiere es insoftware. es ist
nicht wirklich schwer!!! und viel code ist es auch nicht :-P

von Peter Dannegger (Gast)


Lesenswert?

@KoF

"such dir irgend einen kleinen und implementiere es insoftware. es
ist
nicht wirklich schwer!!! und viel code ist es auch nicht :-P"

Vergiß es !

Es ist sauschwer, kostet saumäßig Performance und ist sauviel Code.

Du hast bei 100kBit nur 4µs, um in den Interrupt zu springen und das
Bit auszuwerten !

Schau Dir mal den Software-Slave in der Atmel Application Note an, der
ist ständig nur in der I2C-Schleife und kann nichts anderes mehr
machen. Und das ist nur der Slave, also ohne Master- und
Arbitrationsschnulli.

Multimaster geht nur mit Full-Hardware-I2C effizient, also bei den AVRs
nicht unter ATMega8.


Peter

von hmann (Gast)


Lesenswert?

Hi!

Rayelec: Danke! Das ist genau das was ich gesucht habe. Jetzt muss ich
nur noch nen günstigen Distributor in D finden, aber das wird schon.

Ciao
  hmann

von bernd (Gast)


Lesenswert?

dsPIC30F2010 im QFN Gehäuse.

6mm x 6mm   allerdings 28 pin

bis zu 30MIPS extern oder interen Takterzeugung
bringt alle möglichen HW-interfaces mit und was man sonst noch bracht,
ebenfalls ICD tauglich.

von Tom (Gast)


Lesenswert?

@Peter

Ich möchte gerne per Software I2C LM75-Temperaturfühler und
SHT11-Luftfeuchtigkeitsfühler auswerten. Als uC sollen der MSP430F149
und MSP430F1232 zum Einsatz kommen. Werden die dadurch stark belastet?
Sie leisten maximal 8MIPS bei 8MHz. Kann ich die entgegenkommenden
Daten nicht einfach in einen Buffer schreiben und diesen dann
gemächlich auswerten?
Die Busfrequenz muss ich wohl so oder so sehr niedrig wählen, da die
Distanzen für I2C relativ gross werden (über zwei Meter für den ganzen
Bus, maximal 10m). Rechne ich mit 1kHz, dann bleiben theoretisch 8000
Operationen dazwischen. Das sollte doch gut auch noch für andere
Steuerungsaufgaben reichen. Ich bin ja gespannt, ob ich das
hinkriege...

FG

Tom

von Dominik S. Herwald (Gast)


Lesenswert?

> Werden die dadurch stark belastet?

Ich denke Peter bezog sich auf Software Slave und nicht Master.
Master ist super einfach in SW zu realisieren - natürlich nicht ganz so
schnell wie ein HW Interface aber kostet auch kaum Performance bei einem
8MIPS µC.

von Tom (Gast)


Lesenswert?

Herrlich, wenn das so ist! Ich muss nämlich wohl gleich zwei Stück
implementieren: Einen standard-konformen und einen für das
SHT11-Spezialformat. Aber wie gesagt, die Geschwindigkeit spielt kaum
eine Rolle, die Werte werden nur einmal pro Minute abgefragt und dann
zwischengespeichert. Ich kann's kaum erwarten bis die Sensoren hier
ankommen. Danke!

von Peter Dannegger (Gast)


Lesenswert?

@Tom

Single-Master ist einfach und klein, da nur er den Takt vorgibt und
deshalb auf nichts schnell reagieren muß.

Ein Multimaster oder Slave muß dagegen sauschnell auf einen fremden
Takt reagieren können und das geht nur mit Hardware-I2C effizient.


Wenn nur LM75 dranhängen, dann ist der µC der Singlemaster. Und da es
sich nicht lohnt Temperatursensoren öfter als 1s auszulesen, kostet das
auch kaum Performance.


Peter

von KoF (Gast)


Lesenswert?

@ TOM

willst du i²C für msp430`s haben? hab ich schon vor einiger zeit selber
gemacht und es funkioniert recht gut.

von Tom (Gast)


Lesenswert?

@KoF

Ja, sehr gerne! Hast du es in C implementiert? Poste deinen Code doch
in der Codesammlung oder schick mir eine Mail. Vielen Dank!

Tom

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.