PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TWI Portexpander, Was können die Ports ?



JoeM1978
28.01.2013, 17:18
Meine Hardware besteht aus dem myAVR-MK2(incl mySmart-USB) mit Atmega 8 bzw. Atmega328
und dem myTWI PortExpander.

Also... Mir ist schon soweit klar, das die Ports als Input oder Output fungieren können.
Nur würde mich interessieren inwieweit ist das auch für andere Dinge nutzbar...

z.b. funktioniert PulseIn (zum einfachen auslesen von RC-Signalen) an einem solchen port?
PWM kann ich mir vorstellen wird nicht möglich sein.
Inwieweit ist es Programmtechnisch machbar z.b. Ultraschall-echo auszuwerten ?
Macht es sinn bzw. ist es aufwendig ein Display über TWI-Ports anzusteuern?

Vieleicht könnt ihr mir grob einen Überblick geben, was sinnvoll ist und was nicht.
Damit ich nicht späther wenn mein Projekt erweitert wird die ganze Elektronik raussreissen muss und neu machen.

Was ich möglichst nutzen möchte wäre:

Motorsteuerung über Dual-H-Bridge,
3-4 Ultraschallsensoren
4 Bumper
2x16 LCD
RC-Empfänger (je nach möglichkeit bis 8 Kanäle)
und späther soll evtl. eine Funk-Verbindung zum PC dazu kommen

dussel07
28.01.2013, 18:03
HIER (http://www.svens-projekte.de/15.html) hat es zB. ein Beispiel für die Ansteuerung eines Displays.
Habe ich selber nachgebaut - funktionier prima!

Kampi
28.01.2013, 18:12
Hey,

sowas wie PulsEin und PWM (Software-PWM) kannst du evtl. theoretisch mit einem TWI Portexpander machen aber du bist an die Geschwindigkeit vom TWI gebunden (also nicht empfehlenswert).
Auch Ultraschallecho mittels TWI auswerten ist mist, da dir die Geschwindigkeit vom TWI alles kaputt macht (vorausgesetzt du meinst Ultraschallmodule die die Entfernung in der High-Pegelzeit ausgeben, da dort eine falsche Messzeit ein falsches Ergebnis bringt).
Ein Display über TWI ist schon eher sinnvoll, da es in den meisten Fällen bei einem Display egal ist wenn sich das Display 20µs später aktualisiert (auch hier wieder....wenn es Zeitkritisch ist eher nicht verwenden).
Motorsteuerung kannst du auch noch dadrüber realisieren und ggf. auch die Bumper.
Funkverbindung über TWI? Sowas wie Soft-UART mit einem XBee z.B.? Weil das wäre sehr....sonderbar....TWI->Soft-UART->Funk->UART->RS232?
Prinzipiell würde ich bei allem was Zeitkritisch ist von den GPIOs eines Portexpanders abraten, da dir der TWI da Probleme machen könnte.

JoeM1978
28.01.2013, 18:24
Dann würde ich fast sagen ich muss die Funktionen "dezentralisieren"... also Aufgaben auf mehrere MCs verteilen
... oder alternativ nen Controller ala 1000Füssler besorgen.

Denn eins ist klar... das Projekt ist nicht als Fix-und-Fertig baustelle gedacht sondern soll mehr eine "universelle" Plattform
für alle möglichen Experimente werden.

Das verlangt ein gewisses Maß an erweiterbarkeit und sollte auch beim 10. Sensor noch die Möglichkeit bieten exakt messen zu können.

Vieleicht sollte ich mir überlegen eine Schnittstelle als Grundlage zu nehmen, an die ich dann (fast) beliebig viele MC anstecken kann anstadt
mit Portexpandern zu arbeiten.

porter91
28.01.2013, 18:54
Hey baue gerade selber so etwas ähnliches. Wenn ich die dann raten darf die I2C (Twi) -Schnittstelle zu nehmen, dazu gibt es hier im RN-Bereich ein gutes Tutorium.

Besserwessi
28.01.2013, 18:56
An den TWI/I2C Bus kann man auch einen 2. µC hängen. Der kann dann auch Dinge wie PWM, PulseIn oder Servos steuern. Für mehr als einfache, langsame IOs sind die Portexpander nicht gedacht.

JoeM1978
29.01.2013, 17:29
Alles klar... Werde mich wohl auch in diese Richtung weiterbewegen, das ich mehrere Microcontroller per Schnittstelle komunizieren lasse.
Ist die TWI/I²C-Schnittstelle eigentlich auch bei anderen Chips also von anderen Herstellern "Gängig" und funktioniert die Komunikation problemlos untereinander ?

RoboHolIC
29.01.2013, 18:31
Ja, I2C ist ganz genau spezifiziert, "interoperabel" und wird von seeeehr vielen Controllern unterstützt. Das ist faktisch Standardausrüstung bei Microcontrollern. Ich kenne nur ganz einfache Typen, die das nicht können. Selbst da gibt es die Möglichkeit, I2C per Software zu emulieren.

Kampi
29.01.2013, 19:37
Hey,

TWI, I²C und SMBus ist auch alles dasselbe, nur halt von anderen Firmen.
I²C kam glaube ich von Philips, TWI von Atmel und SMBus von Bosch(?) (hab jetzt nicht nachgeguckt).
Die sind einfach nur zu "geizig" Lizenzgebühren etc. pp. zu zahlen und haben deswegen was eigenes gemacht....nur so als Randinfo falls du die Namen mal hören solltest :)

JoeM1978
29.01.2013, 22:31
Das ist gut zu wissen, das da unter verschiedenen Bezeichnungen dieselbe Schnittstelle werkelt.
Danke für die Info.

Gibts eigentlich schon Hardwaremässig systeme, wo man Microcontroller "stacken" kann?

...oder pack ich mir einfach ne Leiterplatte mit dem wichtigsten (Stromversorgung und TWI) drauf als
"Rückwand" in ein Gehäuse ? Wobei ja für jeden seperat dann die Pins und auch Pins
fürs Programmieren nach vorne geleitet werden müssen.

Klebwax
30.01.2013, 00:46
TWI, I²C und SMBus ist auch alles dasselbe, nur halt von anderen Firmen. I²C kam glaube ich von Philips, TWI von Atmel und SMBus von Bosch(?)

Beim SMBus ist es etwas anders. Auf den RAM-Riegeln im PC waren (und sind) I2C EEPROMS vom Typ 24Cxxx, in denen die Parameter der RAMs stehen. Die Adressleitungen des EEPROMs sind auf den Stecker geführt, so daß jeder Slot eine eigene Adresse bekommt. So kann das PC-Bios die Parameter für jeden Slot einzeln auslesen. Als es dann darum ging, auch noch andere Werte wie Temperatur dem Bios zur Verfügung zu stellen, hat Intel den SMBus definiert.

Es ist ein I2C Bus mit TTL Pegeln mit einigen sehr vernünftigen Erweiterungen. Er hat ein Timeout, d.h. die Clockfrequenz darf nicht beliebig klein sein, damit der Master nicht hängt. Und er hat optional eine weitere Leitung (ALERT), mit denen die Slaves einen Interrupt zum Master schicken können. Wenn man das im Hinterkopf behält, kann man I2C und SMBus gut zusammen betreiben. ALERT kann z.B. auf einen INT-Eingang des µC gelegt werden und man muß nicht so viel Pollen.

MfG Klebwax

RoboHolIC
30.01.2013, 15:24
TWI, I²C und SMBus ist auch alles dasselbe, nur halt von anderen Firmen. Für den SMBus stimmt das so allgemein nicht. Er basiert zwar auf der Übertragungslogik von I2C, merzt aber unter anderem die wesentliche I2C-Schwäche des fehlenden Timeout-Mechanismus aus und ist auch in Sachen Timing sowie Spezifikation der Spannungsgrenzen der Logikpegel nur bedingt kompatibel zu TWI bzw. I2C. Die Details habe ich in RN-Wissen unter den naheliegenden Suchbegriffen gefunden.

Kampi
30.01.2013, 21:47
Hey,

danke für die Korrektur.
Habs wohl falsch in Erinnerung gehabt. Dachte das wäre auch wieder so eine Lizenzgeschichte :)