tach auch!! also, zu meiner frage: ich möchte ein kleines mikroprozessorboard entwickeln. also nichts mit mikrokontrollern etc., sondern mit einem richtigen prozessor, ram, rom, pio, sio etc. das ganze will ich dann mit einer seriellen (oder parallelen) schnittstelle ausstatten, damit man es über PC in assembler programmieren kann. doch jetzt kommts: was brauche ich alles, um ein vollständiges, funktionierendes system aufbauen zu können? sowas in der art wie der "Microprofessor" von multitech MPF-1 (kennt den jemand? :D) würde mir extrem gut gefallen, doch dazu habe ich leider keine schaltpläne. als prozessor ist mir als erstes der Z80 eingefallen. ansich wäre der nicht schlecht, wenn er auch uralt ist. aber es gibt ja inzwischen neue versionen, die ein paar funktionen mehr haben. könnt ihr mir evtl. einen anderen prozessor empfehlen? nicht allzu teuer sollte er allerdings schon sein. gibts irgendwo im netz schaltpläne o.ä, die sich mit solchen boards befassen? und noch eine frage: der Z80 hat selbst nur 16 adress- und 8 datenleitungen. wie bewerkstelligt man das, dass man mit diesen paar leitungen z.b. LEDs oder 7segment-anzeigen ansteuern kann? soweit ich weiss, dienen die adressleitungen ja dazu, im RAM die adresse zu wählen, an der der code ausgeführt werden soll. über die datenleitungen wird logischerweise das entsprechende byte gelesen (oder geschrieben). doch wo sind die ein- und ausgänge hin?? fragen über fragen... ich hoffe ihr könnt mir da ein wenig weiterhelfen :) grüsse & schönen abend!
Wenn du es nicht aus nostalgischen Gründen machen willst oder sonst eine zwingende Notwendigkeit besteht solltest du einen großen FPGA nehmen und das von dir gewünschte dort hinein implementieren, dann bist du am Letztstand in der Technik.
hallo hubert, ja ich weiss, das mit dem FPGA habe ich mir auch schon überlegt. aber FPGAs sind doch nicht ganz billig (jedenfalls teurer als ein prozessor ;)) und ausserdem wollte ich mal mit einem richtigen mikroprozessor arbeiten. vielleicht auch aus etwas nostalgischen gründen ;) weisst du etwas über das thema?? gruss
Reise in die Vergangenheit? Wie stellst du dir die Programmierung vor? Mikrocontroller haben einfach reprogrammierbaren internen Flash-Speicher. In einem Mikroprozessorsystem der 70/80-er Jahre hiess es hingegen EPROM rein, EPROM raus, EPROM rein, EPROM raus, ... Oder EPROM-Emulator. Zumindest solange, bis das Grundsystem und ein einfaches Monitorprogramm funktionierte. Ein Kompromiss wäre ein System auf Basis 68HC11. Von-Neumann Architektur und mit einem vollwertigen externen Bus ausgestattet, verfügen sie jedoch über eine serielle Bootloader-Technik mit der sich externer Flash-Speicher programmieren lässt. Das Ergebnis kann ein System sein, dass ungefähr einem klassischen 6809-System ähnelt - die integrierten I/O-Komponenten kannst du ja notfalls ignorieren.
--> der Z80 hat selbst nur 16 adress- und 8 datenleitungen. wie --> bewerkstelligt man das, dass man mit diesen paar leitungen z.b. --> LEDs oder 7segment-anzeigen ansteuern kann? Die Antwort steht in Deinem eigenen Posting ein paar Zeilen weiter oben: --> sondern mit einem richtigen prozessor, ram, rom, pio, sio etc. --> das ganze will ich dann mit einer seriellen (oder parallelen) --> schnittstelle ausstatten... Du hängst die LEDs einfach an den PIO (evt. noch mit Treibertransistoren). Gruß, Magnetus
nein so meinte ich das nicht. anstatt eines EPROMS könnte man ja auch ein NV-SRAM verwenden. die dort enthaltenen daten kann man leicht ändern. ausserdem würde es micht nicht stören, wenn ich andauernd das eprom wechseln muss... sagt mir lieber, was ich im minimum brauche um ein funktionierendes system aufzubauen ;) oder ob es irgendwo schaltpläne gibt. ich habe bereits gegoogelt, aber ich finde nichts rechtes... ausserdem werden ja auch heute noch prozessoren verwendet. ich sehe eigentlich kein problem ;) ich stelle mir das so vor: auf dem board befinden sich prozessor, ram etc. was es noch so braucht. dann ist da noch eine programmierschnittstelle. dort kann man einen pc anschleissen, per software (die ich bereits habe) das programm übertragen, welches dann im SRAM gespeichert wird, auf dem controller-board die reset-taste betätigen und das programm läuft aus dem SRAM ab. nichts mit EPROM umstecken ;)
Hallo Hubertus, das sind ja ne Menge fragen auf einmal. Aber ich versuche mal die meisten zu beantworten. Zuerst zum Thema "Welcher Prozessor": Ich glaube der Z80 ist schon die richtige Wahl, da er sehr nah an der x86 Architektur ist und das wissen somit bedingt auch fuer PCs anwendbar ist. Zudem findet man sehr viel Software fuer den Z80. Ein anderer Prozessor der auch sehr interesannt ist, ist der 8051 (MCS51). Er ist besonders interesannt, da er sowohl als Mikroprozessor als auch Mikrocontroller eingesetzt werden kann. Ausserdem gibt es den 8051 von diversen Herstellern mit diverser Ausstattung. Die Architektur find ich allerdings etwas gewoehnungsbeduerftiger als beim Z80. Was brauch man alles fuer ein Board!!??! Das haengt hauptsaechlich von dem eingesetzten Prozessor ab. Auf jeden Fall benoetigst du einen Speicher fuer die Programme und Daten. Also RAM und ROM. Zusaetzlich benoetigst du noch Ein- und Ausgabebausteine, um irgendwas an das System anschliessen zu koennen. Manche Prozessoren haben einen eingebauten IO/Port (z.B. 6510,8051,etc.).. andere aber nicht. Manche Bausteine passen nur an die geeigneten Prozessor, da sie fuer diesen entwickelt wurden. Manchmal kann man mit etwas Zusatzhardware diese einschraenkung umgehen. Als naechstes benoetigst du noch eine Logikschaltung, die bei den passenden Adressen die entsprechenden Speicher, oder IO-Bausteine freigibt. Da schaut man sich am besten mal fertige Boards an. Und zu guter letzt benoetigt man natuerlich noch einen Takt und die Spannungsversorgung. Wie schliesst man Hardware an den Prozessor an??!!? Das geht entweder ueber den integrierten IO-Port und wenn dieser nicht vorhanden ist, wie beim Z80, dann ueber extra IO-Bausteine. Fuer den Z80 gibt es u.a. ein serielles IO-Baustein und ein paralleles IO-Baustein (SIO und PIO). Diese Bausteine besitzen internen Speicher uber den die Funktion gesteuert werden kann. Diese Speicherstellen werden in den normalen Speicherraum eingeblendet oder im extra IO-Adressraum. Dieses Konzept hat den grossen Vorteil, dass man fast beliebig viele IO-Ports anschliessen kann. Kurzes Fazit: Schau dir im Netz mal Entwicklungsboards fuer den 8051 und Z80 an... da sieht man schon die wichtigsten Grundlagen. Ich hoffe ich konnte etwas helfen. Gruss, SIGINT
2magnus müller: ok, das ist klar. aber der PIO hängt ja auch an den selben adress- und datenleitungen wie das RAM ;) dann muss ich dem pio ja irgendwie sagen können welche LED an sein soll und welchee aus. ausserdem war das mit dem PIO einfach geraten, weil ich schon mal sowas gesehen habe ;)
hallo SIGINT, danke schon mal für die info. also RAM, ROM, PIO und SIO kann man alle parallel an die Adress- und datenleitungen des Z80 legen, und über eine entsprechende logikschaltung kann man den baustein auswählen, der angesprochen werden soll. ich gehe jetzt mal davon aus, dass jeder baustein sowas wie Chip Select eingänge hat oder?? also eigentlich ist das ganz gar nicht soooo kompliziert. wenn man z.b. LEDs anzünden will, wählt man einfach die adresse des PIO aus, gibt über die datenleitungen die LEDs an, die brennen sollen, und der PIO macht das dann. war das richtig so?? ;) danke jedenfalls, dein posting hilft mir sehr viel weiter. :)
Bevor du den Lötkolben schwingst, solltest du erst einmal eine Idee haben, wie sowas funktioniert. Drum die Frage: Wie sieht es bei die mir Assembler-Programmierung von Microcontrollern aus? Das ist nämlich eine ziemlich gute Voraussetzung für dein Projekt. Immerhin ist ein PIO nichts anderes als ein paar I/O-Ports eines jener Mikrocontroller, die dafür keine speziellen Befehle verwenden. Nur befinden sich beim Controller der gesamte Bus intern, du hingegen sägst das Teil auseinander und packst den Bus auf das Board.
--> dann muss ich dem pio ja irgendwie sagen können welche LED an --> sein soll und welchee aus. Richtig. Wie du dem PIO das sagst, steht in den Datenblättern des verwendeten Prozessors (Behfehlssatz) und des PIOs (Registerbeschreibung). Gruß, Magnetus
Vielleicht hilft dir das etwas - da hat Benedikt ähnliches gebaut: http://www.mikrocontroller.net/forum/read-1-185767.html. Allerdings hatte er einen Logikanalysator parat, das erleichtert die Aufgabe etwas, wenn (wie bei ihm) Probleme auftreten.
Ach ja... kleiner Hinweis: Wenn ich mich nicht irre, gab es in den späten 80ern eine Fernsehreihe von (Rolf Dieter?) Klein, in der Schritt für Schritt ein modularer Computer auf Z80-Basis aufgebaut wurde. Vielleicht findet Google was darüber ("WDR Klein Computer"). Gruß Magnetus
Ups... sorry... nicht WDR, sondern NDR !!! www.google.de/search?hl=de&q=%22ndr+klein+computer%22&meta= Gruß, Magnetus
Guck mal hier in die Linkliste, da gibts ein paar Links zum Thema: http://www.mehto.roboterbastler.de/wsnlinks/index.php?action=displaycat&catid=43 Gruß, Xumb
Hi Falldu dich für den Z80 entscheiden solltest, empfehle ich dir folgendes Buch (allerdigs DDR Literatur): Mikrokontrollertechnik Autoren: Heiko Kieser/Michael Meder Verlag : VEB Verlag Technik Berlin Hat mir damals sehr weitergeholfen. MfG HG
Dieses Buch gibts leider nirgendswo zu kaufen, da DDR. kennst du ne bezugsquelle?
Das hier sollte eine grobe Vorstellung geben was Du min. brauchst. http://www.z80.info/z80_mp.htm Da kann man dann noch einen 8255 dranklatschen (PIO 3x8Bit bidirektional), passend dazu noch einen 8251 (SIO - wahrscheinlich zzgl. MAX232). Der obige Link ist von dieser Seite: http://www.z80.info/homebrew.htm Vielleicht findest Du da noch andere Anregungen...
morgen auch, sry dass ich mich so lange nicht mehr gemeldet hab'. ich musste gestern weg ;) vielen dank für eure hilfe. @SIGINT: kann ich evtl. deine email-adresse haben damit ich dich später evtl.kontaktieren kann?? ;) @Manos: ja, genau den 8255 und 8251 wollte ich auch anschliessen. doch ne kleine frage: wenn ich die adresse des PIO anwähle, was für ein datenbyte muss ich den PIO-Baustein senden, damit der bestimmte LEDs (z.b.) die an den ausgängen angeschlossen sind, aufleuchten lässt? den aufbau des boards habe ich mir so gedacht: alle bausteine liegen an den adress- und datenleitungen des Z80. Die Adressleitungen A13-A15 verwende ich dann für die Auswähl des entsprechenden bausteins (Chip Select). das ist richtig so oder? kann so etwas funktionieren?? ;) mein programm muss ich dann einfach an adresse 0000H speichern und bei einem Reset des prozessors wird der code ausgeführt. richtig?? ;) grüsse & schönen tag!!
Wenn schon Z80 CPU, dann aber auch die Z80 PIO, CTC, SIO, dann hast Du wenigstens ein ordentliches vektorisiertes Interruptsystem. Der Z80 hat dafür auch einen IO-Bereich neben dem Speicherbereich. Die 8255, 8251 sind keine Z80-Bausteine. Möchte aber auch meine Bedenken anbringen: 1. Auch bei nur 4MHz ist so ein Design nicht gerade unkritisch im Aufbau. Ich hatte auch mal mit Z80 experimentiert und massive Störprobleme gehabt. Falls Du kein erfahrener Layouter bist, rate ich zur 4 Ebenen Platine d.h. 2 Signallayer mit GND- und VCC-Ebene. 2. Einen praktischen Nutzeffekt hat das nicht, sondern nur einen reinen Lerneffekt. Wenn man das dann nur für sich alleine baut, erscheint mir der Aufwand entschieden zu hoch. 3. Ich würde eher zum 8051 raten, da hat man schon ein lauffähiges Minimalsystem (Timer, Ports, UART, RAM, Flash) und kann trotzdem externen Flash, SRAM, PIO anschließen. D.h. fertig entwickelte Projekte können durchaus praktisch verwendet werden, da man sie meistens so umschreiben kann, daß sie ohne externe Ressourcen auf dem Chip laufen. Peter
4. Du wirst bei den Kosten inklusive Platine bei dem gleichen Preis rauskommen als wenn du dir ein FPGA-Board holst und im FPGA das ganze implementierst. Sollte die erste Platine vor den Baum gehen dann wird es mit Sicherheit teurer. Geh mal ins FPGA-Forum da war vor kurzem ein Thread mit einem Z80-Klon Computer Nachbau.
ich möchte das board ja auch nicht einfach so aus spass bauen, denn wie peter dannegger gesagt hat geht es mir allein um den lerneffekt (und auch ums basteln ;)). ist halt reines interesse ;) ich habe noch nicht so wahnsinns erfahrungen mit mikrocontrollern etc., deshalb denke ich, ist es sinnvoll, wenn ich zuerst lerne, wie prozessorene tc. funktionieren und mich erst DANN dem FPGA zuwende. aber ich denke mal, mit dem Z80 kann man schon recht viel anfangen. ich muss halt mal bei gelegenheit ein schaltbild entwickeln. ich werde das dann hier posten um eure meinung dazu zu lesen ;) gruss
> wenn ich die adresse des PIO anwähle, was für ein datenbyte muss ich > den PIO-Baustein senden, damit der bestimmte LEDs (z.b.) die an den > ausgängen angeschlossen sind, aufleuchten lässt? Besorg dir das Datenblatt des 8255. Der Chip hat 3 komplette 8 Bit Ports an die die Leds angeschlossen werden können. Dazu muss man den Chip aber programmieren. Der hat ein Controll-register, über das man dem Chip mitteilt wie jeder einzelne Ausgabe-Port funktionieren soll (Eingabe oder Ausgabe). Dann steht für jeden Port eine spezifische I/O Adresse zur Verfügung an die du einfach das Byte ausgibst und der Chip schaltet es an die Ausgänge durch (oder eben anders rum für Eingänge). Aber ich denke die anderen haben recht: Auch wenn der Aufbau eines Z80 Sytems keineswegs Raketentechnik ist, so bist du mit einer Ein-Chip Lösung fürs erste besser bedient. Einen ATMega hängst du einfach an die Stromversorgung (im wesentlichen) und er läuft und lässt sich programmieren. Mit einem Z80 System musst du schon etwas mehr Aufwand treiben. Das fängt schon mal bei einer Beschaltung für den Quarz an und hört mit den Chip-Select Logiken (getrennt für Memory und I/O) auf.
ich guck mir mal das 8255-datenblatt an (oder das des original Z80-PIO). aber eins habe ich jetzt nicht gleich verstanden: warum müssen die chip-select logiken für memory und io getrennt sein? in den schaltplänen, die ich bisher gesehen habe, war das auch nicht der fall.
"ich guck mir mal das 8255-datenblatt an" Laß dir keinen Bären aufbinden, das sind doch Intel Chips. Wenn es schon ums Lernen geht, dann wenigstens richtig. D.h. dann sollte das Ganze doch auch interruptfähig sein und das geht nur mit den Z80-Peripheriechips. Peter
Du kannst auch einen 68000er nehmen. Da lernt man noch viel, viel mehr. User-mode, Supervisor-mode, verschiedene Programm- und Datenbereiche, Coprozessor und wie man dem Teil auf die Schliche kommt, wenn es bei irgendeinem Zugriffsfehler alle Beine 'fliegen' läßt.
> warum müssen die > chip-select logiken für memory und io getrennt sein? Nun. Müssen tun sie nicht. Aber es wird einfacher. Der Z80 hat getrennte Adressräume nach Speicher und I/O und dementsprechend auch getrennte Befehle im Befehlssatz. Klar kann man eine PIO auch Memory Mapped betreiben. Ob das Sinn macht ist eine andere Frage. Kommt drauf an, welche Speicherchips du benutzt. Um mal mit Zahlen zu hantieren: Sagen wir mal du benutzt 8KB Speicher. Dann muss die Chip-Select Logik aus den 16Bit Adressleitungen 8 Signale für jeweils einen Speicherchip generieren (8 aus 3 Decoder an die Leitungen A15, A14, A13). Legst du da jetzt eine PIO rein, dann blockiert die dir eine komplette 8KB Kachel im Speicher. Anstatt 64KByte hast du nur mehr 56KByte, allerdings hast du eine PIO, die sich im Speicher x-mal wiederholt. Ist also nicht so toll. Daher baut man solche Peripherie in den I/O Bus ein. Der hat zwar nur 256 mögliche Adressen, aber normalerweise langt das Dicke. Die Z80 signalisiert mit 2 Pins, ob eine am Adressbus anliegende Adresse für den Speicher oder für I/O gedacht ist, daher brauchst du klarerweise auch 2 getrennte Chip-Selekt Logiken: Die eine, für den Speicher wird hauptsächlich auf den Leitungen A15, A14, A13, A12 ... arbeiten. Die für den I/O Bus wird die Adressleitungen A7, A6, A5, ... verwurschten.
Irgendwo habe ich noch Kopien von E.M.M.A, das war ein EMUF-Projekt IMHO aus der Elrad, müsste also auch auf der heise-DVD dabei sein. Das war ein Einplatinen Mikroprozessorboard auf 6502-Basis inklusive doppelseitigem Layout. Wenn man nicht mal Messtechnik (Logic Anaylizer etc) für sowas hat, hat man doch eigentlich auch keinen Lerneffekt, wenn man sich nicht mal das Bus-Timing etc angucken kann. Elektor hatte auch mal ein Controller-Board als EMUF. Der NDR-Klein-Computer bestand sogar aus mehreren Platinen (Bus). Wenn jemand an solch "altem Zeug" Interesse hat, könnte ich ihm noch einen Apple ][-Nachbau zukommen lassen... Vielleicht sollte jemand im Wiki einen Beitrag mit "sinnfreien Projekten" machen, wo man dann drauf verweisen kann.
also ich würd mir mal den avr einverleiben.. dann einen kleinen arm7 und wenn du da alles verstanden hast hol dir einen fetteren arm mit sdram usw... der 68000 ist zwar nett aber arm ist derzeit einfach verbreiteter... von der komplexität sind sie ziemlich ähnlich... von sowas altem wie dem z80 würd ich abstand nehmen.. nicht mehr zeitgemäß... da kannst gleich einen 80x186 nehmen.. die dinger sind zwar ok aber wie gesagt... arm bringt bessere leistung pro mA und nebenbei rennt auch linux wenn man mal so weit sein sollte ;P im übrigen kostet ein LPC2131FBD64 unter 9e bei RS ! dein Z80 kostet 11 ;)... ich persönlich würde aber einen lpc2138 hernehmen.. speicher hat man nie genug... das nächste über das du dir gedanken machen solltest ist wie du das teil programmieren willst... für den z80 wirds sicher compiler geben aber ich rate dringend zu einem prozessor mit gcc-unterstützung... von einem 8051 rate ich ab weil die dinger einfach nicht mehr zeitgemäß sind.. zumindest das zeug was schon ewig am markt ist.. und da ist dann der springede punkt... avr ist neuer und mitlerweile gibts genug infos damit man sich jahre lang durchlesen könnte ;) also meine empfehlung... atmega128 verwenden bis man wirklich erfahrung hat in embedded programmierung.. sonst ist eine größere architektur einfach nicht ausreizbar.... und als größere architektur würd ich einen arm7 nehmen...schau mal bei olimex vorbei.. da gibts neben brauchbaren boards auch schaltpläne dafür ;) 73
@Hans, Hubertus wollte doch alles separat aufbauen. AVR udn ARM scheiden damit aus. Verdück Dich schon mal in die Versenkung, denn gleich gibt es Prügel wg.: ''von einem 8051 rate ich ab weil die dinger einfach nicht mehr zeitgemäß sind.. ''
@Hans: olimex?! noch nie gehört... hast du einen link?? @karl heinz buchegger: mit den 2 signalen, die anzeigen, ob daten für I/O oder memory bestimmt sind meinst du sicher den pin "/MREQ". kann das sein?? ;)
@egon schau dir mal einen 8051er an und vergleich ihn mal mit einem avr.. der ist einfacher, hat nettere ios und ist auch viel schneller... was willst du noch mit einer akku-maschine??? vergiss diese architektur... sie ist tot.. man muss sie nur noch offiziell eingraben g @hubertus www.olimex.com wenn du dich wirklich herumquälen willst hol dir einen atmega mit twi (oder i2c genannt) und sram interface.. dann kannst sram drantun und wenn du willst auch einen pio-controller ... und am i2c-bus hängst dann noch son port-erweiterungsteil dran.. glaub pcf8574 war das.. dann kannst ja mal vergleichen wie man das früher machte und wie nett das jetzt geht ;) ich persönlich würd mich nicht mit alten krücken herumschlagen wenns neues zeug gibt das man genau so umständlich verwenden kann g 73
>sie ist tot.. das bezweifle vermutlich nicht nur ich. 8051er gibt es von fast jedem Chiphersteller; AVR gibt's nur von Atmel (die auch 8051er im Sortiment haben). IMHO ist das der verbreiteste Controller-Kern überhaupt.
Es wäre hilfreich, sein Ziel zu kennen. 8051 ist eine typische Microcontroller-Architektur, aber die vielfältigen und getrennten Adressräume grenzen ihn sehr deutlich von klassischen Mikroprozessoren ab (AVR ebenso). Da sind von-Neumann-Architekturen üblich.
"also den 8255 sollte ich nicht mit dem Z80 verwenden? eher den Z84C20?" Ganz genau. Denn ohne Interrupts macht das Programmieren überhaupt keinen Spaß. Peter
@peter: okeee :D stimmt eigentlich schon, die interrupts braucht man schon. also, ich brauch einen Z80, dann eprom, sram, pio und sio. alles würd über die gleichen adressleitungen an die cpu angeschlossen (A0...A15, D0...D7). dann noch die chip select logik und das system sollte funktionieren oder?? ;) der code, der an adresse 0000h steht wird nach dem reset ausgeführt. gehe ich recht in der annahme?? gruss
google mal nach TNC terminal node controller das ist ein Z80-Rechner auf einer Europakarte, mit Modem-Chip für Packet-radio, und Eprom. Vielleicht gibts sowas günstig gebraucht. Ich sehe das auch nur als Nostalgie-Projekt, neue Controller haben alles auf einem Chip, sind stromsparender und schneller. Ich hab irgendwo noch den Original-EMUF mit 6504-Prozessor, 2k Eprom und dem 6532 (I/O mit 128 Byte RAM). EMUF= Einplatinencomputer mit universeller Festprogrammierung hieß das von der "MC" 1981/82 veröffentlichte Projekt.
Wenn Z80-SIO dann auch Z80-CTC für den Baudratentakt. Oder UARTs die ihren Takt selber erzeugen können (16C550, 88C681, Z85C30).
Aus nostalgischen Gründen könnten man auch diesen hier nachbauen. http://home.micros.users.btopenworld.com/zx80/zx80.html http://home.micros.users.btopenworld.com/zx80/full_pcb.jpg
danke für den link ;) aber ich hab noch immer nicht genau verstanden, wie das mit der programmausführung geht.
Das siehst du ganz richtig: Nach Reset geht's los bei Addresse 0x0000. Was immer da steht wird ausgeführt. Auch wenn da garnichts steht.
@Hubertus, na da hast Du ja was angestellt....... Was die Z80 angeht, habe jahrelang damit gearbeitet. Viele kleinere Steuerungsaufgaben damit erschlagen. Allerdings wie Peter sagte eben nicht ganz einfach. Zumindest vom Aufbau. Die Leitunsgverlegung auf Platinen macht sich saumäßig !!! Die Pins sind so blöd angeordnet !! Störungsprobleme hatte ich nie. Aber immer Pull UP´s. UND.... ohne PIO und Latch lassen sich keine einzelnen Portpins ansprechen !!!!! Dann lieber ne 8051 Architektur. Interrupts, Portpins und "One Cycle MCU´s" gibts davon auch. Jo der Code steht ab 0000h. Aber da kommen noch Interrupt Vektoren. NMI, INT, SIO, CTC,PIO . Auf 0000 steht immer JP Anfang. Du brauchst aber für SIO,CTC und PIO noch ne Adresslogik. Die macht das ganze Aufwändiger wenn nicht Adressen mehrfach auftauchen sollen. Zum AVR sei nur gesagt...schnell..ja aber das wars dann auch. Umstädliches Porthandling und wenns um Interrupts geht die geordnet werden müssen (Prioritäten), geht das Lich ganz aus. Also. machs gut. PS. habe noch Bücher und (Schaltpläne zB. KC85 ) davon.
@stephan: kannst du mich mal per mail kontaktieren?? huby 89 at gmx dot net wäre nett wenn wir ein bisschen schaltpläne tauschen könnten ;)
nichts konkretes, ich möchte einfach ein paar richtige schaltpläne sehen um so die grundsätzliche schaltungstechnik etwas kennen zu lernen ;)
Kannst natürlich ein bischen schummeln, und an Stelle von PIO/SIO/CTC den Z84C90 benutzen. Ist nichts anderes als PIO+SIO+CTC+Dekoder+Taktgenerator in einem PLCC84.
@A.K. hier wird doch nicht geschummelt :-) Da geht doch der ganze Spaß mit der Adresslogik verloren :-( Hatte ich damals auch überlegt. Bin dann aber doch zu 8051 gewandert und habs nicht bereut. ( Außer das der z80 Doppelregister hatte. )
> mit den 2 signalen, die anzeigen, ob daten für > I/O oder memory bestimmt sind meinst du sicher den > pin "/MREQ". kann das sein?? ;) Yep. /MREQ und /IOREQ Da da sagtest du suchst nach Schaltbildern. Mit google: "z80 PIO SIO CTC Schaltplan" hab ich zb gefunden: http://www.hcrs.at/Z80.HTM (verwendet leider noch eine 8251 als UART). Aber zumindest kannst du mal studieren was da so auf dich zukommt. Falls du das Ding hochziehst: Ich hab noch einen 4KByte BASIC Interpreter in Z80-Assembler irgendwo rumliegen. Könntest Du haben.
@karl heinz: also, /MREQ zeigt an, dass die CPU einen speicherzugriff machen will (byte lesen, schreiben) und /IOREQ zeigt an, dass die CPU daten ausgeben will (LEDs einschalten z.b.). gehe ich recht in der annahme, dass man daten auch mit den befehlen IN und OUT ausgeben kann? wenn man einen dieser befehle verwendet, dann müsste theoretisch /IOREQ aktiv sein. bei einem befehl wie JP allerdings würde /MREQ aktiviert werden oder?? ;) also kann ich eine logikschaltung machen, die mir jeweils bei /IOREQ oder /MREQ die IO-bausteine bzw. die speicherbausteine auswählt?? :)
Z80 hat zwei getrennte Adressbereiche: I/O-Geräte => IOREQ - nur IN und OUT Befehle. Programm- und Datenspeicher => MREQ - alles andere. Üblich: HC139 als Dekoder, eine Hälfte für Speicher (A15:A14), eine für I/O (A7:A8). Steht so auch in einem der Beispiele oben drin.
@Karl Heinz Buchegger Das mit den 8KB Blöcken in deinem Beispiel stimmt nur eingeschränkt. Mit entsprechender Logik in der auch die anderen Adressleitungen ausgewertet werden sind es weniger Bytes.
"huby 89 at gmx dot net" Einfacher zu lesen ist die E-mail Adresse hinter Deinem Namen bei "Autor:" :) @Hubertus "ich habe noch nicht so wahnsinns erfahrungen mit mikrocontrollern etc., deshalb denke ich, ist es sinnvoll, wenn ich zuerst lerne, wie prozessorene tc. funktionieren" ...und eben da denke ich, dass es einfacher ist direkt mir einem uC anzufangen. Wenn es nur darum geht die Funktionsweise zu verstehen muß ich nichts historisches nachbauen. Ein uC ist von der Funktionsweise vergleichbar, leichter zu handhaben - und man muß nicht erst in der Hardware den Fehler suchen wenn es nicht funktioniert... Der simpleste Versuchsaufbau mit einem uC besteht aus dem uC und zwei Drähten für die Spannungsversorgung zwischen 1,8V und 5.5V - je nach Modell (setzt voraus, dass das Programm schon im Flash ist). Da kann man beim Aufbau der Hardware nicht wirklich viel falsch machen :)) @all Gibt es eigentlich ARM's sie man auch ohne SMD-Lötkolben verarbeiten kann?
@manos: ich kenne zwar arms nicht direkt, aber es gibt ja für so SMD-ics auch fassungen (PLCC und wie sie alle heissen). die gibts auch in durchkontaktierter technik ;) und übrigens: das mit der emaila dresse hab ich erst ejtzt gesehen :D
>Üblich: HC139 als Dekoder, eine Hälfte für Speicher (A15:A14), eine >für I/O (A7:A8). Steht so auch in einem der Beispiele oben drin. Wie meinst du das? Der Z80 (wie auch der 8085) haben getrennte I/O- und RAM-Bereiche. Somit verdoppelt sich die Menge der adressierbaren Speicherbereichen (sofern die Adressierung gleichförmig ist). Bei 8051er (und beim AVR, wenn nötig) ist es ja so, dass der externe I/O-Bereich mit im externen RAM-Bereich liegt.
@Hubertus: Sorry, falsche Erinnerung. Stimmt aber trotzdem. Die eine Hälfte vom HC139: G/=MREQ,A=A14,B=A15. Ergebnis sind 4 Chipselects für ROM/RAM, je 16KB. Q0/ sinnvollerweise an ROM, wegen Adresse 0. Oder A auf GND, dann sind es 2x 32KB, je nach Bedarf. Die andere Hälfte: G/=IORQ,A=A6,B=A7. Ergebnis sind 4 Chipselects für I/O-Bausteine. OE/ vom ROM+RAM an RD/, WE/ vom RAM an WR/. Wenn du beim Takt auf Nummer sicher gehen willst: Fertiger Oszillator doppelter Frequenz und 1/2 HCT74 als Teiler dahinter. Diese Oszillatoren sind nicht immer ganz symmetrisch.
@Rahul: Nix doppelt. Offiziell sind es nur 256 I/O-Adressen, also Adressierung über A0-A7. Mit dem Z80 war zwar auch mehr möglich, weil indirekte I/O-Befehle nicht nur 8bit C sondern 16bit BC am Adressbus lieferten, aber das kann ich nicht weiterempfehlen, erst recht keinem Anfänger.
@A.K.: Wie beim 8085 also (sind wohl beide miteinander verwandt; siehe Wikipedia.org...) Mit der Grösse des Adressraums war ich mir nicht ganz sicher. Beim 8051 benutzt(e) man gerne Adressdecoder nicht nur um den Speicherbereich auf mehrere RAM-Bausteine zu verteilen, sondern auch, um Periferie dahin zu legen, da dieser Controller nur "einen externen Bus" besitzt. Der 8085 hat auch IN- und OUT-Befehle.
ich hoffe nur das Hubertus ne Vorstellung davon hat worauf er sich einlassen will. Wenn ich an die damaligen TTL Gräber denke...... Da können einige "alte Hasen hier" mal wieder die Kenntnisse auffrischen.
Z80 stammt wie 8085 vom 8080 ab, ist daher softwareseitig voll aufwärtskompatibel mit 8085, hardwareseitig immerhin ähnlich.
Was am Z80 toll war im Vergleich zm 8080: Der hatte den Controller für dynamisches RAM gleich mit eingebaut. Somit war keine aufwändige Refresh-Logik notwendig. Und dynamische RAMs (4164, od dgl.) waren ungleich billiger als statische. Da hat sich viel verändert in der Zwischenzeit :-) Kaufte meine ersten 64K (8 Stück 4164) damals für nen knappen Tausender. Schilling natürlich. So ca. 80 Euronen nach heutiger Währung.
z80 hatte 64 KByte Adressbereich. von da ab nur noch Bank Switching. Haben wir bis 256 KByte gemacht. Größere IC´s gabs damals 1988 nicht in DDR. Jo ,In / Out waren die I/O mit IORQ mit max. 256. Alles andere ging über die Speicher Adressierung mit WR, RD und MREQ. M1 war glaube auch mit im Spiel.
Oops, wird doch komplizierter, vergiss dem Mist mit dem HC139 den ich oben geschrieben habe. Kannst da kein IORQ/MREQ einkoppeln, gibt das Timing nicht her, die Chipselects dürfen kein MREQ/IORQ drin haben.
@A.K.: wie ist jetzt das zu verstehen?? ;) @karl heinz: übrigens wär ich interessiert am basic-interpreter ;)
Ich hätte noch einen Apple ][ mit Z80-Karte abzugeben... (fällt mir gerade mal wieder ein...) 80Zeichen-Karte wäre auch dabei, Doku auch...
@A.K. Warum nicht ???? War immer so. Adressdecoder an den Bus und alles mit IORQ verknüpfelt. Raus kommt das CS für den Chip ( Pio,CTC usw,) Kann sein das M1 noch bei war.
CS muss zig nsec vor IORQ anliegen, der Dekoder darf also nicht mit IORQ gegated werden. Ist bei den die Z80-Bausteinen kein Problem, die haben selber einen IORQ Eingang. Also bei der I/O-Hälfte des HC139: G/=GND, A=A6, B=A7. Beim Speicher sollte das so funktionieren wie oben beschrieben. M1 mischt evtl. mit, wenn Interrupts oder DRAM beteiligt sind.
kann sein das IORQ Low aktiv war. dann muß es noch invertiert werden. Aber so lies sich das CS für Peripherie erzeugen. Allerdings nicht eindeutig !!!! Adressbereich ist hier mehrfach vorhanden !!
Ich vergass. Um Das Ding zum laufen zu kriegen, musst du 3 Funktionen selbst schreiben: CI Console Input, liest ein Zeichen von der Konsole (was auch immer das sein mag) ein. ECHO gibt ein Zeichen auf der Konsole aus CSTS Überprüft ob an der Konsole-Input ein Zeichen vorliegt. Wenn ich mich recht erinnere, musste CI das Zeichen in A abliefern, während ECHO das auszugebende Zeichen im Register C erhielt. Und wie war das noch mit CSTS ... Hmm Da musste, glaub ich das Zero-Flag herhalten. Ich hab noch eine Version gefunden, bei der ich die Anpassung an eine 8251 gemacht habe. Liegt bei. Die 8251 liegt an I/O 0x11 aufwärts, während eine 8255 an I/O 0x00 angenommen wird. Das Basic kann: 26 Variablen (Variablenname = 1 Buchstabe, A - Z). Dann gabs da auch noch ein Feld. Das war der @ als Variablenname Kommandos: LIST RUN NEW BYE END NEXT LET IFF GOTO GOSUB RETURN REM FOR INPUT PRINT STOP CALL OUTCHAR OUT O$ (= Stringausgabe) I$ (=Stringeingabe) POKE TAB BYTE WORD RND ABS SIZE PEEK INCHAR HEX IN TOP LEN CSTS TO STEP und die üblichen arithmetischen Operationen, alles Integer mit 16 Bit.
Die Z80 Peripherie hat selber einen IORQ-Eingang, da ist das also eindeutig. Interessanter ist der Speicher. Zilog definiert nämlich netterweise keinen direkten Zusammenhang zwischen MREQ und RD, aber die Holdtime hängt von RD ab. Mit etwas Pech, ungleicher kapazitiver Last und heutigem sauschnellem Speicher sind die Daten zu früh wieder weg (Benedikt - liest du mit?). M.a.W: Wer sicher sein will, lässt MREQ beim Dekoder weg und baut sich für den Speicher OE/WE per AND-Gates aus RD/WR plus MREQ zusammen. Und lässt sich dabei etwas Zeit, nicht schneller als mit LS/HC-Technik.
@A.K.: kann man also nicht die RD- und WR-Leitungen der CPU selbst verwenden um RAM zu adressieren?? @karl heinz: danke für den basic-interpreter ;)
doch das geht !!!!. Wir haben damals den Zinklair ZX Spectrum nachgebaut. Da war für die Grafik auch SRAM drauf. Das geht. Die Schaltung muß ich heute Anbend mal raussuchen. Per Mail !!!
Man darf eines nicht vergessen: Heutige RAMs sind viel schneller als damalige und das hat nicht nur Vorteile. Vor allem wenn es sich um übrig gebliebene Cache-RAMs handeln sollte.
@A.K. ist korrekt. Cache´s gehen viel zu schnell. Das waren U224 SRAM mit 1kx4. Aber jeder normale 61/65512 sollte gehen . Im absoluten Notfall muß ein Latch her. Aber das wäre vor allem eine unerlaubte Arbeitserleichterung. Ich dachte er wollte "richtig" einsteigen. Dazu gehören doch DRAM und Refresh Logik mit Multiplexern etc.pp. :-/
Einen sauberen Prozessorbus zu konstruieren, ist wie man sieht nicht ganz einfach. In den ersten Generationen haben das alle irgendwie vergeigt, jeder davon hat gewisse Konstruktionsfehler. Bei den "80"er Typen, insbesondere Z80, kämpft man damit, dass die Art des Zugriffs, also ob Lesen oder Schreiben und ob Speicher oder I/O, nicht schon mit den Adressen vorliegt, sondern erst mit den Strobes. Bei den "68"ern fehlt andererseits die Information, ob überhaupt ein Zyklus stattfindet. Erst mit der nächsten Generation (8088,68000) wurden die Busse sauberer definiert.
also sry ich war wieder mal kurz weg ;) deshalb hat meine antwort etwas auf sich warten lassen. also, in der schule habe ich ein Z80 board gesehen, dass die da frher verwendet hatten zu lernzwecken (ein MPF-1). ich hab mir mal die schaltpläne ausgeliehen, hier ein scan davon (datei ist eine gewöhnliche Tif-datei; einfach den unterstrich im namen entfernen, um sie öffnen zu können). der PIO ist auf dem unteren teil zu erkennen, sämtliche speicher sind oben. man erkennt auch gut die adresslogik (chip select), die mit 74LS139 aufgebaut ist (trotz einiger proteste, die hier laut wurden ;)). aber mir scheint auch, an der chip select logik könnte man etwas ändern... genau so etwas ähnliches wollte ich mir auch bauen. aber diese schaltung ist ja schon etwas veraltet, deshalb habe ich für mich privat ein kleines projektchen geplant ;) grundsätzlich: wäre sowas in der art schon funktionstüchtig?? sicherlich müsste man noch einiges erweitern. das eprom kann man z.b. durch ein NV-SRAM ersetzen. die haben das bei dem board auch gemacht, es war ein modernes und schnelles DS1224Y. die CPU kommt damit allerdings recht gut klar, trotz der hohen geschwindigkeit des SRAMS. wenn man dan so ein SRAM drin hat, kann man per PC die assemblierten programme ab adresse 0000h reinladen und das sollte dann ja eigentl. funktionieren, nicht?? ;) grüsse
Problem dieser Schaltung: CS wird ca 60nsec verzögert (3x LS139), WE vom RAM aber nicht. Am Ende eines Schreibzugriffs wird also WE ca 60nsec vor CS inaktiv, aus dem Schreibzugriff wird ein Lesezugriff und die Datenbusse kollidieren - gemäss Datasheet schaltet ein 6264 den Datenbus bereits nach 5nsec wieder ein! Funktionieren wird es trotzdem, wenngleich mit höherem Stromverbrauch als nötig, weil der "Kurzschluss" zu einem Zeitpunkt erfolgt, zu dem sich niemand für den Datenbus interessiert.
PS: Oder auch kein Kurzschluss, weil's beiderseits eher die gleichen Daten sind. Aber elegant ist das nicht grad.
aha. also das erklärt auch warum auf dem board die ics so warm werden ;) ich würde die adresslogik eh etwas überarbeiten. wenn man die in einem GAL/PAL unterbringt, ist sie schon wesentlich schneller. ausserdem würde ich eh weniger RAM/IO bausteine nehmen und würde dann dementsprechend weniger adressleitungen "verbraten". wie würdest du die adresslogik anpassen?? ;)
ich bin grad dabei, etwas entsprechendes zu zeichnen. evtl mache ich das mit einem jumper, dass man OE mit RD verbinden kann oder halt eben nicht. ;)
Naja, so einfach wirst Du die Daten per PC nicht in das SRAM hineinbekommen. Schließlich hat so ein SRAM weder eine serielle, noch eine PC-geeignete parallele Schnittstelle. Du benötigst schon etwas "Mithilfe" des Z80 - in der Regel wird das mit einem im ROM befindlichen Monitorprogramm erledigt, das über die serielle Schnittstelle Daten entgegennimmt und in einen definierten RAM-Bereich schreibt, um auf ein definiertes Kommando hin die Startadresse dieses Codes aufzurufen. Um das Rad nicht neu erfinden zu müssen, empfiehlt sich für die Datenübertragung zwischen PC und Monitorprogramm die Verwendung eines etablierten Hex-Download-Protokolles wie Intel-Hex oder Motorola S19. Damit das ganze funktioniert, muss aber nach einem Reset zwingend das Monitorprogramm aufgerufen werden, was erfordert, daß der Resetvektor fest auf das ROM-residente Monitorprogramm verweist ... also muss bei Adresse $0000 halt das EPROM mit dem Monitorprogramm liegen. Damit man eine Chance hat, Reset- und Interruptvektoren zu ändern, muss ein Hardwaretrick verwendet werden: Die Adressdecoderlogik kann ein SRAM an den gleichen Adressen einblenden wie das (EP)ROM, tut dies aber nicht nach dem Reset, sondern erst, wenn ein bestimmtes I/O-Register beschrieben wird. Vorher liegt dieses RAM an anderer Stelle im Adressraum, damit das Monitorprogramm die vom PC empfangenen Daten hineinschreiben kann. Damit wird die Adressdecoderlogik etwas aufwendiger als nur ein simpler '139, aber das sollte durchaus noch zu schaffen sein. Solche Systeme lassen sich übrigens noch durchaus beherrschbar auf Lochrasterplatinen in Fädeltechnik bauen, wenn man als erstes die Stromversorgungsleitungen aus massivem Draht verlegt und nicht mit Abblockkondensatoren geizt, die so nah wie möglich an den Stromversorgungspins anzubringen sind. Hier sind SMD-Keramikkondensatoren sehr praktisch, die können gut auf der Lötseite der Platine untergebracht werden. Den Rest (Adress-, Daten- und Steuerbus) verdrahtet man dann mit lötbarem CuL-Draht. Wenn man nur logisch zusammengehörende Leitungen parallel verlegt, also nur Leitungen, die eh' alle gleichzeitig ihren Pegel verändern, und andere etwas auseinanderhält bzw. nach Möglichkeit rechtwinklig verlegt, dann lassen sich mit dieser Technik auch noch recht hohe Frequenzen in den Griff bekommen, die schon erhebliche Anforderungen an ein geätztes Platinenlayout stellen. Ich kenne ein Extrembeispiel, einen mit 25 MHz getakteten 68020 auf einer Euro-Lochrasterkarte mit 512 kByte zero-Waitstate-SRAM, den jemand komplett gefädelt hat. Bei so komplexen Schaltungen empfiehlt sich allerdings der Einsatz von GALs oder ähnlichen kleinen PLDs für die Adressdecoderlogik ... Für mit nur 4 MHz getaktete Z80 sehe ich jedenfalls noch keine großen Probleme.
hallo rufus, ja das mit dem monitorprogramm habe ich mir auch schon überlegt. das lasse ich vorerst noch aus, ich mach einfach mal ein board, das nur RAM hat. dem EPROM wende ich mich später zu. meine programme führe ich dann halt im NV-SRAM aus. ich dachte mir, ich kann das programm zuerst über pc ins RAM laden, danach das ram auf den sockel montieren und das system reseten. wenns nicht klappt, ram raus, neu programmiert, und neuer versuch. dann kann ich so ein funktionierendes monitorprogramm basteln, das dann auf eprom bannen und dauerhaft auf dem print montieren.
"Damit man eine Chance hat, Reset- und Interruptvektoren zu ändern, muss ein Hardwaretrick verwendet werden" Kann man mit Hardware machen, wurde auch meist so gemacht. Aber muss das sein - zumal bei einem einfachen System? Das ROM mit den Einsprungstellen kann man auch lassen wo es ist, der Reset-Code testet dann erst einmal ob Bootloader/Monitorprogramm gemeint ist (Schalter oder Steuerleitung der Seriellen) und wenn nicht springt er an den Anfang vom RAM. INT/NMI ähnlich: Erster und einziger Befehl der ROM-Adresse: Sprung an entsprechende Stelle vom RAM. Und schon sieht die Hardware wieder einfacher aus..
"ich dachte mir, ich kann das programm zuerst über pc ins RAM laden" Wie stellst Du Dir das vor?
"ich mach einfach mal ein board, das nur RAM hat" Woher kriegt das RAM sein Programm? Alternative: Plane gleich noch einen Microcontroller als Bootloader/Debugger ein. Mega8 oder so, hängt an allen wesentlichen Adress/Daten/Steuerleitungen (tristate). Der legt dann die Z80 lahm, lädt das Programm ins RAM und gibt dann der Z80 einen Tritt (Reset). Falls jemandem das zu modern erscheint: Etliche Generationen von Gross- und Minicomputern der 60er bis 80er haben so ähnlich gearbeitet.
@A.K.: gute idee, sowas kann man natürlich auch machen. ich hab noch ein paar AT89C55WD hier rumliegen... sollte gehen ;)
Den Mikro kann mal übrigens auch als Taktgenerator verwenden, so der einen Timerausgang hat, der ggf. 4MHz liefern kann. So kann man dann zwecks Debugging die Z80 Zyklus für Zyklus einzeln laufen lassen. Mit LEDs an den Bussen sieht das dann auch noch richtig schön aus.
@all der Eprom EMU wäre die Lösung aller Sorgen. Ein normales SRAM an den Bus 65256 oder sowas mit 120 oder 150n und los gehts. Den EMU kann ja nen "4Flash" machen. Ist der kleinste EMU den ich kenne und günstig ist er auch. Das wärs doch dann ..... oder ????
Ich bin ja mal gespannt, wieviele Antworten hier noch erscheinen, bevor endlich jemand deutlich sagt, dass das Vorhaben doch mehr oder weniger Unfug ist. Alle Antworter sind doch letztlich froh darüber, einzelne Bausteine nicht mehr verdrahten zu müssen, sondern die 'Hauptaufgabe' mit zunächst einem Chip zu erledigen. Was damals ein Apfel oder ein PET war ist heute ein MEGA128 und dazu noch deutlich leistungsfähiger. Kein Koch käme auf die Idee, sich sein Besteck aus Holz zu schnitzen.
@Egon, gaanz oben war die Reden von Atmel & Co. Er will es so wie wir von der Pike auf erlernen. Auf diskreter Ebene sozusagen. Dann laß ihn doch, denn dümmer wird er davon auf keinen Fall. Im Gegensatz zu Ihm gibt ea hier auch Leute die zB. ein Grafik LCD betreiben wollen und nicht mal wissen was Binärzahlen sind. Das halte ich für viel bedenklicher. Außerdem hat er doch heute wesentlich bessere Möglichkeiten mit dem Z80 als wir damals....
@Stephan Natürlich lasse ich ihn, gib alles nur keinen Sinn. Der Nächste will sich dann einen 4-Bit Adder mit Transistoren aufbauen: bitte schön. Hat vielleicht jemand den Artikel in ELEKTONIK 9/2006 gelesen: elektronische Wasserwaage ? Da wurde gezeigt, wie elegant man mit einer dicken FPGA-Flunder eine Puls-Pausen-Messung machen kann und dabei noch einen Inverter spart. Im FPGA wurde ein 8051 gleich mit reingepackt. Sehr interessant und lehrreich und das beste Beispiel dafür, keinen FPGA einzusetzen. Kann man auch viel dabei lernen. Bringt aber nichts ! Ein denkender Mensch macht das mit einem Winzprozessor, an dem noch ein flankenempfindliches Beinchen frei ist, auch wenn er nichts babei lernt :-)
@Egon, jo hab ich. Allerdings sit ne richtige billiger. Das Kehrstück zu dem hier eigentlich. Aber interessant...inkl. LCD Symbole
ps.: woher kriege ich die "Elktronik" eigentlich ??? Habe kein Abo und bezahle auch nichts !!! KAm eines Tages und so ist es bis geute inkl. Automotive
@Egon, was ich meinte ist das die "Elektronik" eines Tages in meinem Briefkasten war und auch heute immer noch zugestellt wird. Ich habe aber nie ein Abo gemacht !!! Ich erhalte auch keine Rechnung für die Zeitschrift. Fällt Dir was ein wie man dazu kommt ?? Ich war mal bei denen auf der Webseite vor Jahren......aber deswegn bekommt man doch die Zeitschrift nicht jahrelang umsonst ????
@Stephan, ich meinte den 1. Text :-) Die "Elektronik" bekomme ich auch doppelt: 1. als Abo, 2. als Werbung. Die suchen sich irgendwo gewerbliche Adressen zusammen, um damit bei Ihren Werbekunden höhere Auflagen vorzulegen, was die Inserate verteuert. Aus dem gleichen Verlag kommen auch 'Design&Elektronik' und 'Markt&Technik', die ich auch jahrelang bekommen hatte und eines Tages nicht mehr. Das Abo ist recht teuer, aber ich fürchte, wenn ich dies kündige auch eines Tages das Werbeexemplar wegfallen wird. Es gibt weitere Anbieter mit Freiexemplaren (Vogel-Verlag z.B.). Was mich bei dem von mir angeführten (Werbe)beitrag so gestört hat, war, wie ein erfahrener PLD-Designer so tat, als nähme man mal eben irgendeine Anwendung und packe sie in einen dicken, teuren Baustein, wobei der Wunschbaustein sogar bezeichnender Weise überhaupt nicht lieferbar war. Und das unter der Vorgabe, wir wollen etwas lernen. Hinzu kommt, dass die von ihm verwendete Entwicklungsumgebung sauteuer ist. Er hat dann in der vorgegebenen Zeit von vier Wochen (mit horrendem Aufwand) das realisiert, was ein erfahrener µPler innerhalb eines Tages mit einem kleinen AVR geschafft hätte. Darum meine ich, man sollte Geschichten nicht immer wieder bei Adam und Eva anfangen, auch wenn man viel lernen könnte.
jo ist wohl war. Aber die Artikel beziehen sich ja fast immer auf Prof. Werkzeuge. Meßtechnik oder Bauteil.......nur vom Feinsten. Ist für mich rein informativ. Bin nur ElektronikFacharbeiter sagten wir früher. Aber das Equipment was dort mancher hat...... schön wärs schon.
tag auch, danke für eure tahlreichen antworten. ich war heute im geschäft und konnte leider nicht dauernd hier rumsurfen drum hat meine antowrt etwas warten lassen ;) ich hab mal in der mittagspause kurz ein schema gezeichnet. ich habe allerdings nur die adress- und datenleitungen angeschlossen, weil ich für den rest keine zeit mehr hatte ;) ich habe ein paar teile der schaltung von websites abgeguckt. was meint ihr dazu?? (siehe anhang). könnte funktionieren oder?? ;) (IC1 ist der Z80; IC2 ist ein EPROM; IC3 RAM, IC4 dient als PIO). grüsse
@Hubertus Hallo, ich hab vor ca. 1 1/2 Jahren eine komplette Z180 basierende Prozessorkarte entworfen und aufgebaut. Hab mir damit aus nostalgischen Gründen ein CP/M-System gebaut. Falls es Dir was bringt kann ich Dir den Schaltplan mal zumailen. Habe diesen in EAGLE gemacht. Auf der Karte befinden sich Boot-EPROM, 256KB Speicher und Leitungstreiber mit der dazu nötigen Logik. Der Z180 ist ein erweiterter Z80. Aber vom Anschluss Schema und der Funktion der Daten- , Adress- und Steuerleitungen mit dem Z80 identisch. Zum Thema Layout und Störungen kann ich sagen, das ich diese Karte komplett in Fädeltechnik aufgebaut habe und jedem einzelnen IC seinen eigenen Stützkondensator spendiert hab. Die Karte läuft mit 16MHz, bzw. 8MHz Prozessortakt und die Signale sehen auf dem Oszilloskop einwandfrei aus. Als zweite Karte hätte ich noch eine mit IDE-Port für Festplatten, einem Floppy-Controller und einem Dallas Uhrenchip. Verbunden werden diese Karten per ECB-Bus. Die Ein- Ausgabe geschieht im Augenblick per serieller Schnittstelle und einem Terminalprogramm auf einem Notebook. Aber eine Terminalkarte mit einem LCD-Display ist in Arbeit. Gruß Uwe
moin moin, @Hubertus, wenns denn Z80 sein soll, das von Uwe hört sich gut an. Such auch mal nach KC85, das ist ein Z80 System. Auch wegen Software zum Z80. Der Kieser/Meder als Z80-Bibel steht immernoch bei mir im Regal. Meinen 1. Z80 habe ich so um 1984 gebaut. Beim aufräumen ist mir jetzt die 1.RAM-Disk (1986) in die Hände gefallen. Reines IC-Grab, 64 x U2164 sind mal grade 512KB, das macht heute 1 x 62512. Bei eBay gibt es ab und zu das Triccy-DATA von Neuhaus, da ist ein Z182 drinne. Das Signalspiel ist nur am Anfang interessant, habe höchst selten was mit Oszi nachgesehen. Anbei mal die Schaltung meines Testboards für 80C51. Die Leiterplatte dazu ist fertig und geht die nächsten Tage in Auftrag. Mit Gruß Pieter
@Hubertus Die Erzeugung der CE-Signale für den Eprom und den Ram ist verkehrt. V1/1 muß durch ein OR ersetzt werden. A15=L, MERQ=L => Eprom CE=L. V2/1 muß auch durch ein OR ersetzt werden und an den Eingang 2 muß NOT A15 gelegt werden. A15=H, MERQ=L => RAM CE=L. An der PIO muß noch IORQ, RD, WR und CLK beschaltet werden. M1 sollte für eine korrekte Interruptabarbeitung auch verbunden werden. Wenn die PIO der erste Baustein in der Interruptkette ist sollte IEI auf H liegen, ansonsten an IEO des vorhergehenden und damit höher priorisierten Baustein (z.B. ein CTC). Viele Grüße TobiFlex
Die Älteren werden sich vielleicht noch an die Zeitschrift 'mc' erinnern. So wurde selbiges im Jahre 1982 gelöst (Anhang). Entschuldigung für die Dateigröße. Aber das ist ein Scan von einer 25 Jahre alten Kopie. ANsonsten hätte man da nichts mehr lesen können.
@Peter Danke (Grins). Bin mir zwar nicht sicher ob solch eine große Schaltung für Hubertus gleich das richtige ist, aber die Stammsignale eines Z80 sind dort auch vorhanden und gut ersichtlich. Die Sache mit dem Oszi hab ich nur erwähnt, weil weiter oben von Signalqualität geschrieben wurde und doch ne ganze Menge IC´s darauf verlötet sind. @Hubertus Falls Du Interesse hast, ich habe bei mir im Keller eine Mappe gefunden die eine komplette Bauanleitung für einen Z80 Rechner enthält. Stammt meines Wissens sogar von Rolf Dieter Klein. Hab damals das komplette Buch kopiert. Würde diese abgeben, hab ja mittlerweile (fast) alles im Kopf. Gruß Uwe
tag zusammen, danke für eure posts ;) @Uwe: klar, wenn du mir das teil mal mailst hilfts mir auf ejden fall ;) wär nett!! @TebiFlex: danke für die info, ich werd das gleich anpassen. grüsse & schönen abend euch allen!
@Uwe Auch ich habe ein LCD-Terminal für einen Z180 gebaut. Bei Interesse bitte melden. Heuzutage würde ich einen Z80-Rechner aber nicht mehr mit -zig Peripheriebausteinen oder gar dynamischen RAM's aufbauen, denn das ist selbst für einen Profi nicht ohne. Ein Z180 oder 84C015 mit einem großem statischen RAM, eine EPROM, dazu vielleicht noch ein Floppy-Controler oder eine PIO, und man hat einen kompletten Rechner fertig. Die Steuersignale kann man doch mit einem kleinen CPLD machen z.B. ein ispLSI2032 oder sowas.
@Günther Würde mich sehr interessieren wie Du das LCD-Terminal gemacht hast. Hast Du Schaltpläne oä? Meine Prozessorkarte arbeitet mit statischen RAMs. Hab dazu die Cache-chip aus einem 486er Board verwendet. Das sind 8 Chips zu je 32KB. Zusammen sind das die 256Kb die auf der Karte drauf sind. Die Logik hab ich mit "diskreten" Chips gebaut. Hab davon ne Menge rumliegen und die wollten mal verbaut werden. ;-) Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.