[#1] Mysz USB -> Amiga (własny adapter)
Jako że lutowanie elementów na płytkach, z niewiadomych przyczyn, sprawia mi dużo frajdy, ostatnio myślałem nad zrobieniem kolejnego projektu "lutowniczego". Projektem tym miałby być adapter myszy USB dla Amigi. Popatrzyłem już trochę na PS2M z Aminetu, ale jako, że drugą rzeczą, która sprawia mi dużo frajdy, jest wynajdywanie koła od nowa, postanowiłem zrobić coś we własnym stylu.
W związku z tym mam parę pytań do ekspertów.

Sprzęt:
* Amiga 1200 (podstawowa płyta główna bez żadnych rozszerzeń)
* DOWOLNA mysz USB

Na początku chciałbym zaznaczyć, że interesuje mnie obsługa tylko podstawowych funkcji myszki: tj. kursor, lewomysz i prawomysz. Dodatkowych funkcji typu rolka, czy środkowy przycisk myszki nie potrzebuję, gdyż Amiga służy tylko i wyłącznie do grania.
I jeszcze jedno: o ile mój projekt nie jest w 100% głupi i bezsensowny proszę o nie sugerowanie zamienników :) Taki już uparty jestem.

Miałem już wcześniej doczynienia z procesorami ATMega więc projekt wyglądałby następująco:
Myszka -> Port USB na płytce -> Konwersja protokołu na procesorze ATMega 8 (może być 16 ale wolałbym 8 ze względu na mniejszy rozmiar) -> Wysyłamy "output" do Amigi.

Pytania:
1. Czy zasilanie z płyty głownej Amigi, a dokładniej z portu Joystick (+5V/GND) w zupełności wystarczy aby zasilić myszkę laserową + procesor? Amigę mam obecnie podpiętą pod zasilacz AT (nie jestem dokładnie pewnien ile ma watów, ale skoro nie jest to standardowy zasilacz Amigi to powinien wytrzymać :P)
2. Jaki kwarc zastosować? W sumie mogę walnąć 16MHz (bo i tak kosztuje złotówkę u mnie w sklepie). PS2M korzysta z kwarcu 4MHz. Chodzi o to, żeby procesor nadążył za myszką. Jeszcze nie patrzyłem jak dokładnie działa protokół USB jeśli chodzi o myszki...

Po złożeniu schematu postaram się go wrzucić tu na forum.
[#2] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #1

A może weź się za coś czego jeszcze ktoś nie wymyślił, albo nie jest tak łatwo dostępne ? Chodzi mi po głowie kilka projektów: rozszerzenie pamięci Fast, flashowalny z poziomu amigi kickstart (w oparciu o projekt z aminetu), jakiś bajer na port zegara: np. dekoder mp3 ?

Czego brakuje projektowi PS2M oprócz tego że jest na PICu a nie MEDZE ?

Chyba że ma mieć to głównie wartość dydaktyczną, to wtedy na 100% warto !

Zasilania powinno starczyć. Na Atmedze8 powstał interfejs myszy PS2 do C64:
http://sensi.org/~svo/[m]ouse/
[#3] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #1

Po co kombinować Mono już coś takiego stworzył:
http://www.efunzine.com/efnz.php?a=pro&id=247&sid=ba733d0cc449b663c407280f52aaa113

[#4] Re: Mysz USB -> Amiga (własny adapter)

@Arbuz, post #3

Po co odradzacie człowiekowi jeśli chce i jest w stanie zrobić to o czym mówił to niech robi . Powodzenia z tym pomysłem . A ten z Efunzine proponowany przez forumowicza jest nie do dostania .Ja życzę powodzenia . :D
[#5] Re: Mysz USB -> Amiga (własny adapter)

@Arkadyy, post #4

Na allegro masz non stop dostępne trochę inne ale tańsze.


Pozdrawiam
[#6] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #1

1. Nie powinno być z tym problemu, ps2m daje radę to czemu twój by nie miał, zasilanie portu joysticka chyba nie jest ograniczone prądowo, bynajmniej nie znalazłem informacji by było. Myszki chyba nie pobierają aż tyle prądu byś się musiał zamartwiać o zasilacz, a może masz jakieś prądożerne monstrum? Jaki pobór prądu jest napisany na twojej myszce?

2. PIC16F84A dzieli częstotliwość kwarcu na 4, czyli procesor jest taktowany zegarem 1MHz w ps2m. Jaki kryształ wybrać, to już zależy od tego jakiego języka chcesz użyć i jakie masz umiejętności. Nie wiem jak wygląda porównanie wydajności PIC vs ATMEGA, ale jeżeli korzystałbyś z assemblera, to mógłbyś osiągnąć podobny rezultat jak ps2m, jeżeli w C to myślę, że 2MHz mogłoby dać radę ale głowy sobie ściąć nie dam. podłączając kwarc o wartości 16MHz będziesz miał do wyboru 2 częstotliwości pracy, 16MHz i 2MHz (fusebit CKDIV = 0). Jeżeli te kwarce kosztują tylko 1zł, to kup sobie kwarc 4,8 i 16MHz, dzięki czemu sam będziesz mógł sprawdzić jaka częstotliwość będzie odpowiednia dla twojego kodu (1,2,4,8,16MHz), tzn określisz taktowanie przy jakim się jeszcze twój procesor wyrabia, bo nie ma sensu taktować go na 16MHz jeśli wyrabia się przy dwóch.



O rozmiar Atmegi nie martw się przy prototypie, kup sobie większą na początek, a później zrobisz sobie płytkę z atmegą w SMD i będzie wtedy układ naprawdę mały.


Mówiąc adapter myszki USB masz na myśli obsługę myszki w prawdziwym trybie USB, czy może tak jak to robi ps2m obsługujący tylko myszki USB, które jednocześnie potrafią korzystać z protokołu PS/2? Jeśli to pierwsze, to rób śmiało, jeśli to drugie to już dla amigowego światka nie będzie to żadnym zaskoczeniem, ale jeśli możesz się czegoś nauczyć i sprawia Ci to frajdę, to nie powstrzymuj się.

Pozdrawiam!



Ostatnia modyfikacja: 19.08.2010 20:44:56
[#7] Re: Mysz USB -> Amiga (własny adapter)

@rafgc, post #6

@#6
Dziękuję za rzetelną odpowiedź.

Oczywiście interesuje mnie prawdziwa obsługa myszy USB, a nie jakaś namiastka :P

Tak się prezentuje schemat płytki:
http://zalewa.dyndns.org/robert/amiusb-sch.PNG
Proszę o ew. wytknięcie błędów.
Swoją drogą zastanawiam się po co są rezystory R5 i R6 (te obok portu USB). Widziałem to na jednym filmie na YouTube oraz Tu. Wiem wiem, straszny amator ze mnie. Podobno wymaga tego protokół hosta USB, ale tak to jest jak się najpierw robi, a potem czyta, co się źle zrobiło...

Projekt pewnie wkrótce spadnie gdzieś na plan dalszy, gdyż niestety czekają mnie dużo mniej ciekawe zagadnienia z Inżynierii Oprogramowania, jednak jest to coś za co wezmę się prędzej czy później na 100%.

A jeżeli chodzi o język programowania? Oczywiście jedyny i słuszny C++


@#2
A może weź się za coś czego jeszcze ktoś nie wymyślił, albo nie jest tak łatwo dostępne ? Chodzi mi po głowie kilka projektów: rozszerzenie pamięci Fast, flashowalny z poziomu amigi kickstart (w oparciu o projekt z aminetu), jakiś bajer na port zegara: np. dekoder mp3 ?


Żadna z tych rzeczy do niczego mi się nie przyda.



Ostatnia modyfikacja: 19.08.2010 22:53:55
[#8] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #7

Będziesz miał spory problem ze zrobieniem konwertera myszki na Atmedze działającego w trybie USB HID Device. Będziesz musiał zaimplementować USB Hosta na Atmedze. Jest kilka programowych implementacji stosu USB na Atmedze np. V-USB, ale póki co widziałem chyba tylko jeden projekt, który działa w trybie Hosta. Co jeszcze... Atmega musi być taktowana 12MHz albo z wewnętrznego oscylatora, chociaż dla Hosta chyba wchodzi w grę tylko 12MHz, bo wewnętrzny oscylator jest zbyt mało stabilny. A odnośnie tych rezystorów i diod przy USB, to mają one za zadanie dopasowanie napięć. Szyny danych TXD i RXD w USB używają logiki 3.3V a ta Atmega działa przy 5V.
[#9] Re: Mysz USB -> Amiga (własny adapter)

@mały, post #8

Będziesz musiał zaimplementować USB Hosta na Atmedze. Jest kilka programowych implementacji stosu USB na Atmedze np. V-USB, ale póki co widziałem chyba tylko jeden projekt, który działa w trybie Hosta. Co jeszcze... Atmega musi być taktowana 12MHz albo z wewnętrznego oscylatora, chociaż dla Hosta chyba wchodzi w grę tylko 12MHz


Musi? Nie pamietam dokladnie protokolu urzadzen low-speed na USB1.1, ale ztcp pracuja one z predkoscia 1.5Mbit. Ponadto, w jego urzadzeniu to USB bedzie podpiete tylko jedno urzadzenie - mysz.

[#10] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #7

Proszę o ew. wytknięcie błędów.


Przycisk "RESET" szybko ci sie zuzyje. Po co masz tam tak wielki kondensator? Zeby opoznic start atmela? Jesli tak, to o wiele latwiej bedzie ci ustawic BOD w fuse bits.

[#11] Re: Mysz USB -> Amiga (własny adapter)

@szuler, post #9

Musi byc 12MHz bo to sie ladnie dzieli przez 8 dajac 1,5MHz. Wiem, ze sie da tez przy 8MHz z wewnetrznego oscylatora, ale to wymaga kazdorazowej kalibracji petli przy uruchomieniu. Kiedys sie tez napalilem, ze zrobie konwerter USB joypad do Amigi, ale mi przeszlo jak troche poczytalem o implementacjach USB na Atmedze.
[#12] Re: Mysz USB -> Amiga (własny adapter)

@mały, post #11

a może zamiast ATMEGI zainteresować się układem STM32? Są droższe, ale niektóre modele np mają wbudowany już port USB. Prawdopodobnie na tańszych też da się obsłużyć USB po swojemu.

[#13] Re: Mysz USB -> Amiga (własny adapter)

@rafgc, post #12

Są też Atmegi z sprzętowym USB. Problem w tym, że są dość drogie i trudno dostępne.
[#14] Re: Mysz USB -> Amiga (własny adapter)

@mały, post #8

Nie wiem jak w atmelach, ale PICki mają juz przygotowane implementacje USB do obsługi HIDow i MMSow. Wystarczy kliknąc pare razy mychą.

[#15] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #1

Tak, żeby pokazać, że coś ruszyłem z projektem:
Zdjęcie

Teraz wypada to jeszcze oprogramować.

[#16] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #1

Pojawił się pierwszy problem. Postanowiłem rozpocząć programowanie tego dziadostwa od strony Amigowej, tzn. przygotować sobie interfejs pod wysyłanie sygnałów do Amigi.
Niestety z jakiegoś powodu sygnały do wciśnięcia prawego przycisku myszy są ignorowane (a dokładniej są "częściowo" ignorowane, o czym poniżej).

Program wygląda tak:
http://pastebin.com/YyfwqTK4

Zgodnie ze schematem powinno to działać. No i jest problem bo działać to nie chce. Generalnie testowałem sygnały patrząc, czy w Workbenchu pojawia się menu na pasku tytułowym (jak wiadomo, włącza się je właśnie przytrzymując prawomysz).

Dokładniej zachowuje się to tak:
- Lewy przycisk myszki (0x10) działa bez problemu.
- Prawy przycisk myszki jest rejestrowany przez Amigę tylko i wyłącznie jeżeli ręcznie zewrę drutem pin 9 z GND, ALE....
- .... ALE mam na Amidze program do testowania Joya i po odpaleniu wymienionego wyżej kodu na ATMedze i podpięciu płytki do portu Joystick 2, program pokazuje, że "drugi przycisk joysticka" załącza się poprawnie. Dodatkowo z w/w programu wychodzi się przez wciśnięcie właśnie prawego przycisku myszy. O ile menu w Workbenchu pojawić się nie chce, o tyle z w/w programu udało mi się wyjść bez problemu.
- W grze Darkseed zachowuje się to tak samo jak w Workbenchu.

Wygląda na to, że problem leży gdzieś po stronie ATMegi. Sprawdziłem miernikiem połączenia pomiędzy nóżką a gniazdem i wszystko gra. Zwarć także nie ma, zresztą gdyby były, nie działałoby to podczas ręcznego zwarcia masy i pinu od tego właśnie przycisku.
[#17] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #16

Pojawił się pierwszy problem. Postanowiłem rozpocząć programowanie tego dziadostwa od strony Amigowej, tzn. przygotować sobie interfejs pod wysyłanie sygnałów do Amigi.
Niestety z jakiegoś powodu sygnały do wciśnięcia prawego przycisku myszy są ignorowane (a dokładniej są "częściowo" ignorowane, o czym poniżej).



Na wstępie napisze, iż nie znam się na tym. Miałem kiedyś zrobione urządzonko(kupiłem), tzn służyło do podłączenia myszki opartej o protokół PS2. Za nic w świecie nie chciał mi działać prawy klawisz w Workbenchu. Próbowałem chyba z 10 myszek w tym te, które pracowały na PS2. I żadna nie chciała działać prawidłowo, tzn nie działał prawy klawisz. Próbowałem i myszki firmowe Logitecha, no name, A4tech i pupa. A co z tego najciekawsze działał ten klawisz przy wejściu do boot menu Amigi. Gdyż po naciśnięciu obu klawiszy dostawałem się do tego boot menu. A potem w Workbenchu już nie. Dlatego też zastanawiam się czy ten schemat na podstawie, którego to robiłeś po prostu ma taki urok, że nie każda mysz na tym chodzi.

[#18] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #16

Sprawdzałeś przebieg na wyjściu atmegi od prawego klawisza myszy? Po wciśnięciu prawego klawisza, ma się tam pojawić masa tak długo jak będziesz trzymał ten przycisk. Być może pojawiają się tam jakieś szpilki zamiast sygnału ciągłego i dlatego możesz wyjść z tego programu a na belce nie widać reakcji.

Czy to jest cały program tej atmegi? Wygląda mi to na generator przebiegu prostokątnego o okresie 2s gdy l=1. Wydaje mi się, że protokół USB jest trochę bardziej skomplikowany.



Ostatnia modyfikacja: 05.09.2010 18:44:57
[#19] Re: Mysz USB -> Amiga (własny adapter)

@rafgc, post #18

Oczywiście nie jest to pełen program ( ). Cytuję: "Postanowiłem rozpocząć programowanie tego dziadostwa od strony Amigowej, tzn. przygotować sobie interfejs pod wysyłanie sygnałów do Amigi.".

Generalnie to chciałem zacząć wszystko od zaprogramowania poprawnego interfejsu do wysyłania sygnałów do Amigi i już na tym się wysypałem.

Raczej nie sądzę, by powstawały tam jakieś szpilki, wszak przez pełną sekundę jest tam zero... Powinienem coś zobaczyć na ekranie.

Kolejna ciekawostka: Gdy "przycisk" jest w stanie wciśniętym i w tym momencie zewrę pin 9 z masą drutem to Workbench wyświetla menu do momentu, w którym "przycisk" nie przejdzie do stanu odciśniętego, czyli coś jednak dociera ale Amiga nie jest w stanie zarejestrować... no właśnie czego... zmiany stanu?

Wygląda na to, że jakiekolwiek inne zwarcie niż bezpośrednie nie jest rejestrowane przez Amigę. Zwarłem pin 9 przez rezystor 68 Ohm z masą i Amiga też to olała.

Innymi słowy raczej nie będzie to działać poprawnie. Trzeba to było puścić przez tranzystor...



Ostatnia modyfikacja: 05.09.2010 19:28:21
[#20] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #16

Ja mialem podobny problem z urzadzeniem zakupionym na Allegro. U mnie przyczyna byl... zasilacz. Po wymianie na ATX-owy problem zniknal jak reka odjal! Nawet teraz na chwile podlaczylem do mojej Amigi zasilacz z A500 i... znowu albo nie dziala prawy klawisz, albo ma mega lagi. W grze Settlers i lewy dziala dziwnie. Po podlaczeniu zasilacza mocniejszego - ideal.
[#21] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #19

A czy ta atmega daje pełne 0 na wyjściu czy słabe 0? Mierzyłeś napięcie na tej linii gdy atmega daje 0 na wyjście?

Trochę dziwne, ze przez rezystor 68 amiga nie rejestruje zwarcia, może któryś z rezystorów podciągających w amidze ma przebicie, sprawdź napięcie na tej linii po zwarciu rezystorem 68 ohm, gdyby nawet rezystor podciągajacy miał 1k w amidze, to przy zwarciu rezystorem 68 ohm do masy powinien zrobić się dzielnik napięcia 5V/1068 ohm, co przy 68 ohmach da napięcie 0,32V czyli 0 zgodnie z TTL.

W ps2m wszystko jest podłączone bezpośrednio do PIC i działa, więc sprawdź, czy na innej amidze/zasilaczu też tak się dzieje, bo może masz coś uszkodzone (słabe zasilanie układów CIA).



Ostatnia modyfikacja: 06.09.2010 08:42:12
[#22] Re: Mysz USB -> Amiga (własny adapter)

@rafgc, post #21

A czy ta atmega daje pełne 0 na wyjściu czy słabe 0? Mierzyłeś napięcie na tej linii gdy atmega daje 0 na wyjście?


Each output buffer has symmetrical drive characteristics with both high sink and source capability. The pin driver is strong enough to drive LED displays directly.

[#23] Re: Mysz USB -> Amiga (własny adapter)

@Zalewa, post #19

Hej takie dwie luźne uwagi - brak rezystorow podciagajacych na wejsciach buttonow; (chyba ze sa wbudowane) i dwa IMHO cos po prostu zle ustawiasz w fuse bitach - dla tego jednego wejscia.

[#24] Re: Mysz USB -> Amiga (własny adapter)

@11MASTEr, post #23

Rezystory podciągające nie są potrzebne, wejścia są już wewnętrznie podciągnięte w Amidze do 5V, inaczej nie działałby metoda zwierania drutem.
Natomiast co do samej atmegi, to lepiej byłoby gdyby zamiast napięcia pojawiał się stan wysokiej impedancji (0 i Z), ewentualnie można zastosować diody by taki stan uzyskać.

[#25] Re: Mysz USB - Amiga (własny adapter)

@rafgc, post #24

Pozwolę odświeżyć sobie temat.

Więc mam jak wiadomo Amigę 1200 i prawdopodobnie płytę główną 2B.

Kupiłem sobie na Allegro przejściówkę do myszy, z tym że na moją prośbę zamiast gniazda USB sprzedawca zrobił mi ją z gniazdem PS/2 - jako, że takie myszy kupić jest o niebo łatwiej.

Gdy dostałem przejściówkę, moja radość nie trwała za długo, gdyż się okazało, że nie działa mi prawy przycisk myszy, jednak do boot menu wchodzę bez problemu.

Sprzedawca mi teraz podpowiada abym na płycie głównej sobie dolutował drugi opornik powierzchniowy nr E353R o wartości 68R lub zwarł łącza tego opornika wg schematu na obrazku.

Lub może prościej - jak bym podłączył zasilacz ATX zamiast standardowego od Amigi, czy lutowania można uniknąć ?



I jeszcze, jaka maksymalnie może być długość kabla z zasilacza ATX ? Oraz jakiś schemat bym poprosił do przejściówki z ATX na kabel od Amigi. Z góry dziękuję. Zastosował bym tu najprostrze rozwiązanie, czyli zwarł zielony kabelek z czarnym sąsiednim.

Ostatnia aktualizacja: 15.10.2012 19:11:30 przez gilban
[#26] Re: Mysz USB - Amiga (własny adapter)

@gilban, post #25

Oraz jakiś schemat bym poprosił do przejściówki z ATX na kabel od Amigi.


Pełno schematów można znaleźć w sieci...
[#27] Re: Mysz USB - Amiga (własny adapter)

@gilban, post #25

Ja u siebie miałem to samo i tylko zwarłem pady tego opornika - działało bez zarzutu.
[#28] Re: Mysz USB - Amiga (własny adapter)

@altcomputing, post #27

A mam jeszcze jedno pytanie: Czy przejściówka Elboxu (Cocolino) - dosyć droga - przeszło 150 zł też miała by problem z prawym klawiszem myszy ? Czy Elbox zastosował inny droższy scalak ? Może mi ktoś podpowiedzieć ?
[#29] Re: Mysz USB - Amiga (własny adapter)

@gilban, post #28

No więc zrobiłem sobie zasilacz do Amigi na bazie zasilacza ATX, ale niestety przejściówka dalej cierpi na brak prawego klawisza myszy.
[#30] Re: Mysz USB - Amiga (własny adapter)

@gilban, post #29

Jak już wspomniałem, trzeba jednak zalutować ten rezystor. Teraz pamiętam, ja też miałem ATX-a i mi nie działało.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem