[ATMega644P] UART sendet nichts

Gast #4495649
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
Angehängte Dateien:
(Firma: L-E-A)
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.
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
}
Gast
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.
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?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.