HACK NAPEDU DVD by ELEKTRON Spis zawartości: ==================================================================== 1. Pozytywka (dir) - Folder projektu grania melodyjki 2. Minutnik (dir) - Folder projektu licznika w dół/górę na 7 segmentowym wyświetlaczu 3. LCDTest (dir) - Folder projektu obsługi wyświetlacza ze sterownikiem HD44780 4. BLINK (dir) - Folder najprostszego na świecie programu - migania LED 5. ObliczanieTimera.ods (file) - Arkusz do obliczania wartości dla timera w trybie 16 bit 7. Schematy.pdf (file) - Schematy wszystkich projektów 8. prology_dvd-500h.pdf (file) - Oryginalny arkusz danych jakiegoś DVD 9. README.txt (file) - TEN plik ==================================================================== Opis 1. Pozytywka to projekt grania melodyjki z wykorzystaniem wbudowanego kontrolera napędu stacji CD/DVD opartej na układzie M5705 ALI. Tablice przechowują nuty (jedna wartości dla konfiguracji timera, druga - przybliżony czas trwania nuty). W projekcie wykorzystywany jest tylko jeden pin cyfrowy (patrz schematy.pdf) Aby zmodyfikować melodię, należy przeliczyć wartości dla konfiguracji timera (na podstawie załączonego arkusza kalkulacyjnego) Długość melodii to 54 nuty. Można to zmienić, zmieniając wartość w pętli for. 2. Minutnik to prosty program wykorzytujący zaledwie 4 piny cyfrowe do wysterowania wyświetlacza 7-seg. ze wspólną katodą. Dane są przesyłane szeregowo. Tablica przechowuje kolejno odpowiednie kombinacje wł/wył. segmentów dla cyfry. Prawidłowe sterowanie wyświetlaczem, by uniknąć tzw. duszków, wymaga operowania segmentami podczas odłączonej wspólnej elektrody. W pętli for dochodzi do inkrementacji/dekrementacji zmiennej, która następnie jest dzielona na jednostki i dziesiątki. Każda z cyfr zostaje następnie wyświetlona na kolejnych miejscach wyświetlacza. Z powodu braku pinów, wykorzystano rejestr przesuwny 74HC164. Pin clear nie został wykorzystany dla oszczędności pinów. Czyszczenie rejestru odbywa się przez podanie wartości 0 na pin DATA, następnie wykonanie 8 cykli przejścia ze stanu wysokiego na niski 7x(High, Low) na pinie CLK. 3. LCDTest zawiera program, który bez stosowania bibliotek, steruje popularnymi wyświetlaczami alfanumerycznymi w standardzie HD44780. Z powodu braku pinów, wykorzystano rejestr przesuwny 74HC156. Przed przesłaniem znaków, należy dokonać inicjalizacji wyświetlacza - przesłaniu kilku bajtów w odpowiedniej kolejności. Pomiędzy przesyłaniem kolejnych bajtów konfiguracyjnych należałoby odczekać jakieś 100ms, jednak praktyka pokazuje, że większość wyświetlaczy akceptuje również naturalnie występujące niewielkie opóźnienia, wynikające z wykonywania kodu. 4.BLINK - Jaki jest blink, każdy widzi. Miganie LED. Podstawa podstaw, początek programowania jakiegokolwiek mikrokontrolera. Na jego podstawie są tworzone wszytkie inne programy. ==================================================================== Uwagi do obsługi KEIL uVision5 Instrukcja tworzenia nowego projektu Pobierz i zainstaluj Keil uVision5 ze strony producenta. Program w wersji darmowej posiada szereg ograniczeń, które nam nie przeszkadzają, uruchom go. W górnym pasku FILE EDIT VIEW.... wybierz PROJECT >>>>New uVision Project... Otworzy się nowe okienko. Wybierz sobie jakieś jedno miejsce na wszystkie swoje projekty (np. Pulpit, folder PROJEKTY). Utwórz najpierw w tym miejscu folder o nazwie najlepiej takiej samej jak projekt. Wewnątrz tego folderu zapisz nowy projekt pod odpowiednią nazwą. Przykład: Pulpit |==Projekty | |==TurboProjekt | | |==TurboProjekt.uvproj ... ... ... Środowisko utworzy sobie niezbędne pliki, foldery. Po zatwierdzeniu, otworzy się kolejne okienko, tym razem z wyborem urządzenia (salaka), którego zamierzamy programować. Wszystkie są bardzo podobne, ale diabeł tkwi w szczegółach. Część z nich będzie się różniła SFR, dodatkowymi rejestrami czy sposobem uruchamiania się (wyłączenie watchdog itp). Do naszego przypadku wybieramy z zakładki Acer Labs >> M6759. W toku eksperymentów, ta opcja jest najbliższa oryginałowi. Po zatwierdzeniu, otrzymamy monit z pytaniem, czy chcemy załączyć plik STARTUP.A51. Tak, chcemy. Tworzymy nowoy plik: File >>new. By aktywować kolorowanie składni, od razu zapisujemy (choćby pusty) plik w naszym folderze projektowym plik o takiej samej nazwie jak projekt, tylko z rozszerzeniem .C (np. TurboProjekt.C). Od tej pory mamy aktywne kolorowanie składni. Po napisaniu kodu, ponownie go zapisujemy. By można go skompilować, trzeba go ręcznie dodać do projektu. Po lewej stronie mamy kontrolkę z drzewkiem folderów. Rozwijamy Project: TurboProjekt >> Target 1. Prawym przyciskiem myszki klikamy na folder Source Group 1. Wybieramy opcję "Add existing Files to Group 'Source Group 1'". By uzyskać owoc naszej pracy, w pasku, obok opcji "Project", wybieramy Flash >> Configure Flash Tools. Z zakładek Device, Target, Output, wybieramy OUTPUT. Zaznaczamy okienko checkbox "Create HEX File". Dzięki temu, nasz program zostanie skompilowany do pliku HEX. Klikamy OK. Dla pewności, zapisujemy wszystko. Nadchodzi element kulminacyjny, czyli kompilacja kodu. Klikamy na klawiaturze F7 lub pod okienkami górnego paska wybieramy taką, z symbolem jednej kartki i jednej strzałki. Jeśli nie zrobiliśmy żadnego błędu, Powinniśmy uzyskać 0 ERRORów. Nasz gotowy wsad do zaprogramowania znajduje się w katalog naszego projektu >>Objects>>nazwaprojektu.HEX Jest to właściwy plik, którym programujemy scalaka. Darmowa wersja keil zawiera potężny offset, który uniemożliwia zaprogramowanie małych scalaków (nie mieści się w 2kB) Należy mieć to na uwadze, przy dalszym rozwijaniu skrzydeł. Plik HEX w oknie programatora może wydawać się pusty (0xFF). Jest to tylko wina właśnie tak dużego offsetu. Pierwsze trzy bajty informują nas, gdzie zaczyna się program: 02- LJMP (długi skok), dwa kolejne, to adres, gdzie ma skoczyć. Tam znajdziemy dalsze instrukcje dla procesora. ======================================================================================= END