Hallo liebe Forengemeinde,
ich bin mit meinem Latein am Ende aber vielleicht kann mir der eine oder
andere von euch weiterhelfen.
Zum Thema: ich bastele eine digitale Anzeige für ein RS232 gebundenes
Messmittel (genauer einen Sylvac-kompatiblen Messschieber). Das ganze
benötige ich drei mal, für einen x,y,z -Tisch.
Zum Aufbau: verwendet wird ein ATMega 16A auf 16MHz in Verbindung mit
einem MAX3222. Beides stur nach Datenblatt beschalten (siehe Anhang).
Pin PD2 am ATMega wird verwendet um die DTR Leitung zu setzen. Enable
und Shutdown werden ebenfalls über den µC gesteuert. Die
Versorgungsspannung beträgt rund 5,2V.
Zum Problem: eine der vier Platinen funktioniert wie gewünscht. Der
Messwert wird auf das Display übertragen. Dafür wird vom µC ein "?\r" an
das Messmittel gesendet. Alle anderen Platinen funktionieren nur
teilweise. Neuere Messmittel mit einer Spule als Signalgenerator
funktionieren einwandfrei. Das Opto-Signal des Messschiebers hingegen
macht auf der fallenden Flanke des Rücksignals (RX) Probleme. Nach einem
High-Pegel-fällt das Signal laut Oszi nicht steil ab sondern läuft auf
einer Kurve aus. Das führt natürlich zu einer Fehlinterpretation des
Messergebnisses. Bei einer der vier Platine funktioniert das jedoch
zuverlässig mit jedem Messmittel.
Nun habe ich natürlich bereits fast alles durchgemessen (mit Oszi und
Multimeter). Die Platinen weisen keine signifikanten Unterschiede auf,
sowohl Widerstandswerte und Kondensatorwerte sind identisch. Ich habe
auch schon einige Anpassungen auf der Platine vorgenommen (Beipässe,
Widerstandsanpassungen etc.) aber es hilft alles nichts. Eigentlich
sollte das ja auch kein Hexenwerk sein aber ich finde den Fehler einfach
nicht.
Kennt jemand von euch das Problem oder hat eine Idee wie ich dem ganzen
begegen kann? Das einzige was ich denke ausschließen zu können ist der
Quelltext im µC. Der macht keine Probleme (mit Nullmodem-Kabel
getestet).
Vielen Dank für eure Hilfe
Fred schrieb:> Das Opto-Signal des Messschiebers hingegen> macht auf der fallenden Flanke des Rücksignals (RX) Probleme. Nach einem> High-Pegel-fällt das Signal laut Oszi nicht steil ab sondern läuft auf> einer Kurve aus.
Klingt nach fehlendem pull-down Widerstand: wenn der Opto-Ausgang einen
PNP-Transistor hat, mit open collector, zieht er bei H den Ausgang
niederohmig auf das hohe Potential. Bei L wird er nur hochohmig und die
Spannung geht nur langsam nach unten, wenn kein pull-down Widerstand
vorhanden ist.
btw: Wo genau ist das Signal des Sensors in dieser Schaltung
angeschlossen bzw. an welchem Punkt der Schaltung ist das beschriebene
Signal gemessen worden?
Hallo,
wahnsinn schnelle Antwort, danke.
Das wichtigste zuerst: gemessen wurde auf der Leitung zwischen R1in des
Max bzw.Pin 2 des RS232 Steckers und GND. Also auf der Rück-Leitung. Ich
muss zugeben ich dachte/ denke, dass R15 der Pull-Down für diese Leitung
ist. Wobei der 5k natürlich normalerweise (jedenfalls bei Maxim)
innerhalb des Max verbaut ist. Dieser Stammt von TI.
Was erwartest Du ?
Du hast Probleme mit einer optischen Übertragung, zeigst uns aber den
betreffenden Schaltungsteil nicht.
Du erkennst das eine flach auslaufende abfallende 'Flanke' an Rin ein
Problem ist, äußerst Dich aber nicht dazu ob der Lösungsvorschlag
funktioniert hat.
Fred schrieb:> Zum Problem: eine der vier Platinen funktioniert wie gewünscht. ...> Alle anderen Platinen funktionieren nur teilweise.
Also gut, deutet auf einen Designfehler hin...
> Neuere Messmittel mit einer Spule als Signalgenerator funktionieren
Mit allen 4 Leiterplatten?
Wie sehen die Signale aus?
Welche Signalpegel hast du?
> Bei einer der vier Platine funktioniert das jedoch zuverlässig mit jedem> Messmittel.
Solltest du hier "zuverlässig" nicht eher durch "zum Glück" oder "gerade
noch so" ersetzen?
BTW: im Schaltplan ist viel zu viel Müll drin. Der ist so kaum lesbar.
BTW2: R14 und R15 sind unnötig. Die sind nämlich schon im MAX
eingebaut...
Ich verstehs immer noch nicht.
Was ist jetzt mit wem wie verschaltet?
An 1 Mega16 hängen 3 Messmittel?
Oder wie?
Du kannst nicht einfach 3 RS232 Leitungen zusammenschalten!
Fred schrieb:> Schema.png
Und was sollen die ganzen grünen Kringel im Schaltplanfetzen. Die
verwirren doch nur - hoffentlich nicht auch die Elektronen ;-)
Okay danke für die vielen Antworten. Dann versuche ich jetzt mal auf
alle einzugehen:
Michael K. schrieb:> Was erwartest Du ?> Du hast Probleme mit einer optischen Übertragung, zeigst uns aber den> betreffenden Schaltungsteil nicht.
Ich glaube hier haben wir ein Verständigungsproblem: Ich habe alles
gezeigt was ich habe, ein ATMega (Schema.png links) sendet über uart ein
"?\r" .. dieses wird über den Max3222 (von TI, Schema.png mitte)
gewandelt und seriell über ein RS232 Kabel (fertig vom Hersteller
mitgeliefert) an den Messschieber übertragen. Was für ein Schaltungsteil
fehlt dir jetzt? Den optischen Teil habe ich natürlich nicht! Sollte ich
etwas falsch verstanden haben, wäre ich natürlich für eine Korrektur
dankbar.
Michael K. schrieb:> Du erkennst das eine flach auslaufende abfallende 'Flanke' an Rin ein> Problem ist, äußerst Dich aber nicht dazu ob der Lösungsvorschlag> funktioniert hat.
Ich schrieb in meinem Beitrag kurz danach meine Meinung: "Ich
muss zugeben ich dachte/ denke, dass R15 der Pull-Down für diese Leitung
ist.". Außerdem habe ich in meinem Ursprungsthread darauf hingewiesen,
dass ich bereits einiges an Widerstandsänderungen probiert habe
(darunter auch größere Pull Downs). Das habe ich leider versäumt direkt
so hinzuschreiben.
Lothar M. schrieb:> Mit allen 4 Leiterplatten?> Wie sehen die Signale aus?> Welche Signalpegel hast du?
Ja, mit allen vier Leiterplatten. Die Signale sind absolut sauber. Sehr
gute Rechtecke mit einem Pegel von max 6V. Und ja, dass mit dem
Designfehler befürchte ich auch. Ich kann ihn leider nicht finden.
Lothar M. schrieb:> Solltest du hier "zuverlässig" nicht eher durch "zum Glück" oder "gerade> noch so" ersetzen?
Auslegungssache ;) Da sie alle absolut unempfindlich gegen Störungen
sind habe ich "zuverlässig" genutzt. Auch das Oszi scheint mich zu
bestätigen. Wobei natürlich gerade so nicht auszuschliessen ist.
Lothar M. schrieb:> BTW: im Schaltplan ist viel zu viel Müll drin. Der ist so kaum lesbar.> BTW2: R14 und R15 sind unnötig. Die sind nämlich schon im MAX> eingebaut...
Ja ich bin kein ausgebildeter Elektroniker oder Layouter. Ist mir auch
schon aufgefallen, dass das viele besser können. Ich arbeite an
Besserung.
R14 und R15 sind laut dem Datenblatt von RS (hier habe ich die Dinger
gekauft) nötig (wie geschrieben handelt es sich bei dem Max um ein
Exemplar von TI und nicht von Maxim). Wobei auch ein Weglassen keinen
Unterschied bringt.
http://docs-europe.electrocomponents.com/webdocs/0c8b/0900766b80c8bb38.pdfKarl H. schrieb:> Ich verstehs immer noch nicht.>> Was ist jetzt mit wem wie verschaltet?>> An 1 Mega16 hängen 3 Messmittel?> Oder wie?>> Du kannst nicht einfach 3 RS232 Leitungen zusammenschalten!
Das verschalten ist hoffentlich durch die obere Antwort klarer geworden.
Am RX und TX des ATMega hängt der Max (wie DTR verschalten ist steht
oben). An dem wiederum hängt ein Messmittel.
Trotzdem vielen Dank für die Antworten. Sollte ich was falsch verstanden
haben, gebt bitte Bescheid.
Gerade zu dem Thema mit den Pull Downs ;) Es könnte natürlich sein das
ich hier einem Fehler aufgesessen bin.
Hallo Fred,
Fred schrieb:> Nach einem High-Pegel-fällt das Signal laut Oszi nicht> steil ab sondern läuft auf einer Kurve aus.
Wenn der Pull Down falsch dimensioniert sein würde, dann müsste er
niederohmiger gemacht werden, statt hochohmiger, damit die Flanke
schneller nach GND abfällt.
R14 und R15 sind zwar lt. Datenblatt nicht nötig (wie schon angemerkt),
aber parallel zu den internen 5k ist das schon mal niederohmiger.
Lt. ti-Datenblatt (über Deinen Link) hat auch dieser die internen 5k an
den Eingängen. Ist also offensichtlich kompatibel zum MAX.
Wenn ich das richtig verstanden habe, dann hast Du vier gleiche Platinen
und bei einer kappt es. Du bist also in der glückligen Lage und hast die
ideale Voraussetzung, um den Fehler zu finden: Neben einer oder mehrer
fehlerhaften Platine ist eine baugleiche funktionierende Platine
vorhanden! Das erlaubt Dir wunderbare Vergleichsmessungen und -tests.
Überlege, was Du dahingehend alles testen, messen und vergleichen
könntest (außer den RS232 Signalen).
Bitte lade mal ein Bild vom Oszi vom RX Signal hoch mit der
Datenübertragung. Zeitbasis so einstellen, dass etwa 2 Bytes erfasst
werden und Anfang und das Ende dargestellt werden. Und zwar:
a) von der funktionierenden Platine
b) von den nicht funktionierenden Platinen (wenn die unterschiedlich
Aussehen, dann vielleicht einfach von allen vier Platinen. Um so mehr Du
dem Forum mitteilst, desto besser werden die Antworten für Dich sein.).
Zur Not abfotografieren.
Welche Datenrate fährst Du?
Weitere Test Vorschläge:
Leg mal RX über einen Widerstand nach 5V und kontroliere die
Gleichspannung, ob sie dem Spannungsteiler entspricht (R15 || interne
5k).
Verbinde TX und RX (Pin 3 und Pin 2) an der D9-Buchse und messe am
Mikrokontroller an TXD und RXD, ob alles was aus TXD rauskommt auch auf
RXD wieder reinkommt. Am besten ein Bildchen mit 1-2 Byte
Übertragungszeit hochladen.
Auch hier dann den RX immer mit testen, ob da die Flanke auch schlapper
ist, als bei der "guten" Platine.
Vielleicht braucht der unbekannte Gegenüber ("Optosensor")
Hardware-Handshake Signale auf bestimmten Pegel.
Irgendwas muss Du doch von dem großen Unbekannten haben: Datenblatt oder
so, mit den Specs zur Schnittstelle etc. Lad das mal bitte mal hoch.
Und nun ran an die Arbeit.
Joe F. schrieb:> C1: 47nF> C2, C3, C4: 330nF> Nimm einfach 1uF für jeden.
Ja, sollte man mal testen. Aber ich gehe davon aus, dass das Problem
nicht lösen wird. Die Kondensatoren werden für die Charge Pump
gebraucht, um die TX Ausgangsspannung zu erzeugen. Für den Eingang wird
diese m.E. nicht benötigt.
Ferner ist ja noch suspekt, dass es mit einer der vier baugleichen (so
nehme ich an) Platinen funktionert. Vielleicht ist auch der Transceiver
(MAX) auf den nicht funktionierenden Platinen defekt.
Aber TO Fread muss erstmal noch ein paar Tests und Messungen (s.o.)
machen und uns weitere Infos einstellen, damit es nicht bei
Spekulationen bleibt.
Hi, danke für die Hinweise.
Ja du hast Recht das Datenblatt hätte ich wohl auch gleich zur Verfügung
stellen können. Manchmal ist man einfach betriebsblind ;)
Hier ein Link zur original Sylvac Schnittstelle.
file:///C:/Users/Fred/Downloads/manuel_Opto_neutre_10_2010.pdf
Für alle die solche Links nicht mögen kurz zusammengefasst:
Positive Speisung : DTR Pin 4
Negative Speisung : RTS Pin 7
Daten Gerät->Peripherie : RXD Pin 2
Datenabfrage TXD Pin 3
Verbindung: RS232 kompatibel, Dsub 9p weiblich oder frei
Speisung: von dem Peripheriegerät geliefert, über die Zeilen DTR und GND
Übertragungsparameter: 4800 Bds, 7 Data-Bits, gerade Parität, 2
Stop-Bits
Maximale Kabellänge: 15 m nach Norm IEC
Anzahl der Übertragungen pro Sekunde: 4-8/s. (hängt vom angeschlossenen
Gerät ab)
Übertragungsformat: [ Zeichen ¦ E1-En ¦ «.» ¦ F1-Fn ¦
Matz K. schrieb:> Wenn der Pull Down falsch dimensioniert sein würde, dann müsste er> niederohmiger gemacht werden, statt hochohmiger, damit die Flanke> schneller nach GND abfällt.>> R14 und R15 sind zwar lt. Datenblatt nicht nötig (wie schon angemerkt),> aber parallel zu den internen 5k ist das schon mal niederohmiger.
Da ich ja eher eine schnell abfallende Flanke brauche sollte das ja gut
sein.
Wie gesagt auch ein weglassen oder erhöhen hat keine Unterschiede
gemacht.
Das mit R14 und R15 will mir immer noch nicht in den Kopf. Du hast erst
mal soweit Recht das im Max ein 5k vorhanden ist. Der lässt sich
nachmessen. Warum fordert das Datenblatt den 5k außen nochmal? Alle
baugleichen Max benötigen den nicht!
Die Platinen sind vom Layout absolut identisch.
Matz K. schrieb:> Leg mal RX über einen Widerstand nach 5V und kontroliere die> Gleichspannung, ob sie dem Spannungsteiler entspricht (R15 || interne> 5k).
Gute Idee. Leider kommt bei allen Platinen das selbe raus. -.-
Leider steht mir bis Anfang nächster Woche kein Oszi zur Verfügung aber
ich versuche mal alle Bilder nächste Woche hochzuladen. Ein paar Sachen
habe ich allerdings so oder so ähnlich schon getestet.
Die Datenrate beträgt 4800Baud. Also sehr langsam ;)
Matz K. schrieb:> Verbinde TX und RX (Pin 3 und Pin 2) an der D9-Buchse und messe am> Mikrokontroller an TXD und RXD, ob alles was aus TXD rauskommt auch auf> RXD wieder reinkommt. Am besten ein Bildchen mit 1-2 Byte> Übertragungszeit hochladen.> Auch hier dann den RX immer mit testen, ob da die Flanke auch schlapper> ist, als bei der "guten" Platine.
Das habe ich bisher nur mit einem Nullmodem-Kabel zum PC und einem Oszi
ausprobiert. Der PC hat zumindest kein Problem mit den Daten, alles
kommt so an wie es gesendet wurde. Die Flanken sind sauber. Sobald ich
das Oszi habe werde ich aber ein paar Bilder hochladen und den Test
exakt so durchführen.
Matz K. schrieb:> Vielleicht braucht der unbekannte Gegenüber ("Optosensor")> Hardware-Handshake Signale auf bestimmten Pegel.
Davon ist mir jedenfalls nichts bekannt. Laut Datenblatt konnte ich auch
nichts diesbezüglich finden.
Joe F. schrieb:> Datenblatt MAX3222 "Required Minimum Capacitor Values" (4.5-5.5V):>> C1: 47nF> C2, C3, C4: 330nF>> Nimm einfach 1uF für jeden.
Ja da das Opto-Kabel keine eigene Spannungsversorgung hat und über DTR
versorgt wird, wäre das möglich. Ich habe es schon mit 100n Beipässen
und alle auf 330nF + 100nF probiert aber auf 1µF bin ich noch nicht
gegangen. Das werde ich noch nachholen und das Ergebnis posten.
Einen defekten Max schließe ich aktuell eigentlich aus, da ich schon
mehrere versucht habe.
Leider kann ich euch noch nicht mehr liefern. Ich werde das aber
unverzüglich nächste Woche nachholen.
Fred schrieb:> file:///C:/Users/Fred/Downloads/manuel_Opto_neutre_10_2010.pdf
Hallo Fred,
der Link ist nett gemeint. Schau Dir mal die Pfadangabe an. ;-)
Hallo Fred,
Fred schrieb:> Das mit R14 und R15 will mir immer noch nicht in den Kopf. Du hast erst> mal soweit Recht das im Max ein 5k vorhanden ist. Der lässt sich> nachmessen. Warum fordert das Datenblatt den 5k außen nochmal?
Hast Recht, jetzt hab ichs auch gesehen: in der ti App information sind
tatsächlich nochmal 5k zusaätzlich eingemalt. Kapier ich auch nicht.
Sind auch nur Menschen, ist bestimmt nen Fehler und soll die internen
Widerstände darstellen. Lassen wir das mal so stehen. Ist für das
Problem offensichtlich nicht relevant.
Fred schrieb:> Positive Speisung : DTR Pin 4
Moment mal: Der Transceiver macht doch auf TOUT +5V (wenn DIN = Low)
oder -5V (wenn DIN = High)! Das kommt mir sehr suspekt vor als
Versorgungsspannung für den Sensor!
Speise mal den Sensor direkt mit 5V an DTR. Wenn Du den später mal
Abschalten möchtest, dann wird sich dafür eine andere Lösung finden.
Fred schrieb:> Negative Speisung : RTS Pin 7
Und an Pin 7 hast Du gar nichts angeschlossen.
Und wenn der Sensor diese Spannung braucht, um den "tiefen" RS232 Pegel
zu erzeugen, dann könnte das eine Erklärung sein, dass dieses Signal
schwimmt, wenn dieser Pegel ausgegeben werden soll. Naja, alles
Vermutungen.
Jetzt brauchen wir aber dringend das Manual.
Fred schrieb:> Matz K. schrieb:>> Leg mal RX über einen Widerstand nach 5V und kontroliere die>> Gleichspannung, ob sie dem Spannungsteiler entspricht (R15 || interne>> 5k).>> Gute Idee. Leider kommt bei allen Platinen das selbe raus. -.-
Was denn? Ist der Wert plausibel bzgl. der Widerstandswerte?
Fred schrieb:> Matz K. schrieb:>> Vielleicht braucht der unbekannte Gegenüber ("Optosensor")>> Hardware-Handshake Signale auf bestimmten Pegel.>> Davon ist mir jedenfalls nichts bekannt. Laut Datenblatt konnte ich auch> nichts diesbezüglich finden.
OK, Du hast ja die Pinbelegung gepostet. Danach scheint der Sensor da
nix zu brauchen.
Fred schrieb:> Leider kann ich euch noch nicht mehr liefern. Ich werde das aber> unverzüglich nächste Woche nachholen.
Vielleicht vorher noch das Manual mal hochladen oder einen Link ins Web
(statt auf Deine Platte) ;-)
Dann Viel Erfolg.
Hallo Fred,
habe das Manual im Web gefunden. Ließ sich aber nicht verlinken.
Blödes Manual. Keine Elektrischen Specs (Spannung/Stromverbrauch etc).
ABER: da wird Pin 5 (GND) nirgens gebraucht.
UND: In der Englischen Anleitung heißt es:
Pin 7 (RTS) = GND
und in der deutschen und französichen Anleitung heißt es:
Pin 7 (RTS) = LOW/OFF
Ein LOW auf der RS232 Seite heißt aber: irgendwas zwischen 0V und -12V.
Dein MAX liefert z.B. -5V.
Leg mal GND statt an Pin 5 an Pin 7. Vielleicht wars das schon.
Matz
Hallo Matz,
du bist ein Gott!!! ;)
Manchmal ist man ja so blind. Ich hatte auf einer Platine SPI mit nach
außen gelegt und auf PIN 7 die Masse gelegt (purer Zufall -.-). Deswegen
ging die eine Platine wohl.
Ich kann es zwar gerade nicht testen aber ich würde wetten, dass es dann
geht.
Ja das mit dem Manual ist blöd gelaufen. Man kann es scheinbar nicht im
Browser laden. Es wird immer auf die Platte geladen.
Danke Danke Danke
Ich werde die Bestätigung nächste Woche posten.
Fred schrieb:> du bist ein Gott!!! ;)
Allmacht haben sich schon so einige Menschen angemaßt. Ist noch nicht so
lange her. Ist gnadenlos in die Hose gegangen. Nee-nee, da gehen wir
nicht dran. Wir kochen also mal fein ein kleines Süppchen:
=> Wenn Deine Kiste läuft, wärs klasse. Und gut ist. :-)
Schönes heißes Wochenende.
Matz.
Matz K. schrieb:> Fred schrieb:>> du bist ein Gott!!! ;)>> Allmacht haben sich schon so einige Menschen angemaßt.
Lieber Gott, :-)
du hast Dir ja nichts angemasst, sondern andere haben Dich dazu erklärt.
Es ist allerdings, soweit das Deine Bedenken sind, durchaus fraglich, ob
dass immer so toll ist, zum Gott erklärt zu werden.
:-)
Bestätigung!
Der Fehler war das Pin 7 des RS232 nicht auf GND hing. Da ist irgendwo
mal ein Zahlendreher passiert.
Vielen Dank an alle die geholfen haben. :-)