Hallo Ich habe eine Hardware welche über USB versorgt wird. Von der Hardware wird ein Display über eine serielle Schnittstelle angesteuert und über SPI der Sensorwert eingelesen. Ich würde gerne den Wert der am Display angezeigt wird auch auf der Konsole anzeigen. Wie ist es möglich den Wert vom Mikrocontroller auszulesen und am PC anzuzeigen. Programmiere in C. MfG
Vielleicht machbar. Man müsste wissen, um welchen Mikrocontroller es sich handelt (Datenblatt), wie er an USB angeschlossen ist (Schaltplan) und ob der Mikrocontroller von einem selbst entsprechend programmierbar ist.
Der uC ist ein at90usb. Schaltplan habe ich keinen. Über USB flashe ich den uC nur. Kann ich die Werte nur über USB auslesen oder gäbe es noch eine andere Methode. Soviel ich gehört habe ist USB programmierung nicht gerade einfach. Gibt es noch eine andere Art wie ich die Daten übertragen kann.
Es gibt mehrere Wege nach ROM. Wenn du den Quellcode hast und die USB/CDC Geschichte scheust und eine RS232 serielle Schnitstelle auf dem PC hast und einen TTL-RS232-Pegelwandler bauen kannst, kannst du auf dem At90USB mit 2 UARTs (nach RXD1 und TXD1 Pins im Datenblatt schauen) per Hardware-UART Daten austauschen. Wenn du den Quellcode hast und die USB/CDC Geschichte scheust und eine RS232 serielle Schnitstelle auf dem PC hast und einen TTL-RS232-Pegelwandler bauen kannst, kannst du auf dem At90USB auf einem freien Pin eine Software-UART programmieren. Atmel hat auch zur Software-UART Appnotes. Wenn du den Quellcode hast, kannst du versuchen auf dem At90USB zusätzlich ein sog. CDC Gerät zu implementieren. Atmel hat dafür die "AVR280: USB Host CDC Demonstration on megaAVR with USB". damit kannst du Daten an den PC senden, die du dort per selbstgeschriebenem Programm oder Terminalprogramm über eine virtuelle serielle Schnittstelle empfängst. Ganz wild: Wenn du das AVR Programm nicht als Quellcode hast. kannst du versuchen die Kommunikation zwische Display und µC mit einem 2. µC abzufangen und dann an den PC zu senden. Der Aufwand und das nötige Wissen steigt von oben nach unten.
Kuck mal hier: http://www.fourwalledcubicle.com/LUFA.php Da gibts ein komplettes USB Framework, dass auch einen Virtual-Comport unterstützt. gruß Tom
LUFA ist etwas umständlich. Für die AT90USB... gibt es fertige CDC Beispiele, die erstellen dir einen virtuellen Com-Port, du musst dich nicht um Baudraten kümmern und kannst alles ganz easy am PC empfangen.
Meinst Du CDC von ATMEL? Gruß Tom P.S: Wieso ist LUFA umständlich? Sieht für mich sehr gut strukturiert aus
Ja, das CDC Demo von Atmel, das dürfte mit geringsten anpassungen auf den diversen 90USB... laufen. >Wieso ist LUFA umständlich? Sieht für mich sehr gut strukturiert >aus Erstmal einen Tag Einarbeitung bis man das mal für seinen Controller und seine Bedürfnisse angepasst hat. Das CDC von Atmel hatte ich nach 3 Stunden soweit, dass ich putc, puts, getc und gets hatte. Die Kommunikation mit dem PC ist sehr sehr einfach damit zu basteln. @Ersteller: Welchen USB Controller hast du denn?
Mir ist nicht ganz klar was du mit USB Controller meinst. Der uC von Atmel ist ein at90usb.
Ich glaube ich versuche es zuerst einmal über RS232. Kennt jemand Beispiele oder eine Seite wo beschrieben wie man über RS232 Daten vom uC ausliest.
Wenn dir ne konsolenmäßige Testausgabe reicht, dann nimmt doch z.B. TeraTerm. Dann brauchst du dich nur noch um die Funktionen auf dem AVR kümmern -> AVR-GCC-Tutorial
Die Funktionen auf dem AVR sind fertig. Es geht nur darum die Daten auszulesen und auf dem PC anzuzeigen. Würde gerne selber ein Programm in C schreiben. Einerseits wegen der Übung und auch weil ich die Daten auslesen, bearbeiten und dann auf der Konsole ausgeben kann. Andere Frage, weiß jemand wie ich einen int verkleinern kann. Brauche den Datentyp int aber nicht bis 65k sondern bis 255 für eine Funktion wo int vorausgesetzt wird und nicht char.
>Dann brauchst du dich nur noch um die Funktionen auf dem AVR >kümmern -> AVR-GCC-Tutorial Es geht hier um eine Ansi C Programmierung was soll ich aus dem AVR-GCC-Tutorial entnehmen wenn ich schon wie beschrieben mit dem AVR fertig bin.
Wo steht im Tutorial wie ich mit einem C Programm die Schnittstelle von einem PC auslese?
gast1 schrieb: > Andere Frage, weiß jemand wie ich einen int verkleinern kann. Brauche > den Datentyp int aber nicht bis 65k sondern bis 255 für eine Funktion wo > int vorausgesetzt wird und nicht char. DAS wird dir beantwortet. übrigens: stell dir vor! du bist nicht der erste mensch auf gottes grüner erde, der eine serielle schnittstelle ansprechen will! wahnsinn, oder?? es gibt sogar leute, - jetzt halt dich fest - die beschreiben das auf seiten im intärnät!!! unglaublich! pass auf, ich hab ne super seite NUR für dich! http://www.gidf.de
Nun, um etwas näher bei der Sache zu bleiben: Im Forenbereich "PC-Programmierung" wird das Thema des öfteren diskutiert, für alle möglichen Programmiersprachen und Betriebssysteme. Sinnvolle Suchbegriffe für die Forensuche sind hier sicherlich "Win32-API" und "serielle Schnittstelle".
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.