Forum: Mikrocontroller und Digitale Elektronik 2x HW Uart / Sinnvoll?


von Michael P. Jung (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich moechte eine Hardware entwickeln um von RS232 auf diverse andere
Bussysteme umzusetzen. Zum einen I2C weil es dafuer sehr viele schoene
und guenstige Sensoren und Aktoren gibt. Zum anderen habe ich vor
kurzem von dem DS1820 gehoert. Ein Temperatursensor mit 1-Wire(TM)
Bussystem. Ziemlich geniale Geschichte und absolut lowcost. (Datenblatt
als Anhang)

Jetzt meine eigentliche Frage:
Brauche ich fuer einen solchen Einsatz ueberhaupt zwei Hardware UARTs?
Ich koennte genausogut Port1 eines MSP430F1232 mit einem Interrupt
belegen und bitweise die Daten einlesen. (Ist umstaendlich, aber es
geht.) Bringt mir ueberhaupt ein zweites Hardware UART im Falle
1-Wire(TM) irgendwelche vorteile, oder ist das Geldverschwendung? -

Der kleinste/guenstigste MSP430 mit zwei Hardware UARTs ist der
MSP430F147 (32KB+256B Flash Memory, 1KB RAM). Dank seiner Bauform ist
das stecken auf ein Experimentierboard gestorben was jedoch auch nicht
weiter tragisch ist, da ich sowieso fuer die Anwendung ein eigenes
Board entwickeln muss. - Und das wird vorerst mit JTAG Schnittstelle
gebaut. :-)

Bin ich vieleicht auch auf dem Holzpfad und habe mich irrsinnigerweise
in den MSP430 verliebt? Auch Tipps zu anderer Hardware (ATMEL, PIC,...)
sind willkommen.


Es wird zeit fuer ne Prise Schlaf...
Gute Nacht,

Michael

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Hallo,

die U(S)ARTs nützen dir weder bei 1-Wire noch bei I2C etwas, das muss
man sowieso in Software machen. Ein paar der "größeren" MSP430 haben
Hardware-I2C, aber das ist überhaupt nicht nötig.

Andreas

von Markus Kaufmann (Gast)


Lesenswert?

Hallo Michael,

die U(S)ARTs sind für RS232 gedacht. Für andere Protokolle (z.B. I2C)
gibts teilweise auch Hardwareunterstützung. I2C ist ein (geschützter)
Begriff von Philips(?), deswegen nennen die anderen Hersteller das
manchmal anders, bei Atmel heißt es TWI.

Außerdem findet man oft noch Unterstützung für das SPI-Interface.
Hardwareunterstützung für das 1-Wire-Protocol kenne ich nicht.

Ob man die Schnittstellen unbedingt in Hardware braucht, hängt vor
allem von der Systemlast und der Geschwindigkeit der Schnittstellen ab.
Wenn Du z.B. Daten mit 400kHz von einem EEPROM lesen willst und
gleichzeitig mit 115200bps auf RS232 zugreifen willst, dann ist
Hardwareunterstützung sicher eine große Erleichterung. Andererseits
gibts sehr viele Anwendungen, bei denen sich der Microcontroller auch
bei 1MHz Takt noch langweilt. Ein DS1820 nach RS232-Umsetzer ist sicher
so ein Fall.

Markus

von Michael P. Jung (Gast)


Lesenswert?

@Andreas: Laut dem Datenblatt hat sogar schon der MSP430F1232 ein
Hardware USART (ich muss mal raussuchen wofuer das S steht) das I²C
unterstuetzt. In den Datenblaettern ist das zwar mit einem PRELIMINARY
Wasserzeichen hinterlegt, dennoch sollte diese Funktion existieren.

Ich kann also beruhigt den Interrupt fuer die Datenpins von Port 1
anschalten und als Waechter fuer RX laufen lassen. Btw. Wenn ich nun
hergehe und 1-Wire machen will, dann muss ich staendig die Direction
umschalten. Kostet das nicht auch Cycles und kann einen faelschlichen
Interrupt erzeugen? Gibt es zum Thema 1-Wire bereits existente
Dokumentation um mit einem MSP430 zu realisieren?

Ich denke, dass ich dann doch lieber bei der fuer mich einfachen
Bauform des MSP430 bleibe. Mehr RAM und mehr Flash ist zwar auch
reizvoll, jedoch deutlich umstaendlicher zu handlen und wirklich noch
nicht notwendig.

Jetzt geh ich aber wirklich Schlafen,
Michael

von Markus Kaufmann (Gast)


Lesenswert?

Hallo Michael,

also im Datenblatt dieses MSPs kann ich nur sehen, daß der USART auch
SPI kann. Von I2C finde ich da nichts. In der Übersicht
http://focus.ti.com/docs/prod/productfolder.jhtml?genericPartNumber=MSP430F1232
steht allerdings, daß er I2C in Software realisiert.

Markus

von Michael P. Jung (Gast)


Lesenswert?

Hoppla,

ich hatte mich auf die MSP430x1xx User Guide bezogen. In dieser wird
das USART auch als I2C kompatibel beschrieben. Ich hab eben in dem
Datenblatt nachgesehen und auch kein I2C gefunden. Waer ja auch zu
schoen gewesen...

Konkret heisst das fuer mich, dass ich sowieso I2C und 1-Wire via
Software erledigen muss. Komm ich wohl nicht drum rum
"Bit-Schiebereien" zu veranstalten. ;-)

von Markus Kaufmann (Gast)


Lesenswert?

Hallo Michael,

Du kannst ja einen AVR verwenden. Einige davon (z.B. Mega8) machen I2C
in Hardware.

Markus

von Sebastian Voitzsch (Gast)


Lesenswert?

Hallo Michael,

in meinem Projekt (mal wieder 'nen MP3-Player...) verwende ich I2C
(damit wird der Decoder konfiguriert), SPI (Datenverbindung zum
Controller) und RS-232 (derzeit noch Online-Verbindung zum Rechner,
Steuerung, Debug-Ausgaben etc.). Das Ganze mit einem ATmega 162L: SPI
und RS-232 in Hardware, I2C per Software, der 162 hat kein
Hardware-I2C. Für die Softwarelösung habe ich im Netz eine Routine
gefunden, die funktioniert wunderbar. Gerade, wenn man via I2C nur ein
paar Daten und nur ab und an lesen muß (wie bei mir die Konfig-Daten
für den Decoderchip), funktioniert das wunderbar.

Gruß,
Sebastian

von KoF (Gast)


Lesenswert?

ich weiß, dieser beitrag ist schon sehr alt, aber kennt jemand solch
eine iic routine und könnte sie mir zeigen???

auch suche ich immernoch die initialiierung für die
softwareemulation...

mfg KoF

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.