Ohne Schaltplan, Funktionsbeschreibung und Datenblätter der verwendeten Displays nichts zu machen.Die kleinen Anzeigetafeln sind außerdem keine 7-Segment-Anzeigen mehr, sondern auch hier kommen fertige LED-Module aus China zum Einsatz (auch hier eine Kostenfrage).
Folglich muss ich also einen komplett neuen Entwurf für die Ansteuerung der kleinen Displays machen. Die LED-Module haben bereits Segmenttreiber und einige Schieberegister verbaut. Ich hab also lediglich 16 Signal-Leitungen die ich mit 1ern und 0ern befüllen muss.
Die Helligkeit der Module spielt nun wohl keine Rolle mehr?
Probier die Dinger erstmal aus, ob die bei Tageslicht überhaupt noch erkennbar sind - Ich hab da schon meine Erfahrungen mit günstigen Siebensegment LED Uhren gemacht.
Sind das parallel in seriell out Schieberegister oder warum so viele Leitungen?Der AtMega16 empfängt die Daten vom Controller-Board, übergibt sie an 2 Schieberegister (2*8 bit sollte ja ausreichen für 16 Leitungen), von hier aus dann über ein (kurzes) Flachbandkabel zum LED-Modul und die Anzeige sollte laufen.
Der Grund für diese Entscheidung war letztlich dein Bus Design.Das Beeinflusst das Design des Conroller-Boards jetzt insofern, als das der Controller selbst jetzt auch Daten (vom Buzzer) auswerten, und zurück an den Laptop senden soll.
Du wolltest vom Laptop aus sowohl eine Stern als auch eine Bus Topologie haben. Dadurch war ein Rückkanal nicht mehr so einfach möglich.
Zur Zeit beschäftige ich mich mit dem CAN Bus. Der könnte eine Lösung für dein Problem sein.
Dieser Bus ist Multimaster fähig und hat eine Kollisionserkennung und eine Nachrichtenpriorisierung.
Aber auch hier ist eine 2 Draht Leitung ohne sternförmige Abzweigungen nötig.
Da der PC aber auch in der Mitte dieser Busleitung sein kann, kannst Du von hier aus maximal 2 Stiche abgehen lassen, die an den Enden der Leitungen einen Abschlusswiderstand kriegen müssen.
Nun die Nachteile: Die Reichweite ist nicht mehr ganz so groß wie bei RS485. Das kommt aber auch auf den gewählten Bus Speed an.
Für den Bus benötigst Du einen speziellen CAN Controller, der entweder extern angeschaltet ( z.B. MCP2515 ) oder bereits im Controller integriert ist, wie bei der AT90xxCAN Controller Serie. Für beide Varianten sind aber umfangreiche Software Konfigurationen nötig um einen lauffähigen CAN Bus zu kriegen.
Ausserdem wird ein CAN Bus Treiber benötigt wie der MCP2551.
Du kannst auch weiterhin dein "altes" RS485 Bussystem mit serieller Datenübertragung beibehalten, musst Dich dann aber um Kollisionserkennung und die Absicherung der Daten auf dem Bus selber kümmern. Dafür hab ich aber gerade kein Patentrezept parat. Da es bei der Buzzer Geschichte anscheinend sehr auf das Timing ankommt wird da wohl ein System mit festen Zeitschlitzen nicht in Betracht kommen.
Unabhängig vom verwendeten Bus System wirst Du jetzt wohl oder übel Adressen an deine Uhren vergeben müssen. Schliesslich willst Du ja wissen welcher Buzzer gedrückt wurde. Das liesse sich am einfachsten mit einem oder 2 BCD Schaltern machen.
Aus einer im Prinzip einfachen Aufgabenstellung hast Du nun ein größeres Bus Projekt mit mit sehr vielen Unbekannten vererbt gekriegt - Herzlichen Glückwunsch!![]()
Lesezeichen