Forum: Mikrocontroller und Digitale Elektronik FT232 - Mega644 - Baudrate macht Probleme


von F. V. (coors)


Angehängte Dateien:

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!

von F. V. (coors)


Angehängte Dateien:

Lesenswert?

Und hier noch Anhang 2

von Markus H. (rf-bug)


Lesenswert?

Hi,

der FT232 läuft eigentlich stabil. Selbst mit "Flugverdrahtung". Bei der 
USB-Buchse verhält es sich ähnlich. Anschliessen und gut ist. Das Shield 
kannst du auf GND legen, muss aber nicht.

Ich denke die Hardware, was den FT232RL angeht sieht gut aus.

Gruß

PS: Ist das so richtig "uart putc(c)" ? Oder fehlt da evtl. ein _ ?

von Michel (Gast)


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

von F. V. (coors)


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.

von Michel (Gast)


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

von F. V. (coors)


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. -.-

von Stefan E. (sternst)


Lesenswert?

Poste doch einfach mal den ganzen Testcode, nicht nur einzelne Zeilen. 
Es ist nämlich sehr wahrscheinlich ein Software-Problem.

von NixChecker (Gast)


Lesenswert?

versuch mal mit uart_putc((unsigned int) c)

von F. V. (coors)


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

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.