Autor |
Eingänge eines Atmel Mega8 vermehren! |
|
|
|
|
BID = 336202
iwiki Gelegenheitsposter
 
Beiträge: 51 Wohnort: Wörgl
|
|
Hallo!
Ich brauche Hilfe!
Ich bin dabei eine Modellbahnsteuerung über einen Atmel Mega 8 aufzubauen. Die Ausgabe der Anweisungen an eine Relaiskarte die die Bahn steuert klappt auch schon ganz gut. Auch die Verbindung mit PC über die Serielle Schnittstelle habe ich hinbekommen.
Nun ist es aber so das ich von Reed-Kontakten die ich in der Anlage verbaut habe Rückmeldungen brauche. ( Ca. 20 Reedkontakte )Da ich nicht genug Eingänge am Controller habe brauche ich davor eine Schaltung die diese Rückmeldungen bündelt und sie mir über möglichst wenige Leitungen an den Controller weitergibt!
Wie würdet ihr das am besten lösen?
Bitte nicht zu sehr mit Fachbegriffen um euch werfen ich bin Neuling auf dem Gebiet und habe nicht Elektrotechnik studiert.
Danke für die Infos!
LG
iwiki
|
|
BID = 336209
DonComi Inventar
     
Beiträge: 8604 Wohnort: Amerika
|
|
Gebe diverse Möglichkeiten:
- Port-Expander für I²C
- Schieberegister (Plural!), welche die Zustände ein paar mal in der Sekunde abfragt und an den µC senden.
- 2 Ports zu einer Matrix verschalten und die Reed-Kontakte abfragen.
- Kombination aus dezimal-Zähler und Multiplexer,
- Kombinationen aus verschiedenen Möglichkeiten)...
(Leider muss ich dringend los, sonst würde ich dir mehr Infos geben. Kannst dich ja mal schlau machen)
_________________
|
|
BID = 336219
iwiki Gelegenheitsposter
 
Beiträge: 51 Wohnort: Wörgl
|
Hi Doncomi!
Danke für die Infos Nit dast wegen mir stress kriegst!
ziemlich viele Fremdwörter
o.k. also wie gesagt ich hab nicht so viel ahnung von der ganzen Materie. ich kann einen lötkolben halten und ich krieg eine schaltung zusammen ich ein bisschen anleitung habe.
Dazusagen muß ich vielleicht noch das die Impulse von den Reed-Kontakte sehr kurz sind. Also immer nur so lange wie die Lok braucht um darüber zu fahren. Das ganze dient dazu festzustellen wo die Züge gerade sind und die Weichen und Ampeln entsprechend zu schalten.
Die Schaltung die die Impulse bündelt müßte sie sich also so lange merken bis der controller sie verarbeitet hat. So das kein Impuls verloren gehen kann.
Welche der von dir vorgeschlagenen Möglichkeiten wär da brauchbar?
LG
iwiki
|
BID = 336222
clembra Inventar
     
Beiträge: 5402 Wohnort: Weeze / Niederrhein
|
Da es sich um eine Modellbahn handelt, schlage ich den s88-"Bus" vor. Dann hat man was, das auch kommerziell eingesetzt wird, nur eben viel billiger.
Die RS-Chips davor dienen dazu auch sehr kurze Impulse zu erkennen.
Edit: An die offenen Enden links kommen die Reed-Kontakte, die nach Masse schalten. Evtl. brauchen die noch jeweils ein Pull-Up (10k-R nach +5V). Der NPN-Transistor kann auch ein anderer sein, hauptsache NPN.
PS: Das von DonComi genannte sind keine Fremdwörter, sondern Fachwörter...
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 336256
iwiki Gelegenheitsposter
 
Beiträge: 51 Wohnort: Wörgl
|
Danke Clembra für die Wörterkunde!
Deine Schaltung sieht so aus als könnte man das beliebig skalieren und damit aus Ausgänge erweitern.
Du hast nicht zu fällig irgendwo eine link wo ich diese Schaltung ein bischen erklärt bekomme.
Die Datenblätter der 4044 und 4014N hab ich aber was versteckt sich hinter sv1 und 2
und was auch nicht ganz unwichtig ist wie funktioniert der Datenaustausch dann?
LG
iwiki
|
BID = 336280
clembra Inventar
     
Beiträge: 5402 Wohnort: Weeze / Niederrhein
|
Ich tippe auf "SteckVerbinder".
SV2 zeigt dabei im Bus in Richtung Controller, SV1 zum Ende. Bei der letzten Platine kann dieser einfach offen gelassen werden.
Schau dir das mal an:
http://www.digital-bahn.de/info_tech/s88.htm
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 336544
iwiki Gelegenheitsposter
 
Beiträge: 51 Wohnort: Wörgl
|
hi clembra
die Seite die du mir da genannt hast ist wirklich sehr informativ.
klingt ja so weit in der theorie alles mal ganz logisch was da so steht nur das mit dem 6khz taktimpuls zum auslesen krieg ich wohl mit dem Mega8 nicht so ganz hin befürchte ich.
LG
iwiki
|
BID = 336551
clembra Inventar
     
Beiträge: 5402 Wohnort: Weeze / Niederrhein
|
Die Geschwindigkeit ist ja nicht fest vorgegeben, vor allem, da du die Rückmelde-Module ja alle selbst baust.
Maximalgeschwindigkeit (bzw. Mindestlänge eines Pulses) steht im Datenblatt des 4014 und 4044 und eine Mindestgeschwindigkeit gibt es praktisch nicht.
Es muss ja auch nicht 100% kompatibel zu kommerziellen Produkten sein, sondern diese dienen nur als Grundlage für deine eigenen (um ein vielfaches billigeren) Module
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 336557
selfman Schreibmaschine
    
Beiträge: 1681 Wohnort: Seekirchen a. W.
|
Du könntest auch den PCF8574 benutzen. Du mußt nur die Kommunikation mit I2C Bus programmieren. Oder kann das Dein Atmel schon von selbst.
Für schnelle Reaktionen kann der Baustein einen Interrupt bei einem Pegelwechsel auslösen.
Datenblatt gibts hier: Link
Gruß Selfman
_________________
Traue keinem Ding, das du nicht selber vermurkst hast.
|
BID = 336560
iwiki Gelegenheitsposter
 
Beiträge: 51 Wohnort: Wörgl
|
wenn ich das jetzt richtig verstanden hab dann meinst du das es im grund vollkommen egal ist wie lang der impuls anliegt er muß nur mindestens so lange anliegen wie die datenblätter vorschreiben?
im grunde beeinflusst das dann nur die geschwindigkeit mit der ich die daten verarbeiten kann.
Also so gesehen wärs mal einen versuch wert das zusammenzulegen und mal zu schauen obs klappt.
Aber nachdem bei mir noch nie beim ersten mal was funktioniert hat werdet ihr wohl bald wieder von mir hören
[ Diese Nachricht wurde geändert von: iwiki am 30 Mai 2006 18:52 ]
|
BID = 336564
DonComi Inventar
     
Beiträge: 8604 Wohnort: Amerika
|
Zitat :
|
Dazusagen muß ich vielleicht noch das die Impulse von den Reed-Kontakte sehr kurz sind. Also immer nur so lange wie die Lok braucht um darüber zu fahren. Das ganze dient dazu festzustellen wo die Züge gerade sind und die Weichen und Ampeln entsprechend zu schalten.
|
Exakt das tut Clembras Schaltung ja auch. Die Werte werden durch 1bit-Speicher (FlipFlops) gespeichert und ausgelesen. Danach werden alle Speicher über Reset wieder gelöscht.
Es gebe aber eine 2. Möglichkeit. Man nehme einige PCF8574(AP)s.
Diese Chips sind insowern angenehm, dass sie einen Interrupts im µC auslösen können (man verbinde dazu den /INT-Ausgang des PCF8574AP mit dem INTx-Eingang des µCs und lasse auf fallende Flanken triggern. (Pull-Up nicht vergessen)
Diese Chips lassen sich per I²C kaskadieren (max. 8 Stück). Die Interruptslogik müsste man erweitern.
Dies ist nur eine andere Möglichkeit, ich würde aber dazu raten, Clembras Schaltung zu verwenden. Sie ist im Prinzip sowas, was ich oben u.a. vorschlug.
Nachtrag: SElfman war schneller
_________________
|
BID = 336578
iwiki Gelegenheitsposter
 
Beiträge: 51 Wohnort: Wörgl
|
Hi Selfman und DonComi!
Dank euch für die Tips. Aber ich werde DonComi Rat folgen und mich an die Version von Clembra halten nicht zuletzt deswegen weil mir die am einfachsten erscheint und weils dazu schon einen Schaltplan gibt
außerdem kommen da weniger "Fachwörter" drin vor!
LG iwiki
|
BID = 336581
selfman Schreibmaschine
    
Beiträge: 1681 Wohnort: Seekirchen a. W.
|
Bei Verwendung des PCF8574 wird halt der Drahtverhau nicht so groß, weil da alles schön in einem Gehäuse eingebaut ist. Des weiteren hat er den Vorteil, daß man die Portpins auch als Ausgänge verwenden kann. Allerdings muß man sich halt mit den I2C Protokoll und der Interrupttechnik herumschlagen.
Da bietet die Schaltung von Clembra wieder Vorteile. Sie ist klar und einfach zu durchschauen. Zum Auslesen brauchts nur einen Takt in beliebiger Geschwindigkeit, wo mit jedem Impuls ein Datenbit übernommen wird. Es darf nur nicht zu langsam sein. Den jedes Auftreten eines Impulses erfordert ja auch eine Reaktion der Steuerung in einer gewissen Zeit. Aber "übersehen" kann die Schaltung den Impuls nicht. Die R/S FF sprechen ja in nS an.
Gruß Selfman
_________________
Traue keinem Ding, das du nicht selber vermurkst hast.
|
BID = 348475
iwiki Gelegenheitsposter
 
Beiträge: 51 Wohnort: Wörgl
|
Hallo!
So hat ein bisschen gedauert bis ich es geschafft habe das ganze mal auf einem Steckbrett aufzubauen.
Zuerst wartet man dauf die Teile kann kommt was anderes dazwischen und ehe man sichs versieht is ein Monat um
Ja also ich hab klein angefangen
zuerst nur mit dem 4014er die Schaltung gemacht und ausprobiert. Das lief noch recht gut auch wenn ich manchmal ein paar fehlanzeigen hatte lag aber wohl daran das die verbindungen doch nur gesteckt waren.
Dann hab ich das ganze um die 4044er erweitert. Natürlich nur um einen wird ja sonst zu viel für das Steckbrett.
Ja und jetzt kommts.
Ich krieg hier absolut keine nachvollziehbaren ergebnisse mehr.
Wenn ich jetzt frage worans liegt kann mir wohl keiner was sagen.
Was muß ich hier reinstellen damit mir jemand weiterhelfen kann?
LG
iwiki
|
BID = 348482
clembra Inventar
     
Beiträge: 5402 Wohnort: Weeze / Niederrhein
|
Hast du dir das Datenblatt mal angesehen?
Die Eingänge sind, wenn ich mich richtig erinnere (keine Lust nochmal nachzusehen) invertiert, und da du mit den Reed-Kontakten nur einfache Schalter hast sollten alle Eingänge noch einen Widerstand von ca. 10k nach +5V haben, damit die Eingänge nicht sinnlos rumflattern, sondern einen definierten Pegel aufweisen. Zum Testen, d.h. wenn du nicht soviele 10k da hast (wenn du die kaufst, gleich 100er oder mehr, die werden immer gebraucht!) reichen erstmal wechselschalter, die zwischen +5V und Gnd umschalten.
Ansonsten mehrmals die angeschlossenen Kabel mit Schaltung und Datenblatt vergleichen. Kann schonmal sein, dass die Pins in der Schaltung falsch sind, (glaub ich aber nicht dran)
_________________
Reboot oder be root, das ist hier die Frage.
|