NKC Forum |
Autor | Thema: NKC-Platine geht fremd | ||
---|---|---|---|
netmercer Kennt sich schon aus ![]() ![]() ID # 176 |
![]() ![]() ![]() ![]() ![]()
Hallo NKC-Fans,
um mein SMP-Bus System mit NKC-Karten aufbohren zu können, habe ich eine BUS2 mit einer VG64 Steckerleiste versehen und an den SMP-Bus adaptiert. (Der SMP-Bus ist ein Bussystem von SIEMENS ähnlich dem ECB-Bus und war/ist seit Ende der 70er Jahre hauptsächlich im industriellen Umfeld eingesetzt. Die BUS2 wurde bereits von R.D.Klein so konzipiert, daß eine Adaption als Europaeinsteckkarte in derartige Systeme möglich ist. Siehe hierzu auch "Mikrocomputer selbstgebaut") Da der SMP-Bus auf der Intel 80/85/86/88 Familie basiert, müssen einige Bussignale des Z80 angepaßt werden, aber dann sollte ein Großteil der NKC-Platinen über die BUS2 einsetzbar sein. Beim Versuch die neue SRAM1M mit Batteriepufferung am SMP-Bus in Betrieb zu nehmen, haben sich zwei Aspekte ergeben, die eventuell auch für andere SRAM1M Nutzer von Interesse sein könnten, darum möchte ich hier im Forum darüber berichten. Im "normalen" Betrieb als große RAM Karte läuft alles einwandfrei, nur falls man die Batteriepufferung nutzen möchte, kann es folgende Probleme geben. Zunächst einmal ist der Pull-Up Widerstand R3, der den /WE Eingang des CMOS SRAMS während des batteriegepufferten Stand By Zustandes auf High-Pegel halten soll, auf der SRAM1M versehentlich mit dem /OE Eingang verbunden. Für denjenigen, der die Batteriepufferung nicht nutzen möchte, ist das völlig irrelevant. Alle anderen sollten R3 nicht bestücken und stattdessen diesen Widerstand wie ursprünglich vorgesehen zwischen /WE (hinter dem 7432, also direkt am /WE Eingang der SRAMs) und VCCB einlöten, ansonsten hält die Batterie anstatt 10 Jahre bestenfalls 10 Wochen. Das größere Problem (zumindest bei mir) war aber, daß nach dem Aus- und Wiedereinschalten trotz Batteriepufferung manchmal einige Bytes im RAM verändert waren. Bald war klar, es passiert beim Ausschalten. Immer wenn die Versorgungsspannung nach dem Ausschalten abgeklungen ist, kam auf der /WR Leitung vom Bus (letztendlich von der SMP CPU Karte) noch ein Low Pegel, der brav vom 7432 an die SRAMS weitergegeben wurde. Der von mir verwendete 7432 arbeitet selbst bei 4,2V noch einwandfrei, während die in Ehren ergrauten Chips (von 1980) auf der SMP CPU Karte hier schon längst alle Segel gestrichen haben und offensichtlich in den letzten Zuckungen nur noch wirres Zeug von sich geben. Diese "Störsignale" werden vom 7432 an den SRAM weitergereicht und dort löst das undefinierte Schreibvorgänge aus (Die SRAMS arbeiten ja mit Versorgungsspannungen bis 2,7V) und gleichzeitig war wohl auch /CE aktiv (was immer wahrscheinlich ist, falls wie bei mir in diesem Moment ein Programm im SRAM abläuft), ansonsten wären die falschen /WE Impulse unberücksichtigt geblieben. Daher bringt es auch nichts, das /CE Signal mit dem /WR Signal über das OR-Gatter des 7432 zu verknüpfen, um das zu verhindern. Die sauberste Lösung an dieser Stelle wäre wohl ein Spannungswächterbaustein, der beim Abklingen der Versorgungsspannung die /WE Leitung unterbricht und die entsprechenden SRAM Eingänge sicher auf VCCB legt. Natürlich ist so ein Baustein nie zur Hand wenn man ihn braucht. Trotz vieler anderer Lösungsmöglichkeiten, wie z.B. Versorgungsspannung des 7432 schneller abschalten, als die anderen Bausteine "Störungen" über die Leitung schicken können, habe ich jetzt folgendes probiert: Pin 1 und 2 am 7432 sind ja zusammengefaßt und mit /WR vom Bus verbunden. Hiervon habe ich Pin 1 abgetrennt und schalte den mittels eines BC548C auf High, sobald die Versorgungsspannung unter ca. 4,5V fällt. Damit wird jetzt das resultierende /WE Signal für die SRAMS über das OR-Gatter sauber auf High gehalten, egal was auf /WR vom Bus daherkommt und zwar solange bis auch der 7432 seine Arbeit einstellt, was ausreichend sein dürfte. Funktioniert bis jetzt einwandfrei. ![]() Dieses Problem könnten auch andere SRAM1M Nutzer bekommen, falls der Bus wie bei mir während des Ausschaltens "rumspinnt". Genausogut kann bei anderen Nutzern alles einwandfrei laufen, schon allein falls andere Bausteine mit anderen Toleranzen verwendet werden. Außerdem möchte ich betonen, daß die hier angesprochene Lösung mit dem Transistor als Schalter eine Bastellösung ist, deren praktische Verwendbarkeit jeder für sich selbst prüfen muß. An diesem Beispiel zeigt sich für mich die universelle Verwendbarkeit des NKC Projektes von R.D.Klein. Sobald ich wieder Zeit habe, sollen SOUND3 und UHR3 am SMP-Bus folgen. Falls Interesse besteht, könnte ich auch darüber wieder berichten. Allen viel Erfolg bei den NKC Basteleien und viele Grüße Bernhard |
||
Beiträge: 52 | Mitglied seit: April 2017 | IP-Adresse: gespeichert | |||
Steffen.111 Kennt sich schon aus ![]() ![]() ID # 184 |
![]() ![]() ![]() ![]() ![]()
Moin Bernhard,
das gleiche Problem wurde in http://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=14850&pagenum=4&time=1512964739&s=5c572717d176e8cb8def19c51bf9f3df so um #360 herum erörtert. Willi hatte die Idee dem 7432 ein 74LS07 mit oC nachzuschalten. Damit sind die Probleme auch erledigt. Er hat dazu schon eine neue Leipterplatte entworfen und zu Rene geschickt. VG Steffen |
||
Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert | |||
netmercer Kennt sich schon aus ![]() ![]() ID # 176 |
![]() ![]() ![]() ![]() ![]()
Hallo Steffen,
danke für den Hinweis. Habe mir die Diskussion im Robotron Forum angeschaut. Hört sich bei Dir auf den ersten Blick nach einem ähnlichen Problem wie bei mir an. Wie von mir beschrieben, wird beim Ausschalten vom Ausgangstreiber meiner CPU-Karte noch ein LOW Impuls (nenne es mal so) abgeschickt, der vom 7432 noch weitergegeben wird. Ehrlich gesagt verstehe ich jetzt nicht warum ein nachgeschalteter LS07 diesen Impuls nicht auch weitergeben sollte. Außer er würde zu diesem Zeitpunkt bereits selbst nicht mehr arbeiten. Ein anderer Grund könnte die ca. dreimal so lange Gatterlaufzeit des LS07 im Vergleich zu normalen Gattern sein. Leider habe ich keinen LS07 zur Hand, um das zu überprüfen. Um das mit der Gatterlaufzeit einmal anzutesten habe ich bei mir noch drei OR-Gatter vorgeschaltet, was aber auch den Speicherfehler gezeigt hat. Bei den Gatterlaufzeiten reden wir ja auch nur von rund 30ns. Folgendes könnte ich mir noch vorstellen: Da Du vermutlich die Z80 NKC-CPU Karte verwendest, sind bei Dir ja LS-TTL Treiber drauf, die ein ähnliches Ausschaltverhalten bzw. bei gleichen Spannungen noch arbeiten wie der 7432 bzw. der 74LS07 (gleiche Logikfamilie) und es eventuell nur ums A?lecken geht, dass der 7432 noch Ausschaltzuckungen mitbekommt. Dann könnte das mit der Gatterlaufzeitverlängerung hinhauen. Bei mir sind auf der CPU Karte noch uralte 8212 Treiber (nicht einmal die A Version), die sicherlich noch engere Toleranzen bei der Spannungsversorgung fordern. Daher glaube ich jetzt nicht, dass der zusätzliche 74LS07 bei mir etwas bringen würde, aber nix genaues weiß man nicht. Optimalerweise müsste man da wohl mal ein paar Stunden/Tage am Logikanalyzer opfern. Die anderen geplanten Änderungen an der Platine erscheinen mir nicht als notwendig. Da ich für die Signalanpassung an den SMP-Bus sowieso eine kleine Platine basteln muß, werde ich dort die /WR Signal Abwürgung platzieren, so dass ich die SRAM1M bis auf den R3 unverändert einsetzen kann. Gibt es denn ansonsten keine weiteren Rückmeldungen aus der NKC Runde über Erfahrungen mit der SRAM1M. Da wurden doch Unmengen an Platinen gefertigt und verteilt. Werden die nur gehortet, aber nicht verwendet??? Viele Grüße Bernhard |
||
Beiträge: 52 | Mitglied seit: April 2017 | IP-Adresse: gespeichert | |||
DerInder Fast schon Admin Seitenadmins ![]() ![]() ![]() ID # 2 |
![]() ![]() ![]() ![]() ![]()
Moin Moin,
nur so zur Info, an meinem 68008 läuft die derzeitige Karte problemlos ohne Datenverluste. Allerdings kann ich das mit den "rumzuckenden" Steuerleitungen auch nachvollziehen. Statt jetzt /WR auf high zu ziehen, wäre es da nicht eigentlich logischer/besser die /MREQ Leitung auf high zu ziehen? Denn wenn die high ist sind keinerlei Zugriffe auf die RAMs mehr möglich. ----------------------- Gruß -=jens=- |
||
Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert | |||
Steffen.111 Kennt sich schon aus ![]() ![]() ID # 184 |
![]() ![]() ![]() ![]() ![]()
Hallo Jens,
wie hast dur das getestet, das keine Datenverluste auftreten? Bei mir waren es von 24kB nur 2 Byte im Bereich E?FFh. VG Steffen |
||
Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert | |||
netmercer Kennt sich schon aus ![]() ![]() ID # 176 |
![]() ![]() ![]() ![]() ![]()
Hallo Jens, danke für die Rückmeldung, da sind wir ja schon zu dritt. Falls die Batteriepufferung bei Dir wirklich ohne Änderung läuft, würde das darauf hindeuten, daß die Funktionsfähigkeit wohl stark von der individuellen Bauteilpaarung abhängt. Dein Hinweis auf die /MREQ Leitung ist berechtigt. Allerdings sehe ich kein großes Problem, wenn man denselben Effekt auch über die /WR Leitung erreichen kann. In diesem Fall hat es sich halt förmlich aufgedrängt, da ein Eingang am 7432 "frei" war. Da ich bei meiner Busanpassung sowieso die Signale /WR, /RD, /MREQ und /IORQ erzeugen muß, was ich letztendlich über einen GAL machen werde, ist es relativ einfach, dann gleich alle vier Signale "abzuschalten", auch wenn das nicht unbedingt nötig ist. Noch andere SRAM1M Nutzer da draußen, traut Euch... ![]() Viele Grüße Bernhard |
||
Beiträge: 52 | Mitglied seit: April 2017 | IP-Adresse: gespeichert | |||
DerInder Fast schon Admin Seitenadmins ![]() ![]() ![]() ID # 2 |
![]() ![]() ![]() ![]() ![]()
Moin Moin,
@Bernhard: OK das mit der /WR-Leitung kann ich nachvollziehen ![]() Vielleicht könnte man auch das /RESET-Signal mit verwenden. Allerdings weiss ich jetzt nicht bei welcher Spannung der 7705 aktiv wird. @Steffen: Ich habe bei meinem 68008 (z.Zt.) eine BootRAM68k mit 512k RAM und die SRAM1M nur mit dem oberen RAM. Zum prüfen habe ich ein kleines Programm geschrieben, das mir die Byte-Summe über diesen Speicherbereich ermittelt. Allerdings ohne die obersten 64k, da die ja zum Teil für die IOs sind. Evtl. sind die 68k ja nicht ganz so am "rumzucken" wie die Z80 und es klappt deshalb ![]() ----------------------- Gruß -=jens=- |
||
Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert | |||
Steffen.111 Kennt sich schon aus ![]() ![]() ID # 184 |
![]() ![]() ![]() ![]() ![]()
Hallo Jens,
"Evtl. sind die 68k ja nicht ganz so am "rumzucken" wie die Z80 und es klappt deshalb " Ja das kann natürlich sein, es können hier viele Sachen zusammen kommen. Ich konnte halt Systembedingt nur den Bereich A000..FFFF prüfen und da waren IMMER nur Zellen im E000-er Bereich betroffen !? - Weis der Fuchs warum. Die Bank-Mimik auf der Karte (mit und ohne JP1 auf 1-2 !)? Ob auch unterhalb A000 kann ich natürlich auch nicht sagen. Naja, Hauptsache wir bekommen das weg. entweder hier mit Bernhard's oder mit Willi's Lösung. ![]() VG Steffen |
||
Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert | |||
Steffen.111 Kennt sich schon aus ![]() ![]() ID # 184 |
![]() ![]() ![]() ![]() ![]()
...Beitrag gelöscht!
Meine Idee mit dem Pin1 des 74LS32 un dem RESET-Signal das Schreiben zu sperren, doch keinen Erfolg! Es bleibt bei der Lösung von Willi mit einem zusätzlichen 74LS07!! Hab nochmals in mehreren Banken den Bereich 9000-FFFFh geprüft und keine Datenverluste im Standby gefunden. VG Steffen PS.: Das Datenblatt des AS6C4008 weist aus, dass im Standbybetrieb das /CS auf H gelegt werden soll und die Signale /OE und /WR sind dann egal. |
||
Beiträge: 140 | Mitglied seit: August 2017 | IP-Adresse: gespeichert | |||
netmercer Kennt sich schon aus ![]() ![]() ID # 176 |
![]() ![]() ![]() ![]() ![]()
Hallo,
habe die in die SRAM1M eingebastelte Transistorlösung in den vergangenen Tagen in meiner Hardwareumgebung getestet und es funktioniert bisher ohne Speicherfehler. Anbei eine Skizze, wie gesagt ohne Gewähr. Aber vielleicht möchte es ja jemand ausprobieren. Über eine Rückmeldung würde ich mich freuen. SRAM_WR_Schaltplan.pdf Das /WR Signal vom Bus wird nur noch an Pin 2 des 7432 angeschlossen und Pin 1 wird vom Transistor bedient. Funktionsweise dürfte ansonsten selbsterklärend sein. Die +5V ist die normale Versorgungsspannung, nicht die Batteriespannung! Die Werte der Widerstände sind unkritisch, ich habe Transistor und Widerstände genommen, die halt da waren. Bei R1 und R2 ein bißchen aufpassen, da mittels diesen die Schaltschwelle eingestellt wird. Viele Grüße Bernhard |
||
Beiträge: 52 | Mitglied seit: April 2017 | IP-Adresse: gespeichert |
| https://hschuetz.selfhost.eu | Boardregeln | Datenschutzerklärung
Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts
Seite in 0,023462 Sekunden erstellt
18 Dateien verarbeitet
gzip Komprimierung eingeschaltet
1297,62 KiB Speichernutzung