PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Microcontroller zum verbinden von RS232 mit I2C



TinaW
11.11.2005, 12:05
Hi,

ich habe mir was zusammengebastelt mit dem ich über die serielle Schnittstelle den i2c-Bus steuern kann. Das funktioniert vom PC aus auch wunderbar, jetzt würde ich gerne das Gleiche auch mit einem PDA (iPaq) machen. Leider muss ich wenn ich den Adapter von RS232 auf i2c benutze die RTS und die DTR Leitungen abfragen. Auf dem PC ist das auch kein Problem auf dem PDA dagegen dauert das eine kleine Ewigkeit (~50ms pro Abfrage), das Schreiben ist dagegen ausreichend schnell(<<1ms pro setzen einer Leitung).

Jetzt habe ich mir überlegt das ich statt des Adapters einen Microcontroller verwende. Ich gehe zum einen davon aus das dies schneller wäre und zum anderen könnte der ja einige Berechnungen übernehmen. Wenn der Microcontroller Berechnungen übernimmt würde ich auch nur selten (~einmal pro Sekunde) vom PDA aus Lesen/Schreiben.

Jetzt wollte ich fragen ob mir jemand sagen kann was ich dazu benötige. Also ich vermute mal ich brauche einen Microcontroller (sollte wenig Strom verbrauchen) und irgendwie muss ich den Programmieren können (Entwicklungsumgebung?). Ich denke das einfachste für mich wäre wenn ich ihn in C programmieren könnte, wenn es sein muss auch Assembler.

Also welchen Microcontroller?
Welche Programmiersprache + Entwicklungsumgebung?
Wie bekomme ich das Programm auf den Microcontroller?

Hmm wie groß ist wohl der zeitliche Aufwand für ein solches unterfangen? Also programmieren kann ich natürlich aber Löten & Schaltungsentwurf sind leider nicht meine stärken und ätzen habe ich noch nie gemacht. Würde ich wenn es irgendwie geht auch vermeiden wollen.

(Ich hoffe das ist das richtige Forum, eigentlich geht es ja um Microcontroller aber wenn ich schon wüsste welchen ich nehmen muss dann bräuchte ich ja nicht fragen ;-))

SprinterSB
11.11.2005, 12:43
RS232 nach I²C gibt es auch fertig aufgebaut http://www.horter.de

Falls es denn ne Eigenentwicklung sein soll, stellt sich die Frage, was der µC sonst noch können soll.

Auf jeden Fall ein Controller mit UART und I²C-Hardware. Als da wären
-- AVR (8 Bit von Atmel (http://www.atmel.com))
-- Arm (32 Bit, Atmel (http://www.atmel.com))
-- PIC (8/16 Bit, Microchip (http://www.microchip.com))
-- diverse 8051-Derivate

Bei Atmel heisst die I²C-Hardware TWI, das hat aber nur lizenzrechtliche Gründe.

-- wie ist dein finanzieller Spielraum
-- Assembler, C, C++, BASIC oder sonst was
-- was muss der µC sonst können (Gecshwindigkeit, RAM, Flash, etc)

::EDIT::

Hey Admins!
Ich hab oben nach http://www.atmel.com verlinkt, und NICHT in irgendein WIKI!!!

TinaW
11.11.2005, 15:18
RS232 nach I²C gibt es auch fertig aufgebaut http://www.horter.de
Hmm ich glaube so mache ich es im Moment schon und leider funktioniert das wie schon gesagt nicht so richtig schnell. Also es funktioniert wie schon aber auf dem PDA nur sehr langsam. Wobei ich es mittlerweile auch noch mit dem Ansprechen der Schnittstelle aus C++ versucht habe und nun ziemlich genau weiß welcher Methodenaufruf so lange dauert *ARGH*.

SprinterSB
11.11.2005, 17:34
:oops: Ich hab mir den Blockschalt bal angeschauen, die machen gar kein RS232 sondern wackeln nur an den Pins...

C-Compiler gibt es für alle ober aufgeführten µC. Meistens sind das Crosscompiler Linux->µC bzw Win32->µC, namentlich GCC. Der C-Compiler von Microchip sieht etwas ungepflegt aus, wenn man in die Quellen schaut. Microchip hat die Sources auf seiner Website, die Binaries lassen die sich teuer bezahlen und pic-gcc generieren ist nicht jedermanns Sache -- daher wohl auch der Zustand der Quellen.

Mit avr-gcc bist du gut beraten. Du hast einen mächtigen und leistungsfähigen C-Compiler. AVR-Studio von Atmel hat seit neuestem eine avr-gcc Integration, sehr interessante Sache. Zusätzlich brauchst du WinAVR, aber das geht nur unter Windows. Falls du unter Linux arbeitest, ist dir die Console ohnehin nicht fremd.

Je nach Anwendung genügt dir wohl schon ein ATMega8 bis ATMega64 (AVRs). Falls du mit 'Berechnung' ausgedehnte float-Berechnungen meinst, dann sind die aber schnell an ihren Grenzen. ARM ist da deutlich mächtiger, eine FPU bringt er aber auch nicht mit. arm-gcc gibt es ebenfalls, aber keine Ahnung, was der kostet.

Mit Assembler anfangen willst du nicht wirklich. Falls es an der einen oder anderen Stelle nötig sein sollte, kannst du asm-Module dazulinken oder Codesequenzen in inline asm formulieren, IMHO besteht bei deiner Problemstellung dafür aber kein Anlass.

Zu erwähnen ist noch ein AVR C-Compiler von IAR, und die unterstützen auch ARM.




Die Leistungsaufnahme der AVRs ist abhängig von Betriebsspannung, Taktfrequenz und Sleep-Mode. Von einigen µA bis 20mA ist da alles drin.