PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit serieller Datenübertragung PC/mC (FT232, VB.net)



oyla12
20.12.2010, 22:09
Guten Abend Allerseits,

Ich hoffe ich bin in der Rubrik richtig, so ganz einordnen konnte ich mein Problem nicht, sonst (entschuldige ich mich und) bitte verschieben : )

Ich habe einen ATmega88 an einen FT232RL gesetzt, aber nur Rxt und Txt beschaltet (9600). Der Atmega läuft, aufgrund kläglicher Versuche die Taktangabe durch ein Quarz zu realisieren, auf internen 8Mhz ohne Prescale. Ohne den Code ranhängen zu müssen, eine simple Print "a" Ausgabe funktioniert im Terminal von Bascom, bzw sendet er mir das gesendete zeichen zurück, über prozentuale Korrektheit lässt sich streiten. Sofern es sich um eine Zahl, z.b. 123 handelt steigt die Fehlerquote rapide. Das ist aber nicht mein Kernproblem.

Ziel ist es, das ich diverse Befehle von einem selbstgeschriebenen vb.net Programm senden und diverse Werte in Empfang nehmen möchte, alle jeweils nur ein Byte. Damit möchte die die Stellungen von Potis auslesen. Auf dem AVR läuft nun also ein Code, der alle Sekunde Print "a" ausführt. In Bascom empfängt er solange, wie das ISP Kabel gesteckt und die Konsole offen ist.
Versuche ich, dies im Hyperterminal von Windows zu öffnen, Empfängt er zu 35% Müll, zeigt viel mehr unsinnige Zeichen an, die Einstellungen sind aber die selben, ich hab keine Ahnung warum.
Der FT232RL besitz eine solche Sendediode, die leutet auch nur auf, wenn das Bascom- oder Hyperterminal geöffnet ist. Sonst gibt er keine Zeichen raus. Ich hab auch das Programm von http://www.rn-wissen.de/index.php/Windows_Programm_zum_Steuern_des_AVR%27s verwendet und ausprobiert, dort scheint er COM3 nicht so zu öffnen, dass der FT232Rl was sendet (die LED bleibt aus). Andere Terminal Programme wie "Terminal" etc schaffen es auch nicht, das der AVR bzw. der FT232 seinen Mund auf macht...

Ich bin erlich gesagt langsam am Verzweifeln, davon ab, dass es sich um ein Jugend Forscht Projekt handelt und mir die Zeit im Nacken sitzt :/

Kann mir jemand einen Anstoß geben wo mein Denkfehler liegt, bzw mir den Ablauf einer Seriellen Übertragung schildern? Google bringt meistens viel zu komplexes zu Tage. Es ist halt der Sonderfall "Seriell/Usb". Laut der Empfangsdiode am FT, scheint es, dass er meine Zeichen zumindestens von jedem terminal bekommt.
Danke im Vorraus : )
oyla

for_ro
21.12.2010, 00:40
Hallo oyla,


Der Atmega läuft, aufgrund kläglicher Versuche die Taktangabe durch ein Quarz zu realisieren ...
Was ist denn da schief gelaufen? Vielleicht können wir da helfen. Hast du Probleme, die Fuses richtig zu setzen?


... auf internen 8Mhz ohne Prescale.
Da wirst du wohl immer Probleme haben. Die interne Takterzeugung ist häufig zu ungenau, um stabil über RS232 Daten auszutauschen.

oyla12
21.12.2010, 13:52
Was ist denn da schief gelaufen? Vielleicht können wir da helfen. Hast du Probleme, die Fuses richtig zu setzen?

Es war ein 12Mhz Quarz und die Einstellung waren alle auf 1, lange Anlaufzeit bei über 8Mhz , im Bascom der unterste auswählbare Eintrag.
Ja irgendwo waren da Probleme, kümmere ich mich drum, falls ich noch Zeit habe, sonst ich schicks halt alles 3 mal dann ist da schon was Sinnvolles dabei ;)

Ist halt nicht mein Hauptproblem. Woran könnte es denn liegen, dass verschiedene Terminals den mC mal schlechter und mal besser verstehen?

Und was muss ich beachten damit eine Kommmunikation zwischen VB.net und dem mC zustande kommt? Gibst da irgend einen Bit, der seitens des PC gesetzt sein muss damit der FT232 Auf die Idee kommt überhaupt die Daten zu übermitteln?

Gruss oyla