Gast
#3637936
Hallo, ich habe ein Problem mit der Steuerelektronik einer Anzeigetafel und komme alleine nicht mehr weiter. Die Beschreibung wird vermutlich etwas laenger, also an alle die sich die Zeit nehmen bis zum Ende zu lesen schonmal im vorraus vielen Dank. ;) Das Konzept welches ich mir ueberlegt habe ist eigentlich recht simple Elektrik auf geringem Niveau, umso aergerlicher und unverstaendlicher was passiert... Wir sind guenstig an alte 7-Segment Tafeln aus alten Tankstellenanzeigen gekommen. Diese klappen mechanisch um, kontrolliert von einem Magneten pro Segment. Der Magnet hat drei Kabel, mittelabgriff an der Spule fuer GND, ein Abgriff zum "aufklappen" indem der Magnet abstoesst und ein Kabel am anderem Ende der Spule zum "wegklappen" des Segments indem der Magnet dann anzieht. Aus jeder Ziffer gehen also 3x7 Kabel raus. Diese landen auf einer kleinen Platine (die dabei war) wo alle 7 GND's auf ein Kabel gehen und die 7 plus pole zum anziehen und die 7 zum abstossen gehen auf eine Pfostenleiste fuer ein Flachbandkabel. Darauf sind auch Freilaufdioden. Nun kann man mehrere Ziffern an ein Flachbandkabel haengen, dort einen "Pattern" mit 12V anlegen und die Ziffern deren GND man auf GND legt, klappen dieses Pattern dann hin. Geht mit Draehten und 12V Netzteil auch. Nun haben wir eine Tafel aus 10 Ziffern, je 2 Zeilen a 5 Stueck gebaut. Die gewaehlte Mischeung aus Performance (das klappen dauert ca. 2 Sekunden) und Kosten war diese: Je eine Zeile soll gleichzeitig klappen, die zweite Zeile anschliessend. Also habe ich 5 Platinen entworfen. Jede dieser hat einen ATMEGA8 drauf. Dieser kann ueber UART Befehle empfangen und verarbeiten. Das macht er indem er 9 12V Relais ansteuern kann. 7 sind Wechsler welche je fuer ein Segment zustaendig sind und 12V zwischen dem linken und rechtem Abrgiff der Spule umschalten. Also klappen oder setzen der Segmente. Die anderen beiden koennen jeweils eine Klemme auf GND ziehen. Daran kommt das gemeinsame GND der Ziffer. Eine Platine kuemmert sich also um zwei Ziffern, die in einer Spalte sind. Bei 5 Platinen koennen sich also alle simultan erst um die erste Ziffer (Zeile) kuemmern, dann um die zweite. Dazu lege ich mit den Relais das Pattern auf das Flachbandkabel, setze 2 Sekunden das entsprechende Relais damit die Ziffer GND bekommet und gut ist. Die UARTS der 5 Platinen gehen Token Ring maessig vom TxD des Vorgaengers zum RxD des Nachfolgers. Die Firmware ist auf allen gleich: "Liess ein String, stelle das erste eichen da und schick den Rest weiter (falls vorhanden)". Speise ich also eine "setze 12345" ein, nimmt modul 1 die 1 und stellt sie da, schickt "setze 2345" weiter ans naechste, dort das Spiel von vorn. Als sechstes Modul haengt ein ATMEGA644 im Kreis der die Befehle einspielt. Diese bekommt er vom zweitem UART ueber RS485 von einem PC. Theroie gut, Praxis geht auch-natuerlich nur ohne Ziffern dran auf dem Schreibtisch. Das ganze also eingepackt und eingebaut, geht unreproduzierbar schlecht. Sind keine Ziffern dran, geht alles perfekt-wie zu Hause. HAenge ich eine Ziffer dran, auch noch gut. Haenge ich zwei Dran, meistens gut. Spaetestens bei der dritten jedoch kommen in unreproduzierbaren Intervallen (wenige Sekunden) Resets einzelner willkuerlicher Module vor. Ich komme da nicht hinter. Vermutlich bricht die Versorgungsspannung ein, nur wenn, warum? Die 5V Versorgung und die 12V Versorgung kommen wahlweise aus zwei Netzteilen. Egal was also auf der 12V Leitung passiert, die 5V Spannung sollte stabil bleiben. Da passiert natuerlich einiges, die Relais brauchen etwas Strom - aber das geht ja. Kommt jedoch der Strom der Anzeigen dazu (ca 4,5 A pro Ziffer) hagelt es Resets. Das 12V Netzteil kann 18 A und welbst wenn ich die verarbeitung so verzoegere das jedes Modul erst umklappt und dann wartet und dann erst an naechste weitersendet, so das also nur maximal eine Ziffer unter Strom steht gehts nicht. Ist mir unerklaerlich. Problem Nummer zwei: Das Modul welches ueber RS485 die Befehle einspeisst geht auch nicht. Naja, es geht nur, wenn sowohl das Modul als auch der RS485 Dongle des PCs am SELBEN USB Port haengen. Aber in der Praxis geht das natuerlich nicht, weil dann die Strecke viel laenger ist. Dazu muss ich sagen, ich habe nur A und B verbunden, kein GND. Nach einer hier losgetretenen Diskussion konnte nicht abschliessend geklaert werden ob man bei RS485 GND nun als dritte Leitung legen muss oder nicht. Die Haelfte war dafuer, die andere dagegen. Ist mir eigentlich auch egal, ich habe ja die Moeglichkeit. Also GND Vom Dongle auch auf GND der Steuerplatine gelegt und sie da - die Kommunikation geht auch wenn di die Platine seperat mit 5V versorge die nicht aus dem PC kommen an dem der Dongle haengt. Super, lief stundenlang. Hin und her. Auch in anderen Raeumen an anderen Phasen des Hauses. Eingepackt, eingebaut, an einen Laptop gehaengt der an der selben Steckdose hing wie die Platine, 5 Sekunden gewartet, kleiner Feuerball auf der Platine wo die GND von der 5V Versorgung an den GND vom RS485 Dongle (also Laptop) ubergeht. Is klar... So... Nun die Fragen. Konnte ich das so beschreiben das man es nachvollziehen kann? :) Warum resetten meine Module nach Lust und Laune, obwohl die Lastseite der Relais aus einem anderem Netzteil gespeisst wird? Warum explodiert die GND Leitung am RS485 Port wenn eine Dran ist und wenn keine dran ist muessen Sender und Empfaenger am selben Netzteil haengen? PS: Ich wusste das es lang wird ;(