WTV020SD – jak to w końcu jest

5/5 - (2 votes)
fotka przedstawia nic innego tylko plątaninę kabelków ;-P

fotka przedstawia nic innego tylko plątaninę kabelków ;-P i przy okazji zestaw do znęcania się nad WTV020SD

Ciągnę dalej temat związany  z WTV020SD-20SS, i będę przedstawiać jak skomunikować się z modułem opartym na tym scalaku za pomocą Bascom AVR. Więc będzie o wtv020-sd Bascom. Układ posiada magistralę dwuprzewodową pozwalającą komunikować się z otoczeniem. Z poprzedniego opracowania WTV020SD-20SS prosty sposób na obszerne komunikaty i dźwięki wiem, że układ powinien pozwolić sterować się przez taką magistralę. Więc przyjrzę się jak to dokładnie jest. A tytuł … taki w związku z komentarzem kolegi BARTek. ;-P

Wiem też, że notki katalogowe chymm …. nie wzbudziły mojego zaufania, lecz na czymś trzeba bazować – przynajmniej na wstępie. W dodatku ta jedna jakaś niepełna się trafiła. Więc przyjmijmy, że sygnał zegarowy powinien być taktowany w zakresie „Clock cycle between 200µs to 1ms , we suggest 400µs” z czego wychodzi częstotliwość 5kHz do 1kHz, a rekomendowana to 2,5kHz. No to na początek są już jakieś dane wejściowe ;-D
Teraz trzeba obmyślać jak dane wypychać z µC do WTV020SD w Bascom. Żeby się przy okazji nie narobić ;-P Powiedzmy, że niech będzie to polecenie SHIFTOUT, które wydaje się do tego celu nadawać idealnie ;-). A to dlatego, że obsługuje dwa piny jeden jako CLK a drugi jako DATA OUT, a przy okazji ma dużo parametrów konfiguracyjnych. Dwa pierwsze nie powinny budzić niczyjej wątpliwości, gdyż są to pin z linią danych, oraz pin z zegarem taktującym. Kolejny opisany jest jako opcja i dotyczy kolejności wypychania słowa (od przodu lub od tyłu) i punktu inicjacji (dane wypychane podczas zbocza opadającego lub narastającego, sygnału taktującego). Kolejne parametry to ilość bitów do „wypchania” i opóźnienie w µs.
Wiemy też, że nazwy plików zbudowane są z cyfry dziesięciobitowej – maksymalny zakres 512, plus zero wiodące np. 0511.ad4, czyli można się domyślać, że należy wysłać 16 bitów w celu określenia numeru pliku, który ma zostać odtwarzany. W nocie V1.8 na wykresach przedstawiono 8 bitów danych ….
Pierwsza próba wysłania „prawidłowej ramki” nie dała spodziewanego rezultatu więc trzeba było odnaleźć analizator stanów logicznych podglądam pierwsze wyniki ...dla weryfikacji zdarzeń – swoją sprawą bardzo przydatne coś 😉 i niezastąpione. Widać pięknie, że polecenie SHIFTOUT działa i coś tam wypycha do układu dźwiękowego. Ale skoro układ dźwiękowy nie działa (nie gada) to znak, że najprawdopodobniej nie rozumie przychodzących danych tylko dlaczego … W związku z powyższym zacząłem się przyglądać przebiegom czasowym i dodatkowo wyczytałem w nocie, że po sekundzie bezczynności układ idzie „spać”, więc trzeba go budzić resetem … Dostosowałem połączenia uzupełniłem kod i coś zaczęło gadać … ale szybko okazało się, że ten reset jest do niczego nie jest potrzebny. Działanie, powiedzmy, że było dziełem przypadku, bo będąc pod wpływem oglądania przebiegów pododawałem wszędzie gdzie się da opóźnień czasowych. 😛

kawalek _notki WTV020SD v1.8Ponieważ był osiągnięty pierwszy efekt zacząłem analizować i testować wszystkie wytyczne czasowe i wyłapywać części wspólne dla różnych protokołów komunikacji obsługiwanych przez układ dźwiękowy. Oczywiście nie omieszkałem też wysterować go paczką danych ośmiobitowych … spodziewanego efektu brak, a moje założenia okazały się słuszne :mrgreen: ma być 16 bitów danych. Taaaaak wtedy to zacząłem też grzebać w swoim archiwum z notami katalogowymi 😳 i znalazłem plik  znakowany wersją 1.3 z tym, że w całości, a nie zakończenie, które udostępniłem w poprzednim artykule … kawalek notki WTV020SD v1.3Po dalszych eksperymentach okazało się, że zbawienny wpływ na to by moduł chętnie gadał ma kawałek przebiegu który zaznaczyłem czerwoną pętlą 😆 Jakbym szybciej trafił na ten akurat plik z opisem może mniej czasu kosztowało by mnie uruchomienie tego modułu, ale … jak zawsze experience – bezcenne jest. Układ zaczynał być bardziej posłuszny, a przebieg z prawidłowym rozkazem kształtował się następująco: test 3 - wynik spodziewany

Kolejne problemy spotkały mnie przy ciągłym – za koleją odtwarzaniem przygotowanych plików. Niemniej matka intuicja i poprzednie doświadczenia związane z eksperymentami na przebiegach czasowych dość szybko pozwoliły odnaleźć sedno i prawidłowo wysterować układ. Tak, że mogę powiedzieć w tej chwili sytuacja jest opanowana i z premedytacją steruję odtwarzaniem programowym modułu WTV020-SD Bascom. Oraz oczywiście mogę klikać do woli kilkoma przyciskami, przerywając lub wywołując nową akcję. Ciekawy jeszcze jestem możliwości programowego zatrzymywania odtwarzania i modyfikacji głośności drogą programową opisaną w punkcie 7.5.4. CODE DESCRIPTIONS, ale na nowe doświadczenia teraz nie czas …

Chyba pora na pokazanie kawałka kodu bo pewno wszyscy już z niecierpliwością czekają na niego jak na zaklęcia 😉

Heeee teraz to nawet wygląda przejrzyście … Wyjaśnienia może wymagać linia opisana przeze mnie

otóż bez tego kawałka układ nie odtwarzał wszystkich plików dźwiękowych prawidłowo, część kończyła się przerywana kolejnym, ledwo po rozpoczęciu odtwarzania. Jak dla mnie wynikało to z tego, że układ z jakichś przyczyn nie mógł wygrzebać się z wysterowaniem w odpowiednim momencie linii BUSY. Co skutkowało brakiem oczekiwania na zakończenie odtwarzania, i przejściem programu do odtwarzania kolejnego pliku. Wstawiając te opóźnienie i eksperymentując z jego czasem trwania okazało się, że myślałem słusznie. Oczywiście teraz tak pięknie i zwięźlę się opowiada o tym fakcie … nie mniej dobrze napisałem TERAZ ;-P

„luźne” uwagi:

Szkoda, że producent przygotował noty katalogowe tak dalekie od prawdy … albo opracowane w taki a nie inny sposób ;-P Mnie tam wyszło, że dla pewnego startu warto na wstępie ustawić odpowiednie linie w stan wysoki, oraz zepewnić odpowiedni sygnał inicjujący na lini CLK. W ten sposób nie powinno być problemów z uruchomieniem i obsługą WTV020-SD Bascom AVR.
Na zakończenie zamieszczę do obejrzenia wynik moich eksperymentów, oraz bardziej poprawną wersję noty katalogowej w wersji 1.3

A.D. 2015-03-08 Aby doprecyzować dodam na koniec jedną bardzo ważną uwagę. Powodzenie zależy od tego jaką wersję modułu zakupimy/otrzymamy.  Jak to najłatwiej sprawdzić? Ano jak stwierdziłem w pierwszej części opisu, jeśli nie da się regulować głośności na bezpośrednich wyjściach/wejściach modułu, wtedy posiadamy wersję do sterowania „z zewnątrz”. W przeciwnym wypadku komunikacja nie zadziała gdyż moduł jej nie obsłuży – posiada inną funkcjonalność. Na upartego można wtedy próbować sterować odtwarzaniem odpowiednio wysterowywując wejście NEXT.
Kolega BARTek „pod moim wpływem” dodatkowo sprawdził swój moduł i pisze:

… na szybko więc zadałem sobie trud podłączenia tego jeszcze raz. Niestety. Pyka tylko co sekundę, więc sprawdziłem wszystko dwa razy..i okazało się, że jak włączę nutkę jakąś Playem to mogę ściszać i zgłaśniać na tych pinach gdzie podłączone mam linie od mikrokontrolera. Tak więc chyba mój modulik jest jednak w wersji Player. …


nota katalogowa WTV020SD_V1_3.pdf (4139 pobrań )

Otagowano , , , , .Dodaj do zakładek Link.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

16 − 15 =

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.