Oh Gott, ich bin echt nahe der Verzweiflung, ich bring das UART einfach nicht zum laufen. Der sendet einfach nichts... nichts... defenitiv nichts!!!
Bitte dringlichst um Hilfe!
Vielen Dank,
Xeus
was steht in der anleitung zu dem thema? braucht man ein 1zu1 kabel oder ein nullmodemkabel, wo rx und tx gekreuzt sind?
kannst du den fehler schon etwas eingrenzen? kommt was am tx pin vom AVR raus? schließ mal eine LED an! wenn ich bei mir in einer schleife 15 lange textzeilen am stück ausgebe und dann 50 ms pause, blinkt die led ein wenig. und wenn das läuft, das signal weiterverfolgen und auf der anderen seite des pegelwandlers messen. wenn dort auch was ankommt, kannn es eigentlich nur noch an der kabelbelegung oder der terminalsoftware liegen...
Hi Xeus,
mal ganz blöd gegengefragt:
- Stimmt die $Crystal-Einstellung im Programm mit ext. Quarz bzw. Fusebit-Einstellung überein?
- $Baud = 9600 programmiert?
- Stimmen die Einstellungen in Bascom damit überein
(Options->Communication)
COM (?)
9600
n
8
1
Mit einem MAX232 habe ich mich neulich auch rumgeärgert, gemachte Fehler - s. o.![]()
Die Hardware hast Du ja bestimmt schon bis zum Erbrechen gecheckt - aber es lohnt sich immer, nochmal einen Blick auf die Polung der Elkos am Schnittstellen-Treiber zu werfen... beim AD-Chip weiß ich´s nicht, aber zumindest beim MAX232 ist das etwas trickreich wegen den positiven und negativen Potentialen, da muss dann auch mal der Minuspol eines Elkos mit Vcc verbunden werden.
Nix für ungut, wenn Du da schon drüber hinaus bist - das waren alles Gründe, warum es bei mir nicht gleich gefunzt hat...
Nächtliche Grüße
Torsten
Doppelposting gelöscht...
Nabend miteinander !
Auch mich hat vor kurzem die Microcontrollersucht erwischt. Um einen relativ einfachen und kostengünstigen Einstieg zu kriegen habe ich mir das Evaluations-Board von Pollin bestellt. Nach diversen erfolgreichen Tests (LED an/aus, Buzzer an/aus), wollte ich dann mal den "Hello World"-Test machen - natürlich ohne ErfolgIm Terminal kam absolt nichts an, egal was für ein RS232-Kabel ich benutzt habe (1:1, Nullmodem), no Chance...
Nun denn, erst mal überprüft ob auch wirklich alles richtig gelötet wurde: War alles richtig. Dann dachte ich mir: "Bau einfach mal einen MAX232 anstelle des AD ein, da die Pinbelegung gleich ist". Ging immer noch nicht. Dann noch die Kondensatoren von 10 auf 1 yF geändert - auch kein Erfolg.
OK, so schnell gibt man ja nicht aufAlso erst mal den mitgelieferten Schaltplan studiert. Dabei ist mir aufgefallen, dass sich ein Designfehler auf dem Pollinboard eingeschlichen hat:
Der Pin 10 (RX) vom MAX bzw. AD ist mit Pin 14 (PD0/RX) vom Atmel verbunden.
Pin 12 (TX) vom MAX bzw. AD ist mit Pin 15 (PD1/TX) vom Atmel verbunden.
Un das ist definitiv falsch !! RX kann nicht mit RX und TX nicht mit TX "sprechen". Also Cuttermesser zur Hand, beide Leiterbahnen durchgetrennt und dann über Kreuz wieder zusammengelötet.
Jetzt ist Pin 10 (RX) vom MAX mit Pin 15 (PD1/TX) vom Atmel und Pin 12 (TX) vom MAX mit Pin 14 (RX) vom Atmel verbunden.
Anschließend den "Hello World"-Test neu gestartet und siehe da, es funzt![]()
Viel Spaß beim Testen !
PS: Es muß ein 1:1 Kabel benutzt werden.
na, dann haste ein schlechtes board erwischt.
meins funkte gleich mit "hello world" ohne cuttermesser.
na denn viel spass.
mfg pebisoft
Hmmm, vielleicht ist das ja der Grund warum das Board kurze Zeit nicht leiferbar war.
@Xeus: Schau doch mal nach, wie die RX/TX-Leitungen auf Deinem Board und Deinem Schaltplan verbunden sind. Also bei mir war`s auf jeden Fall falsch.
Gruß
Fusebitversteller
@Fusebitversteller
Könnte es sein, dass du einfach nur von einem falschen seriellen Anschlusskabel ausgehst?Der Pin 10 (RX) vom MAX bzw. AD ist mit Pin 14 (PD0/RX) vom Atmel verbunden.
Pin 12 (TX) vom MAX bzw. AD ist mit Pin 15 (PD1/TX) vom Atmel verbunden.
Un das ist definitiv falsch !! RX kann nicht mit RX und TX nicht mit TX "sprechen".
Wenn man zwei Rechner über die serielle Schnittstelle direkt mit einem Kabel verbindet, benötigt man dafür normalerweise ein Nullmodemkabel. Im Gegensatz zu einem normalen Modemkabel oder einem Verlängerungskabel sind bei einem Nullmodemkabel die beiden Leitungen für RX und TX im Kabel gekreuzt.
Wenn ich deine Beschreibung richtig verstehe, ist die Belegung auf dem Board eigentlich richtig und und du verwendest nur ein falsches Kabel.
@recycle:
Ok, meine Beschreibung war wahrscheinlich etwas verwirrend:
Nein ich meine nicht das Serielle Kabel.
Das Serielle Kabel hängt am Pin7 und 13 vom MAX232.
Die Pins 10 und 12 vom MAX sind direkt mit den USART In/Out-Pins des Atmegas verbunden.
Und die waren, zumindest auf meinem Board, falsch verbunden - eben RX auf RX und TX auf TX.
Da wäre es egal gewesen welches Kabel ich benutze, es hätte so nie funktioniert.
Zum besseren Verständnis kann ich, wenn ich Zeit habe, den Schaltplan mal einscannen und posten.
Da sieht man den Fehler dann ziemlich schnell wenn man ihn mit den Datenblättern vom MAX und ATmega16 vergleicht![]()
Lesezeichen