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
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.
GND ist mit GND des Adapters Verbunden. VCC mit dem 5V Ausgang des Adapters.
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 | }
|
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?
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.