FT232 - Mega644 - Baudrate macht Probleme

OP #1040747
Lesenswert?

Hi, mit folgendem Layout kriege ich keine Verbindung bei 9600 Baud hin. 
Interessanter Weise scheint der fehler irgendwo beim Empfangen von Daten 
zu liegen.

Benutzt wird die Lib von P. Fleury.

uart_puts("abc") wird korrekt uebermittelt.
uart putc(c) allerdings nicht.

(c ist der gelesene char, der reinkommt)

Sieht jemand warum das so ist?
Benutzt wurde auch ein 18.432 MHz Quarz, allerdings auch ohne Erfolg.

Gehoert das "shield" vom USB-Stecker eigentlich auf GND oder auf die 
"freie" Kupferflaeche? Testweise alles probiert, hat aber auch keine 
Abhilfe geschaffen.

Ein Ferrite Bead habe ich nicht verwendet, da ich vorerst nichts 
brauchbares bei Digikey finden konnte. Falls da jemand Erfahrung hat bin 
ich dankbar fuer Tips.

Danke fuer die Hilfe!
Angehängte Dateien:
Gast #1040889
Lesenswert?

In der Source der Library kannst Du sehen dass uart_puts uart_putc 
cyclisch aufruft. Sollte also funktionieren.

Kann es sein dass Dein Empfangspuffer am PC line-buffered ist?

Wie liest Du denn Rechnerseitig? Ich würde auf jeden Fall mal versuchen 
mehr Daten zu schicken und ggf. CR LF einzubauen... Ansonsten ist unter 
Linux/Mac OS ioctl Dein Freund (von Win hab ich nicht so viel Ahnung...)

Ausserdem kannste an 2 GPIO Ports des FT232RL LEDs anschliessen 
(Datenblatt), dann hast Du wenigstens eine Kontrolle bezüglich der 
Aktivität.


-mj
OP #1041103
Lesenswert?

Hmmm, Softwareseitig sollte es eigentlich auch kein Problem sein, das 
gleiche Programm hatte ich schonmal auf einer self-powered Konfiguration 
laufen.

Daher dachte ich, dass ich irgendwo in der Hardware nen Schnitzer 
reingebaut habe.

Wenns nichts mit dem shield oder dem bead zu tun hat stehe ich da echt 
auf dem Schlauch.

RxD /TxD Aktivitaet ist vorhanden, daher dachte ich, dass ich nen 
Problem mit noise habe.
Gast #1041274
Lesenswert?

Verstehe ich nicht! Du schreibst:

> uart_puts("abc") wird korrekt uebermittelt.
> uart putc(c) allerdings nicht.

da uart_puts nur eine Schleife um uart_putc ist verstehe ich nicht wie 
das der eine call funktionieren soll der darunter liegende aber nicht?


Bei 9600 kannst Du die falche Baudrate einstellen, aber um Noise 
brauchst Du Dir da wirklich keine Sorgen machen :) Aber ein paar 
Character kommen ja durch? Oder versteh ich Dich da falsch?

-mj
OP #1041329
Lesenswert?

Ja, ganz klar ist mir das auch nicht. So wie ich das sehe, kriegt der 
644 schon Daten, allerdings machen die keinen sinn (sonst wuerde ich ja 
den gleichen char zurueck kriegen bei uart_putc(c) ).

Wenn ich stattdessen bei nem Empfangenen char einfach uart_puts("abc") 
zurueckgebe, kommt auch "abc" im HTerm an.

Ich sehe da einfach nicht, was hier faul ist. -.-
OP #1041427
Lesenswert?

Wie gesagt, Software war geprüft und lief vorher tadellos.

Problem war bei der Hardware, offenbar eine schlechte Verbindung oder 
ein Haarriss in einer der Leiterbahnen.

Funktioniert nun also :)

Falls mal wer nen Mega644 schnell an USB verbinden möchte, die Schaltung 
oben funktioniert tadellos.

Danke

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren