Forum: Compiler & IDEs Atmega und PC über UART Komunikation aber wie?


von Georg G. (Firma: gmbh-keine) (georgino)


Lesenswert?

Hallo,

habe ein Atmega32, FTDI-Kabel, Vinculo-Board, und bin Motiviert.

Hätte gerne eine Verbindung zwischen PC und Controller via Uart (TX, DX) 
aufgebaut.
Habe schon einiges versucht, aber ohne Erfolg!!

Kann wer ein Tipp geben wie ich in c# ein kleines Signal an den PC 
schicken und den durch ein z.B.: ein Hyperterminal sichtbar mach??

Vielleicht ein kleines Projekt im Netz was schon Funktioniert und das 
ich verstehen kann.

Lg georg

von Karl H. (kbuchegg)


Lesenswert?

georg georg schrieb:

> Kann wer ein Tipp geben wie ich in c# ein kleines Signal an den PC
> schicken und den durch ein z.B.: ein Hyperterminal sichtbar mach??

Fang erst mal in die umgekehrte Richtung an:
Der µC sendet die ganze Zeit mit einer bestimmten Baudrate und dein 
Hyperterminal soll an der 'Seriellen' lauschen und das darstellen.

Damit debuggst du erst mal alle Problemkreise, die sich um
* falsche Baudrate
* falsche QUarzferquenz
* falsch gekreuztes Kabel
ergben.

Funktionierts in diese Richtung (µC->PC), dann funktionierts in die 
andere Richtung auf Anhieb.

> Vielleicht ein kleines Projekt im Netz was schon Funktioniert und das
> ich verstehen kann.

Wenn du deine Hardware fehlerfrei hast, findest du dann auch im Netz 
jede Menge Codebeispiele, die zeigen wie man mit C# die Serielle 
anspricht und Zeichen auf den Weg bringt. Aber erst mal muss dein 
Übertragungskanal stehen. Und den kriegst du am Vernünftigsten 
fehlerfrei, wenn du das Spielchen "Stochern im Nebel" aufgibst und dir 
eine Möglichkeit suchst, wie du überprüfen kannst, ob am Ende der 
Strecke auch das ankommt, was du am Anfang reinsteckst. Da davon 
auszugehen ist, dass die Serielle am PC korrekt funktioniert, ist das 
dann eben µC->PC.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART

von Georg G. (Firma: gmbh-keine) (georgino)


Lesenswert?

Hallo,
Danke dir für deine Anwort!

Hartware müsste Top sein!

Habe diesen Code mit meien Einstellunfgen auf einen Atmega32 geflasht..
extern 12Mhz (Auch so geFust)

FT232R Kabek auf Pin 14, 15 (TX,DX) (Orange,Gelb)


Dieses Prog solte Uart mit eienm vom Terminal am µP einlessen und wider 
zurücksenden!?

Tut es aber nicht!?
Kann es sein das ich beim FT232R Kabel was falsch mache?
1
 #include <avr/io.h>
2
 #include <inttypes.h>
3
4
5
 // Sollte schon im Makefile definiert sein.
6
 // In dem Fall hier einfach löschen.
7
 #define F_CPU 12000000UL
8
9
 #define BAUD 19200UL
10
 #define UBRR_BAUD ((F_CPU/(16L*BAUD))-1)
11
12
 // USART initialisieren
13
 void uart_init(void)
14
 {
15
 // Baudrate einstellen (Normaler Modus)
16
 UBRRH = (uint8_t) (UBRR_BAUD>>8 );
17
 UBRRL = (uint8_t)UBRR_BAUD;
18
19
 // Aktivieren von receiver und transmitter
20
 UCSRB = (1<<TXEN) | (1<<RXEN);
21
22
 // Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
23
 UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
24
 //UCSRC |= (1<<URSEL)|(3<<UCSZ0);
25
 }
26
27
 int main(void)
28
 {
29
 uint8_t buffer;
30
31
 // USART initialisieren
32
 uart_init();
33
34
 while (1)
35
 {
36
 // Warten bis Daten empfangen wurden
37
 while ( !(UCSRA & (1<<RXC)) );
38
39
 // Empfangsregister auslesen
40
 buffer = UDR;
41
42
 // Warten bis der Sendepuffer frei ist
43
 while ( !( UCSRA & (1<<UDRE)) );
44
45
 // Daten in den Puffer schreiben und damit senden
46
 UDR = buffer;
47
48
49
 }
50
 return 0;
51
 }

von Georg G. (Firma: gmbh-keine) (georgino)


Lesenswert?

HIHI,

OK hat sich erlädigt....

Habe den Rat mit dem Kabelkreuzen vom Karl Heinz beherzigt und siehe 
da...

Es werde 0110101!

Dank!

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.