Niedawno poskładałem swojego klona XF551 z flopem 3,5" na płytce od x_angela i w starej obudowie od SF354 (opis i zdjęcia tutaj: http://www.atari.org.pl/forum/viewtopic … 2#p250752).
Jestem zachwycony tym jak działa ta stacja, ale standardowo nie ma żadnych kontrolek, przycisków, wyświetlaczy itp., więc drażniło mnie, że jest jakaś nieobecna, nie ma w niej życia, nie eksponuje się ładnie na biurku. Postanowiłem więc ożywić trochę stację i dodać jej bajerów, żeby uprzyjemniała zachwyt nad nią dodatkowo elementami miłymi dla oka:-)
Drugi powód dodawania bajerów jest taki, że obudowa, którą wykorzystałem do swojej stacji jest podziurawiona przez poprzedniego właściciela, więc chcę też zagospodarować te otwory, żeby naprawić wygląd frontu stacji.
W dawnych czasach nie miałem stacji dyskietek, ale sentymentem darzę CA2001, bo taką miał kolega, pożyczał mi ją nawet czasem. Stąd pomysł na bajery trochę był zainspirowany tym co mamy w CA2001. Postanowiłem przede wszystkim jako rzecz najważniejszą dodać wyświetlacz pokazujący numer aktualnej ścieżki.
Na zdjęciu pokazałem wyświetlacze, które zostaną umieszczone w miejscu okrągłej dziury po lewej stronie stacji. Znalazłem też szare podłużne przyciski od starego sprzętu rtv, które elegancko wpasują się w szczelinę powyżej flopa. Funkcje tych przycisków jeszcze są w fazie koncepcji, bo jest ich mnóstwo i co chwilę zmieniam zdanie:-)
Do rzeczy, bo wpis dotyczyć ma wyświetlacza tracków. Na drugim załączonym zdjęciu pokazałem działający prototyp. W prototypie jest większy wyświetlacz - wygodniejszy do prototypowania, docelowo zostanie zastąpiony tymi małymi.
Sercem układu jest mikrokontroler Attiny2313. Zastosowałem wyświetlacze ze wspólną anodą, które są programowo multipleksowane przez attiny. Anody sterowane są tranzystorami pnp.
Ponieważ stacja dyskietek nie ma żadnej informacji o tym nad jaką ścieżką aktualnie znajduje się głowica, to zasada działania urządzenia musi polegać na tym, że trzeba te ścieżki sobie po prostu samemu liczyć. Do dyspozycji mamy i wykorzystałem sygnały pobierane bezpośrednio ze złącza sygnałowego flopka. Interesujące nas sygnały, to Track0, który przechodzi w stan niski w momencie kiedy głowica znajduje się nad ścieżką zerową. Kolejny sygnał to Step, którego zbocze opadające jest impulsem dla przesunięcia głowicy o jeden track zgodnie z kierunkiem określonym przez kolejny sygnał - Direction (stan niski i wysoki na tej linii określają kierunek ruchu w momencie wystąpienia zbocza sygnału Step).
W attiny zaimplementowałem programowy licznik, który zwiększa się i zmniejsza na podstawie sygnałów Step i Dir. Początkowo zakładałem, że sygnał Track0 będzie inicjował działanie licznika - czyli że poczekamy aż głowica znajdzie się nad trackiem 0 i wówczas zaczniemy dopiero działanie układu. Okazało się jednak w trakcie eksperymentów, że sygnał ten nie jest potrzebny. W momencie włączenia stacji dyskietek nie wiemy nad którą ścieżką jest głowica. Ale stacja żeby mogła cokolwiek zrobić, to zawsze po włączeniu sama zjeżdża na track 0. Wobec tego wystarczyło dodać warunek do licznika, żeby przy zliczaniu w dół porównywał licznik z zerem i jeśli jest zero, to nie zmniejsza licznika. Dzięki temu stacja zjeżdżając w dół do zerowej ścieżki zeruje nam licznik, który już od tego momentu poprawnie pokazuje numery ścieżek. Na starcie programu w attiny licznik jest od razu ustawiony na zero, a więc pokazuje zero do momentu ustawienia głowicy na ścieżce zerowej. Takie rozwiązanie mocno upraszcza program - a działa wszystko bez zarzutu:-)
Projekt planuję udostępnić zainteresowanym osobom, wrzucę tutaj w wątku schematy, oraz opiszę kod programu na attiny, ale na razie jeszcze sporo zmieniam i eksperymentuję, więc na ten moment tylko taka zajawka, temat jest rozwojowy:-)
Aha, gotowy wyświetlacz tracków będzie się nadawał tak na prawdę do dowolnej stacji dyskietek, jak również stacji współpracujących z dowolnym komputerem. Wydaje mi się, że rozwiązanie będzie bardzo uniwersalne.