Forum: Mikrocontroller und Digitale Elektronik [ATMega644P] UART sendet nichts


von SicKn3ss (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich habe mir einen ATMega644P zugelegt um damit in die µC-Welt 
einzusteigen.

Jedoch habe ich nun das Problem, dass ich den UART nicht zum laufen 
bringe.
Der UART ist mittels USB-Adapter[CP2102](welcher auch die 
Stromversorgung übernimmt) mit einem Raspberry Pi2 verbunden. (Der UART 
des Raspberry Pi funktionierte auch nicht. (Hierbei habe ich den den 
ATMega mit den 3.3V des GPIO-Pins versorgt)

Den TXD0-Port habe ich mit dem RXD-Port des Adapters verbunden.
Der RXD0-Port ist mti dem TXD-Port des Adapters verbunden.
(Eben, wie es bei einem Nullmodemkabel der Fall wäre)

Im Anhang befindet sich mein verwendeter Code. Ich hoffe ihr könnt mir 
weiterhelfen.

Freundliche Grüße aus der Südpfalz

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

SicKn3ss schrieb:

> Den TXD0-Port habe ich mit dem RXD-Port des Adapters verbunden.
> Der RXD0-Port ist mti dem TXD-Port des Adapters verbunden.
> (Eben, wie es bei einem Nullmodemkabel der Fall wäre)

Ist GND nicht verbunden?

Grüßle,
Volker.

von SicKn3ss (Gast)


Lesenswert?

GND ist mit GND des Adapters Verbunden.
VCC mit dem 5V Ausgang des Adapters.

von Stefan F. (Gast)


Lesenswert?

Schließe mal LED's (mit Vorwiderstand) an. Flackern die?

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

SicKn3ss schrieb:
> GND ist mit GND des Adapters Verbunden.
> VCC mit dem 5V Ausgang des Adapters.

Dann kann ich Dir leider auch nicht weiterhelfen.
Ich würde an Deiner Stelle erst mal systematisch prüfen, also TxD und 
RxD des Adapters brücken und gucken ob das Byte, das der Host sendet, 
wieder empfangen wird. Dann das selbe bei der MCU.

Stimmt der Baudratenteiler 25? Wie groß ist der Fehler der Baudraten?

Grüßle,
Volker.

von Katharina S. (katha_s)


Lesenswert?

Kann es sein, dass du die baud Rate setzt bevor du den Transmitter 
enablest? Das sollte explizit andersrum geschehen, sehe datasheet seite 
198. Dort findet man auch folgenden Bsp code
1
void
2
 USART_Init( 
3
unsigned int
4
 baud )
5
{
6
UBRRn = 0;
7
/* Setting the XCKn port pin as output, enables master 
8
mode. */
9
XCKn_DDR |= (1<<XCKn);
10
/* Set MSPI mode of operation and SPI data mode 0. */
11
UCSRnC = 
12
(1<<UMSELn1)|(1<<UMSELn0)|(0<<UCPHAn)|(0<<UCPOLn);
13
/* Enable receiver and transmitter. */
14
UCSRnB = (1<<RXENn)|(1<<TXENn);
15
/* Set baud rate. */
16
/* IMPORTANT: The Baud Rate must be set after the 
17
transmitter is enabled */
18
UBRRn = baud;
19
}

von SicKn3ss (Gast)


Lesenswert?

Volker B. schrieb:
> Stimmt der Baudratenteiler 25? Wie groß ist der Fehler der Baudraten?

0.2% laut Datenblatt

Katharina S. schrieb:
> Kann es sein, dass du die baud Rate setzt bevor du den Transmitter
> enablest? Das sollte explizit andersrum geschehen

Habe ich nun geändert, Danke.


Die Kommunikation funktioniert nun, jedoch nur solange die LEDs + 
Vorwiderstand in der Schaltung vorhanden ist.

von Katharina S. (katha_s)


Lesenswert?

An den LEDs sollte es ja nicht liegen. Lass die Widerstaende doch 
einfach drin, das macht ein Arduinoboard auch (dort je 1K), dann geht 
auch beim falschen Anschliessen nicht immer was kaputt.
Gibt es noch Unterschiede zwischen GPIO direkt am Raspi und dem TTL?

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.