Mă gândesc să construiesc niște dispozitive personalizate pentru a mă conecta la portul de joc de pe PC-ul meu retro-hobby (adaptor controler SNES, cutie macro / turbo etc.) dar nu am reușit să găsesc multe informații despre detalii precum limitele curente permise.
(Doar această mențiune necitată pe forumurile DSLReports care pretinde „Tensiunea de funcționare standard pentru un MIDI / Gameport este de 5 volți ± 5% și o ieșire de curent de 40mA când este activă și 22mA când este în standby.”)
Având în vedere unele dintre cele mai fanteziste digitale joystick-uri care nu necesitau surse de alimentare externe, știu că este posibil să atârnați unele tipuri de încărcături fanteziste de pe liniile de 5V ale portului de joc, dar nu vreau să pariez că SoundBlaster 16 Am achiziționat cu atenție eBay, acum câțiva ani, este cel puțin la fel de robust ca orice combinație de adaptor USB-Gameport încă în producție și Raspberry Pi pe care o risc pentru testarea dezvoltării.
Pe partea de protejare a gazdă PC, sper să ajung găsiți o sursă solidă pentru detalii, cum ar fi:
- Curent maxim de siguranță maximă
- Curent maxim de siguranță susținut
- DO-urile și DON „Ts care joystick-urile digitale blocat când pinouts ca acesta listează mai multe linii de alimentare de 5V și specifică că fiecare linie GND este destinată unui anumit buton.
Pe partea de protecție a microcontrolerului, are cineva specificații privind curentul maxim observat atunci când butoanele sunt apăsate sau liniile axelor X și Y sunt la capătul 0Ω al intervalului lor?
este relevant, sper să folosesc acele plăci chinezești sub $ 1 chinezești STM8S cu Sduino dacă numerele verifică. 16MHz ar trebui să fie suficient pentru a-i trece pe bit și nu le puteți „bate” în funcție de dimensiune sau preț.)
O citație care are, de asemenea, informații similare pe porturile tastaturii PC și PS / 2 ar fi apreciată din moment ce eu „Mă gândesc, de asemenea, să construiesc un knock-off al Dynapoint GameStar .
Răspuns
Documentația pentru adaptorul original de control de joc al IBM are câteva detalii care vor fi utile. Chiar dacă în schimb utilizați o placă SoundBlaster, aceasta ar trebui să fie în continuare compatibilă cu originalul IBM.
În timp ce documentația nu specifică curenții maximi pentru niciun pin, are o diagramă logică:
Poate fi Am văzut că pe portul de joc original, intrările butoanelor sunt alimentate către un buffer 74LS244 (prin rezistențe pull-up de 1 Kohm și condensatori de 51pF). Foaia de date 74LS244 „ specifică un curent de ieșire de nivel scăzut maxim de 24mA per pin și un curent de ieșire de nivel înalt de -15mA.
Intrările potențiometrului (axe) sunt alimentate la intrările de sincronizare ale unui timer NE558 quad (prin rezistențe de 2,2 kohm în linie și condensatori .01uF). Foaia sa de date nu detalii despre încărcarea curentă pe acești pini de intrare; sunt „reutilizați ca valori de sincronizare RC.
Diagrama IBM arată toate terenurile (și sursele de 5V) conectate în comun. Bănuiesc că pinii de 5V ai gameportului sunt conectați direct la sursa de 5V a slotului ISA; acest lucru ar putea fi verificat pentru cardul dvs. cu un test de continuitate pe un multimetru. Dacă acesta este cazul, extragerea maximă de curent permisă pentru un card ISA poate oferi câteva îndrumări suplimentare.
Răspuns
înapoi în zilele (x386) în care foloseam portul GAME ca ADC pentru scaner de casă și alte HW auto-build. Așa cum este obișnuit în timpul dezvoltării, există ocazional retrocedări precum scurtcircuitul etc. Porturile GAME pe care le foloseam erau întotdeauna GoldStar alimentate cu cip IDE / porturi card ISA (acestea erau foarte frecvente) și un scurtcircuit pe pinii analogici arde întotdeauna + Linia de alimentare de 5V de pe PCB (nu a fost afectat niciun cip, știind că ocolind firul ars, toate au funcționat din nou), deci nu există o limită evidentă de curent, în afară de densitatea de curent a firelor PCB utilizate.
firele înapoi în timpul zilei ar putea transfera în siguranță 0,5A (de obicei încep să ardă peste 1A), dar nu aș face o sarcină mai mare de 100mA.
Cu toate acestea, când m-am uitat la foaia de date NE558 (linkul este în Kaz „Răspunsul), în afară de eroarea pinout, aici este circuitul echivalent al temporizatorului unic:
intervalul de sincronizare este:
t = R.C
unde C = 0.1 uF
și R >= 2K2
. Având în vedere Vcc = 5V
și în conformitate cu
Bazele tranzistorului tensiunea de cădere a tranzistoruluiVce = ~0.2V
apoi curentul maxim „sigur” absolut pentru ieșirea de sincronizare (pin analogic GAMEPORT) este:
I = (Vcc-Vce) / R = (5-0.2)/2200 = 2.18 mA tmin = R.C = 2200*0.1/1000000 = 220 us
care sună rezonabil având în vedere curentul de intrare pentru un comparator.După o astfel de analiză, curenții de scurtcircuit pe care mi-i amintesc sunt imposibili, așa că GAMEPORT-ul meu a avut fie circuite diferite, fie curenții prin intermediul unor pini diferiți (poate VCC / GND).
Pinii analogici Gameport au 2.18 mA
limită de curent.
ai grijă ca încărcătura să fie pasivă pe măsură ce pinul se scurge curentul pe cont propriu, deci fie un potențiometru, fie un tranzistor NPN (colector-> Vcc, emițător-> GAMEPORT_analog_pin), care face aceeași treabă. Interfață MIDI), dar 2mA este o valoare obișnuită pentru comparatoare și amplificatoare.
Atenție la curenții mai mici înseamnă timpi de conversie mai mari, deci trebuie să găsiți un compromis, astfel încât codul dvs. de citire a sondajului să nu aștepte prea mult și să aibă suficientă rezoluție .. . de exemplu 1 ms
:
t = (Rl+R)*C Rl = (t/C)-R Rl = (0.001/0.1)*1000000-2200 = 7800 ohm
deci dacă o văd corect dacă încărcarea ta este 0 .. 7K8
apoi th Conversia se va încheia în 1 ms
vârfuri.
Măsurând vechiul meu joystick Rockfire, axa x are 160K poziția dreaptă zero la stânga și 68K la mijloc (nu „t” l-a folosit pentru vârste, astfel încât poziția centrală ar putea fi schimbată) ducând la timpul maxim de conversie t = 16.22 ms
Comentarii
- 100mA este pentru ieșirea NE558, nu pentru intrarea de sincronizare, la care sunt conectate intrările analogice ale portului joystick-ului.
- @Justme Ai ‘ dreptate ( +1) Mi-e dor să-l citesc. După o examinare mai aprofundată, am găsit o limită mai sigură. Am editat răspunsul.
- Nu ‘ nu înțeleg de ce presupuneți că Vce este 0,6V, ceea ce face să curgă mai puțin curent. Ar fi mai bine să presupunem că Vce al tranzistorului de descărcare este zero la aceste niveluri de curent și, prin urmare, curgerile de curent în cel mai rău caz. Diferența nu este însă mare, având în vedere toate toleranțele, ar trebui să fie totuși sub 2,5 mA pe intrare analogică.
- Mi-aș dori cu adevărat să pot da două răspunsuri acceptate ” ” bifă, deoarece răspunsul dvs. actualizat și răspunsul Kaz ‘ se simt cu adevărat ca două jumătăți ale răspunsului ideal. Acestea fiind spuse, a trebuit să-i dau lui Kaz pentru că a fost atât începutul răspunsului combinat, cât și cel care a găsit diagrama logică pentru adaptorul IBM original.
- Scăderea @Spektre Vbe ar fi de aproximativ 0,6V în tranzistoare. Dar aceasta este Vce drop. Dacă tranzistorul de descărcare este similar cu tranzistorul de ieșire, conform fișei tehnice NE558, scăderea Vce ar fi de obicei 0,1V la 10mA curent și, deoarece curentul disponibil la pinul de sincronizare este sub 3mA, tensiunea ar fi cu mult sub 0,1V.
Răspuns
Nu există specificații oficiale pentru limita de curent a portului de joc. Unele adaptoare pot avea rezistențe, margele de ferită sau siguranțe pentru limitarea curentului, dar, de obicei, un scurtcircuit încă prăjește ceva (cu excepția unei polifuzibile). Aș spune că 100mA este o limită de siguranță în orice caz. Adaptorul original are butoane de 1k pull-up pe butoane, astfel încât pentru toate cele patru butoane apăsate simultan, adaugă până la 20mA de curent de la firele butoanelor la firul de masă. Intrările analogice au 2.2 k în serie, astfel încât toate vasele de intrare analogice aflate în poziția extremă 0R adaugă aproximativ 9mA de curent de la firul de 5V la firele de intrare analogice.