-
-
Erfahrener Benutzer
Roboter-Spezialist
ATMega32 und PC über RS232 mit Pollin Modul
Guten Morgen,
ich versuche eine Kommunikation zwischen PC und dem ATMega32 zu realisieren.
Hierzu habe ich mir ein entsprechendes Modul bei Pollin bestellt.
http://www.pollin.de/shop/dt/MzY5OTg...r_Bausatz.html
Das habe ich jetzt gestern aufgebaut.
Ich habe das Modul an den PC angeschlossen, mit 5V verbunden, und RX und TX des Controllers an die Platine angeschlossen.
Als Testprogramm habe ich einfach via "print" irgendeinen Text schicken lassen, in einer Endlosschleife.
Erst funktionierte nichts.
Dann ist mir aufgefallen, dass ab und an ein Signal durchkam.
Ins besondere wenn ich die Platine des Moduls auf die Tischplatte drücke.
Offenbar wurde durch den Tisch ein hochohmiger Kurzschluss erzeugt.
Ich hab dann versucht herauszufinden zwischen welchen Kontakten.
Letzlich konnte ich jetzt Daten senden, wenn ich eine Verbindung zwischen RXD und TXD und CTS herstelle. Dann kann ich zumindest Daten vom Mikrocontroller empfangen.
Anders herum hat nicht funktioniert, allerdings habe ich damit auch nicht gerechnet.
Ich vermute das ist so nicht korrekt oder?
Kann mir einer von euch sagen, was ich womöglich falsch gemacht habe?
edit: das ganze läuft mit einer baudrate von 2400, das sollte mit dem internen takt ja funktionieren.
Danke für eure Hilfe!
Crypi
-
Erfahrener Benutzer
Robotik Einstein
Mach mal eine Brücke zwischen TxD und RxD auf der Controllerseite des Moduls rein und gib dem Modul 5V ohne einen Controller anzuschließen.
Nun kannst Du mit einem Terminalprogramm beliebigen Text zu dem Schnittstellenadapter senden.
Wenn das läuft ist das Modul soweit i.O.
Gib dann dem Controller wirklich einen Quarz. Eventuell ist der interne Taktoszillator tatsächlich so weit von den Sollwerten entfernt, das es auch bei der geringen Baudrate nicht geht.
Ausserdem ist der interne Oszillator stark Temperaturabhängig.
-
Erfahrener Benutzer
Roboter-Spezialist
Danke für deine Antwort!
Dass hieße dann, dass ich das was ich abschicke auch sofort zurückbekomme, oder?
Das würde aber nicht erklären, warum es funktioniert, wenn ich eine Verbindung zwischen TXD,RXD und CTS herstelle.
Crypi
-
Moderator
Robotik Einstein
Wenn du eine Brücke zwischen Rx und Tx machst und im Terminalprogramm einen Buchstaben drückst, muss dir der Buchstabe angezeigt werden, wenn das Modul funktioniert.
Und der Grund warum das mit dem µC nicht funktioniert, kann wie schon erwähnt, der interne RC-Oszilator sein. Du darfst für RS232 nur eine bestimmte Toleranz haben und wenn schon der Takt vom Controller nicht genau ist (z.B. weil die Temperatur schwankt) dann stimmt auch der "Baudratengenerator" im Controller nicht.
Und hast du mal probiert ob eventuell Rx und Tx vertauscht sind?
-
Erfahrener Benutzer
Roboter-Spezialist
Das habe ich auch schon überlegt und muss es mal testen.
Gestern abend ist mir das natürlich nicht eingefallen...
Ok, wenn ich einen Quarz einbau, 7,3728 MHz passen ja ganz gut, was muss ich dann im Bascom Programm angeben? Die genau Frequenz?
Also $crystal = 7372800 ?
Crypi
-
Moderator
Robotik Einstein
Genau. Immer die Frequenz eingeben die du gerade verwenden willst.
-
Erfahrener Benutzer
Roboter-Spezialist
Danke für die Hilfe!
Ich werde dann mal sehen was ich erreichen kann.
Vielleicht sind ja wirklich nur die Anschlüsse vertauscht.. das wäre super.
Ansonsten probiere ich deine Idee aus um zu gucken, ob das Modul funktioniert.
Mal sehen ob ich es heute zu Conrad schaffe um mir den Quarz zu kaufen.
Ich habe aus irgendwelchen Gründen irgendwann mal einen 10MHz Quarz gekauft, ich hatte schonmal versucht den anzuschließen, jedoch bin ich am umstellen der Fusebits gescheitert.
Ich habe versucht mich an dem Wiki-Eintrag, "ein erstes programm zum controller übertragen", zu orientieren aber offenbar habe ich eine andere Version von Bascom als der Autor, die Auswahlmöglichkeit die er wählt steht bei mir nicht zur Verfügung.
Was muss ich für einen Eintrag wählen?
Habe leider gerade die Versionsnummer nicht zur Hand.
Crypi
-
Moderator
Robotik Einstein
Die Versionsnummer ist eigentlich nicht so wichtig mein ich.
Alles über 8MHz zählt zu den Quarzen mit Typ High Freq. Hab im moment keinen Controller hier um mal genau zu schauen.
Du musst unter Fuse-Bits das hier setzen:
•Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms; [CKSEL=1111 SUT=11]
-
Erfahrener Benutzer
Roboter-Spezialist
Vielen Dank für deine Unterstützung!
Ich werde das alles heute abend ausprobieren!
Crypi
-
Moderator
Robotik Einstein
Ahhh ich habs gefunden
So hier mal ein Link:
http://halvar.at/elektronik/kleiner_...e_lock_bits_2/
Am Ende der Seite steht wann ein Quarz als Low Freq usw bezeichnet wird. Ich hoffe das Hilft dir etwas mehr, weil ich war mir nicht mehr ganz sicher
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen