Ich habe eine RAM-Erweiterungskassette für meinen VIC-20-Computer gebaut.
Es verwendet den CY62256L 32KB SRAM-Chip . Es hat gut funktioniert, außer es gibt eine Macke.
Wenn ich den Computer ausschalte, aber das externe Laufwerk eingeschaltet lasse, wird der Erweiterungskarte immer noch eine kleine Menge Strom (anscheinend durch die Reset-Leitung des Laufwerks in die Haupt-Vcc) zugeführt.
Es liegt im Mikrowattbereich, reicht aber aus, um den RAM-Chip im Low-Power-Standby zu halten.
Gibt es eine Möglichkeit, diesen geringen Stromfluss zu verhindern?
Hier ist meine Schaltung (bitte entschuldigen Sie die Unordnung):
EDIT: Hier ist eine Klarstellung, was los ist. Hier ist eine Seite aus dem Schaltplan des Computers, der ausgeschaltet wird, wenn das Stromleck auftritt.
Das externe Laufwerk wird extern mit Strom versorgt. Der rote Kreis ist, wo es +5V in die serielle Schnittstelle sendet, während der Computer ausgeschaltet ist, dh die Reset-Leitung. Der blaue Kreis ist dort, wo die Reset-Leitung mit meinem Board verbunden ist.
Der grüne Kreis ist jedoch dort, wo die Reset-Leitung normalerweise vom Computer hochgezogen wird, und hier, denke ich, leckt sie auf den Vcc. Was am violetten Kreis in meine Erweiterungskarte eintritt.
Es ist Vcc, das Strom hat, der den RAM mit Strom versorgt. Die Reset-Leitung des Boards ist auch hoch, aber sie ist nur mit einem Schalter verbunden.
Hilft das zu erklären?
Da Sie sicher sind, dass es sich um den Reset handelt und der Reset aktiv niedrig ist, können Sie den Reset neu erstellen. Bevor Sie das tun, sollten Sie überprüfen, ob der Reset beim Trennen auf dem externen Laufwerk schön hoch zieht.
Das sollte es, weil es Ihre Erweiterungskarte mit Strom versorgt, also hat es sehr wahrscheinlich einen internen Pull-up, der all Ihre Probleme verursacht. Wenn sich im Laufwerk ein Pull-up befindet, können Sie einfach zwei MOSFETs verwenden:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Sie können einfache Low-Power-MOSFETs sein.
Sie können den Reset auch mit Board VCC mit einem kleinen Trick von seinem Ursprung trennen:
Simulieren Sie diese Schaltung
Wenn die Board-Vcc hoch und der Board-Reset niedrig ist, hat der MOSFET eine positive Gate-Source-Spannung und leitet und ermöglicht auch, dass der Treiber-Reset durch das Reset-Signal auf Low gezogen wird.
Wenn der Treiber-Reset hoch ist, aber Board-Reset und Board-VCC niedrig sind, hat der MOSFET eine Gate-Source-Spannung von 0 V und wird somit ausgeschaltet. Die interne Bodydiode ist in diesem Fall in Sperrrichtung und sollte bei modernen MOSFETs nicht mehr genug lecken.
Wenn der Board-Reset hoch ist (unabhängig von der Board-VCC), wird die Body-Diode des MOSFET in die Vorwärtsrichtung versetzt und leitet, wodurch der Drive-Reset hochgezogen wird, aber natürlich mit subtrahiertem Spannungsabfall über der Body-Diode. Der sehr wahrscheinliche Pull-up im Laufwerk wird es zweifellos den Rest des Weges nehmen.
Wenn nichts davon für Sie "klickt" (Wortspiel beabsichtigt), wird dies sicherlich:
Hier ist meine Idee. Ich bin mir nicht sicher, ob es besser ist als die verschiedenen Ideen von Asmyldof. Es gibt einige Vorbehalte, die ich in der Beschreibung hinzufügen werde.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
RESET ist das Zurücksetzen vom Laufwerk. SRAM_RESET ist der Reset auf Ihrer Erweiterungskartusche. SRAM_VCC ist VCC von Ihrer Erweiterungskartusche. Wenn SRAM_VCC hoch ist, sind Q1 und M1 eingeschaltet und die beiden Rücksetzer sind miteinander verbunden. Wenn SRAM_VCC niedrig wird, schaltet sich Q1 aus und R1 zieht dann das Gate von M1 hoch, wodurch M1 ausgeschaltet wird und ein Stromfluss in das SRAM_RESET-Netz verhindert wird.
Der Nachteil dieser Schaltung besteht darin, dass sie die Reset-Leitung mit 470 k lädt, wenn Q1 eingeschaltet ist. Dies könnte tatsächlich das Zurücksetzen aktivieren, was schlecht wäre. Wenn also 470k zu viel Last sind, könnten Sie R1 auf einen viel höheren Wert ändern (sogar 5 MB). Es sollte in Ordnung sein, Reset mit 5M zu laden.
Oder, wenn die VCC vom Laufwerk verfügbar ist (nennen wir es VCC_DRIVE), könnten Sie das Gate von M1 auf VCC_DRIVE hochziehen, anstatt es auf RESET hochzuziehen. Dann könnte der Pullup-Wert 470k oder was auch immer sein.
Sie können Q1 auch in einen N-Kanal-Mosfet umwandeln, wenn Sie möchten. Wenn Sie das tun, schlage ich vor, dass Sie R2 auf 1k ändern.
Viel Glück, und wir würden gerne hören, wie du dich auskennst!
mkeith
WütendEE
Sam Washburn
Sam Washburn
mkeith
Sam Washburn
Sam Washburn