Assembler Erste Anfänge mit Modelleisenbahn, Spur H0

Rolf.H

Neues Mitglied
17. Juni 2012
136
0
0
89
25451 Quickborn
Sprachen
Hallo Leute,
das ist schon eine Lebensaufgabe...mal sehen, wo ich beginne.
Ich gehe zurück im Jahr 1993, da erstellte ich mit 2 I/O Bausteine 8255 die ersten Gehversuche,
um auf der Platte alle Signale, Weichen, Entkupplungsgleise mit einem 8255 zur Funktion zu bringen.
Mit den zweiten 8255 erfasste ich alle Reedkontakte, die sich auf den Gleisen befanden.
Der Baustein besitzt ein Kontrollregister, welches ihn als Input o. Output festlegt.
Er besitzt auch Leitungen wie CS / CLR / RD / WR (LOW aktiv außer CLR=HIGH aktiv).
Dann seine Ports A B C D also 4x8 = 32 Leitungen, also recht universell.
Der als Eing. wurde von mir in der Procedure als PIA2, der als Ausg. als PIA1 benannt.
Die Sache wurde von mir in Handarbeit auf Lochraster erstellt und läuft heute immer noch mit
einem ATARI MEGAFILE 30 (Software in GFA-Basic)
Die Hardware der 8255 steckt natürlich in einem seperaten Interface.
Nun träume ich davon, mit 2 St. ATMEGA 8PU erste Gehversuche zu machen.
D.h. Einer als Eing. der Andere als Ausg. fest zu legen. Beim 8255 ist das Signal CS entscheidend,
ob er frei geschaltet wird oder nicht.
Giebt es denn beim Mega8 zwischen den beiden eine Möglichkeit hin und her zuschalten.
Also ich frage ein Reedkont ab...erst Mega8.1 aktivieren (Mega8.2 bleibt in Ruhe)
Der Kontakt wird durch Magnet unter der Lok erkannt.
Mega8.1 zur Ruhe, 8.2 aktiv...ein Signal wird geschaltet.

Ein Testprogramm habe ich schon mit einem Tiny2313 geschrieben, um 6 Reedkontakte auf
Funktion zu prüfen und über Leds anzuzeigen.

Grüße erst mal

Rolf
 
...Nun träume ich davon, mit 2 St. ATMEGA 8PU erste Gehversuche zu machen.
D.h. Einer als Eing. der Andere als Ausg. fest zu legen. Beim 8255 ist das Signal CS entscheidend,
ob er frei geschaltet wird oder nicht.
Giebt es denn beim Mega8 zwischen den beiden eine Möglichkeit hin und her zuschalten...
Ehrlich verstehe ch die Frage nicht ganz...
Du kannst jeden einzelnen Pin nach belieben zwischen den 4 verschiedenen Zuständen hin und herwechseln. Oder auf eine eventuelle Alternativfunktion des Pins wechseln (PWM/ADC/etc). Das ist hier alles Sache Deines Programmes. Insbesondere kannst Du auch beliebge Pins den einen, und andere Pins einen anderen Zustand annehmen lassen.
Wenn ich Dich recht verstanden habe, willst die viele Pins erst als Eingang schalten, tritt ein festgelegter Pegel an einem Eingang ("CS") auf, willst Du sie als Ausgang verschalten. Kannst Du doch programmieren.
erst legst Du den ersten Zustand fest (DDR und PORT-Register), den CS-Pin pollst Du entweder, oder verwendest einen entsprechenden Interrupt. Wurde das Ereignis so erkannt, schaltest Du die anderen Pins um...
 
Hi Rolf,

Dann seine Ports A B C D also 4x8 = 32 Leitungen

ich glaube da hast du dich ein wenig geirrt.

So aus dem Gedächtnis ... Der 8255 ist ein 40poliges IC für 8Bit-CPU-Bus. Also 8Pins für DB0-7, Vcc, GND, CS, RW als Minimum.
Damit sind schonmal 12 Pins weg. Wenn ich mich nicht ganz irre dann hat er auch noch 1-2 Adressleitungen für die Registerauswahl. Also das mit den 32 IO-Leitungen glaub ich jetzt nicht. Müßte aber auch erst im Datenblatt nachsehen. Vom Gefühl her war aber glaube ich ein Port mit weniger Pins ausgestattet.

Gruß
Dino

EDIT: Mal nachgesehen. Also die Z80-PIO hatte 2x 8Bit Ports und der 8255 hatte 3x 8Bit-Ports. Also 24 IO-Pins.
Dazu kommt der 8Bit CPU-Bus für die Ansteuerung, Vcc, GND, Reset, RD, WR, CS, A0, A1. Im PLCC-Gehäuse mit 44 Pins sind 4 Pins NotConnected.
 
Hi Rolf,

irgendwie sind mir die Fragen in deinem Beitrag nicht so ganz klar.

Aber ich hätte mal eine : Weshalb möchtest du das denn mit zwei Mega8 machen ?

Wenn 's um die Anzahl der IO's geht, gibt's ja auch noch größere Prozessoren. Oder die Ports "erweitern" mit Schieberegistern - diese Ein-/Ausgänge sind allerdings nicht umschaltbar, dafür aber ist deren Anzahl fast beliebig skalierbar.

Gruß
Pirx
 
danke erst mal für Eure Antworten.
Ich hole morgen früh die Pinbelegung zum 8255 heraus und dann werden wir sehen was los ist.

Zur Info...ich benötige etwa 20 Eingangsleitungen und ca. 20 Ausgangsleitungen.
Und das giebt ein Mega 8 nicht her.

Grüße

Rolf
 
Hi Rolf,

Ich hole morgen früh die Pinbelegung zum 8255 heraus und dann werden wir sehen was los ist.

Datenblatt: Anhang anzeigen 8255_PIO-Chip.pdf

Code:
       _______
      |  |_|  |
PA3 --|1    40|-- PA4
PA2 --|2    39|-- PA5
PA1 --|3    38|-- PA6
PA0 --|4    37|-- PA7
RD  --|5    36|-- WR
CS  --|6    35|-- RESET
GND --|7    34|-- D0
A1  --|8    33|-- D1
A0  --|9    32|-- D2
PC7 --|10   31|-- D3
PC6 --|11   30|-- D4
PC5 --|12   29|-- D5
PC4 --|13   28|-- D6
PC0 --|14   27|-- D7
PC1 --|15   26|-- Vcc
PC2 --|16   25|-- PB7
PC3 --|17   24|-- PB6
PB0 --|18   23|-- PB5
PB1 --|19   22|-- PB4
PB2 --|20   21|-- PB3
      |_______|
Mal ein wenig ASCII-Kunst ;)
PortA, PortB, PortC, Datenbus (D0-7) zur CPU.

Aber das soll hier ja eigentlich nicht das Thema werden :rolleyes:

Also für deine Sache würde ich als "intelligente" IO-Expander sowas wie nen Mega16, Mega8535, ... oder so nehmen. Dann entweder mit I2C alles zusammenkoppeln oder mit den UARTs zusammenkoppeln. Wenn du mit Single-Master arbeitest dann sollte UART auch ganz gut gehen. Der Master (TxD) sendet an alle Slaves (RxD). Also alle Slave-RxDs zusammenschalten mit dem Master-TxD. Wenn nun ein Slave senden soll dann machst du das über nen Wired-OR (mit Dioden und PullUp) von allen TxDs der Slaves zum RxD des Masters. Du mußt lediglich sicherstellen das nur ein Slave sendet und nicht alle durcheinander. Die Datenleitung kannst du auf +5V (Vcc) laufen lassen und evtl sogar bis auf 115kBaut hochreizen. Außerdem könntest du fürs Debugging sogar nen MAX232 anschließen und die Daten auf nem PC mitlesen.

Für ganz wilde Sachen könntest du über diesen Bus sogar mit dem "Multi Processor Communication Mode" der Atmels arbeiten. Dann arbeitest du mit 9Bit. Bit0-7 sind Daten oder Adressen und mit Bit 8 schaltest du zwischen Daten und Adressen um (0=Daten, 1=Adressen). Damit kannst du selectiv Daten an bestimmte Atmels schicken. (Hab ich aber noch nie gemacht :p)

Gruß
Dino
 
Hmm... sitzen die 20 Is und die 20 Os an derselben Stelle? Oder würde es vielleicht Sinn machen, da jeweils einen Tiny hinzusetzen, und den dann über Dinos gemeinsamen UART-Bus (oder TWI (USI) oder was auch immer) anzusteuern? Dann bräuchte man einen Master, und mehrere Slaves - wobei dort nahezu beliebig erweitert werden könnte
Da gabs doch auch mal dieses ominöse 1-wire-Interface...:hmmmm:
 
Hi,

Da gabs doch auch mal dieses ominöse 1-wire-Interface...:hmmmm:
für sowas ist das Mist. Es gibt im Atmel keine Hardwareunterstützung wie bei UART oder I2C. Also alles per Software. Wenn einem dann ein Interrupt dazwischenfunkt, ist das Timing im Eimer. Das ist aber für 1-Wire absolut lebenswichtig.

Ich bin da im Moment auch am rätseln ob ich bei einer Schaltung statt 1-Wire (DS18S20) lieber I2C-Temperatursensoren verwende weil 10Kanal Soft-PWM mit Timer als Zeitbasis und 1-Wire sich ziemlich beißen könnten.

Gruß
Dino
 
EDIT: Mal nachgesehen. Also die Z80-PIO hatte 2x 8Bit Ports und der 8255 hatte 3x 8Bit-Ports. Also 24 IO-Pins.
Dazu kommt der 8Bit CPU-Bus für die Ansteuerung, Vcc, GND, Reset, RD, WR, CS, A0, A1. Im PLCC-Gehäuse mit 44 Pins sind 4 Pins NotConnected.

Hallo Dino,
stimmt, mit den 3 Ports stehen mir 24 I/O Leitungen zur Verfügung. Aber soviel benötige ich nicht.
Der Atari stellt mir an der Schnittstelle 15 Adressleit. 8 Datenleitungen und zwei Steuerleit. ROM3+ROM4
zur Verfügung. Wenn ich mich schwach erinnere, wurden diese im Multiplex-Verfahren aktiv.
Dann gabs im Handel ein sogenanntes Interface als Rom-Expander, an seinen Ausgang standen A1-A14.
Dieser übernahm die Signale vom Atari.
Wiegesagt, wenn ich mir heute den Schaltplan mit seiner Wahnsinns-Hardware ansehe, wunderts mich, daß ich das
tatzumal auf Lochraster geschafft habe. Aber es läuft und läuft, und das seit 20 Jahren.
Sollte das aber mal aussteigen, sitze ich auf den trockenen.
Aber nun genug zur Vergangenheit. Ich werde mir bei Reichelt mal die Chips ansehen.

Grüße

Rolf
 
hab eben mal nachgeschaut!
Der Mega16-16DIP hätte also 4 Ports = 32 Leitungen.
Dann müßte ich 16 als Eing. und 16 als Ausg. wählen.
Der 8535 ebenso.
mh...könnte knapp werden, wenn ich allein im Rangierbereich (Drehscheibe, Weichen, Lokschuppen mit 4 Hallen)
einiges benötige.
 
Hi Rolf
Mal eine kurze Frage:
Steuerst du deine Modelleisenbahn nicht mit einem PC ?
Also, wenn ich solch eine Eisenbahn steuern möchte, würd ich erst mal darüber nachdenken, wie schnell auf ein Input ein Output kommen muß. Das Wort dafür "realtime".
Da mir im Moment nichts einfällt, was da im msek-Bereich liegt, würd ich einfach vorgehen: Für kleine überschaubare Bereiche einen Controller. Multi_IO.png
Nachteil: du mußt den PC programmieren. Da empfiehlt es sich, mal mit VB etwas anzufangen. Wenn man schon etwas Basic kann, ist das gar nicht so schwer. Über die serielle Schnittstelle schickst du dann das Telegramm an die Bereichscontroller.
Das Protokoll: <Sender>, <Empfänger>,<Tel_Nr>,<Daten>,<Daten>,<Daten>,<Daten>,<Quittung>
Der Vorteil, du kannst nach Belieben Bereichscontroller einbinden, gleich aufbauen und diese "fast" gleich programmieren. Diese bekommen ihre BereichsID mitgeteilt und was sie mit den Daten anzufangen haben. Kommt ein Telegramm an, welches nicht für die eigene ID bestimmt ist, sendest du das Telegramm 1:1 weiter. Erkennt ein Empfänger das Telegramm für sich, wird entsprechend gehandelt, das Quittungssignal aktiviert und das Telegramm unter vertauschen der <Sender> - <Empfänger>-Kennung weiter gereicht. Der ursprüngliche Sender erhält dann wieder das Telegramm und kontrolliert die <Quittung> und <Tel_Nr> mit der Auftragsverwaltung. Die Telegrammnummer ist einfach fortlaufend und fängt nach 255 wieder von vorn an.

Ok, das ist nicht ganz zuende gedacht, aber sicherlich so oder so ähnlich durchführbar. So kannst du auch verschiedene Programme im PC hinterlegen und das Verhalten direkt vom PC aus steuern.
Mit I²C hab ich mich noch nicht beschäftigt, aber auch das ist ohne großartige Veränderung vermutlich durchführbar. Lediglich einen Kommunikationscontroller zum PC wirst du dann brauchen, der auf I²C die Info weiter gibt.
Gruß oldmax
 
Bisher tappen wir (zumidest ich) immer noch ziemlich im dustern, was konkret Du eigentlich machen willst.
Du scheinst einen Haufen Aktoren und Sensoren zu haben (binäre - als die nur 2 Zustände wahrnehmen/steuern) - diese sind (alle einzeln) mit einer "Zeintraleinheit" (Dein Kleincomputer) verbunden, der das ganze auswertet und steuert.
Du möchtest das jetzt (scheinbar) auf Mikrocontroller umstellen.

Ich habs ja schon ein paar mal angedeutet - jetzt die konkrete Frage: Macht es Sinn, an verschiedenen Stellen Slaves zu positionieren (Lokschuppen abc, Weiche xyz ...), und das dann über einen sinnigen (*) Bus mit der Mastereinheit zu vernetzen?
Mit einem durchdachten Protokoll sollte das ganze dann nahezu beliebig erweiterbar/flexibel veränderbar sein. Und man könnte zusätzlich/statt der Mastereinheit auch einen aktuellen PC verwenden.

(*) 1-wire hat Dino ja "abgelehnt", konventionelles SPI fällt wegen der vielen benötigten CS-Leitungen auch raus, da wir bidirektional kommunizieren wollen, läßt sich da auch nichts sicheres mit "parallelgeschalteten Slaves" zusammenfrickeln. Wir brauchen eigentlich was, wo die Slave-Adressierung in Software geschieht (also über die Kommunikationsleitung mitgeht).
Was ist überhaupt noch im Rennen?
TWI (USI) - klar, aber da ist jetzt fraglich, wie groß das bei Dir wird, und welche Störungen da kommen können
UART - eigentlich nur zur direkten Verindung 2er Einheiten vorgesehen, aber da könnte man durchaus einen 1Master-vieleSlaves-Netz draus basteln - entweder selbst was stricken, oder Du bringst uns alle dazu, uns mal mit diesem 9-Bit-UART zu beschäftigen...

Die meisten Tinies haben keine UART-Schnittstelle, keine echte TWI, keine echte SPI-Schnittstelle. Mit USI kann man aber (mit etwas Software) TWI oder SPI weitgehend umsetzen.
Der einzige Tiny, der eine echte UART hat (der mir einfällt), ist der (bereits bekannte) ATtiny2313 /4313. Da hättest Du neben dem UART und dem Quarz einen echten Port (B0..7) weitere 5 I/Os (D2..6) zur freien Verfügung. Alternativ 4 PWMs (1 8bit, 1 16bit-Timer), 2 externe Interrupts (und die PC-Ints), der Analog Comperator.
Leider keinen ADC - man könnte vielleicht aus dem InputCapture von Timer1 was stricken.
Aber mit dem Gesamtkonzept kannst Du ja für jeden Slave den geeigneten Controller wählen, als faß erstmal zusammen, was Du so brauchst...

Edit: Oldmax scheints ähnlich zu sehen, und sich schon Gedanken über ein Kommunikationsprotokoll zu machen...
 
Hi Rolf,

Der Mega16-16DIP hätte also 4 Ports = 32 Leitungen.
Dann müßte ich 16 als Eing. und 16 als Ausg. wählen.
Der 8535 ebenso.
mh...könnte knapp werden, wenn ich allein im Rangierbereich (Drehscheibe, Weichen, Lokschuppen mit 4 Hallen)
einiges benötige.
vergiß die Leitungen für die Kommunikation mit den anderen Atnmels nicht. Du hast also nicht alle 32 IO-Pins zur Verfügung sondern mußt mindestens 2 abziehen. Entweder PC0/PC1 für den I2C-Bus (SCL/SDA) oder PD0/PD1 für den UART (RxD/TxD).

Fang erstmal an ein funktionierendes Bus-System aufzubauen damit die Daten hin- und herwandern können. Die Erweiterung der IOs mit nem größeren Atmel ist dann das kleinere Problem.

Gruß
Dino
 
Hi
Also, ich sehe eine unbekannte große Anzahl an Sensorik, wobei es mir ehrlich gesagt egal ist, ob analog oder digital. Ebenfalls sehe ich eine unbekannte große Anzahl an Aktoren. Auch hier ist es erst einmal egal, ob analog oder Digital. Das Telegrammprotokoll letztlich bestimmt, was Analog und was digital, was Eingang und was Ausgang ist. Ob 10 oder 20 Bytes gehandelt werden müssen ist einmal die Aufgabe, danach ist es immer gleich. Grad wenn man den Umfang einer Aufgabe nicht weiß, baut man sich eine Tür für Erweiterung ein. Diese heißt hier einfach eine weitere Station und eine weitere Nummer. Visual BAsic liefert schon eine ganze Menge an Objekten, die richtig zusammengefriemelt eine Anpassung der Anlage ohne Neuprogrammierung zuläßt. Ist zwar viel Arbeit, aber ein interessantes Thema und sollte ausreichend Stoff bis zur Geisterstunde bieten. Schaut euch einfach mal OpenEye an. Oder das:
VB_Multi_IO.png
Ist mal so auf die Schnelle zusammengestrickt.....
Gruß oldmax
 
Äääähm, hab ich da was übersehen?

Irgendwie finde ich ihr verkompliziert das ganze etwas :)
Zumindest ist das meine persönliche Meinung.

Ok, gebraucht werden 20 I/Os. Wenn ichs recht verstanden habe digital. Und das ganze soll eine Eisenbahn steuern (wenn nicht, ändert am Prinzip nix ^^).

Ich würde das denn so aufteilen, z. B. oben rechts oben links, unten rechts und unten links. Für jeden Bereich einen PCF 8574 (8 Bit Port Expander). Die laufen über I2C was zumindest die größeren AVRs schon von selbst können. Also einfach alle parallel an einem Kabel angeklemmt, fertig. Und die Chips haben eine Interrupt Leitung die (wenn ich mich richtig erinnere) High wird sobald sich ein Signal am Eingang ändert. Also nur SCL, SDA, +5V und GND zu jedem Teil legen und eine Interrupt Leitung pro Teil. So würde ich es zumindest machen. So ist es auch einfach erweiterbar. Ich glaub maximal 7 der Chips können an einen Bus, zur Not gibts aber auch noch Multiplexer (umschalten zwischen verschiedenen Bus Segmenten). Glaub mit 20 I/Os war das früher auch n kräftiger Akt das zu verkabeln, oder? :)
Dann nur noch einen ATmega48 (z. B.) und einen MAX232 um mit dem PC zu kommunizieren :)

Klar, für die Kommunikation braucht man ein Protokoll, aber so fällt schon mal einiges an Arbeit weg weil I2C hat zumindest der Mega ja hardwareseitig. Bleibt nur noch das "gequatsche" mit dem PC ;)

Und, so wie ich das verstanden habe, soll es ja eh neu aufgebaut werden ?! Denn kann man es ja so einfach und erweiterbar wie möglich halten :)

Just my 2 cents.
 
Wie bereits von mir angedeutet gib es viele Lösungswege - solange Rolf nicht konkreter mit seinen Anforderungen wird, können wir uns hier mit mehr oder weniger passenden Vorschlägen Überschlagen (eher weniger passenden)...
Ich fasse mal kurz zusammen:
Als Netztstruktur entweder Stern oder Ring (hat beides Vor- und Nachteile),
Als Interface TWI oder UART.
Ob man jetzt einen simplen Portexpander-IC nimmt, oder die Slaves "intelligent" aufrüstet, ist auch eine Frage der Anforderungen. Zumindest PWM und analoge Messungen sind da nicht drinn, Reflexe, autonome Reaktionen, getimte Events etc ebenso wenig...
Also Rolf - sag uns, was Du willst...

(P.S.:Soll ein PC zwingend nötig sein, oder nur als Option?)
 
Aufgabe, danach ist es immer gleich. Grad wenn man den Umfang einer Aufgabe nicht weiß, baut man sich eine Tür für Erweiterung ein. Diese heißt hier einfach eine weitere Station und eine weitere Nummer. Gruß oldmax

Was ist nur los, drücke ich mich denn so undeutlich aus?
Ich habe das Gefühl, daß mein Anfangsgeschwafel über Atari und PIA1/ die Interessenten fällig dureinander
gebracht haben.
Ich hätte nur gezielt fragen sollen "ich benötige einen Baustein mit 15 Inputs und 15 Outputs" giebt es sowas?
Dinos Vorschlag hat mir am besten geholfen, an den hab ich weiter geknüpft und die Lösung gefunden.
Sieht wie folgt aus:
Baustein Mega16...Mit PortA+B habe ich 16 Pins, von PortD PD0-PD3 also 4 St. dazu = 20 Inputs
An PortC kommen 3x Zwischenspeicher 74244 parallel geschaltet. Diese übernehmen den anliegenden
Pegel wenn an Pin EN1/EN2 ein Low Impuls anliegt, und den hole ich mir von den Pins PD4-PD6.
Ergiebt = 24 Outputs
Könnte noch einen 74244 ranhängen, denn PD7 ist noch frei.
Nun wird es wieder Kritiker geben "um Gottes Willen, was für ein Aufwand allein die verschachtelte Software"
mit den vielen rcalls.
Da habe ich im mikrocontroller.net ganz andere Qelltexte kennen gelernt und das nur um eine Schranke
zu steuern.
Auch im GFA-Basic mußte ich in jeder Procedure GOSUB PIA1 oder PIA2 vorgeben um den richtigen 8255
zu erwischen, also kein Unterschied zu meiner neuen Idee.
Für was die vielen Pins nun gedacht sind war doch hier garnicht die Frage, ob digital o. analog usw.
wie es oldmax ausdrückt.
Wie gesagt, auf dem Papier steht die Hardware ich bin zuversichtlich.

Grüße

Rolf
 
Na dann abschließend 'ne konkrete Antwort auf die Frage:
Der Atmega16 hat 32 frei verwendbare I/O-Pins (Reset und Systemquarz... haben eigene Beinchen). Jedes dieser 32 Beinchen kannst Du unabhängig von allen anderen als Input oder Output, als low oder High-Pegel schalten. Außerdem befinden sich diese Beinchen binär-logisch in 4 Ports (also man kann direkt bytes drauflegen/auslesen).
Ausgehend von Deiner Frage bleiben also sogar 2 Beinchen frei - Du könntest also noch irgendwas anderes mitanbinden (einen PC via UART oder so).
Wenn Dir das nicht reicht, kannst Du Dir ja gern auch den Mega1280 ansehen:p;)

Die "neue Generation" der ATmega16/32/64/128 sind die ATmega164/324/644/1284, oder?

Ob Du jetzt alle Details in einen Controller prügeln willst, oder das ganze in einzelne "Funktionsblöcke" zerlegst, und ein Controller sich dann nur noch um Anweisungen zu diesen Blöcken kümmern muß, die Details dann jeder Block für sich regelt - diese Entscheidung ist und bleibt Deine Sache.
Unsere Vermutung war, daß es einfacher werden könnte, das ganze zu zerlegen, aber Du kennst Deine Anlage - wir nicht.
Wir machen nur Vorschläge.

Wenn Du jetzt also Deine benötigten 30 I/Os hast, wozu willst Du dann noch die 3 "Zwischenspeicher"?
Falls Du noch weitere Überlegugen/Kommentare/Vorschläge zu der Sache haben willst, mach uns Doch mal ne Skizze, was so an Kommunikationsleitungen zum Controller hin, und von da weg geplant ist...
Wenns wirklich nur(!) 15 Inputs und 15 Outputs sind - ok, steht ja schon oben...
 
Wenn Du jetzt also Deine benötigten 30 I/Os hast, wozu willst Du dann noch die 3 "Zwischenspeicher"?
Falls Du noch weitere Überlegugen/Kommentare/Vorschläge zu der Sache haben willst, mach uns Doch mal ne Skizze, was so an Kommunikationsleitungen zum Controller hin, und von da weg geplant ist...
Wenns wirklich nur(!) 15 Inputs und 15 Outputs sind - ok, steht ja schon oben...

danke für Deine Antwort!
Den ATMEGA 1284 werde ich mir ansehen...interessant.
Wozu noch 3x Zwischenspeicher, weil einfach 30 I/Os zu knapp werden.
Nochmals im Einzelnen zu den Eingängen:
im Aussengleis = 8 Reedk.
im Innengleis = 5 Reedk.
Lokschuppen = 4 Reedk.
Abstellgleise = 2 Reedk.
Drehscheibe = 2 Lichtschranken + 2 Reedk.
das macht schon 23 Eingänge
Grob überschaubar brauch ich in etwa 12 Ausgangssignale (Weichen, Signale, Entkupplungsgleise, Fahrstufen, Drehscheibe)

Hoffe nun, daß ich mich klar ausgedrückt habe. Schau mir nochmal an, was es als Zwischenspeicher in C-MOS giebt.
Z.Zeit habe ich TTL 74374 im Einsatz.

Grüße

Rolf
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)