Bank Switching am USB Stick

TommyB

Team Bitschubse
17. Mai 2010
2.151
80
48
40
127.0.0.1 ;)
Sprachen
  1. C#
  2. VB.Net
  3. LunaAVR
  4. Assembler
  5. Python
Ich hätte es ja unter Projekte posten wollen, aber irgendwie ging das nicht.

Egal. Aus gegebenem Anlass (nämlich Virenbefall -.- Eigene Dummheit) kam mir eine Idee…
Bisher ist es noch nichts Anderes als genau das. Ich schildere mal.

Ich setz ja öfters auch mal für Bekannte die Rechner neu auf, virtuelle Maschinen ebenso. Neuere „Kisten“ kann man ja per USB booten und installieren. Schöne Sache das. Gibt aber Nachteile dabei. Der Erste wäre dass es nicht möglich ist z. B. Win XP und Win7 zusammen zu fügen, von Linux und MacOS ganz zu schweigen. Also braucht man mehrere Sticks. In meinem Fall:

1) Windows 95 - XP (mit Auswahlmenü)
2) Windows Vista
3) Windows 7
4) Windows 8.1
5) Windows 10
6) Paragon Festplatten Manager
7) MacOS Mavericks
8) MacOS Yosemite
9) MacOS El Captain
10) Freies Laufwerk für Backups / TimeMachine, whatever

Die sollen natürlich nach Möglichkeit schreibgeschützt sein (und somit unanfällig gegenüber Programmen von Leuten die kein Hirn haben). Ich kenne keinen USB Stick der das noch kann, aber es gibt ja noch die guten SD Karten mit dem Schiebeschalter. Wäre ja ideal. Nur zum Updaten das Schreiben zulassen, sonst eben nicht, alles sicher.

Jetzt kam die Idee auf… Statt zig SD Karten oder Sticks zu holen und mit zu „schleppen“ mal einen kleinen Kasten zu machen. Gibt ja SD zu USB Adapter wie diesen hier. USB hat den Vorteil, Spannung gibts vom Host. Also könnte man doch in einem kleinem Gehäuse mehrere SD Karten verbauen, ein AVR dazu und ein Display (sei es nun 7Segment oder LCD / OLED) und ein Taster zum Umschalten der einzelnen Karten, Problem gelöst.

Ist jetzt nur die Frage wie schaltet man am sinnvollsten zwischen den Karten um?
Ich weiß jetzt nicht ob die eine Art Chip Enable Signal haben oder ob es Bustreiber gibt die schnell genug sind um damit die einzelnen SD Karten voneinander zu trennen. Chip Enable haben sie zwar, aber nur im (lahmen) SPI Mode. Vielleicht würde es schon reichen nur die Clock zu trennen? Dann beim Umschalten kurz den Adapter vom Strom trennen, das ist ja kein Problem.

Wird bestimmt noch einige Zeit dauern bis ich zu dem Projekt komme, aber reizen würde es mich doch…
Vielleicht hat hier ja auch wer ein ähnliches Problem und will sich am Ergebnis beteiligen :)
 
Hmm...
Du willst hinter einen USB-SD-Adapter mehrere SD-Karten parallel schalten, richtig verstanden?
gibt ja noch die guten SD Karten mit dem Schiebeschalter
Soweit ich weiß, wird der Schreibschutz nicht in der Karte, sondern im Lesegerät realisiert. Meiner Meinung nach nichtmal in Hardware, sondern als Softwarefunktion (die natürlich sehr weit unten in der Firmware liegen kann). Etwa wie bei den Disketten mit der rausgebissenen Stelle.
Insofern kannst Du nur alle SDs gleichzeitig schützen oder nicht, und mußt Dich darauf verlassen, daß der Adapter auch wirklich auf den Schreibschutznippel schaut/reagiert.

Ansonsten würde ich an Deiner Stelle nach einem hinreichend schnellen Bustreiber suchen, und vielleicht für "gezogene" Karten auch noch die Stromversorgung kappen.
Wenn man am PC 'n USB-Gerät steckt, erkennt der das ja anhand des Pull-Widerstandes als neu, und reagiert entsprechend.
Bei SD-Karten gibts sicher was ähnliches, um den neuen Datenträger zu erkennen. Auf elektronischem Wege, oder mechanisch beim stecken?
 
Hast du so richtig verstanden :)

Ich würde 1x den USB zu SD Adapter nutzen. Der Schreibschutz wird afaik darin gemacht, von daher sollte es ein Leichtes sein einen kleinen Schalter an zu löten. Das mit USB hast du zwar Recht, aber es sind Pull-Up's. Kappe ich die 5V Leitung fällt das Signal ja mit flach, ebenso die Spannungsversorgung der Karten. Müsste eigentlich so gehen. Stellt sich nur die Frage welcher Bustreiber ist schnell genug und ob dieser überhaupt benötigt wird. Wenn es reichen würde nur das Clock Signal zu kappen (mosfet?) wäre das Platz- und Verdrahtungstechnisch natürlich am Besten.
 
Kappe ich die 5V Leitung fällt das Signal ja mit flach, ebenso die Spannungsversorgung der Karten.
Ich dachte, man kann die SD-Karte wechseln, während der Adapter am PC angeschlossen bleibt (zumindest bei meinem uralten Multicard-Adapter geht das). Deswegen meinte ich nach den Daten-/Steuersignale eben auch die Versorgung für die Karte kappen zu lassen, wenn der AVR sie quasi "abzieht".
Willst Du 'ne andere "anstöpseln" lassen, legt der AVR für die erst die Versorgungsspannung an, und schaltet danach den Bustreiber durch. Damit sollte sich das wie normales rausziehen/einstecken verhalten. Oder gibt's in den Adaptern noch'n weiteren mechanischen Schalter, der signalisiert "Karte ist drin"?
 
Ja, den gibt es, und der wird auch ausgewertet. Aber in meinem Fall wären die Karten ja fixiert, die bleiben in dem Gehäuse / der Schaltung drin. Vielleicht sogar fest verlötet, wer weiß. Mal schaun. Daher die Lösung dem USB zu SD Adapter den Strom zu nehmen -> Gerät wurde entfernt. Strom ist vom USB ja immer da, also auch für den AVR. Der schaltet den Multiplexer um, wartet 1 oder 2 Sekunden und schaltet den Strom wieder frei. -> Gerät gefunden (mit anderer SD Karte)
 
Vorschlag für Bustreiber: 74CBTLV3245
Gibt es u.a. bei Mouser
 
Eigentlich darf ein USB-Anschluß nur bis 2,5mA oder so belastet werden. Erst wenn das Gerät sich angemeldet hat, darf es um mehr Strom bitten. Meiner Meinung nach kann der Host das auch ablehnen.
Die meisten PCs usw interessiert das zwar nicht, aber Dein Gerät würde nicht den Spezifikationen entsprechen.
Wenn der Kartenadapter kartenseitig Hotplug-fähig ist, wäre der sauberste Weg:
Der AVR hängt mit an der Vusb, wartet aber nach dem Powerup (also dem Einstöpseln des Adapters) 'ne Weile mit möglichst geringer Stromaufnahme.
Dann wird Deine I/O scharf.
Soll eine Karte aktiviert werden, wird deren Stromversorgung und danach der Bustreiber dieser Karte aktiviert. Außerdem das Karte-ist-drin-Signal (wobei Du herausfinden mußt, wann der Schalter beim Einstecken kommt).
Soll eine KArte getrennt (bzw gewechselt) werden, das ganze andersrum.

Dazu mußt Du natürlich dem Adapter zerbasteln... (oder wolltest Du da sowas wie "meinen" Dummy einsetzen?)
 
100mA, erst nach Anfrage 500 (oder Äpple 1A). ;)
Aber es gibt glaub ich eh kein Gerät was sich daran hält…

Ich wollte es nur nach Möglichkeit verhindern 10 (oder mehr) Bustreiber rein zu tackern, daher die Idee mit der Clock Leitung. Zerbasteln müsste ich den Adapter ja so oder so :)
Da würd ja schon fast ein (sehr fixer) Mosfet pro Karte reichen.

Die Karte von dir war nur ein "Breakout" Board damit ich an der Karte im Betrieb messen konnte ;)
 

Ü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)