Lampa VFD -> procesor AVR
Moderatorzy: gsmok, tszczesn, Romekd
- MKramer
- 250...374 postów
- Posty: 350
- Rejestracja: pn, 1 stycznia 2007, 19:13
- Lokalizacja: Wieliszew
- Kontakt:
Lampa VFD -> procesor AVR
Mam taki tylko troszkę lampowy problem, jednak wierzę, że uzyskam od Was pomoc.
Problem jest ciekawy. Jest sobie odtwarzacz CD Technics z wyświetlaczem lampowym VFD. Moim zadaniem jest odczyt numeru utworu i czas jego trwania (minuty i sekundy) i wyświetlenie tego na dużych wyświetlaczach LED w pewnym oddaleniu od CD.
Większość spraw już rozwiązałem, mam nawet gotowy prototyp, który w skrócie wygląda następująco. Dwa procesory ATTiny2313 (akurat takie mam), jeden odczytuje lampę VFD i przesyła 6 cyfr poprzez RS do drugiego procka, który wyświetla je na wyświetlaczach LED. Banał.... poza jednym szczegółem. Nie wiem jak "odczytać" lampę VFD.
W tym odtwarzaczu informacja wyświetlana jest multipleksowana. Dla mnie ważne są trzy pola (obszary ze wspólną siatką): pole numeru utworu, pole minut i pole sekund. W obrębie każdego z tych pól są dwa wskaźniki 7-segmentowe. Lampa sterowana jest standardowo impulsami 30V. W sumie więc jest 17 interesujących mnie wyprowadzeń - 14 z nich odnoszą się do segmentów obu cyfr, pozostałe 3 to identyfikacja świecącego pola.
Doradźcie jak ugryźć taki problem. Nie mam praktyki na tym polu i nie wiem jak się do tego mądrze zabrać.
Dzięki
Problem jest ciekawy. Jest sobie odtwarzacz CD Technics z wyświetlaczem lampowym VFD. Moim zadaniem jest odczyt numeru utworu i czas jego trwania (minuty i sekundy) i wyświetlenie tego na dużych wyświetlaczach LED w pewnym oddaleniu od CD.
Większość spraw już rozwiązałem, mam nawet gotowy prototyp, który w skrócie wygląda następująco. Dwa procesory ATTiny2313 (akurat takie mam), jeden odczytuje lampę VFD i przesyła 6 cyfr poprzez RS do drugiego procka, który wyświetla je na wyświetlaczach LED. Banał.... poza jednym szczegółem. Nie wiem jak "odczytać" lampę VFD.
W tym odtwarzaczu informacja wyświetlana jest multipleksowana. Dla mnie ważne są trzy pola (obszary ze wspólną siatką): pole numeru utworu, pole minut i pole sekund. W obrębie każdego z tych pól są dwa wskaźniki 7-segmentowe. Lampa sterowana jest standardowo impulsami 30V. W sumie więc jest 17 interesujących mnie wyprowadzeń - 14 z nich odnoszą się do segmentów obu cyfr, pozostałe 3 to identyfikacja świecącego pola.
Doradźcie jak ugryźć taki problem. Nie mam praktyki na tym polu i nie wiem jak się do tego mądrze zabrać.
Dzięki
Pozdrawiam
Mariusz Kram
Mariusz Kram
- Tomasz Gumny
- 1875...2499 postów
- Posty: 2301
- Rejestracja: pn, 1 stycznia 2007, 23:18
- Lokalizacja: Trzcianka/Poznań
- Kontakt:
Re: Lampa VFD -> procesor AVR
Zakładam że pierwsze "odczytać" dotyczy podłączenia a drugie interpretacji tego co odczytano?MKramer pisze:[...]jeden odczytuje lampę VFD [...] Nie wiem jak "odczytać"

Tomek
- MKramer
- 250...374 postów
- Posty: 350
- Rejestracja: pn, 1 stycznia 2007, 19:13
- Lokalizacja: Wieliszew
- Kontakt:
Re: Lampa VFD -> procesor AVR
Połączyć można chociażby poprzez tranzystory kluczujące, więc tu nie będzie raczej problemu.
Akurat jestem bez oscyloskopu i nie potrafię jednoznacznie stwierdzić jaka jest częstotliwość multipleksowania. Multimetr pokazuje coś koło 5kHz na wyprowadzeniu jednej z siatek, co wydaje mi się mało prawdopodobne - chyba ciut za dużo?
pozdrawiam
Mariusz
Akurat jestem bez oscyloskopu i nie potrafię jednoznacznie stwierdzić jaka jest częstotliwość multipleksowania. Multimetr pokazuje coś koło 5kHz na wyprowadzeniu jednej z siatek, co wydaje mi się mało prawdopodobne - chyba ciut za dużo?
pozdrawiam
Mariusz
Pozdrawiam
Mariusz Kram
Mariusz Kram
- tszczesn
- moderator
- Posty: 11227
- Rejestracja: wt, 12 sierpnia 2003, 09:14
- Lokalizacja: Otwock
- Kontakt:
Re: Lampa VFD -> procesor AVR
Najprościej? Podłącz te 14 sygnałów do wejśc dwóch portów.MKramer pisze:W tym odtwarzaczu informacja wyświetlana jest multipleksowana. Dla mnie ważne są trzy pola (obszary ze wspólną siatką): pole numeru utworu, pole minut i pole sekund. W obrębie każdego z tych pól są dwa wskaźniki 7-segmentowe. Lampa sterowana jest standardowo impulsami 30V. W sumie więc jest 17 interesujących mnie wyprowadzeń - 14 z nich odnoszą się do segmentów obu cyfr, pozostałe 3 to identyfikacja świecącego pola.
Trzy sygnały multipleksujące podłącz do wejść generujących przerwania. Ustal na wyzwalanie zboczem narastającym (bo siatki kluczowane są dodatnio). W procedurze obsługi przerwania od każdego wejścia odczytuj te czternaście linii i zapisz w pamięci, oczywiście w oddzielnych komórkach dla każdego przerwania. Program główny niech w pętli przesyła te sześć cyfr dalej. I już. Z tym, że chyba 2313 ma za mało nóg, potrzebujesz co najmniej 14+3+2 (RS232) = 19 pinów we-wy.
- Tomasz Gumny
- 1875...2499 postów
- Posty: 2301
- Rejestracja: pn, 1 stycznia 2007, 23:18
- Lokalizacja: Trzcianka/Poznań
- Kontakt:
Re: Lampa VFD -> procesor AVR
Nie da się tego zrobić bez sprawdzenia przebiegów. Wystarczy rezystor, ogranicznik na dwóch diodach połączonych antyrównolegle i możesz wejść na kartę dźwiękową. Programów "oscyloskopowych" znajdziesz w necie bez liku.MKramer pisze:[...]jestem bez oscyloskopu i nie potrafię jednoznacznie stwierdzić jaka jest częstotliwość multipleksowania.
Tomek
- Tomasz Gumny
- 1875...2499 postów
- Posty: 2301
- Rejestracja: pn, 1 stycznia 2007, 23:18
- Lokalizacja: Trzcianka/Poznań
- Kontakt:
Re: Lampa VFD -> procesor AVR
Dla zapobieżenia "podżarzania" sąsiednich znaków/segmentów stosuje się czasem niewielkie opóźnienia między wystawieniem sygnałami załączającymi segmenty a wybierającymi znaki. Jeśli opóźnień nie będzie, to odczytasz segmenty akurat w chwili gdy się zmieniają. Jeśli takowe opóźnienia są, to stan na segmentach może się jeszcze nie ustalić. Proponuję jednak obejrzeć przebiegi, ustalić co jest wystawiane jako pierwsze i generalnie jakie są czasy zapalania.tszczesn pisze:Trzy sygnały multipleksujące podłącz do wejść generujących przerwania. Ustal na wyzwalanie zboczem narastającym (bo siatki kluczowane są dodatnio). W procedurze obsługi przerwania od każdego wejścia odczytuj te czternaście linii
Tomek
- tszczesn
- moderator
- Posty: 11227
- Rejestracja: wt, 12 sierpnia 2003, 09:14
- Lokalizacja: Otwock
- Kontakt:
Re: Lampa VFD -> procesor AVR
Tomasz Gumny pisze:Dla zapobieżenia "podżarzania" sąsiednich znaków/segmentów stosuje się czasem niewielkie opóźnienia między wystawieniem sygnałami załączającymi segmenty a wybierającymi znaki. Jeśli opóźnień nie będzie, to odczytasz segmenty akurat w chwili gdy się zmieniają. Jeśli takowe opóźnienia są, to stan na segmentach może się jeszcze nie ustalić. Proponuję jednak obejrzeć przebiegi, ustalić co jest wystawiane jako pierwsze i generalnie jakie są czasy zapalania.
Owszem. I to na ogół siatki są opóźnione w stosunku do segmentów. Czyli najpierw gasimy siatkę, wystawiamy nową treść segmentów i zapalamy siatkę. A nawet jeśli nie, to kilka NOPów rozwiąże problem, procesor i tak się będzie bardzo nudził.
- Tomasz Gumny
- 1875...2499 postów
- Posty: 2301
- Rejestracja: pn, 1 stycznia 2007, 23:18
- Lokalizacja: Trzcianka/Poznań
- Kontakt:
Re: Lampa VFD -> procesor AVR
Tak by było, gdyby program został napisany w asemblerze, a jeśli dobrze kojarzę, to autor wątku pisze w Bascomie.tszczesn pisze:[...]nawet jeśli nie, to kilka NOPów rozwiąże problem, procesor i tak się będzie bardzo nudził.
Tomek
- tszczesn
- moderator
- Posty: 11227
- Rejestracja: wt, 12 sierpnia 2003, 09:14
- Lokalizacja: Otwock
- Kontakt:
Re: Lampa VFD -> procesor AVR
?Tomasz Gumny pisze:Tak by było, gdyby program został napisany w asemblerze, a jeśli dobrze kojarzę, to autor wątku pisze w Bascomie.tszczesn pisze:[...]nawet jeśli nie, to kilka NOPów rozwiąże problem, procesor i tak się będzie bardzo nudził.
Co ma do tego język programowania?
- MKramer
- 250...374 postów
- Posty: 350
- Rejestracja: pn, 1 stycznia 2007, 19:13
- Lokalizacja: Wieliszew
- Kontakt:
Re: Lampa VFD -> procesor AVR
W czasie Świąt znajdę czas na testy, a na razie rozważam czysto teoretycznie. Skoro segmenty są ustawiane najpierw, a potem zapalany jest znak, to czy nie wystarczyłoby osczytywać stanu segmentów w momencie zapalenia znaku? Brzmi to dośc prosto, choć wiem, że życie takie nie jest. Postaram się więc "wejść na kartę dźwiękową" i obejrzeć przebiegi.
Jak dobrze zrozumiałem, diody połączone antyrównolegle, to takie połączone równolegle, tylko na odwrót? Celem ich jest zabezpieczenie wejścia karty dźwiękowej i ograniczenie poziomu do ok. +-0,7V, czy tak?
A tak przy okazji - co to są NOPy?
pozdrawiam
Jak dobrze zrozumiałem, diody połączone antyrównolegle, to takie połączone równolegle, tylko na odwrót? Celem ich jest zabezpieczenie wejścia karty dźwiękowej i ograniczenie poziomu do ok. +-0,7V, czy tak?
A tak przy okazji - co to są NOPy?
pozdrawiam
Pozdrawiam
Mariusz Kram
Mariusz Kram
Re: Lampa VFD -> procesor AVR
No Operation lub No Operation Performed. Takie opuszczenie jednego (lub kilku) cykli zegarowych przez procesor.
Pozdrawiam
Sebastian
Jestem tylko amatorem, który może się mylić.
Uroczyście obiecuje, że będę dawał rezystor antyparazytowy na każdą siatkę i bramkę.
Sebastian
Jestem tylko amatorem, który może się mylić.
Uroczyście obiecuje, że będę dawał rezystor antyparazytowy na każdą siatkę i bramkę.
- Tomasz Gumny
- 1875...2499 postów
- Posty: 2301
- Rejestracja: pn, 1 stycznia 2007, 23:18
- Lokalizacja: Trzcianka/Poznań
- Kontakt:
Re: Lampa VFD -> procesor AVR
Chodzi o to, żeby znaleźć właściwy moment na odczytanie.MKramer pisze:Skoro segmenty są ustawiane najpierw, a potem zapalany jest znak, to czy nie wystarczyłoby osczytywać stanu segmentów w momencie zapalenia znaku?

Tak, a szeregowy rezystor ogranicza prąd diod i sterownika wyświetlacza. Zrób od razu dla dwóch kanałów, żeby móc oglądać zależności czasowe przebiegu zapalającego segmenty i wybierającego cyfry.MKramer pisze:Celem ich jest zabezpieczenie wejścia karty dźwiękowej i ograniczenie poziomu do ok. +-0,7V, czy tak?
No OPeration - instrukcja pusta w asemblerze. Wstawiana dla przedłużenia lub wyrównania czau wykonywania fragmenu programu. W bascomie na pewno jej nie będziesz używał, dopóki nie zaczniesz robić wstawek asemblerowych.MKramer pisze:A tak przy okazji - co to są NOPy?

Na tej samej zasadzie działa procedura obsługi enkodera w mierniku lamp (napisana w C). Może ktoś z użytkowników wypowie się o szybkości odczytywania enkodera?
W asemblerze taka procedura obsługi przerwania zajmuje kilkanaście taktów zegara...
Tomek
- tszczesn
- moderator
- Posty: 11227
- Rejestracja: wt, 12 sierpnia 2003, 09:14
- Lokalizacja: Otwock
- Kontakt:
Re: Lampa VFD -> procesor AVR
Może, BASCOMa na oczy nie widziałem, ale to by oznaczało, że jest generalnie do ...Tomasz Gumny pisze:tszczesny - zrobiłem kiedyś na AVR obsługę enkodera (24 impulsy /obrót) na przerwaniu w Bascomie, C i asemblerze. Dla programu w Bascomie wystarczyło nieco szybsze pokręcenie gałką, żeby zaczął gubić kroki. Wychodziło, że obsługa przerwania, w którym było sprawdzenie jednego warunku i zwiększenie (zmniejszenie) jednej zmiennej, zajęło kilkanaście ms (przy kwarcu 11.0592MHz). Bascom po przyjęciu przerwania robi dużo, zapewne w większości zbędnych czynności, na które programista nie ma żadnego wpływu. Dlatego obawiam się, że przy częstotliwości multipleksowania rzędu kilkuset Hz, program w Bascomie może nie nadążyć z obsługą kolejnych przerwań.
Na tej samej zasadzie działa procedura obsługi enkodera w mierniku lamp (napisana w C). Może ktoś z użytkowników wypowie się o szybkości odczytywania enkodera?
W asemblerze taka procedura obsługi przerwania zajmuje kilkanaście taktów zegara...
Asembler - prawda, odrobina kombinowania i program naprawdę szybki wychodzi. Ale podobno współczesne kompilatory C na µkontrolery nie ustępują wydajnością kodu porządnemu programowi w ASM.
- Tomasz Gumny
- 1875...2499 postów
- Posty: 2301
- Rejestracja: pn, 1 stycznia 2007, 23:18
- Lokalizacja: Trzcianka/Poznań
- Kontakt:
Re: Lampa VFD -> procesor AVR
Dzięki ogromnej liczbie standardowych funkcji, można w Bascomie szybko napisać całkiem złożony program. Tyle, że równie szybko trzeba sięgać po procesory z ogromną pamięcią programu a w krytycznych czasowo fragmentach jedynym rozwiązaniem są wstawki w asemblerze.tszczesn pisze:[...] BASCOMa na oczy nie widziałem, ale to by oznaczało, że jest generalnie do ...
To się zgadza. Powiem więcej - podglądając przekład, można się nauczyć ciekawych sztuczek.tszczesn pisze:[...] podobno współczesne kompilatory C na µkontrolery nie ustępują wydajnością kodu porządnemu programowi w ASM.

Tomek