Forum: Mikrocontroller und Digitale Elektronik Arduino Uno Seriell zu Parallel Umsetzer Problem


von Stefan (Gast)


Lesenswert?

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.

von Stefan (Gast)


Lesenswert?

Entschuldigt den Betreff habe ich falsch gewählt anstatt Seriell zu 
Parallel meinte ich zu USB.

von Amateur (Gast)


Lesenswert?

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.

von Achim A. (Firma: augilabs) (womisa)


Lesenswert?

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

von Stefan (Gast)


Lesenswert?

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.

von Stefan (Gast)


Lesenswert?

Oke werd ich mal schauen!!!

von Amateur (Gast)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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

von Stefan (Gast)


Lesenswert?

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.

von Amateur (Gast)


Lesenswert?

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.

von Stefan (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.