Hallo Forengemeinde, Wahrscheinlich habe ich hier ein triviales Problem jedoch bekomme ich es nicht hin auf dem Arduino Board eine normale UART Kommunikation aufzubauen. Ich nutze die UART library von Peter Fleury und will nur über die Standart befehle uart_putc()... Testweise einfache Zeichen verschicken. Die Baudrate habe ich auf 9600 eingestellt und die Lib habe ich nur leicht überarbeitet da der ATMEGA328P fehlte. #elif defined(_AVR_ATmega48_) ||defined(_AVR_ATmega88_) || defined(_AVR_ATmega168_) || defined (_AVR_ATmega328P_) #define ATMEGA_USART0 #define UART0_RECEIVE_INTERRUPT USART_RX_vect #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect #define UART0_STATUS UCSR0A #define UART0_CONTROL UCSR0B #define UART0_DATA UDR0 #define UART0_UDRIE UDRIE0 Oben sieht man den nachbearbeiteten Bereich. Ich hatte diese Lib auch schon in anderen Projekten im Einsatz hatte hier noch nie Probleme jedoch habe ich hier wie auf dem Arduino Uno üblich zum ersten mal einen ATMega16U2 als SerialtoUSB Umsetzer im Einsatz. Nun stellt sich mir die Frage wieso ich hier keine sinnvolle Kommunikation zustande bekomme wenn ich z.B. T + E + S + T + 0x13 + 0x10 als einzelne Chars übertrage bekomme ich in HTerm z.B. 0x92 0xB2 0x90 0x51 0xFC vom Controller geschickt jetzt geh ich mal davon aus, dass der atmega16u2 die Daten nicht so umsetzt wie ich das vermute bzw. wie ich es von einem FT232 gewohnt bin. Ich hoffe Ihr könnt mir hier einen kleinen Tipp geben.
Entschuldigt den Betreff habe ich falsch gewählt anstatt Seriell zu Parallel meinte ich zu USB.
Haben die Arduinos nicht eine eigene serielle Schnittstelle? Ein Codefragment mit: Serial.Begin (9600); ist irgendwie bei mir hängen geblieben. Schau doch mal in die Dokumentation - was selten schadet.
Hi schau mal in meine Anfrage, da ist eine serielle Ausgabe mit drin. Arduino StandardLibrary. Da brauchst du die Fleury nicht. ... // Open serial communications and wait for port to open: Serial.begin(9600); ... .... Serial.println("Beispiel..."); .... Gruß Achim
Ja das stimmt schon jedoch nutze ich das ATMEL Studio 6 und programmiere mit dem MKII das Board. Daher habe ich jetzt direkt auf die IDE keinen Zugriff und das möchte ich eigentlich auch nicht unbedingt da ich mir denke es muss doch auch so gehen.
Wenn Du mit dem MKII programmierst, hast Du wahrscheinlich den Boot-Loader rausgeschmissen. Übrigens: Es gibt verschiedene Arduinos. Manche haben noch 'ne echte serielle Schnittstelle, manche benutzen einen zweiten Prozessor auf dem Board und wieder andere nutzen die "eingebaute" Schnittstelle des Prozessors. Der UNO arbeitet, soweit ich weiß, mit einem zweiten Prozessor für die USB-Kommunikation. Der sollte sich wie ein FTDI-Chip verhalten - also 08/15 serielles I/O und weiter nix.
Stefan schrieb: > Daher habe ich jetzt direkt auf die IDE keinen Zugriff und das möchte > ich eigentlich auch nicht unbedingt da ich mir denke es muss doch auch > so gehen. Mit Visual Micro kannst du die Arduino-Entwürfe und Bibliotheken auch unter ATMEL Studio 6 benutzen. http://www.visualmicro.com/page/Arduino-for-Atmel-Studio.aspx
Ja der Bootloader ist drausen und beim Prozessor habe ich auch gemeint der sollte 1 zu 1 wie der FTDI funktionieren jedoch sieht dies nicht so aus. Zumindest werden meine Daten nicht direkt so Übertragen. Soweit ich mittlerweile gesehen habe nutzt der Controller die LUFA lib hatte jedoch mit dieser auch noch keinen direkten kontakt. Naja mal schauen aber schon mal danke für die zahlreichen Antworten.
Bist Du sicher, dass sich bei Dir kein Fehler eingeschlichen hat? Ich habe das Teil zwar noch nicht auf untersten Ebene beackert, aber wenn ich mir das Schaltbild so anschaue, so gibt es nur zwei Verbindungen zwischen den beiden Prozessoren - rein zufällig RXD(D0) und TXD(D1) des ATMega328 - sonst nichts.
Ich hab gerade noch einen ft232 gefunden über den werd ichs mal probieren. Nicht das sich doch was eingeschlichen hat.
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.