Ik overweeg om een aantal aangepaste gadgets te bouwen om verbinding te maken met de gameport op mijn retro-hobby-pc (SNES-controlleradapter, macro / turbobox, enz.) maar ik heb niet veel informatie kunnen vinden over details zoals toegestane huidige limieten.
(Alleen deze niet-geciteerde vermelding op de DSLReports-forums die beweert “De standaard bedrijfsspanning voor een MIDI / Gameport is 5 Volt ± 5% en een stroomuitgang van 40mA wanneer actief en 22mA wanneer in stand-by.”)
Gegeven een aantal van de liefhebber digitale joysticks die geen externe stroomvoorziening nodig hadden, ik weet dat het mogelijk is om een aantal soort van mooie belasting op de 5V-lijnen van de gameport te hangen, maar ik wil niet gokken dat de SoundBlaster 16 Ik heb een paar jaar geleden zorgvuldig uitgekocht op eBay en is minstens zo robuust als elke combinatie van nog in productie zijnde USB-Gameport-adapter en Raspberry Pi die ik riskeer voor ontwikkelingstests.
Aan de kant van de bescherming van de host-pc, ik hoop op fi zoek een solide bron voor details zoals:
- Maximale veilige piekstroom
- Maximale veilige aanhoudende stroom
- De DOs en DON-Ts die digitale joysticks vast te houden aan wanneer pinouts zoals deze meerdere 5V-toevoerlijnen weergeven en specificeren dat elke GND-lijn bedoeld is voor een specifieke knop.
Heeft iemand, naast de bescherming van de microcontroller, specificaties over de maximale waargenomen stroom wanneer de knoppen worden ingedrukt of de lijnen van de X- en Y-as zich aan het 0Ω-uiteinde van hun bereik bevinden?
(Voor het geval dat het is relevant, ik hoop die Chinese STM8S-borden van minder dan $ 1 te gebruiken met Sduino als de cijfers kloppen. 16 MHz zou genoeg moeten zijn om dingen te knallen en je kunt ze “niet verslaan” qua grootte of prijs.)
Een citaat dat ook vergelijkbare informatie bevat over pc- en PS / 2-toetsenbordpoorten zou op prijs worden gesteld, aangezien ik “Ik overweeg ook om een knock-off te bouwen van de Dynapoint GameStar .
Antwoord
De documentatie voor de originele Game Control Adapter van IBM bevat enkele details die nuttig zullen zijn. Hoewel u in plaats daarvan een SoundBlaster-kaart gebruikt, zou deze nog steeds compatibel moeten zijn met het origineel van IBM.
Hoewel de documentatie geen maximale stroomsterkte specificeert voor pinnen, heeft het wel een logicaschema:
Het kan gezien dat op de originele gameport de knopingangen naar een 74LS244-buffer worden gevoerd (via 1Kohm pull-up-weerstanden en 51pF-condensatoren). Het gegevensblad van 74LS244 “s specificeert een maximale lage uitgangsstroom van 24 mA per pin en een hoge uitgangsstroom van -15 mA.
De potentiometer (assen) ingangen worden naar de timing-ingangen van een NE558 quad-timer gevoerd (via inline 2.2kohm weerstanden en .01uF condensatoren). Het datasheet vermeldt geen details voor de huidige belasting op deze ingangspennen; ze worden “gebruikt als RC-timingwaarden.
Het IBM-diagram toont alle aarding (en 5V-voedingen) die gemeenschappelijk zijn aangesloten. Ik vermoed dat de 5V-pinnen van de gameport rechtstreeks zijn aangesloten op de 5V-voeding van de ISA-sleuf; dit kan voor uw kaart worden geverifieerd met een continuïteitstest op een multimeter. Als dit het geval is, kan de maximale stroomafname die is toegestaan voor een ISA-kaart wat meer houvast bieden.
Antwoord
terug in de (x386) dagen dat ik de GAME-poort gebruikte als een ADC voor zelfgemaakte scanner en andere zelfgebouwde HW. Zoals gebruikelijk is tijdens de ontwikkeling, is er af en toe een tegenslag zoals kortsluiting enz. De GAME-poorten die ik gebruikte waren altijd door GoldStar-chip aangedreven IDE / poorten ISA-kaart (ze waren heel gebruikelijk) en een kortsluiting op de analoge pinnen verbranden altijd + 5V-voedingslijn op de printplaat (ik weet dat er geen chip is beschadigd door de verbrande draad te omzeilen, alles werkte weer), dus er is geen duidelijke stroomlimiet behalve de stroomdichtheid van de gebruikte printplaatdraden.
De Vroeger konden draden veilig 0,5A overbrengen (ze beginnen meestal te branden boven 1A), maar ik zou geen belasting groter maken dan 100mA.
Maar toen ik naar de NE558-datasheet keek (link staat in de Kaz “s antwoord) afgezien van de pinout-bug hier is een equivalent circuit van een enkele timer:
het timing-interval is:
t = R.C
waarbij C = 0.1 uF
en R >= 2K2
. Gezien Vcc = 5V
en volgens
Basisprincipes van de transistor de valspanning van de transistorVce = ~0.2V
en vervolgens de absoluut “veilige” maximale stroom voor de timing-output (analoge GAMEPORT-pin) is:
I = (Vcc-Vce) / R = (5-0.2)/2200 = 2.18 mA tmin = R.C = 2200*0.1/1000000 = 220 us
wat redelijk klinkt gezien de ingangsstroom voor een comparator.Na zon analyse De kortsluitstromen die ik me herinner zijn onmogelijk, dus mijn GAMEPORT had ofwel een ander circuit of de stromen liepen door verschillende pinnen (misschien VCC / GND).
Gameport analoge pinnen hebben 2.18 mA
huidige limiet.
pas op dat de belasting passief moet zijn aangezien de pin leegloopt de stroom op zichzelf, dus ofwel Potentiometer of een NPN-transistor (collector-> Vcc, emitter-> GAMEPORT_analog_pin) doet hetzelfde werk.
SB16- en / of USB-adapters kunnen echter verschillende schakelingen hebben (vooral als ze MIDI-interface), maar 2mA is een gebruikelijke waarde voor comparatoren en versterkers.
Pas op dat lagere stromen grotere conversietijden betekenen, dus u moet een compromis vinden zodat uw polling-leescode niet te lang wacht en voldoende resolutie heeft. . bijvoorbeeld 1 ms
:
t = (Rl+R)*C Rl = (t/C)-R Rl = (0.001/0.1)*1000000-2200 = 7800 ohm
dus als ik het goed zie als uw belasting en vervolgens th De conversie eindigt op 1 ms
tops.
Door mijn oude Rockfire-joystick te meten, heeft de x-as 160K rechterpositie nul aan de linkerkant en 68K in het midden (niet heeft het eeuwenlang gebruikt, zodat de middelste positie kan worden verschoven) wat leidt tot maximale conversietijd t = 16.22 ms
Reacties
- De 100mA is voor de NE558-uitgang, niet voor de timing-ingang waar de analoge ingangen van de joystickpoort op zijn aangesloten.
- @Justme You ‘ re right ( +1) Ik mis het gelezen. Na wat meer diepgaand onderzoek vond ik een betrouwbaardere grens. Heb het antwoord aangepast.
- Ik begrijp niet ‘ waarom je aanneemt dat Vce 0,6 V is, waardoor er minder stroom vloeit. Het zou beter zijn om aan te nemen dat Vce van de ontladingstransistor nul is bij deze stroomniveaus en dus meer in het slechtste geval stroom vloeit. Het verschil is echter niet veel, gezien alle toleranties zou het nog steeds onder de 2,5 mA per analoge ingang moeten zijn.
- Ik zou echt willen dat ik twee ” geaccepteerde antwoorden kon geven ” vinkjes omdat je bijgewerkte antwoord en Kaz ‘ s antwoord echt aanvoelen als twee helften van het ideale antwoord. Dat gezegd hebbende, moest ik het aan Kaz geven omdat hij zowel het begin van het gecombineerde antwoord was als degene die het logicaschema voor de originele IBM-adapter vond.
- @Spektre Vbe drop zou ongeveer 0,6V zijn in transistors. Maar dit is Vce drop. Als de ontladingstransistor vergelijkbaar is met de uitgangstransistor, volgens de NE558-datasheet, zou de Vce-daling typisch 0,1 V zijn bij een stroom van 10 mA, en aangezien de beschikbare stroom op de timingpin lager is dan 3 mA, zou de spanning ook ver onder de 0,1 V liggen.
Answer
Er zijn geen officiële specificaties voor de huidige limiet van de game-poort. Sommige adapters hebben weerstanden, ferrietkralen of zekeringen voor stroombegrenzing, maar meestal frituurt een kortsluiting nog steeds iets (behalve een polyfuse). Ik zou zeggen dat 100mA in ieder geval een veilige limiet is. De originele adapter heeft 1k pull-ups op de knoppen, dus voor alle vier de knoppen die tegelijkertijd worden ingedrukt, komt er 20 mA stroom van de knopdraden naar de aardingsdraad. De analoge ingangen hebben 2,2 k in serie, zodat alle analoge ingangspotten die zich op de uiterste positie 0R bevinden, opgeteld ongeveer 9 mA stroom van 5V-draad naar analoge ingangsdraden.