Hallo, ich möchte mich gerne informieren, wie man mit dem AVR und dem PC (bzw. anderen AVR) Daten austauschen kann. Dazu möchte ich ein kleines Board bauen, entweder mit einem MAX232 und einem bereits vorhandenen USB/Seriell-Adapter oder - was mir lieber wäre - gleich mit einem entsprechenden virtuellen COM Port Chip von FTDI (USB). Wo gibt es grundlegende Informationen über den Ablauf der Kommunikation? Welches Programm wird auf dem PC verwendet (Hyperterminal?). Wie funktioniert das Programm genau, also was macht es? Interpretiert es einfach die ankommenden Daten als ASCII-Zeichen? Danke. Michl
Dem PC ist es egal, ob Du eine in diesem (noch) vorhandene serielle Schnittstelle oder einen USB-RS232-Adapter benutzt. Und ob Du nun seriell vom Controller in einen MAX232 und von dort zu der seriellen Schnittstelle des PCs oder zu einem USB-RS232-Adapter gehst oder vom Controller direkt in einen USB-seriell-Chip gehst, der an den PC angeschlossen ist, ist auch egal. Vom PC werden beide Schnittstellen gleich behandelt und liegen dem Benutzer dann als COM-Port vor. Zur Kommunikation zwischen zwei Controllern bietet sich die serielle Schnittstelle an, da sonst einer der Controller mit einem USB-Host-Interface ausgestattet werden müsste. Terminalprogramme interpretieren die Zeichen als ASCII + Steuerzeichen. Wenn Du vom Controller also die Bytes 0x48 0x61 0x6C 0x6C 0x6F auf die serielle Schnittstelle schickst, wird im Terminalfenster 'Hallo' angezeigt. Gruß Jobst
Hallo Michl, Michl schrieb: > ich möchte mich gerne informieren, wie man mit dem AVR und dem PC (bzw. > anderen AVR) Daten austauschen kann. Dazu möchte ich ein kleines Board > bauen, entweder mit einem MAX232 und einem bereits vorhandenen > USB/Seriell-Adapter oder - was mir lieber wäre - gleich mit einem > entsprechenden virtuellen COM Port Chip von FTDI (USB). Also ich hab bisher nur mit RS232 gearbeitet, MAX232 und dann an den AVR. Da ich das PollinBoard nutze, wo ein MAX232 schon verbaut ist, ist das ganze recht einfach. > Wo gibt es grundlegende Informationen über den Ablauf der Kommunikation? > Welches Programm wird auf dem PC verwendet (Hyperterminal?). Wie > funktioniert das Programm genau, also was macht es? Interpretiert es > einfach die ankommenden Daten als ASCII-Zeichen? Grundlegende Info: AVR-Tutorial: UART Wie das bei USB abläuft weiß ich nicht. Bei RS232 kann man die Zeichen mit z.B. HTerm aufzeichnen, und auch senden. Das Prgramm "HTerm" kann die ankommenden Zeichen als Hex, ASCII, Bin und Dez - Zahlen darstellen. Wie das Programm sich an die Serielle genau dranhäftet ist doch nicht relevant, wenn man mi µC arbeitet. Falls du doch etwas eigenes auf dem PC laufen lassen willst, es gibt für Java ein Plugin, mit dem man die Serielle steuern kann! Aber wofür brauchst du das?? julian
Jobst M. schrieb: > Zur Kommunikation zwischen zwei Controllern bietet sich die serielle > Schnittstelle an, da sonst einer der Controller mit einem > USB-Host-Interface ausgestattet werden müsste. Da ist die Welt schon ein bisschen vielfältiger. Für die serielle Kommunikation zwischen zwei Baugruppen fallen mir so spontan vier verschiedene serielle Schnittstellen ein: 1. Asynchron/Synchron über USART 2. CAN 3. TWI 4. SPI Was sinnvoll ist, hängt von der Art der Kommunikation, von der Datenrate und Länge der Übertragungsstrecke und auch von anderen im System vorhandenen Komponenten ab.
Michl schrieb: > Dazu möchte ich ein kleines Board > bauen, entweder mit einem MAX232 und einem bereits vorhandenen > USB/Seriell-Adapter oder - was mir lieber wäre - gleich mit einem > entsprechenden virtuellen COM Port Chip von FTDI (USB). Oder du nimmst gleich einen AVR mit eingebautem USB Transceiver; damit sparst du dir den FTDI, musst aber die USB HID Software selbst implementieren (SW gibt's u.a. schon fixfertig bei Atmel, siehe Application Note AVR328). atmega16U4 und AT90USB1287 sind solche Exemplare. Gibt noch mehr davon, die haben alle ein U oder USB im Namen. > Wo gibt es grundlegende Informationen über den Ablauf der Kommunikation? USB schon gesehen? :) > mit dem AVR und dem PC (bzw. anderen AVR) Daten austauschen USB eignet sich nicht für die Kommunikation unter den MCs, bzw. es wäre enormer overhead, USB einzusetzen.
Martin schrieb: > Für die serielle > Kommunikation zwischen zwei Baugruppen fallen mir so spontan vier > verschiedene serielle Schnittstellen ein: Ich habe den TO so verstanden, daß er eine Baugruppe vor allem an den PC anschliessen und evtl. mit anderen Controllern verbinden möchte. Zuzüglich der Frage nach einem Terminalprogramm, lässt das für mich nur den Schluß von UART/RS232 zu. Sicherlich kann man Controller auf andere Art und Weise untereinander verbinden. Die selbe Schnittstelle schliesst aber den Anschluss an einen PC nur unter Verwendung eines Terminalprogramms weitestgehend aus. Gruß Jobst
Also die Aussage: Jobst M. schrieb: > Dem PC ist es egal, ob Du eine in diesem (noch) vorhandene serielle > Schnittstelle oder einen USB-RS232-Adapter benutzt. will ich hier mal nicht so stehen lassen. Denn das ist a) eine Frage des Betriebssystems b) eine Frage der verwendeten Chip-Sätze und c) des in Fragekommenden USB->RS232 Adapters. Unter den neueren Windows Versionen (Vista, 7, ...) kann nicht unbedingt jedes Programm ordentlich auf die echten Seriellen Ports zugreifen, billige USB->Serial Adapter haben manchmal probleme mit den Timings und meist nur Treiber für Windows. Eine echte Serielle ist mir persönlich da das liebste. @Michl: ich glaub man kann dir besser Helfen, wenn du dein späteres Ziel nennst und mit welcher Sprache du die AVR's Programmierst. Ansonsten machen Terminal-Programme wie HyperTerminal abstrahiert nichts anders als Eingehende Datenpakete (Array of Bytes) zu Empfangen und Anzuzeigen, und Eingegebende Daten wieder als Datenpakete(Array of Bytes) wieder raus zuschicken. Wie welche Bytes interpretiert werden, hängt dann vom verwendetem Protokoll ab, und da gibt es viele. Dabei ist zubeachten das so ein Protokoll nicht nur aus Anzeigbaren Zeichen, sondern auch aus Steuer-Befehlen besteht (wie z.B.: Zeilenumbruch, Clear, ...). Ist aber die Frage ob du wirklich so tief in die Materie einsteigen willst, oder nur "Hallo Welt!" an dein AVR schicken willst um es dann auf einem LCD Anzuzeigen oder so.
Jobst M. schrieb: > Ich habe den TO so verstanden, daß er eine Baugruppe vor allem an den PC > anschliessen und evtl. mit anderen Controllern verbinden möchte. Gerade wenn der TO Controller untereinander verbinden möchte, macht es die Sache wesentlich handlicher, wenn er dafür nicht den USART verwendet. Sonst ist er ewig am Umstecken, wenn er einen µC über einen Bootloader programmieren möchte und hat keine direkt PC-taugliche Schnittstelle frei, weil der (meist) einzige USART durch die Prozessor-Prozessor Kommunikation belegt ist.
Martin schrieb: > Gerade wenn der TO Controller untereinander verbinden möchte, macht es > die Sache wesentlich handlicher, wenn er dafür nicht den USART > verwendet. Sonst ist er ewig am Umstecken, wenn er einen µC über einen > Bootloader programmieren möchte und hat keine direkt PC-taugliche > Schnittstelle frei, weil der (meist) einzige USART durch die > Prozessor-Prozessor Kommunikation belegt ist. Ja, das stimmt soweit. Aber ich verstehe das so, daß der TO einen Controller an einen PC anstecken möchte ODER mit der selben Schnittstelle an einen anderen Controller. (Ich hoffe, daß man dies nun nicht mehr missverstehen kann) Kann aber sein, daß ich die Absichten des TO falsch verstanden habe. Das wird sich aber noch klären. zahel schrieb: > Also die Aussage: > Jobst M. schrieb: >> Dem PC ist es egal, ob Du eine in diesem (noch) vorhandene serielle >> Schnittstelle oder einen USB-RS232-Adapter benutzt. > > will ich hier mal nicht so stehen lassen. Naja, wenn alles so funktioniert, wie es funktionieren sollte, ist es egal. Ich kann und will hier nicht bei generellen Antworten gleich auf alle möglichen Problemchen und Wehwehchen eingehen. Die kann man im konkreten Fall einkreisen. Wenn der PC kaputt ist, geht es im übrigen auch nicht ... (Nur mal so als wichtiger Hinweis) Gruß Jobst
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.