Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD

Chroost 08 Wrz 2008 13:29 15807 41
  • Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD

    Tym razem chciałbym zaprezentować nowe oprogramowanie dla wyżej wymienionych kitów, za pomocą których możemy przekształcić posiadany stary napęd CD-ROM w funkcjonalny odtwarzacz płyt Audio CD. Szczegółowe opisy kitów znajdują się tutaj: http://sklep.avt.com.pl/photo/_pdf/AVT2660.pdf i http://sklep.avt.com.pl/photo/_pdf/AVT941.pdf. Oczywiście istnieje oryginalne oprogramowanie napisane przez autora lecz od początku nie było doskonałe (dostępne pod adresem http://www.edw.com.pl/ftp/avt2660soft.zip). Postanowiłem więc napisać swoje od początku (nie jestem autorem tych kitów) i zaimplementować funkcje, których nie posiada oryginalny program, a o których było niejednokrotnie wspominane na forum. Chodzi tutaj oczywiście o możliwość wyświetlania CD-TEXTu oraz obsługę dwóch napędów jednym sterownikiem w postaci zmieniarki CD, co nadaje większy sens takiej konstrukcji. W programie ponadto zaimplementowałem możliwość programowania przycisków pilota oraz opcjonalne sterowanie wzmacniaczem lub przedwzmacniaczem.

    Historia zmian
    Zanim jednak przejdę do bardziej szczegółowego opisu funkcji nowego programu słów kilka na temat samego kitu AVT2660. Został on opublikowany w miesięczniku EdW 3/2003. Pierwsza wersja programu zawierała błąd związany z zatrzymywaniem odtwarzania, ale dość szybko zostało to poprawione przez autora. Mimo tego postanowiłem wówczas rozbudować oryginalne oprogramowanie napisane w Bascomie. Wersja 2.0 została dołączona do archiwum z oryginalnymi źródłami, jednak nie dołączono listy dokonanych zmian. Później w EP 8/2006 opublikowany został ulepszony i rozbudowany nieco kit AVT941, który różni się głównie zastosowanym mikrokontrolerem, zmodyfikowanym blokiem zasilania (stabilizator impulsowy), dodatkowym włącznikiem zasilania, funkcją zegara RTC i możliwością tworzenia playlisty. Ponieważ część sprzętowa tego kitu odpowiedzialna za komunikację z napędem jest identyczna, istnieje możliwość wypróbowania lub używania na stałe opisywanego programu także w tym kicie, ale nowe funkcje, których nie posiadał kit AVT2660 nie będą dostępne w tym przypadku. Chcąc zebrać wszystkie informacje w jednym miejscu, poniżej dla zainteresowanych przedstawiam pełną historię zmian:

    V2.0 (plik Odt_cd2NEW.bas)
    Poprawione błędy i wprowadzone ulepszenia:
    - W trakcie przewijania do przodu lub do tyłu wyświetlane są napisy "F.Fwd" i "Rew";
    - Wyświetlane są symbole przed napisami "Stop", "Play", "Pause", "F.Fwd" i "Rew";
    - Dodany czwarty tryb odtwarzania: "Repeat1" - ciągłe odtwarzanie tylko jednego utworu;
    - Poprawione funkcjonowanie trybu "Random" - nie powtarza się ciąg losowych numerów przy takiej samej liczbie utworów po ponownym włączeniu sterownika;
    - Poprawiony błąd nieprawidłowego przewijania do tyłu i do przodu (zerowanie czasu utworu), a także wprowadzona możliwość zatrzymania przewijania bezpośrednio przyciskiem "F.Fwd" lub "Rew" w zależności od aktualnego kierunku przewijania;
    - Naciśnięcie przycisku "Poprzedni", gdy wybrany jest utwór pierwszy wybiera utwór ostatni, podobnie działa przycisk "Następny";
    - Naciskanie przycisku "Time" zmienia tryb wyświetlania czasu tylko podczas odtwarzania lub pauzy;
    - Poprawiony błąd wyświetlania czasu absolutnego płyty CD;
    - Niektóre napisy są wyświetlane wielkimi literami;
    - Dodatkowo wyeliminowane wszystkie zauważone błędy związane z nieprawidłowym funkcjonowaniem przycisków w różnych trybach odtwarzania, m.in. przycisk „Stop”;
    - Nie jest odczytywana i wyświetlania nazwa modelu CD-ROMu przy uruchamianiu, aby uzyskać miejsce na wyżej wymienione ulepszenia programu.
    Niepoprawione:
    - Problem z samoczynnym odpauzowywaniem się utworu po kilku sekundach i przeskakiwaniu do następnego.
    Przypadkowo wprowadzone nowe błędy:
    - Przyciski na pilocie trzeba naciskać dwukrotnie, aby wywołać funkcję;

    V3.0 (opisywana i dostępna poniżej)
    Główne zmiany:
    - Program napisany od nowa oraz wyeliminowane wszystkie powyższe błędy z zachowaniem ulepszeń wersji 2.0;
    - Dodana automatyczna obsługa dekodowania i wyświetlania CD-TEXTu (tylko dla napędów obsługujących CD-TEXT) z możliwością wyłączenia, wyświetlane mogą być tytuł utworu i wykonawca oraz tytuł i wykonawca dla całej płyty;
    - Obsługa dwóch napędów podłączonych jednocześnie w funkcji zmieniarki;
    - Możliwość programowania dowolnych przycisków pilota pracującego w standardzie RC5;
    - Wyprowadzone są dwa wyjściowe sygnały sterujące, jeden do wykorzystania jako sygnał mute/standby do wzmacniacza, drugi jako przełączanie selektora sygnałów audio z dwóch napędów;
    - Problem z samoczynnym odpauzowywaniem się utworu został wyeliminowany;
    - Zmieniony sposób przewijania na wzór stacjonarnych odtwarzaczy CD (lecz bez jednoczesnego podsłuchu);
    - Możliwość wysuwania/wsuwania tacki z klawiatury i pilota (z pewnymi ograniczeniami);
    - Poprawiona szybkość reakcji na przyciski klawiatury i pilota;
    - Nie jest konieczna zmiana mikrokontrolera, program mieści się w istniejącym;
    - Możliwość zastosowania nowszego mikrokontrolera ATmega8515;
    - Możliwość użycia programu w kicie AVT941 (Sterownik CD z zegarem RTC).

    W pliku .zip do pobrania poniżej znajdują się trzy wsady dla mikrokontrolera AT90S8515 dostarczanego razem z kitem AVT2660, ATmega8515 którym można bezpośrednio zastąpić poprzednika, gdyby ktoś budował samodzielnie sterownik oraz ATmega162 dla kitu AVT941. Program został napisany w języku C i skompilowany pod WinAVR’em. Pliki wynikowe są w formacie IntelHex. Pomiędzy nimi nie ma żadnych różnic w funkcjonalności z wyjątkiem wsadu dla kitu AVT941, w którym dodatkowo wysterowane są odpowiednio wyjścia włączające na stałe podświetlenie wyświetlacza oraz diodę LED ‘POWER’, aby nie były konieczne przeróbki na płytce sterownika. Źródeł do programu nie publikuję.

    Uruchomienie i konfiguracja
    Jeśli sami budujemy sterownik lub wymieniamy mikrokontroler na nowy w pierwszej kolejności konieczne jest odpowiednie zaprogramowanie fusebitów. Dla ATmega8515 - High = 0xC1, Low = 0x1F to znaczy: S8515C = 1, WDTON = 1, CKOPT = 0, EESAVE = 0, BOOTSZ1 = 0, BOOTSZ0 = 0, BOOTRST = 1, BODLEVEL = 0, BODEN = 0, SUT1 = 0, SUT0 = 1, CKSEL3 = 1, CKSEL2 = 1, CKSEL1 = 1, CKSEL0 = 1. Natomiast dla ATmega162 - Extended = 0xF9, High = 0xD1, Low = 0xDF to znaczy: M161C = 1, BODLEVEL2 = 1, BODLEVEL1 = 0, BODLEVEL0 = 0, OCDEN = 1, JTAGEN = 1, WDTON = 1, EESAVE = 0, BOOTSZ1 = 0, BOOTSZ0 = 0, BOOTRST = 1, CKDIV16 = 1, CKOUT = 1, SUT1 = 0, SUT0 = 1, CKSEL3 = 1, CKSEL2 = 1, CKSEL1 = 1, CKSEL0 = 1. Następnie trzeba skasować pamięć EEPROM w mikrokontrolerze, jeśli coś w niej było zapisywane, wówczas przy pierwszym uruchomieniu program wpisze do tej pamięci domyślną konfigurację przycisków pilota. Domyślna konfiguracja jest taka sama jak w oryginalnym programie, to znaczy przycisk numer 1 – Play, 2 – Pause, 3 – Stop, 4 – Previous Track, 5 – Time Mode, 6 – Next Track, 7 – Rewind, 8 – Play Mode, 9 – Fast Forward z tą różnicą, że tutaj sprawdzany jest także adres każdego przycisku, a nie tylko sam kod, więc musi to być pilot od telewizora z adresem 0. Ale to jest akurat mało istotne, ponieważ zawsze możemy zaprogramować dowolne przyciski pilota w standardzie RC5. Jak to zrobić? Naciskamy i przytrzymujemy przycisk S9 na klawiaturze (jest to przycisk do zmiany trybu odtwarzania - Play Mode), a następnie włączamy zasilanie, wtedy na wyświetlaczu powinien pojawić się napis 'IR SETUP' i dalej postępujemy według instrukcji na wyświetlaczu. Jeśli dany przycisk został już wykorzystany wyświetlony zostanie napis 'IN USE!', a jeśli został poprawnie zaprogramowany to 'OK'. Po zakończeniu programowania powinny działać wszystkie zaprogramowane przyciski. Domyślnie obsługa CD-TEXTu jest włączona w trybie automatycznym tzn. jeśli na płycie jest zapisany CD-TEXT, napęd go odczyta, a program go poprawnie zdekoduje to w dolnej linii będzie wyświetlany i ewentualnie przewijany jeśli jest dłuższy niż 16 znaków. Program może wyświetlać maksymalnie 160 znaków dzięki pominięciu funkcji przewijania wbudowanej w wyświetlacz i implementacji jej w sposób programowy. Myślę, że ta ilość jest w zupełności wystarczająca nawet dla najdłuższych napisów. Jest również możliwość całkowitego wyłączenia CD-TEXTu, w razie gdyby pojawiły się jakieś problemy itp. Procedura jest podobna do powyższej z tą różnicą, że trzeba nacisnąć i przytrzymać przycisk S3 (Pauza) i włączyć zasilanie. Na wyświetlaczu pojawi się napis 'CD-TEXT OFF' i nie powinien być już wyświetlany. Z powrotem włącza się w ten sam sposób - pojawi się napis 'CD-TEXT AUTO'. Dodałem również możliwość sprawdzenia wersji programu. Odbywa się to tak samo jak wyżej, tylko trzeba nacisnąć przycisk S4 (Stop) i dopóki będzie się go przytrzymywać na wyświetlaczu będzie wyświetlana wersja programu.

    Funkcje programu
    W przypadku funkcji CD-TEXTu dekodowane mogą być tytuł utworu i wykonawca dla ścieżki oraz tytuł i wykonawca dla całej płyty, ale pod warunkiem, że dany napęd w ogóle ma możliwość odczytu CD-TEXTu z płyty. Szczególnie starsze i niektóre nowe napędy nie posiadają takiej opcji. Powyższe napisy prezentowane są w postaci ‘Tytuł – Wykonawca’. Jest to odwrotnie niż typowo w programach komputerowych do odtwarzania. W taki sposób było trochę prościej zrealizować algorytm dekodowania CD-TEXTu, który nie wczytuje całego bloku danych do pamięci, ponieważ nie jest to możliwe – przeciętny blok CD-TEXTu jest prawie dwa razy większy niż dostępna pojemność pamięci RAM mikrokontrolera. Poza tym ma to tę zaletę, że jeśli dla przykładu mamy album jednego wykonawcy to najpierw wyświetlony zostanie tytuł utworu, a nie musimy czekać aż napis przewinie się do tytułu. Szybkość przewijania nie jest zbyt duża, ponieważ wyświetlacz LCD dość mocno by smużył i niewiele byłoby widać. W przypadku wykorzystywania funkcji „zmieniarki” napęd podłączony do taśmy ze zworką ustawioną na Master jest napędem CD1, a ze zworką na Slave jest CD2. Jeśli podłączymy tylko jeden napęd to w zależności od ustawienia zworki będzie on napędem CD1 lub CD2, a po przełączeniu się na drugi napęd, którego nie ma po prostu zostanie wyświetlony komunikat 'NO DISC', tak jakby nie było włożonej płyty. Może nie jest to doskonałe rozwiązanie, ale upraszcza program i samo sterowanie napędami. Oczywiście w przypadku jednego napędu najlepiej ustawić go na Master, bo nie trzeba będzie zawsze przełączać go po uruchomieniu - sterownik zawsze startuje z wybranym napędem CD1. Samo przełączanie pomiędzy napędami odbywa się za pomocą przycisku S8 (zmiana trybu wyświetlania czasu – Time Mode) lub na pilocie, ale można to zrobić tylko wtedy, gdy odtwarzanie jest zatrzymane lub wyświetlony jest napis 'NO DISC'. Podczas odtwarzania przycisk ten pełni swoją podstawową funkcję. Wyświetlanie informacji na wyświetlaczu podczas odtwarzania może odbywać się na dwa sposoby w zależności od tego, czy udało się zdekodować CD-TEXT czy nie, a program sam wybiera jak wyświetlać informacje. W przypadku, gdy CD-TEXT nie jest dostępny wygląda to praktycznie tak samo jak w oryginalnym programie z tą różnicą, że dodatkowo wyświetlana jest również ilość wszystkich utworów i numer dysku w prawym rogu. Jeśli natomiast CD-TEXT jest dostępny to zajmuje on całą dolną linię, a na górnej wyświetlane są numer utworu, stan odtwarzania już tylko w postaci symbolu, następnie numer dysku bez napisu 'CD', dalej czas i w prawym rogu tryb odtwarzania. Przykłady poniżej:

    Bez CD-TEXTu:
    Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD

    Z CD-TEXTem:
    Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD

    Myślę, że ten układ jest w miarę optymalny zważywszy na tak małą ilość miejsca na wyświetlaczu. Pozostała funkcjonalność jest taka sama jak w oryginalnym programie, choć została napisana na nowo. Dostępne są cztery tryby odtwarzania i cztery tryby wyświetlania czasu. Zmieniony został natomiast sposób w jaki odbywa się przewijanie utworu. Działa dokładnie tak jak w stacjonarnych odtwarzaczach CD to znaczy, aby przewijać utwór trzeba przytrzymywać przycisk. Taki sposób wydaje mi sie bardziej naturalny niż zastosowany w poprzednich wersjach programu. Prędkość przewijania dobrałem taką jaka jest w odtwarzaczach CD, czyli w granicach 12x prędkości odtwarzania. Z jednej strony daje to możliwość przewinięcia utworu tylko o 2-3 sekundy przy bardzo krótkim naciśnięciu przycisku, a z drugiej nie trzeba zbyt długo czekać na przewiniecie całego utworu. Niestety podczas przewijania nie ma podsłuchu, ponieważ napędy nie obsługują w ogóle funkcji przewijania. Dokładnie to jest ona oznaczona w specyfikacji jako opcjonalna, więc nie można mieć pewności, że została zaimplementowana przez danego producenta. Przycisk Stop raz naciśnięty w trakcie odtwarzania zatrzymuje je, drugi raz wybiera pierwszy utwór na płycie, trzeci raz wysuwa tackę z napędu. Jeśli tacka została wysunięta w ten sposób, to można też ją wsunąć, ale już nie ma takiej możliwości, gdy przełączymy na drugi napęd i z powrotem. Ponieważ autor powyższych kitów przewidział możliwość opcjonalnego podłączenia procesora audio po magistrali I2C i wyprowadził na płytce sterownika dwa wyjścia pomyślałem, że skoro i tak nie są używane to można jest wykorzystać w inny sposób. I tak na pinie 16 (SCL) wyprowadzony jest sygnał wyboru napędu, +5V dla CD1 i 0V dla CD2, a na pinie 17 (SDA) sygnał mute/standby, +5V wyciszenie aktywne, 0V nieaktywne. W kicie AVT941 nazwy SCL i SDA są zamienione. Sygnały te można wykorzystać na przykład do przełączania selektora wejść w przedwzmacniaczu lub wyciszania wzmacniacza, gdy odtwarzanie jest zatrzymane. Jeśli do tych wyjść jest już podłączony jakiś układ należy go odłączyć przed uruchomieniem.

    Nowa wersja była testowana z następującymi napędami:
    - CD-ROM LG CRD-8483B
    - CD-ROM LG CRD-8522B
    - CD-ROM LG GCR-8523B (*)
    - CD-RW LITE-ON LTR-32125W (*)
    - DVD-RW SAMSUNG SH-S162L (*) – napęd czasami się zawiesza
    - DVD-ROM LG GDR-8164B – nie współpracuje ze sterownikiem!
    - CD-ROM ASUS CD-S520B2 (*)
    - CD-RW LG GCE-8527B (*)
    gdzie (*) oznacza, że funkcja CD-TEXTu jest dostępna

    Mam nadzieję, że nowe oprogramowanie będzie lepiej spełniało swoje zadanie i działało możliwie niezawodnie z jak największą liczbą napędów. Wszelkie uwagi, komentarze i sugestie mile widziane. Na koniec podziękowania dla kolegi mdm150 za pomoc w testowaniu programu.
    Załączniki:

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Chroost
    Poziom 13  
    Offline 
    Chroost napisał 129 postów o ocenie 403, pomógł 1 razy. Jest z nami od 2003 roku.
  • PCBway
  • #2
    djpeterek
    Poziom 23  
    Witam
    Kolego Chroost chciałbym się dowiedzieć pod względem elektroniki który kit jest lepszy AVT2660 czy AVT941. Pytam ponieważ w wakacje przymierzałem się do zbudowania AVT941 ale nie miałem czasu. A pot ej publikacji oprogramowania jestem pod wrażeniem i nie wiem co wybrać.
    pozdrawiam
  • #3
    Chroost
    Poziom 13  
    Porównując ceny ze sklepu to bardziej opłaca się kupić kit AVT941, bo nie dość, że jest ciut tańszy to na dodatek nowszy i trochę bardziej rozbudowany, ale tylko pod warunkiem, że faktycznie da się kupić za tą cenę i jest dostępny. Warto by się o to zapytać przed ewentualnym złożeniem zamówienia, bo polityka AVT jest taka, że niejednokrotnie mają w ofercie coś czego jeszcze nie da się kupić i trzeba czekać na to miesiąc lub dwa, po czym nawet cena może się zmienić. Bardziej szczegółowe różnice pomiędzy nimi wymieniłem w artykule.
  • #4
    mdm150
    Poziom 26  
    Faktycznie ten avt941 jest nieco tańszy od avt2660. Jakiś czas temu było odwrotnie-avt941 był nieco droższy od tego avt2660. Do listy testowanych napędów można dorzucić cdrom ASUS CD-S520B2 i cdrw LG GCE-8527B. Obydwa obsługują cd-text. Przy czym ten cdrom asusa, mimo że jest to nówka prosto ze sklepu,jest dość kapryśny co do płyt cd. Z niezadrapanymi płytami radzi sobie dobrze i nie zauważyłem żadnych istotnych problemów . Z zadrapanymi jest już nieco gorzej, bo kaprysi, potrafi nawet zawiesić całość. Nieco lepiej już radził poprzednik zreszto wymontowany już z mojego playera (teraz siedzi tam nieszczęsny asus) cdrom lg CRD-8522B. Co się tyczy pilotów to nie musi być koniecznie pilot od tv skoro się da zaprogramować inne piloty, byleby obsługiwały standard rc-5. Testowałem piloty na drugim playerku co poszedł na dawcę (do testów, na szybkiego wrzuciłem lcd i proca bo akurat miałem już na stanie w swoich zapasach).
  • #5
    zasoby
    Poziom 23  
    Przeniesiono w właściwe miejsce.
  • #6
    Glinek
    Poziom 12  
    W jaki sposób reguluje się głośność? Pokrętłem na obudowie? Czy istnieją inne stosunkowo proste możliwości?
  • PCBway
  • #7
    Chroost
    Poziom 13  
    Sterownik nie ma możliwości regulowania głośności, ponieważ przewidziane jest, że do napędu będzie podłączany oddzielny układ z własną bardziej zaawansowaną regulacją, na przykład na procesorze dźwięku. Teoretycznie istnieje możliwość regulacji głośności bezpośrednio w napędzie przez wysłanie specjalnych komend, ale jest to funkcja opcjonalna, a więc nie każdy producent napędu musi ją implementować. Na dodatek liczba poziomów regulacji może być różna, co dodatkowo utrudnia sprawę. Często poziomów regulacji jest tylko kilka lub co najwyżej kilkanaście.
  • #8
    george2002

    Poziom 20  
    Witam, i na wstępie wielkie uznanie dla autora za oprogramowanie, teraz można użyć sterego wolnego cd-roma do odtwarzania muzyki np w samochodzie le mam pytanie czy istnieje możliwość dostania kodu w postaci pliku *.bas ?ponieważ chciałbym zaimplementować cd-rom w własnym media playerze lan mp3 itp brakuje mi tylko obsługi cd-rom z cd-textem :)

    Pozdrwiam
    Grzegorz
  • #9
    Chroost
    Poziom 13  
    Kodów źródłowych do wersji 3.0 nie udostępniam, poza tym została ona napisana w języku C, ponieważ w Bascomie prawdopodobnie nie udałoby się stworzyć tak wydajnego kodu. Natomiast źródła w Bascomie do wersji 2.0 dostępne są pod adresem http://www.edw.com.pl/ftp/avt2660soft.zip .
  • #10
    koziorozec
    Poziom 17  
    czy można sterować wszystkimi funkcjami bez pilota ? to jest dla mnie istotne ..
  • #11
    Chroost
    Poziom 13  
    Tak. Za pomocą samych przycisków można obsługiwać więcej funkcji niż pilotem, bo chociażby za pomocą samego pilota nie da się zmienić ustawień CD-TEXTu.
  • #12
    koziorozec
    Poziom 17  
    no to świetnie :) może ma ktoś zmontowany moduł na sprzedaż ?
  • #13
    koziorozec
    Poziom 17  
    no i udało mi się kupić ten moduł , tylko ze musiałem go sam złożyć .. nic to , nie jest tego za wiele i w 20 minut był złożony .. ale że potrzebny mi się CD do zastosowań estradowych , postanowiłem to upchnąć w obudowę rakową 19' , podczas uruchamiania nie fortunnie uszkodziłem stabilizator impulsowy, a z 7805 strasznie było trudno odprowadzić ciepło i nie chciało mi się wyprowadzać go poza płytkę , wykorzystałem zasilacz ze starego DVD i oczywiście obudowę z ów odtwarzacza, rezultaty są na fotkach .. mam zamiar jeszcze wydrukować sobie jakieś czołówki , żeby oznaczenia klawiszy były jakieś ludzkie , ale to jak znajdę chwilę czasu , puki co , odtwarzacz spisuje się całkiem dobrze ..

    ,, aa , poszukuje kogoś kto by mi sprzedał zaprogramowanego mikroprocesorka z tym nowym programem .. może ktoś z was miał by ochotę zakupić i wrzucić nowy soft ? oczywiście zapłacę , potrzebuje 2 sztuk ..

    Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD Alternatywny soft do sterownika CD AVT2660 (AVT941) CD-TEXT i 2xCD
  • #14
    mdm150
    Poziom 26  
    >koziorozec
    Całkiem przyzwoicie zacząłeś swój projekcik. Tak się składa, że ja mieszkam w okolicach B-stoku. :) Zapewne mógłbym ci wrzucić soft do istniejącego już u ciebie procka. Jak coś to na PW.
  • #15
    Lechito
    Poziom 12  
    Ja mam problem z zaprogramowaniem pilota.
    Zatrzymuje mi się na press key for stop i nie wiem co robić wciskałem klawisze na klawiaturce i na pilocie i nic zero postępu.
    Co może być powodem nie działania??
  • #17
    Chroost
    Poziom 13  
    Sterownik może współpracować tylko z pilotami, które wysyłają kody w standardzie RC5.
  • #19
    Benji01992
    Poziom 9  
    Hy!
    I would like a controll cd-rom with avr mcu.In one hungaryan forum i find a description about this. I follow this description and write the program in Basic.
    I would like cd-rom tray eject. My program is not work.
    Have someone any idea how can I the tray eject?
    My program is here:
    Code:

    $regfile = "m8535.dat"
    $crystal = 4000000

    Dim Bsy As Bit , Drq As Bit

    _reset Alias Portb.0
    _iow Alias Portb.1
    _ior Alias Portb.2
    _cs0 Alias Portb.3
    _cs1 Alias Portb.4
    _da0 Alias Porta.0
    _da1 Alias Porta.1
    _da2 Alias Porta.2

    _bsyled Alias Porta.3
    _drqled Alias Porta.4

    _data0 Alias Portd.0
    _data1 Alias Portd.1
    _data2 Alias Portd.2
    _data3 Alias Portd.3
    _data4 Alias Portd.4
    _data5 Alias Portd.5
    _data6 Alias Portd.6
    _data7 Alias Portd.7
    _data8 Alias Portc.0
    _data9 Alias Portc.1
    _data10 Alias Portc.2
    _data11 Alias Portc.3
    _data12 Alias Portc.4
    _data13 Alias Portc.5
    _data14 Alias Portc.6
    _data15 Alias Portc.7

    _bsy Alias Portd.7
    _drq Alias Portd.3

    Config _reset = Output
    Config _bsyled = Output
    Config _drqled = Output
    Config _da0 = Output
    Config _da1 = Output
    Config _da2 = Output
    Config _cs0 = Output
    Config _cs1 = Output

    _reset = 1


    'Főprogram

    'Hardware reset
    Waitms 200
    _reset = 0
    Waitms 200
    _reset = 1
    Wait 5


    'Státusz regiszter címzése
    _da0 = 1
    _da1 = 1
    _da2 = 1
    _cs0 = 0
    _cs1 = 1

    'Olvasás
    _ior = 1
    _iow = 1
    Config Portd=Input
    Config Portc = Input
    Do
    _ior = 0
    Waitms 1
    _bsyled = 1
    _drqled = 1
    Loop Until _bsy = 0 And _drq = 0
    _ior=1
    'Bsy és Drq bitek ellenőrzése
    _bsyled = 0
    _drqled = 0
    Config Portd=Output
    Config Portc=Output
    _ior=1
    _iow=1
    Portd = &H08
    Portc = &H00
    Waitms 10
    _iow=0
    Waitms 100
    _iow=1
    'Várakozás a szoftweres reszet után
    Config Portd=Input
    Config Portc=Input
    Do
    _ior=0
    Waitms 1
    _bsyled = 1
    _drqled = 1
    Loop Until _bsy = 0 And _drq = 0
    _ior = 1
    _bsyled = 0
    _drqled = 0
    Config Portd=Output
    Config Portc=Output
    _drqled = 0
    'Start unit
    _ior=1
    _iow=1
    Portd = &HA0
    Portc = &H00
    Waitms 10
    _iow=0
    Waitms 100
    _iow=1
    Config Portd=Input
    Config Portd = Input
    Do
    _ior=0
    Waitms 1
    _drqled = 0
    Loop Until _drq = 1
    _ior = 1
    _drqled = 1
    Config Portd=Output
    Config Portc=Output
    'Szo 1-2
    _iow=1
    Portd = &H1B
    Portc = &H00
    Waitms 10
    _iow=0
    Waitms 100
    'Szo 2-3
    _iow=1
    Portd = &H00
    Portc = &H00
    Waitms 10
    _iow=0
    Waitms 100
    'Szo 4-5
    _iow=1
    Portd = &H02
    Portc = &H00
    Waitms 10
    _iow=0
    Waitms 100
    'Szo 6-7
    _iow=1
    Portd = &H00
    Portc = &H00
    Waitms 10
    _iow=0
    Waitms 100
    'Szo 8-9
    _iow=1
    Portd = &H00
    Portc = &H00
    Waitms 10
    _iow=0
    Waitms 100
    'Szo 10-11
    _iow=1
    Portd = &H00
    Portc = &H00
    Waitms 10
    _iow=0
    Waitms 100
    _iow=1
    _drqled = 0
    _bsyled = 0
    End

    The hungaryan description is here:
    Cytat:

    Szóval a lemeztálca...
    1. Bekapcsolásnál nyomj egy hardveres rezetet (IDE 1-es láb logikai 0-ra). Kb. 200ms a rezet idő és ugyanennyi ideig hagyd magához térni.

    2. A Státus regiszterben figyeld BSY és DRQ biteket, várd meg míg logikai 0 lesz.
    A státusz regisztert a következőképp címezheted: DA0=1, DA1=1, DA2=1, CS0=0, CS1=1.
    Olvasáskor ez a státusz regiszter címe, íráskor pedig itt találod Control regisztert. Szóval kiküldöd a címet (IOR és IOW lábak logikai 1 szinten legyenek), majd IOR lábat 0-ra húzod, és beolvasod a regiszter tartalmát. A beolvasáshoz 10us bőven elég, vagyis IOR 0-ra 10us-ot vársz, közben beolvasol, majd IOR 1-re.

    3. Ha DRQ=0 és BSY=0 jöhet egy szoftveres rezet. Ehhez a a Control regiszter kell, tehát a cím ugyanaz, mint a Státusz regiszternél, csak most az IOW lábbal kell eljátszani a dolgot. A regiszterbe írj be egy 08h értéket, majd várakozz ~100ms-ot.

    4. Most jön a Start Unit, de előtte ki kell küldened a Control regiszterbe egy A0h értéket, hogy a meghajtó tudja azt, hogy Command Packet fog jönni (nemes egyszerűséggel ).
    A Start Unit felel a lemeztálca működtetéséért és a lemez beolvasásáért.
    Szóval Control regiszterbe A0h érték küldése, majd az alsó 8bájtra 1Bh-t küldesz, a felső 8bájtra 00h-t... ezzel kész is van az első szó beírása. A második szó két bájtja 00h. A következő szó alsó bájtjának, alsó két bitje a lényeg, a bájtba írj be 02h-t. Ez leállítja a lemezt, majd kiadja. A maradék szavak mindegyike 00h, vagyis nem használt.
    Tehát valami ilyesmi:
    0.byte=0x1B // OPCODE
    1.byte=0x00

    2.byte=0x00
    3.byte=0x00

    4.byte=0x02 // Load/Unload
    5.byte=0x00

    6.byte=0x00
    és így tovább egésszen 11-ig

    a 0-1, 2-3, stb. bájtokat párhuzamosan kell beírni a megfelelő IDE vonalakon (szavas beírás).
    Érdemes mindkét bájtot kitenni a mikrovezér portjaira és ha kint van akkor kezdeni a küldést (IOW=0).

    Az még kimaradt, hogy a A0h Control regiszterbe írása után, de még a parancs kiadása előtt érdemes megnézni a Státusz regiszterben DRQ-t, és csak akkor küldeni a csomagot, ha DRQ=1.

    Ha jól programozod, akkor ki fogja nyitni a lemeztálcát.
    Persze a dolog szépséghibája, hogy SEEK-et most nem nézzük (az egy bonyolultabb történet, nekem is csak most sikerült tökéletesen megoldani), ezért a szoftveres rezet után várakoztasd a programot legalább 10 másodpercig... ennyi idő alatt elvileg végez.

    Thanks the answers.
    Benji
  • #20
    w_pepe
    Poziom 11  
    koledzy testował ktoś napędy z laptopów ?
  • #22
    w_pepe
    Poziom 11  
    To jak złoże te cudo to pobawię się z napędami slim ale interesowało by mnie żeby to cudo czytało też mp3, przypominam sobie że parę lat temu był temat Jampa ale nie pamiętam czy czytał zwykłe płyty czy tylko mp3
  • #23
    mdm150
    Poziom 26  
    W przypadku obsługi mp3 wymagana byłaby gruntowna przeróbka sterownika łącznie z dobudowaniem sprzętowego dekodera mp3 .
  • #25
    george2002

    Poziom 20  
    marcin_oizo napisał:
    Witam! Temat stary ale jary. Pytanie: czy układ 74hc573 można zastąpić 74hct573 w tym urządzeniu?
    Pozdrawiam.

    Hmm niewiele to pomoże zapewne ale hc od hct różni się napięciami logiki czyli wejść i wyjść tego układu, hc jest na większe zakresy z hct na ttl czyli do max 5V ale niech się wypowie ktoś co zna ten schemat i czy można zamienić ;)
  • #26
    mdm150
    Poziom 26  
    Ktoś wyżej się pytał czy kostka 74hc573 może zostać zastąpiona wersją hct. Można tak zrobić , właśnie u siebie mam wersję hct i działa.
  • #27
    chris541
    Poziom 1  
    Prosił bym użytkownika Chroost o kontakt!
  • #28
    eddy39
    Poziom 9  
    Witam wszystkich

    Mam pytanie czy można gdzieś jeszcze nabyć zestaw sterownika CD-ROM np. AVT 941 lub podobny? Może ktoś ma do odsprzedania?
    Zestawy zostały już wycofane z produkcji... Trochę późno się tym tematem zainteresowałem... :(
  • #30
    eddy39
    Poziom 9  
    W firmie kamami mają nieaktualne produkty na swojej stronie. Zamówiłem tam zestaw AVT941. Anulowali mi zamówienie z powodu braku na stanie produktu i niemożności sprowadzenia jego ponieważ został on wycofany ze sprzedaży. Pytałem się też o ten drugi zestaw dostałem taką samą odpowiedź