PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausgabe auf dem PC



Nikolaus188
07.08.2006, 01:25
Hi.
Ich fühle mich grade ziemlich blöd aber ich bekomme es einfach nicht hin.
ich habe eine experiementiertbord (siehe .schaltplan) mit eiem Mega32 drauf.
dann habe ich denn TX mit nem ca.3cm Lize en pin 15 gelötet und CTS an pin 14
wenn ich nun das prgamm


$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 8000000
$baud = 9600

Config Portb.0 = Output 'Ein Pin wird aus Ausgang konfiguriert PC0 (also Pin0 von Port C)

Do
Portb.0 = 1 'Pin wird auf High, also 5V geschaltet
Waitms 100
Portb.0 = 0 'Pin wird auf Low, also 0V geschaltet
Waitms 100
Print "Hallo"
Loop

End

draufmache blink zwar die led aber ich bekomme einfach keine Daten auf den com Port.
noch nicht mal müll oder hyrogyfen einfach nichts.
hat jemand ne idee??
ich weiß echt nicht was ich falsch manche.

dennisstrehl
07.08.2006, 01:37
>dann habe ich denn TX mit nem ca.3cm Lize en pin 15 gelötet und CTS an pin 14

Äähhh... Hä?
Wo hast du genau welche Pins mit welchen verdrahtet? Warum ist im Anhang ne Schaltung mit nem (nicht zum Mega32 pinkompatiblen) 8515er?

Wenn du die Schaltung so wie im Anhang verwenden würdest, dann würde es reichen, Tx am Board mit Rx am Rechner und GND am Board mit GND am Rechner zu verbinden. Da du GND nicht erwähnt hast, denke ich mal, dass dort der (oder vielleicht auch nur einer von vielen?) Fehler(n) liegt.
Wenn du auf das Board im Anhang einfach nen Mega32 draufgesetzt hast, dann liegt da vermutlich der zweite Fehler - da die LED aber wohl blinkt, schließe ich das mal aus.
(Wobei das theoretisch sogar funktionieren könnte, dann würde der AVR halt über ein paar der Clamping-Dioden versorgt und bekommt sogar noch ein ordentliches Reset-Signal (Einer der wenigen Pins, die sich nicht geändert haben))

pandadriver
07.08.2006, 01:42
Pin 14 und Pin 15? Von was sprichst du genau?
Normalerweist wird Tx vom controller mit Rx vom PC (Pin 2 bei 9 Pol /Pin 3 bei 25Pol) verbunden und CTS ist Pin 5 (oder auch 8 bei 25 Pol-version)

Nikolaus188
07.08.2006, 09:51
hi
ok ich hab mich gestern nacht ewt einbischen undeutlich ausgedrückt. Sorry
also ich habe mit den etwas dicken lienen jetzt einmal eingezeichnet was ich mit den lizen verbunden habe.
der rest ist bereits einen geätzet schaltung.

>>Einer der wenigen Pins, die sich nicht geändert haben
der resett ist doch immernoch auf pin 9???

danke für eure schnelle hilfe!!!

urkel_
07.08.2006, 10:13
Ist auf dem Board den ein Mega32? Wenn ja dann ist der Quarz falsch angeschlossen. Verwendest Du den internen Quarz, da die LED ja funktioniert? Der Quarz vom Mega32 sollte an Pin 12 und 13 nicht an 18 und 19.

Das nächste was mir an der Beschaltung aufgefallen ist, ist das Du beim Max232 T2Out und R1In verwendest. Seltsam! Versuch mal T1Out an Pin 2 und R1In an Pin3 des Sub-D.

Nikolaus188
07.08.2006, 11:01
hi
ne ich verwende das ex. Quarz und es ist auch auf Pin 18/19 angeschlossen.
hmm das its echt merkwürdig. ich meien ich habe das bord fertig gekauft da müsst mann doch davon ausgehen das es geht.
Ist es denn richtig Pin 11 vom max mit Pin15 vom mega32 zu verbinden??
kann es sein das ewt. ein stopbit oder soetas gesetzt werden muss dammit was ankommt??

kalledom
07.08.2006, 11:25
Vielleicht sollte erst einmal die Frage der Pinbelegung und Zählweise geklärt werden.
Aus dem Schaltplan ist nicht zu ersehen, was für eine Gehäuse der ATMega hat: DIP, PLCC oder TQFP ? Der Pin 1 befindet sich in den unterschiedlichen Gehäusen an unterschiedlichen Stellen !

Edit: Sorry, ich hatte die erste PDF-Datei übersehen; es ist wohl ein DIP-Gehäuse. Ist die Pinbelegung im Schaltplan auch von einem DIP-Gehäuse ? Wie zählst Du beim DIP ?

Nikolaus188
07.08.2006, 11:36
bei der nut der rechte pin ist 1 dann bis 20 auf der rechten seite dann rüber nach links da ist 21 und links bei der nut ist 40.
also der schaltplan stimmt mit der platiene nicht ganz über ein.
z.B. bei dem Quarz.
Die Beschaltung des max ist aber identisch.

kalledom
07.08.2006, 11:46
Wenn Du nach dem Bild in der PDF-Datei gehst, wo die Nase oben ist, dann ist nicht oben rechts der Pin 1, sondern oben links !
Grundsätzlich: die Nut / Nase zeigt nach links, dann ist unten links der Pin 1. Es wird entgegen dem Uhrzeigersinn gezählt. Dann ist unten rechts Pin 20, oben rechts Pin 21 und oben links Pin 40 !!!

urkel_
07.08.2006, 11:47
Wenn das Board für den Mega32 verkauft wird, ist es in der Tat sehr merkwürdig. Ja die Verbindung Mega32 Pin15(TXD) auf MAX232 Pin11(T1in) stimmt soweit. War der Einsatzzweck des gekauften Boards den der gleiche, wie Du es jetzt verwenden magst?

Bisher habe ich mir nur die Schaltung angesehen. Da ich mich mit Bascom gar nicht auskenne, weiss ich nicht wie dort initialisiert wird. Vieleicht hilft das https://www.roboternetz.de/wissen/index.php/Bascom_UART_Input oder jemand der mit Bascom arbeitet ;)

urkel_
07.08.2006, 11:57
kalledom meint wenn man auf das IC draufschaut (also Beschriftung sichtbar) nicht auf die Platinenunterseite schauen. Ich vermute das Nikolaus auf die Platinenunterseite schaut.

Das eigentliche Problem liegt aber doch darin das der 8515 und der Mega32 nicht Pinkompatibel sind.

Nikolaus188
07.08.2006, 12:07
Also das bord ist für nen mega 16 verkauft worden.

zum zählen der pins:
[------------]
|...............|
|...............|
|...............|
|...............|
|...............|
[40../\.....1]

natürlich von oben gesehen.
Also meine idee ist die das ich mir mein serieles Kabel nehme und dann
dies so umlöte das T2Out und R2In und GND mit den richtige Pin's verbunden sind.
Kann ich den rest einfach weg lassen???

kalledom
07.08.2006, 12:09
Was die serielle Schnittstelle betrifft, unter http://www.domnick-elektronik.de/aktuell.htm findest Du meine 'Art' der RS232-Belegung.
RTS und CTS sind Handshake-Signale, die melden, ob alles bereit ist oder nicht. Sie werden kaum noch beachtet, müssen bei einigen PC-Programmen jedoch bestimmte Pegel haben. Es reicht, wenn RTS und CTS einfach miteinander verbunden werden. Ich habe diese Verbindung auf der TTL-Seite des MAX232, so daß ein PC-Programm einen ausgeschalteten µC erkennen kann.
Zur Datenübertragung sind nur 3 Leitungen erforderlich: TxD (Transmit = Sendedaten), RxD (Receive = Empfangsdaten) und GND. TxD kommt an RxD, RxD nach TxD und die GND's zusammen.
Viele verwenden auf dem µC-Board einen SubMinD-Stecker, der nicht in den PC paßt (weil da schon ein Stecker ist) und zu dem ein Kabel mit Buchse - Buchse und vertauschten Leitungen erforderlich ist; toll.
Ich verwende immer eine SubMinD-Buchse, die so belegt ist, daß sie theoretisch direkt in den PC eingesteckt werden könnte. Zum Anschluß ist ein normales Verlängerungskabel Stecker - Buchse mit 1 : 1 Verdrahtung erforderlich.

Nikolaus188
07.08.2006, 12:31
Hi
Ok nur damit ich das richtig verstehe.
ich habe einen ganz normalen D-Sub(weiblich) auf meinem Bord. und benutze eine D-Sub verlängerung (1x Weib. 1x män.)
muss ich jetzt die pinns für TxD und RxD auch noch im Kabel tauschen(kreutzen) ????

Ansonsten ist alles klar.
danke

urkel_
07.08.2006, 12:32
Da Du die Verbindung mit MAX232 und Mega32 mit Drähten vorgenommen hast, kannst Du auch mal folgendes versuchen:

Verbinde Pin14(Mega32) mit RX im Schaltplan von Dir und Pin15(Mega32) mit TX. In diesem Fall benötigst Du eine gekreuzte Verbindung zw. µC Board und PC.

Ansonsten schau dir die Seite von kalledom an, dort wird es eigentlich sehr schön gezeigt.

kalledom
07.08.2006, 12:51
Wenn Du eine D-Sub-Buchse hast, sagt das ja noch nichts über die Belegung aus. Wenn aber schon jemand 'mitgedacht' hat und eine Buchse (weiblich) verwendet, würde ich mal davon ausgehen, daß die theoretisch in den PC eingesteckt werden kann und eine Verlängerung mit Stecker - Buchse 1 : 1 dazwischen muß. Aber: Vertrauen ist gut, Kontrolle ist besser.

Nikolaus188
07.08.2006, 13:21
danke urkel_
aber das funktieoniert leider auch nicht.
wenn ich jetz wie oben beschrieben das kabel umlöte muss ich es dann kreutzen??

Nikolaus188
07.08.2006, 13:29
also zurzeit ist das kabel 1 zu 1

urkel_
07.08.2006, 13:45
Ja musst Du.


Verbinde Pin14(Mega32) mit RX im Schaltplan von Dir und Pin15(Mega32) mit TX. In diesem Fall benötigst Du eine gekreuzte Verbindung zw. µC Board und PC.

Nikolaus188
07.08.2006, 13:50
oh sorry hatte mich verlesen und "keine gelesen"
also kreutzen
9-->1
8-->2
7-->3
6-->4
..
..

kalledom
07.08.2006, 13:53
Du solltest erst mal ausmessen, wo auf Deinem µC-Board TxD und RxD an der SubD-Buchse angeschlossen sind. Es muß mit meinem Plan unter obigem Link überein stimmen. GND wird ja wohl auf dem richtigen Pin sein ? RTS und CTS verbinden, entweder auf der TTL-Seite des MAX232 (so wie bei mir) oder auf der RS232-Seite; da aber die Leitungen vom MAX232 abmachen. Dann kannst Du auch das 1 : 1 Kabel verwenden.
Beim MAX232 kann T1OUT-T1IN mit T2OUT-T2IN vertauscht sein und R1IN-R1OUT mit R2IN-R2OUT.
Dann gibt es da noch 3 Leitungen: DTR (Data Terminal Ready), DSR Data Set Ready) und DCD (Data Carrier Detect); die sollten an der Buchse verbunden sein.
Damit sind dann erst mal hardwaremäßig die Grund-Voraussetzungen für eine serielle Kommunikation erfüllt.

PS: Die Belegung auf Deinem Plan stimmt mit 'meiner' Belegung soweit überein, so daß ein 1 : 1 Kabel benutzt werden muß. Voraussetzung ist, daß RX = Pin 10 des MAX232 am Pin 10 des ATMega angeschlossen ist und TX = Pin 12 des MAX232 am Pin 11 des ATMega. CTS und RTS (Pin 11 und 9 des MAX232) verbinden und am Pfosten J1 die Pins 1 und 2 brücken.

Edit: Die Bezeichnungen im Schaltplan am MAX232, Ausgang Pin 12 = TX und Eingang Pin 10 = RX finde ich etwas mißverständlich.
Der Ausgang Pin 12 muß an den seriellen Eingang des µC; der hat die Bezeichnung RxD.
Der Eingang Pin 10 gehört an den seriellen Ausgang des µC; der hat die Bezeichnung TxD.

urkel_
07.08.2006, 14:02
Aehm, noe so nicht ;)

Die beiden Drähte die für die Übermittlung der Daten notwendig sind sind RX und TX. Diese beiden müssen gekreuzt werden.

Bei Sub-D 9polig also Pin 2 und Pin 3
PC -> µC
2 -> 3
3 -> 2

Das und Masse reicht für eine minimal Verdrahtung. Aber das hatte ja kalledom ein wenig weiter oben schon geschrieben ;)

http://www.hardwareecke.de/berichte/schnittstellen/rs_232.php

kalledom
07.08.2006, 14:14
Verbinde Pin14(Mega32) mit RX im Schaltplan von Dir und Pin15(Mega32) mit TX. In diesem Fall benötigst Du eine gekreuzte Verbindung zw. µC Board und PC. Mir ist noch nicht so ganz klar, was im Schaltplan für ein µC ist. Aber jetzt wird mir einiges (un-) klar: die Beschriftung im Plan TX am MAX232 kann nicht an TX vom µC, weil Pin 12 vom MAX12 ist ein Ausgang und der TX vom µC ist auch ein Ausgang. Bei RX vom MAX232 (Eingang) zum RX vom µC (Eingang) wäre es nicht so schlimm, allerdings sinnlos.
Jetzt aber: Pin 12 vom MAX232 an RXD vom µC und Pin 10 vom MAX232 an TXD vom µC. Der Rest wie im vorigen Beitrag. Serielles Kabel 1 : 1.
Ich hoffe, daß nicht noch mehr Unsinn im Schaltplan steht.

Nikolaus188
07.08.2006, 14:16
ok
wenn ich das so habe muss ich die auf deinem plan als TXD gekenzeichnete leitung an 14 doer 15 dran löten??

urkel_
07.08.2006, 14:27
Ich glaube ich schalte mich ab hier jetzt weg, da es nur zu einem Durcheinander führt wenn Dir einer den Weg mit 1:1 Kabel und ein anderer den Weg mit gekreuztem Kabel erklärt.

kalledom
07.08.2006, 14:36
@urkel_
Warum nicht 1:1 ? Die Belegung der Buchse (und nur eine solche kann im PC eingesteckt werden) im Schaltplan ist doch genau das Gegenstück zum PC und wenn Du die Verbindungen zwischen der Buchse und dem MAX232 nicht auch noch vertauschen möchtest, kann es nur mit einem 1:1-Kabel funktionieren; oder liege ich da falsch ?
Etwas sehr unglücklich finde ich im Schaltplan die Bezeichnung TX an einem Ausgang des MAX232, an dessen Eingang ja nur was reinkommen kann. Reinkommen können aber von der Gegenseite nur die Sendedaten, also TxD; die liegen am PC an Pin 3 des SubD-Steckers. Besser wäre vielleicht die Bezeichnung 'TX vom PC', dann gäbe es keine Verwirrungen und man wüßte sofort, daß dieser Pin an den Eingang RxD des µC kommt.
Wo am ATMega TxD und RxD sind, kannst Du sicher besser sagen als ich.

Nikolaus188
07.08.2006, 14:57
HI
OK ges geht!!! es läuft wirklich!!! :cheesy: :D =D>
Vielen dank für eue hilfe!!!!
ich spring gleich an die decke!!!!
Danke

urkel_
07.08.2006, 15:05
@kalledom: Ich sage ja nichts gegen Deine Lösung. IMO funktioniert sie genauso. Ich würde halt lieber eine gekreuzte Verbindung zw. PC un µC verwenden weil in der Regel zw. 2 gleichwertigen seriellen Komunikationspartnern (dies ist meines erachtens ein µC und ein PC) gekreuzte Verbindungen verwendet werden. Anderes bei PC-Modemverbindungen, dort wird in der Regel ein 1:1 Kabel verwendet.

Nix für ungut ;)

Glückwunsch Nikolaus188 ;)

kalledom
07.08.2006, 15:28
@urkel
In diesem Schaltplan und auf der Platine (so es denn Übereinstimmungen gibt) sind Verbindungen zwischen der SubD-Buchse und dem MAX232 als Leiterbahnen. Am PC ist Pin 3 der TxD, ein Ausgang. Wo kommt der an, zu einem Eingang ... Pin 3 der Buchse auf dem µC-Board führt zu einem Eingang des MAX232. Alles richtig 1:1, bis auf die Bezeichnung TX = TX vom PC und nicht zum TX des µC !
Wenn Du ein gekreuztes Kabel nimmst, kommt der TxD des PC am Pin 2 der Buchse des µC-Boards an, von dort zum Pin 7 des MAX232, ein Ausgang. Es sei denn, Du beginnst die Leiterbahnen zu tauschen :-(

Ich finde übrigens, daß jedes Gerät, welches mit einem PC kommuniziert, auch dort direkt eingesteckt werden soll (zumindest theoretisch), oder mit einem 1:1-Verlängerungs-Kabel verbunden wird. Wer damals auf die Idee gekommen ist, die serielle Druckerschnittstelle wie einen PC zu belegen, der hat sein Geld nicht verdient; wer schließt seinen Drucker schon an einem Modem an, statt am PC ?

urkel_
07.08.2006, 15:45
IMO sind die gekreuzten Kabel aufgekommen mit der Idee Daten zw. 2 PCs auszutauschen. Kirschbaumlink und Laplink beispielsweise. Dort macht es auch "Sinn".
Bei Druckern gebe ich der vollkommen Recht.

kalledom
07.08.2006, 17:00
Richtig, Laplink ... Laplink-Kabel, die gelben für parallel, die blauen für seriell mit 9 und 25-pol. auf beiden Seiten, für Kommunikation und Datenaustausch zwischen zwei PC's.
Das war aber sehr lange nach der Entscheidung, 'alles was nicht Modem ist, bekommt die Seriell-Belegung vom PC', auch wenn 90% davon in die PC's eingesteckt wurden. Da waren IBM-kompatible noch ganz frisch. Ab dem Tag wurden die tollsten Verdreh-Kabel 'gewurschtelt', bis, hurrra, es die Laplink-Kabel gab; die funktionierten leider nicht an allen Geräten. Für serielle Drucker mußte ich Kabel immer noch von Hand machen.

urkel_
07.08.2006, 17:07
Und davor noch die roten Kirchbaumlink Kabel