Autor Wątek: Joystick USB - wersja profi  (Przeczytany 10113 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Odp: Joystick USB - wersja profi
« Odpowiedź #15 dnia: Listopada 25, 2016, 08:36:46 »
Przejrzałem dokładnie zdjęcie płytki. Płytka jest bardzo czytelna w sensie funkcjonalnym. Testowałem także projekt Piotra zrobiony na Arduino i jestem zadowolony. Ten projekt jest bardziej ambitny dotyczy to analogów. Ponieważ ma być uniwersalny to nie znajdzie zastosowania do wymiany uszkodzonych kontrolerów w istniejących joystickach ale może być bazą do modyfikacji elektroniki w joysticach. Jest idealny gdy projektujemy joystick od podstaw tak jak w przypadku shopiKa.
Zgadzam się z Piotrem, że zbyt dużo możliwości funkcyjnych może doprowadzić do komplikacji tak jak w przypadku MMJoy2, gdzie kontroler mógłby sterować nie tylko joystickiem ale także panelami.
To o czym wspomniał Freeman 13 jest oczywiście do zrobienia. Jest to prosty interfejs sterowania rejestrami równoległo-szeregowymi, ale to już nie jest standard I2C.
To takie moje uzupełnienie tego co napisałem poprzednio.

Odp: Joystick USB - wersja profi
« Odpowiedź #16 dnia: Listopada 26, 2016, 13:29:04 »
Projekt joysticka ma być również dość uniwersalny. Nie widzię problemu w zastosowaniu go jako zamiennika elektroniki dla Cougara. Zewnętrzny moduł będzie na tyle mały, że da się go zastosować zamiast oryginalnej płytki na CD4021. Ilość kabli do podłączenia będzie ta sama.
Sprawy typu obsługa oryginalnej płytki z rejestrami, czy mapowanie przycisków, o którym wspomniał shopiK zostawiam na później. Jeszcze nie jestem na tym etapie. Zresztą są to sprawy czysto programowe, które można rozwiązać później. Dużą zaletą procesorów serii PSoC, jest to, że są bardzo uniwersalne. Zamiast stałych klocków w przypisanymi na stałe funkcjami, jak interfejsy itd. mają taką kulkę cyfrowej plasteliny, z której ulepić można dowolne peryferia. Piny również można dowolnie podłączać i rekonfigurować z poziomu programu. Na bazie jednej płytki można będzie budować wiele wariantów pod bardziej konkretne zastosowania. Chociaż uważam, że wersja podstawowa załatwi większość z nich.
 
Moduł zewnętrzny:
w zasadzie już zdecydowałem, że nie bedzie to tylko dodatkowa płytka z rejestrami, czy MCP23017, a funkcję przejmie drugi procesor. Niższej klasy niż ten w płytce bazie, ale również dość swobodnie rekonfigurowalny. Stąd też, nie widzę żadnego problemu z dodaniem np dwóch osi analogowych. Nie będzie może przedwzmacniaczy (się zobaczy jeszcze, wielkość płytki jest decydującym ograniczeniem) i 16 bitów, tylko 11, ale do jakichś pobocznych zadań wystarczy.

Zastanawiam się teraz, czy nie lepiej będzie użyć jednak dwóch "podjoystików", jeden jako baza, drugi jako moduł zewnętrzny. Tym sposobem mogę zwiększyć ilość przycisków w module do np. 32. Załatwi to problem z podmianą oryginalnej elektroniki na CD4021 (22 wejścia, jeśli dobrze pamiętam). Problem mapowania numerów przycisków chyba również sam się rozwiąże, bo obie części będą widziane w systemie jako dwa urządzenia.

Oczywiście przepustnica musiałaby być osobnym urządzniem ze swoją własną płytką bazą. Takie rozwiązanie otwiera dalsze możliwośći robudowy, bo omija ograniczenia DirectX odnosnie ilości przycisków i osi.

Odp: Joystick USB - wersja profi
« Odpowiedź #17 dnia: Listopada 26, 2016, 15:51:53 »
Cytuj
Zastanawiam się teraz, czy nie lepiej będzie użyć jednak dwóch "podjoystików", jeden jako baza, drugi jako moduł zewnętrzny. Tym sposobem mogę zwiększyć ilość przycisków w module do np. 32. Załatwi to problem z podmianą oryginalnej elektroniki na CD4021 (22 wejścia, jeśli dobrze pamiętam). Problem mapowania numerów przycisków chyba również sam się rozwiąże, bo obie części będą widziane w systemie jako dwa urządzenia.
Ten drugi joystick załatwia sprawę zamiany uszkodzonej płyty kontrolera Cougara. W chwycie  joysticka jest płytka z 3 rejestrami CD 4021, która jest połączona z kontrolerem przez connector PS/2 5 stykowy (dane, zegar, sterowanie, GND oraz 5V). Potrzebne są jeszcze  2 analogi dla osi X oraz Y i to wszystko. W chwycie są 4 hat, 4 przełączniki oraz 2 przyciski.
Przepustnica to już inna bajka.

Odp: Joystick USB - wersja profi
« Odpowiedź #18 dnia: Listopada 28, 2016, 10:32:09 »
Upolowałem Cougara, co prawda jest w pełni sprawny (mam nadzieję), ale i tak dostanie nową elektronikę.
Skoro w module zewnętrznym będzie drugi procesor, to może do komunikacji z bazą zastosuję SPI zamiast I2C. Układ może automatycznie wykrywać podłączony moduł, a jeśli on się nie zgłosi - przyjmować, że jest tam oryginalna płytka z rejestrami 4021 i przestawiać się w odpowiedni, kompatybilny tryb.

Przy okazji, w innym wątku wpadłem na pomysł na sprzętowy konwerter przełączników na impulsy, które można użyć z typowymi wejściami dla przycisków. Jest to dość uniwersalny układ, dzięki izolacji optycznej działający również w matrycach. Może generować osobne "kliknięcia" dla przełączenia hebla w każdą stronę lub, po zwarciu wyjść, jedno dla obu kierunków.



Odp: Joystick USB - wersja profi
« Odpowiedź #19 dnia: Listopada 28, 2016, 13:22:21 »
Jutro lub pojutrze przedstawię dokładnie jak zachowuje się drążek Cougara. Wymontowałem drążek, zrobiłem wtyki do PS/2 zakończone przewodami i podłączę do mojego testera. Nie można zdobyć na rynku gniazd 5 stykowych PS/2 dla Cougara, dlatego domowym sposobem zrobiłem z "jakiegoś" złącza końcówki dla wtyków PS/2. W rozwiązaniu Cougara nie ma standardu I2C, są tylko 3 sygnały : zegar, sygnał zapis/odczyt oraz dane z ostatniego rejestru. Rejestry są połączone szeregowo. Po testach opiszę to dokładniej. Maciej z forum zmienił u siebie ten "stary interfejs" na I2C zmieniając typ rejestrów.
Co do pomysłu z transoptorami to ćwiczyliśmy to zagadnienie w 2009 roku chcąc zwiększyć liczbę enkoderów w MJoy16. Damos zaprojektował oddzielną płytę do której można było podłączyć enkodery. Rozpatrywaliśmy także zastosowanie kluczy analogowych CD4066 w MJoy16, ale ich oporność (mała ale istotna) wykluczała ich zastosowanie w matrycy.
Twój pomysł ciekawy, ale rozwiązanie z płytką z enkoderami nic nie jest w stanie konkurować. Gratuluję zdobycia Cougara, ja mam ale w kokpicie i to ogranicza moje testy.

Odp: Joystick USB - wersja profi
« Odpowiedź #20 dnia: Listopada 29, 2016, 11:16:45 »
Zrobiłem testy mojego drążka za pomocą testera wykonanego na bazie UNO. Opisałem to tutaj #99 http://il2forum.pl/index.php/topic,15612.new.html#new
Zrobię szkic połączeń hatów oraz przycisków do rejestrów CD4021 na podstawie wykonanych testów. Ponieważ linia danych SDA w I2C jest dwukierunkowa a w starym rozwiązaniu na CD 4021 jest jednokierunkowa to może analizując tę linię można określić czy mamy w drążku starą płytkę z CD 4021 czy nową z MCP 23017. To rozwiązałoby problem kompatybilności z starymi płytkami tak myślę.

Odp: Joystick USB - wersja profi
« Odpowiedź #21 dnia: Listopada 30, 2016, 08:45:37 »
Jest to schemat połączeń w drążku Cougara. Nie umieściłem rezystorów na wejściach rejestrów (pull-up) aby nie zaciemniać obrazu.



J1-J6 to złącza na płycie do których są doprowadzone sygnały z hatów oraz przełączników. Ozn. L, D, R oraz U to skróty od left, down, right oraz up. Złącze (wtyk) jest połączone z złączem ozn. na diagramach J7. Diagramy połączeń są pod linkiem http://cougar.flyfoxy.com/circuits.php
Sprawdzę jeszcze u siebie na płycie uszkodzony rejestr, może dam radę go wymienić. Okablowanie w drążku Cougara jest trochę dziwnie rozprowadzane, ale może jest to optymalne ze względu na ciasnotę.

Odp: Joystick USB - wersja profi
« Odpowiedź #22 dnia: Listopada 30, 2016, 15:37:45 »
Super! Dzięki za schemat, na pewno się przyda.

Odp: Joystick USB - wersja profi
« Odpowiedź #23 dnia: Listopada 30, 2016, 17:05:16 »
Jeszcze jeden przydatny szkic pokazujący jak rozprowadzana jest masa w drążku.



Jak widać każde złącze 5 stykowe ma wyprowadzoną masę. Dodatkowo stosują przedłużenie masy wykorzystując niektóre przyciski co daje krótsze kable oraz pewną optymalizację okablowania. Diagramy są przydatne, ale mogą być inne kolory lepiej sprawdzać.
U mnie jest uszkodzone wejście pin4 U3 (zwarcie do masy). Ponieważ funkcja S3 dla mnie jest nieistotna (modyfikator) to nie wymieniłem rejestru. Mam nadzieję, że szkic pomoże Piotrowi.

Odp: Joystick USB - wersja profi
« Odpowiedź #24 dnia: Listopada 30, 2016, 18:59:34 »
Muszę jeszcze wyjaśnić jak powstał schemat ideowy płytki drążka. Nie sprawdzałem omomierzem połączeń z złącz ozn. J1-J6 do hat1-hat4, S1-S4 oraz TG1-TG2 tzn., że schemat ideowy nie powstał na podstawie schematu montażowego. Schemat powstał na podstawie testów wykonanych na hatach oraz przełącznikach oraz obserwacji diod LED w matrycy 8x8 w moim testerze. Położenie w matrycy diod odpowiada dokładnie odpowiedniemu wejściu w 3 rejestrach CD 4021 jest to określone w programie testera. Po wykonaniu schematu sprawdziłem na diagramach czy jest zgodność mojego schematu z diagramami. Jest zgodność złącz J1-J6 oraz rejestrów U1-U3, nie wchodziłem w oznaczenia "solder pin" oraz kolory w diagramach.

Odp: Joystick USB - wersja profi
« Odpowiedź #25 dnia: Grudnia 01, 2016, 13:24:09 »
Jest to schemat funkcjonalny testera. Jak widać pozycja diody w matrycy 8x8 jest funkcjonalnie związana z określonym hat lub przyciskiem oraz określonym wejściem na jednym z  rejestrów.
Dla opcji kontrolera kompatybilnego z starą płytą w drążku (3 CD 4021) ten szkic wystarczy do zaprogramowania uP. Dla opcji z ekspanderami trzeba jeszcze określić nr pinów na złączach J1-J6. Ja zapomniałem to zrobić a mam już drążek złożony. Myślę, że nie będzie z tym problemu gdy będzie projekt na tym etapie.



Odp: Joystick USB - wersja profi
« Odpowiedź #26 dnia: Grudnia 02, 2016, 21:25:31 »
Przyjechały właśnie procesory do modułów zewnętrznych joysticka. Lutowanie ich będzie chyba wyzwaniem (raster 0.4mm) ;)
Dla porównania obok leży MCP23017 w obudowie TSSOP:



Wykorzystując maksymalnie wszystkie piny udało mi się upchać:
  • 32 przyciski
  • 4 osie 11bit
  • 2 x HAT
Raczej trzeba będzie sięgnąć po gęściej upakowane złącza, pewnie 2mm zamiast 2.54mm.

vito_zm
Dzięki za schematy, niedługo będę pisał obsługę trybu kompatybilnego z drążkiem Cougara. Przydadzą się na pewno.

Odp: Joystick USB - wersja profi
« Odpowiedź #27 dnia: Grudnia 02, 2016, 22:52:07 »
Obudowa QFN, najlepiej chyba lutować to gorącym powietrzem. Chociaż dużo zależy od tego jak przygotowanym PCB dysponujesz. Jeżeli ścieżki biegnące do układu są dobrze przygotowane i dosyć długie oraz jest do nich dostęp po stronie zewnętrznej układu, to dobry topnik + precyzyjny grot i da się to bez problemu polutować. Grunt to wstępne po-cynowanie pól lutowniczych i nałożenie dobrego topnika, co zapobiegnie zwieraniu ścieżek.

Odp: Joystick USB - wersja profi
« Odpowiedź #28 dnia: Grudnia 10, 2016, 22:40:22 »
Najprawdopodobniej pasta i płytka do pieca, a potem, jeśli potrzeba poprawki z dużą ilością topnika. Do takich rzeczy używam Amtecha NC-559, drogi, ale lutowanie z nim to bajka. Taki kumotr do zadań swoistych ;)
Tymczasem:
  • uruchomiłem komunikację między bazą, a płytką zewnętrzną. SPI na 1MHz przy prawie 2 metrowym kablu działa bez zająknięcia. Podejrzewam, że żeby uruchomić szybsze I2C 400kHz na takiej odległości musiałbym zastosować jakieś specjalne drivery. A tak - taniej, szybciej i od razu kompatybnie z drążkiem Cougara.
  • Im więcej spędzam czasu z procesorami Cypressa, tym bardziej je lubię. W module zewnętrznym są tylko 4 osie. Popędziłem ADC szybciej i użyłem wbudowanego w niego tricku na nadpróbkowanie. Mamy stabilne 14bit zamiast 11.

A przy okazji ze starego Raspberry Pi B+ i rupieci z szuflady zbudowałem sobie sprzętowy terminal UART, takie PuTTy w kostce:




Odp: Joystick USB - wersja profi
« Odpowiedź #29 dnia: Grudnia 11, 2016, 09:15:19 »
Gratulacje jest szansa na dobry kontroler, powodzenia.