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!
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 _ ?
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
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.
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
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. -.-
Poste doch einfach mal den ganzen Testcode, nicht nur einzelne Zeilen. Es ist nämlich sehr wahrscheinlich ein Software-Problem.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.