Robię projekt zegarka NIXIE i oczywiście mam z nim problemy
Na początku zamieszczę może fotke układu.
Program jest pisany na Atmega8 w wersji L (czyli niskonapieciowej). Uklad wyswietlacza to 4 lampy IN-14, sterowane multipleksowo, driver 74141 i jako klucze sterujace anodami lamp transoptory TLP627.
Problem z tym układem jest taki, że gdy ustwaie wszystkie porty jako wyjścia i wszędzie stany wysokie, częśc pinow (po podlączenia przykladowo do wejść 74141) zachowuje sie jakby były w stanie wysokiej impedancji. Występuje na nich napięcie ok. 1,8V a wejścia drivera '141 zachowuja sie jak plywające (i interpretuje je jako stany wysokie). Problem rozwiązał częsciowo układ ULN2803A (dzieki niemu wejścia '141 są wysterowane prawidlowo). Niestety jest to niezbyt dobre i opłacalne rozwiązanie
Czy ktoś wie co może byc przyczyną takiego zachowania sie atmegi?
Problem ten ma także miejsce w przypadku sterowania transoptorami (kluczami). Dzialaja one prawidlowo dopiero po dołaczeniu do portów, które zachowuja się normalnie, w przeciwnym razie nie wysterowuja one poprawnie anod lamp. Skutek tego jest taki jak na zamieszczonym filmiku. Ta piewsza lampa od prawej jest sterowana z wyjścia, na którym wystepuje napięcie 1,8V (druga w koleji lampa miga szybciej ponieważ w czasie świecenia zostaje jeszcze wyłaczony jej klucz - transoptor).
Cyfry na początku filmu ulozyły się przypadkowo
Kolejny problem to sterowanie samych lamp. Oczywiście pojawiają się duchy co jest widoczne poniżej
Program "testowy" jest pisany w Bascomie. Poniżej kod.
Po każdym wyświetleniu cyfru następuje przerwa 1ms (w powyższym przypadku - zdjeciu, a nie kodzie). Po doborze odpowiednich, maksymalnych czasow opóźnień tak aby cyfry nie migotały duchy też się pojawiaja lecz nie tak wyraznie jak poprzednio.
Po załozeniu czerwonego filtru osoby, które o nich nie beda wiedziały pewnie ich nie zobaczą, ale niestety troche je wiadc. Czy jest jakis sposób na pozbycie się tego paskudztwa? (oprócz doboru odpowiedniej częstotliwości odświżania). Może jakaś specjalna sekwencja sterujaca? Może ktoś już robił taki zegarek i wie jak rozwiązać ten problem.
Na koniec filmik, na którym duchów nie ma, ale cyfry migotaja w znaczący sposob.
PS Jeśli nie działaja filmiki proszę odświeżyć stronę.
Własnie znalazłem https://www.elektroda.pl/rtvforum/topic998383.html Sprawdze jak to sie ma do mojego przypadku. Jednak problem dalej otwarty.

Na początku zamieszczę może fotke układu.

Program jest pisany na Atmega8 w wersji L (czyli niskonapieciowej). Uklad wyswietlacza to 4 lampy IN-14, sterowane multipleksowo, driver 74141 i jako klucze sterujace anodami lamp transoptory TLP627.
Problem z tym układem jest taki, że gdy ustwaie wszystkie porty jako wyjścia i wszędzie stany wysokie, częśc pinow (po podlączenia przykladowo do wejść 74141) zachowuje sie jakby były w stanie wysokiej impedancji. Występuje na nich napięcie ok. 1,8V a wejścia drivera '141 zachowuja sie jak plywające (i interpretuje je jako stany wysokie). Problem rozwiązał częsciowo układ ULN2803A (dzieki niemu wejścia '141 są wysterowane prawidlowo). Niestety jest to niezbyt dobre i opłacalne rozwiązanie

Problem ten ma także miejsce w przypadku sterowania transoptorami (kluczami). Dzialaja one prawidlowo dopiero po dołaczeniu do portów, które zachowuja się normalnie, w przeciwnym razie nie wysterowuja one poprawnie anod lamp. Skutek tego jest taki jak na zamieszczonym filmiku. Ta piewsza lampa od prawej jest sterowana z wyjścia, na którym wystepuje napięcie 1,8V (druga w koleji lampa miga szybciej ponieważ w czasie świecenia zostaje jeszcze wyłaczony jej klucz - transoptor).
Cyfry na początku filmu ulozyły się przypadkowo

Kolejny problem to sterowanie samych lamp. Oczywiście pojawiają się duchy co jest widoczne poniżej

Program "testowy" jest pisany w Bascomie. Poniżej kod.
Do
Sel1 = 1
Sel2 = 0
Sel3 = 0
Sel4 = 0
Portd = Lookup(3 , Invbcd)
Waitms 10
Sel1 = 0
Sel2 = 1
Sel3 = 0
Sel4 = 0
Portd = Lookup(2 , Invbcd)
Waitms 10
Sel1 = 0
Sel2 = 0
Sel3 = 1
Sel4 = 0
Portd = Lookup(4 , Invbcd)
Waitms 10
Sel1 = 0
Sel2 = 0
Sel3 = 0
Sel4 = 1
Portd = Lookup(7 , Invbcd)
Waitms 10
Loop
Invbcd:
Data &B1111111 , &B1111110 , &B1111101 , &B1111100 , &B1111011
Data &B1111010 , &B1111001 , &B1111000 , &B1110111 , &B1110110
Po każdym wyświetleniu cyfru następuje przerwa 1ms (w powyższym przypadku - zdjeciu, a nie kodzie). Po doborze odpowiednich, maksymalnych czasow opóźnień tak aby cyfry nie migotały duchy też się pojawiaja lecz nie tak wyraznie jak poprzednio.

Po załozeniu czerwonego filtru osoby, które o nich nie beda wiedziały pewnie ich nie zobaczą, ale niestety troche je wiadc. Czy jest jakis sposób na pozbycie się tego paskudztwa? (oprócz doboru odpowiedniej częstotliwości odświżania). Może jakaś specjalna sekwencja sterujaca? Może ktoś już robił taki zegarek i wie jak rozwiązać ten problem.
Na koniec filmik, na którym duchów nie ma, ale cyfry migotaja w znaczący sposob.
PS Jeśli nie działaja filmiki proszę odświeżyć stronę.
Własnie znalazłem https://www.elektroda.pl/rtvforum/topic998383.html Sprawdze jak to sie ma do mojego przypadku. Jednak problem dalej otwarty.