Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 15:15


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 13 sty 2019, o 19:12 
Offline
Użytkownik

Dołączył(a): 26 sty 2014
Posty: 119
Lokalizacja: Łódż
Pomógł: 1

ObrazekObrazekObrazekObrazekObrazekObrazekObrazekObrazek

Przedstawiam zegarek VFD na bazie DVD-Playera DVP3042/12 firmy Philips

Od jakiegoś czasu w tzw dużym pokoju brakowało zonie zegarka. Dawno temu już zrobiłem zegar vfd na PCB z podobnego DVD ale problemem była obudowa a konkretnie brak pomysłu na nią. Jako ze tytułowy odtwarzacz lezy obok telewizora i zajmuje cenne miejsce to stwierdziłem ze pora aby w końcu miał okazje popracować i się przydać po kilku latach przerwy...
W projekcie użyłem kawałka płytki uniwersalnej oraz wykorzystałem ATTINY 26 który miałem oraz gotowy moduł zegara RTC kupiony na znanym serwisie aukcyjnym Dodatkowo w tylnej ściance zamontowałem gniazdko DB9 które służy do podłączenia programatora aby za każdym razem nie otwierać obudowy gdyż program jest dość prymitywny i będzie poprawiony a i może uda się dodać jakieś dodatkowe funkcje.
Program działa następująco - po podaniu zasilania odczytuje w przerwaniu co 1s czas z RTC i wysyła na wyświetlacz. Z każdym obiegiem pętli programowej na jej początku jest sprawdzane za pomocą funkcji "klawisz" czy nie został któryś naciśnięty i kontrolowana jest zmienna o nazwie global która steruje praca całego zegara i jego poszczególnymi funkcjami. Umożliwia tez poprzez proste zwiększenie jej zakresu rozszerzenie menu i dodanie innych funkcji wg potrzeb np przełączenie z trybu 24h na 12 AM/PM.
Menu jest zbudowane na bazie 3 przycisków pochodzących z panelu dekodera Echostar 616 Polsatu . Podczas normalnej pracy wciśniecie 1 (ON/OFF) powoduje wejście do menu i wyświetlenie godziny 12:00:00 na wyświetlaczu. Pozostałe przyciski tj 2 (góra) oraz 3 (dół) pracują jako przyciski +/- do ustawiania wartości godzin w zakresie 0-23. Po ustawieniu godzin wciskamy znowu przycisk 1 i ustawiamy analogicznie minuty w zakresie 0-59. Po trzecim wciśnięciu przycisku sekundy zostają ustawione na 0, analogicznie ustawiamy dni miesiące i rok a po kolejnym użyciu przycisku ON/OFF czas zostaje wpisany do RTC a zegar zaczyna normalna prace.
Podczas normalnej pracy zegara przyciski 2 i 3 maja swoje dodatkowe funkcje -przycisk 2 wyświetla date na 5s, a przycisk 3 miał regulować kontrast VFD ale o tym dalej. Wyświetlanie dwukropka na wyświetlaczu jest realizowane na podstawie tablicy zawierającej obraz segmentów do zapalenia. Pierwsze 10 cyfr jest bez dwukropka, kolejne 10 z dwukropkiem i jest używane w zależności od sekund (operacja modulo 2). W moim przypadku użyłem programowego SPI ze względu na attiny i nie mieszałem z wysyłaniem danych do sterownika VFD wiec w tym przypadku obrazy cyfr w tablicach maja zamienione starszy bajt z młodszym i najstarszy bit z najmłodszym a segmenty inna kolejność. Zajeło mi trochę czasu rozszyfrowanie tego wiec rozpisałem tylko cyfry. Kolejność jest podana na foto . Oczywiście nic nie stoi na przeszkodzie aby rozbudować tablice znaków o wszelkie inne możliwe znaki. W moim przypadku ważny był jedynie(na ta chwile) aktualny czas i to aby zegarek nie dawał w nocy po oczach. Seryjne szkło które emituje białe światło doskonale spełnia swoja role. Po ciemku i tak jest doskonale czytelny nawet z kilku metrów Program napisany na podstawie BB , poradników pana Mirka oraz własnej inwencji .Funkcje do obsługi VFD napisałem na podstawie bibliotek z forum Atnel ale w sumie wykorzystałem tylko podstawowe funkcje typu komenda/dana. Resztę opracowałem samodzielnie.
Jest to jeden z moich pierwszych programów w dodatku kleconych przez jakiś rok jak nie lepiej w dodatku na raty wiec zdaje sobie sprawę ze można(a nawet trzeba) to zoptymalizować bardziej. Na pewno do wyrzucenia są _delay_ms, poprawić można tez na pewno funkcje klawisz i funkcje dwukropka - nie za pomocą 2 zestawów tablic znakowych. Program z wersji testowej zbudowany na zestawie uruchomieniowym powstał na atmega 16. Przepisałem go na attiny z drobnymi zmianami i następnie zabrałem się za lutowanie płytki z UC, i rtc, itd.
Podczas instalacji w docelowym miejscu pojawiły się kolejne 2 problemy. Pierwszy to jak poinformować nasz UC ze chcemy właczyć odtwarzacz - w tym momencie musimy przestać przecież wysyłać nasze dane na wyświetlacz. W pierwszym momencie planowałem uzyć przycisku STANDBY-ON i przerwania mikrokontrolera do wykrycia faktu jego wciśnięcia. Niestety okazało się ze pomimo iż sygnał jest w złączu do którego wpinamy to panuje na nim napięcie 2,5V (naciskając go zwieramy do masy) wiec nie wiem czy attiny zasilany 5V wykryłby to jako stan wysoki czy w ogóle jako zmianę stanu.
Drugi problem powiązany z pierwszym to fakt ze moduł wyświetlacza korzysta (w tym akurat przypadku i w tym konkretnym modelu ) z napiec 3,3V , -24V i +12V do zasilania sterownika VFD które potem najprawdopodobniej jest obniżane za pomocą diody Zenera do 5V. Do płytki VFD na panelu przednim nie dochodzi fizycznie napięcie 5V z zasilacza a płytka nie posiada żadnego wbudowanego stabilizatora. Tak wiec w trybie STANDBY kiedy zegarek ma pracować i pokazywać czas, napięcie 12V i pośrednio 5V jest odcinane przez elektronikę sterująca. 3.3V i -24V są obecne cały czas. Sprawa na szczęście okazała się prostsza niż myślałem - obok złącza znajduje się tranzystor typu 8550 oznaczony jako Q33 który to wystarczy usunąć i zewrzeć C z E - wtedy mamy już napięcie zasilające na sterownik VFD :D. Dodatkowo skoro ten tranzystor jest sterowany w momencie włączenia odtwarzacza to sygnał z jego bazy możemy wykorzystać do naszych celów :) Wprawdzie ma wartość około 9 V ale nie jest to problem- 6 szeregowo podłączonych diod prostowniczych załatwia sprawę i zbija do około 4,8V co już bez problemu można wykryć jako stan wysoki.
Zasilanie 5V pobrałem z wejścia układu scalonego BE572L które idzie tam bezpośrednio ze złącza zasilacza. Może to mało eleganckie ale nie chciałem stosować dodatkowego stabilizatora na swojej płytce, a pcb odtwarzacza pomimo tego ze jest sporo wolnych miejsc gdzie można by się podłączyć praktycznie bezinwazyjnie to nigdzie 5 V nie występuje.
Zmuszony byłem również zastosować układ SN74HC245N - DVD jest zasilanie cały czas nawet w trybie STANDBY a ori sterownik po podpięciu AVR nie jest w stanie wysterować wyświetlacza. Dodatkowo na liniach sterujących utrzymuje stan wysoki z związku z czym musiałem dołożyć osobne przyciski z tyłu. Początkowo planowałem wykorzystać standardowe przyciski OPEN/CLOSE , PLAY/PAUSE oraz STOP. Niestety wymaga to odczytu danych ze sterownika co w w/w układzie połączeń jest niemożliwe. Można oczywiście przeanalizować PCB i odciąć zasilanie głównego układu ale po kilku dniach walki z uruchomieniem wyświetlacza z ori elektronika wolałem wywiercić kilka dziur z tyłu obudowy :]

Teraz garść info odnośnie samych modułów VFD Philipsa.
Moduły z tych DVD maja niestety dziwne rozwiązane sterowanie po SPI - DO jest zwarte z DI i podciągniete do +5V. Tak jest w 2 egzemplarzach które mam i piszą w internecie ze w innych typach DVD jest tak samo. Wymaga to specyficznej obsługi w porównaniu do zwykłego SPI.
Wyjścia do zasilania 4 szt LED są nie wykorzystane i zwarte ze sobą.
Podobnie nie wykorzystane i zwarte są porty od 3 dodatkowych przycisków. Pierwszy z nich (K1) wisi w powietrzu.
Jedyna dostępna dodatkowa funkcja to matryca klawiszy wykorzystuje tylko lub aż 3 przyciski - dokumentacja podaje ze tablica ma rozmiar 3 bajtów ale na szczęście można odczytać tylko pierwszy bajt z danymi które nas interesują i resztę pominać - sterownik nie protestuje :D
W dokumentacji podany jest sposób włączenia tzw test mode. Niestety po jego uruchomieniu nic się nie dzieje - ktoś wie cokolwiek o tej dodatkowej opcji ?
Przy programowym SPI nie jest konieczne oczekiwanie czasu 1us pomiędzy rozkazem odczytu stanu klawiszy a samym odczytem. Dokumentacja zwraca na to szczególna uwagę.
Model DVP 3042/12 jest bardziej "ubogi" niż DVP 520/02 - w pierwszym zasilacz pracuje cały czas nawet jeżeli tylko jest podłączony do zasilania, w tym drugim cały zasilacz startuje dopiero po zwarciu odpowiednich pinów - coś jak zasilacz do PC. Dodatkowo w pierwszym elektronika jest sporo mniejsza w stosunku do obudowy a zasilacz mniejszej mocy.
W moim przypadku (DVP 3042/12) zastosowany sterownik VFD ET16312N data produkcji 48 tydzień 2005 roku nie reaguje na komendę zmiany jasności świecenia pomimo kilkunastu prób - zmiana czasu impulsu strobe, dodanie opóźnień itp. Na sterowniku CS16312N (DVP 520/02) data produkcji 33 tydzień 2006 który to według not katalogowych jest kompatybilny działa bez najmniejszego problemu. Na ET16312 kontrast jest ustawiony na maximum, reszta komend również działa. Może w wolnej chwili wymienię scalak odpowiedzialny za obsługę VFD. Pomimo kilkunastu prób nie udało się uruchomić tych funkcji.

Koszty budowy trudno określić ponieważ oprócz nowego procesora kupionego parę lat temu zakupiłem tylko SN74HC245N za chyba 1,5zł, reszta elementów z demobilu a kawałek płytki został z jakiegoś wcześniejszego projektu. Płytka kosztowała cala około 5-7zł. Procesor taktowany 8MGHz. Na schemacie nie rysowałem kondensatorów filtrujących. Rezystor 45K jest potrzebny aby procesor nie głupiał przy włączaniu DVD do normalnego użytku- bez niego czasem VFD nic nie pokazywał. Data jest pokazywana z litera R na końcu
UWAGA :
Program do działania wymaga bibliotek do programowego i2c których tutaj nie publikowałem. Jeżeli ktoś jest zainteresowany to mogę też dodać funkcje odczytu klawiszy ze sterownika VFD.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2019, o 21:45 
Offline
Użytkownik

Dołączył(a): 26 sty 2014
Posty: 119
Lokalizacja: Łódż
Pomógł: 1

ObrazekObrazekObrazekObrazekObrazek

Przedstawiam "ulepszona" wersje w/w zegarka. Po obejrzeniu poradników pana Mirka zaprojektowałem w końcu schemat elektryczny w eaglu i swoja pierwsza w życiu płytkę drukowana która następnie wykonałem metoda termo-transferu. Jak na pierwszy raz wyszła myślę całkiem dobrze- pomijając fakt ze z powodu jakiegoś dziwnego błędu nie moglem zastosować poligonów masy oraz sprawdziłem przy okazji mazak do obwodów drukowanych który zakupiłem gdzieś tak z 5 lat temu ;) W kilku miejscach płytka została podtrawiona ale nie wiem czy to wina tego ze toner nie przylepił się do płytki(kontrast wydruku ustawiony był na max) czy tego ze leżała kilka godzin w wytrawiaczu. Pocynowałem ścieżki i przejrzałem całość pod lupa oraz sprawdziłem połączenia. Jest w porządku. W każdym razie pierwsze koty za ploty i nie będę musiał się już męczyć na płytkach uniwersalnych jak do tej pory tylko muszę dopracować technologie. Na ta chwile wiem ze trzeba na pewno na początku dawać większe pola miedzi niż zastosowałem oraz bardzo dokładnie nakładać powłokę mazakiem ochronnym. W każdym razie zdobyłem cenne doświadczenie przed kolejnym projektem.
Ze zmian elektrycznych na ta chwile jest tylko inne przypisanie poszczególnych portów które wynikło podczas projektowania PCB. Z RTC skasowałem tez diodę led gdyż nie ma sensu aby świeciła w środku obudowy. Zredukowałem tez prędkość procesora do 4MGHz. Diodę prostownicza obok układu RTC zlikwidowałem już wcześniej - te chińskie moduły maja błąd i bateria jest ładowana a nie powinna. Zapomniałem o tym napisać poprzednio. Bibliotekę do tego modułu RTC znalazłem na jakimś forum arduino. Proponuje na starcie wywalić ze schematu modułu w ogóle pady z tej strony gdzie są 4 a do pinów VCC i masy w tym miejscu wlutować dodatkowy kondensator filtrujący zasilanie jak na foto.
Teraz muszę jeszcze zebrać się w sobie i w końcu dłubnąć program gdyż po dodaniu na starcie procedury przewijającej cyfry 0-9 co 250ms zabrakło miejsca na kolejne rzeczy program zajmuje teraz 1982 bajty.
Do chwili modyfikacji jak i po niej zegarek działa bezproblemowo.
PS Pin nr 4 podstawki procesora jest wydłubany z podstawki, płytka nie ma dziury w tym miejscu wiec zwarcia pomiędzy sygnałem Reset a PB3 nie ma jakby ktoś to zauważył ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2019, o 07:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

Elwood napisał(a):
z powodu jakiegoś dziwnego błędu nie moglem zastosować poligonów masy
A w jaki sposób próbowałeś je dodać?
Ja już dawno nie pracuję w eagle'u, ale z tego, co pamiętam, należy narysować obrys poligonu, zmienić mu nazwę na GND i użyć przycisku do przerysowania połączeń (ratsnet?)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2019, o 21:57 
Offline
Użytkownik

Dołączył(a): 26 sty 2014
Posty: 119
Lokalizacja: Łódż
Pomógł: 1

Marhef napisał(a):
Elwood napisał(a):
z powodu jakiegoś dziwnego błędu nie moglem zastosować poligonów masy
A w jaki sposób próbowałeś je dodać?
Ja już dawno nie pracuję w eagle'u, ale z tego, co pamiętam, należy narysować obrys poligonu, zmienić mu nazwę na GND i użyć przycisku do przerysowania połączeń (ratsnet?)

Jest tak jak piszesz. A ja wcześniej najpierw po kliknieciu w polygons nadawałem nazwe a potem dopiero rysowałem i uzywałem Ratsnet. Jak nadaje nazwę dopiero po narysowaniu to jest ok. Dzięki za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 paź 2019, o 12:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sie 2013
Posty: 33
Pomógł: 1

Witam,
Posiadam podobny moduł z DVD524/04, mieści się tam sterownik CS16312EN. Nie wiem jak dokonać odczytu z klawiatury...
Elwood napisał(a):
Jeżeli ktoś jest zainteresowany to mogę też dodać funkcje odczytu klawiszy ze sterownika VFD.

Jestem zainteresowany funkcja do odczytu z klawiatury :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 paź 2019, o 22:15 
Offline
Użytkownik

Dołączył(a): 26 sty 2014
Posty: 119
Lokalizacja: Łódż
Pomógł: 1

W najbliższym czasie postaram się wrzucić kod + opis - wszytko mam na kompie stacjonarnym w sypialni a nie chce teraz budzić zony. Będziesz musiał sprawdzić czy klawisze są podłączone identycznie jak w moim przypadku. Daj tez jakieś zdjęcia tego modułu bo w necie z tym slabo



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2019, o 11:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sie 2013
Posty: 33
Pomógł: 1

Tak wygląda moduł, znalazłem go w sieci.
https://produto.mercadolivre.com.br/MLB-1025564758-placa-display-dvd-philips-dvp530bk-40-dvp520-fcb2x-_JM



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2019, o 22:29 
Offline
Użytkownik

Dołączył(a): 26 sty 2014
Posty: 119
Lokalizacja: Łódż
Pomógł: 1

Dobra wiadomość to taka ze masz identyczny moduł jak ja testowałem czyli 40-DVP520-FBC2X. Do wykorzystania są 3 klawisze na dużej płytce. Czwarty(mała płytka) idzie do dużego złącza z pominięciem sterownika VFD. Proponuje tez odzyskać długi przewód od małej płytki i dać go w miejsce tego krótkiego od zasilacza- zdecydowanie ułatwia to pracę ;)
Dokumentacje używałem ta :
http://www.datasheetcatalog.com/datashe ... 6512.shtml
W moim projekcie używałem programowego SPI. W przypadku sprzętowego należy chyba przewidzieć w układzie zworę na golpinach w celu zwarcia MOSI z MISO. Nie można tego połączyć na stałe gdyż nie zaprogramuje się procesora... Pamiętaj ze DO i DI(piny 5 i 6) są zwarte razem i podciągnięte do VCC za pomocą rezystora 10K

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

możliwe są oczywiście tez inne kombinacje klawiszy np 1 z 3 itd, należy tylko policzyć sobie jaką liczbę zwróci wtedy funkcja.
Mam nadzieje ze rozjaśniłem sytuacje. W tym konkretnym przypadku wszystkie interesujące nas dane (3 bity) są zawarte w pierwszym odczytywanym bajcie choć sterownik ma dużo większe możliwości i cała matryca zajmuje aż 3 bajty. Regulacja kontrastu tez działa tutaj kulawo i mimo ze ma aż 7 stopni to najlepiej regulować ze skokiem co 2 pozycje - inaczej nie zauważysz praktycznie zmiany..
Podłączenie klawiszy :
Klawisz open/close pin 11(K1) sterownika VFD
Klawisz stop pin 12(K2)
Klawisz Play/Pause pin 13(K3)
drugi koniec jest na pinie 15 (S0/K0)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2019, o 09:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sie 2013
Posty: 33
Pomógł: 1

Funkcja działa. Dzięki :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 cze 2022, o 23:33 
Offline
Użytkownik

Dołączył(a): 26 sty 2014
Posty: 119
Lokalizacja: Łódż
Pomógł: 1

Małe info. Zegarek działa bez problemu do dzisiaj. Nawet baterii nie zmieniałem jeszcze. Około rok temu podczas pracy samego zegarka przetwornica zasilacza piszczała co było wyraźnie słyszalne. Po wymianie kondensatorów elektrolitycznych i przelutowaniu całości problem zniknął. Lecz nie od razu a dopiero po ok 2 dniach... Dodatkowo popsuł się sam laser - DVD nie czytało płyt, na szczęście udało mi się dorwać identyczny(co nie jest takie łatwe jeżeli chodzi o ten konkretnie model) i przerzucić cały napęd płyty. Lasery w tych urządzeniach niestety nie słyną z trwałości. Z oryginału nie idzie już niestety dostać. W najbliższym czasie będę planował dorobić odcięcie zasilania elektroniki kiedy zegarek pracuje. Oczywiście info się pojawi ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO