Goto page Previous 1, 2, 3 Next
Dariusz Dorochowicz
Guest
Thu Feb 08, 2018 1:28 pm
W dniu 2018-02-08 o 13:06, J.F. pisze:
Quote:
Użytkownik "Dariusz Dorochowicz" napisał w wiadomości grup
dyskusyjnych:5a7c3875$0$577$65785112@news.neostrada.pl...
W dniu 2018-02-08 o 12:30, Atlantis pisze:
Nie. Pomysł jest taki, żeby mieć jeden 74141 i multipleksować
poszczególne lampy. Na wejścia 74141 podawałbym przez ten multiplekser
(zestaw multiplekserów) kolejne półbajty trzymane w rejestrach
przesuwnych na wejściu. Osobny układ zapalałby kolejne lampy. Myślę też,
że konieczne byłoby zastosowanie jakiegoś licznika i komparatora, który
w pewnym momencie gasiłby lampę (coś w rodzaju PWM, celem uniknięcia
efektu "duszków"). Jeszcze tego dokładnie nie rozrysowałem, mam tylko
ogólny pomysł.
To sobie zrób multipleksowanie na drucie - potrzebujesz do tego rejestry
z 3-stanowym wyjściem.
Mozna, ale jak znajdzie rejestry przesuwne ze sterowaniem OE na
wyjsciach po 4 bity, to wyjdzie zgrabnie.
Jak nie znajdzie i trzeba bedzie dodatkowe bufory ... to zdecydowanie
jest projekt na CPLD/FPGA.
Ba. Można np dodać poczwórny muultiplekser - coś tam jest gotowego. To
znacznie mniej niż multipleksowanie wszystkiego i proste do zrobienia.
Pozdrawiam
DD
J.F.
Guest
Thu Feb 08, 2018 2:57 pm
Użytkownik "Atlantis" napisał w wiadomości grup
dyskusyjnych:5a7c4125$0$556$65785112@news.neostrada.pl...
On 08.02.2018 12:55, J.F. wrote:
Quote:
Nie wiem jakie tam ograniczenia, ale I2C nie jest sprzetowe ?
IMO - wystarczyloby jeden bajt wyslac.
A jak nie, to jest masa szybszych rejestrow.
ESP8266 nie ma sprzętowego I2C. Ten moduł jest dość ubogi, jeśli
chodzi
o peryferia. Lepiej to wygląda w nowej wersji - ESP32.
To moze i lepiej - bedzie mozna uzyc szybsze uklady
Nie ma jakiegos portu szeregowego z zegarem ?
Quote:
Mozesz sie przymierzyc do CPLD czysto teoretycznie ... sie okaze,
ze sie
nie da zrobic, bo zasobow zabraknie, to tez sie czegos nauczysz
Jak duże projekty w takim razie można zmieścić w CPLD? Załóżmy, że
mowa
o czymś w rodzaju XC9572XLVQ64. Rozumiem, że te układy mogą się nie
nadawać do odtworzenia Z80, SID-a z Commodore 64 albo zaprojektowania
własnego MCU. Jednak tutaj mowa o (relatywnie prostym) sterowniku,
który
robiony na płytce mógłby się zmieścić w kilku-kilkunastu scalakach.
Faktycznie CPLD mają aż tak skromne zasoby?
Oni tego juz dawno nie robia, i przetrwaly tylko jakies szczatkowe
opisy
https://www.xilinx.com/support/documentation/application_notes/xapp112.pdf
Jest w ogole do tego jakis program, ktory jeszcze dziala ?
Jesli dobrze rozumiem, to potrzebujesz:
-24-bitowego rejestru przesuwajacego,
-24-bitowego rejestru buforowego,
-licznika multipleksujacego 6 cyfr ... 3 bity, a moze 6, jesli
wygodniej bedzie zrobic pierscieniowo,
-multipleksera ... ktory tu zajmie 4 makrocele ... jak dobrze pojdzie.
-licznika do odliczania roznych faz, zeby np najpierw wygasic, potem
zmienic, potem wyswietlic ... i dluzej wyswietlac niz sie zmienialo.
Powiedzmy ze 4 bity licznika.
wychodzi mi 62 rejestry, a ten uklad ma 72 ... moze starczyc.
Ale:
-ma je w 4 blokach po 18, same rejestry rozciagna sie na 4 bloki,
trzeba bedzie dzielic ... moze sie da, moze zabraknie.
-starczy PT (produkt term) i polaczen do realizacji wszystkich
funkcji, albo nie starczy.
-potrzebujesz 3 zegarow - jeden do danych z 8266, drugi przepisujacy
miedzy rejestrami, trzeci do multipleksowania.
Moze sie uda 2, jesli uzyjemy jeden z 8266 do obu funkcji.
Trzy zegary w tej kosci sa, plus mozliwosc indywidualnych. Powinno
starczyc.
Wiec na oko ... mniej wiecej wejdzie. Ale tylko na oko. I zajmie całą
kosc.
I stad rada - sprobowac zaprojektowac i zobaczyc czy wcisnie, czy
powie ze za malo zasobow
Z80 to zdecydowanie na czyms innym :-)
W razie czego mozna pomyslec.
Chodzi po glowie, zeby np zrezygnowac z tego rejestru przesuwajacego,
zrobic licznik bitow wejsciowych, i w miare ich nadchodzenia zmieniac
tylko jeden bit w rejestrze buforowym. 5 bitow zamiast 24 ... z
ryzykiem, ze PT zabraknie :-)
J.
Atlantis
Guest
Fri Feb 09, 2018 8:35 am
Ewentualnie myślę, czy wceśniej nie "potrenować" sobie na nieco
prostszym przykładzie - zegarku Nixie (po prostu wykonałbym
zmodyfikowaną wersję już istniejącego projektu). W zegarze poszczególne
cyfry są prezentowane na zespołach czterech LED-ów. Zespoły również są
multipleksowane. Założenie jest więc podobne (24 bitowy zespół rejestrów
przesuwnych na wejściu, dalej cztery multipleksery (po jednym na każdy
bit). Multiplekser byłby sterowany z licznika binarnego. Teraz
zastanawiam się jeszcze jak zrealizować sterowanie zapalaniem zespołów
kolejnych diod.
Czy istnieje może jakiś konwerter binarno-dekadowy, który na wejściu
brałby wartość binarną z licznika, ustalając stan wysoki na wskazanym
wyjściu? To pozwoliłoby mi także łatwo resetować licznik, bez potrzeby
stosowania komparatora - po prostu linia 6 resetowałaby licznik.
Grzegorz Kurczyk
Guest
Fri Feb 09, 2018 9:01 am
W dniu 09.02.2018 o 08:35, Atlantis pisze:
Quote:
Czy istnieje może jakiś konwerter binarno-dekadowy, który na wejściu
brałby wartość binarną z licznika, ustalając stan wysoki na wskazanym
wyjściu? To pozwoliłoby mi także łatwo resetować licznik, bez potrzeby
stosowania komparatora - po prostu linia 6 resetowałaby licznik.
Jest:-) z tą różnicą, że wystawia na wybranym wyjściu stan niski
(wyjście OC). Używasz już go do sterowania katod w Nixie ;-)
--
Pozdrawiam
Grzegorz
Grzegorz Kurczyk
Guest
Fri Feb 09, 2018 9:07 am
W dniu 09.02.2018 o 08:35, Atlantis pisze:
Quote:
Czy istnieje może jakiś konwerter binarno-dekadowy, który na wejściu
brałby wartość binarną z licznika, ustalając stan wysoki na wskazanym
wyjściu? To pozwoliłoby mi także łatwo resetować licznik, bez potrzeby
stosowania komparatora - po prostu linia 6 resetowałaby licznik.
do ilu ma zliczać ten licznik? Bo czasem w roli komparatora wystarczy
jedna bramka.
--
Pozdrawiam
Grzegorz
Piotr Wyderski
Guest
Fri Feb 09, 2018 9:19 am
Atlantis wrote:
Quote:
Preferuję zdobywanie umiejętności przez realizowanie konkretnego,
użytecznego projektu. W chwili obecnej chodzi mi po głowie sklecenie
sterownika do wyświetlaczy nixie, który załatwiałby multipleksowanie
poszczególnych wiświetlaczy (z wygaszaniem przed zapaleniem kolejnej
cyfry), a dane otrzymywał z MCU szeregowo.
cy8ckit-059. Narysuj sobie te brameczki i wgraj do układu.
Startując z wiedzą zerową działający układ cyfrowy powinieneś
mieć w ~3 dni.
Pozdrawiam, Piotr
Atlantis
Guest
Fri Feb 09, 2018 9:41 am
On 09.02.2018 09:01, Grzegorz Kurczyk wrote:
Quote:
Jest:-) z tą różnicą, że wystawia na wybranym wyjściu stan niski
(wyjście OC). Używasz już go do sterowania katod w Nixie
74141? Prawdę mówiąc nie brałem go pod uwagę. Będzie sobie też radził ze
sterowaniem grupami LED-ów przy niskich napięciach, czy trzeba będzie
dodać osobne drivery, np. na MOSFET-ach?
Atlantis
Guest
Fri Feb 09, 2018 9:43 am
On 09.02.2018 09:07, Grzegorz Kurczyk wrote:
Quote:
do ilu ma zliczać ten licznik? Bo czasem w roli komparatora wystarczy
jedna bramka.
Zliczanie od 0 do 5. Przy czym jeśli zastosuję 74141 raczej nie będę
musiał stosować komparatora - wystarczy, że ustawienie linii 6 będzie
resetowało licznik.
J.F.
Guest
Fri Feb 09, 2018 10:14 am
Użytkownik "Atlantis" napisał w wiadomości grup
dyskusyjnych:5a7d5f30$0$561$65785112@news.neostrada.pl...
On 09.02.2018 09:07, Grzegorz Kurczyk wrote:
Quote:
do ilu ma zliczać ten licznik? Bo czasem w roli komparatora
wystarczy
jedna bramka.
Zliczanie od 0 do 5. Przy czym jeśli zastosuję 74141 raczej nie będę
musiał stosować komparatora - wystarczy, że ustawienie linii 6 będzie
resetowało licznik.
To sie nazywa reset asynchroniczny i ma wady - bo ten stan 6 sie na
chwile pojawia, potem znika, impuls resetujacy jest krotki, moze byc
za krotki - no ale to nie w kombinacji z 141.
Podobnie dobrze robi to jedna bramka N/AND na bicie 1 i 2 - jak na obu
sa jedynki, to znaczy ze mamy 6 i resetujemy.
Ale CPLD/FPGA robi sie inaczej - potrzebujesz licznika 0-5, to
projekujesz taki, w ktorym po 5 nastepnym stanem jest 0.
Albo jak pisalem - licznik pierscieniowy, skoro i tak potrzebujesz
dekodowac.
J.
J.F.
Guest
Fri Feb 09, 2018 10:22 am
Użytkownik "Atlantis" napisał w wiadomości grup
dyskusyjnych:5a7d4f32$0$674$65785112@news.neostrada.pl...
Quote:
Ewentualnie myślę, czy wceśniej nie "potrenować" sobie na nieco
prostszym przykładzie - zegarku Nixie (po prostu wykonałbym
zmodyfikowaną wersję już istniejącego projektu). W zegarze
poszczególne
cyfry są prezentowane na zespołach czterech LED-ów. Zespoły również
są
multipleksowane.
Ale na LED to robisz inaczej - po co ci multipleksowanie ?
Sa fajne rejestry szeregowe sterujace wprost wyswietlaczami,
a z wypluciem 42/48 bitow z 8266 chyba sobie poradzisz - nawet nie
musi byc szybko.
Z nixie tak sie nie da, bo napiecia wysokie ... ale Waldek podsunal
przeciez fajny rejestr.
J.
Guest
Fri Feb 09, 2018 10:30 am
W dniu czwartek, 8 lutego 2018 13:23:02 UTC+1 użytkownik Atlantis napisał:
Quote:
On 08.02.2018 12:55, J.F. wrote:
Nie wiem jakie tam ograniczenia, ale I2C nie jest sprzetowe ?
IMO - wystarczyloby jeden bajt wyslac.
A jak nie, to jest masa szybszych rejestrow.
ESP8266 nie ma sprzętowego I2C. Ten moduł jest dość ubogi, jeśli chodzi
o peryferia. Lepiej to wygląda w nowej wersji - ESP32.
Mozesz sie przymierzyc do CPLD czysto teoretycznie ... sie okaze, ze sie
nie da zrobic, bo zasobow zabraknie, to tez sie czegos nauczysz :-)
Jak duże projekty w takim razie można zmieścić w CPLD? Załóżmy, że mowa
o czymś w rodzaju XC9572XLVQ64. Rozumiem, że te układy mogą się nie
nadawać do odtworzenia Z80, SID-a z Commodore 64 albo zaprojektowania
własnego MCU. Jednak tutaj mowa o (relatywnie prostym) sterowniku, który
robiony na płytce mógłby się zmieścić w kilku-kilkunastu scalakach.
Faktycznie CPLD mają aż tak skromne zasoby?
J.F. dobrze Ci napisał. Nie ma co wróżyć z fusów, zrób tak jak sugerowano w "siostrzanym" wątku. Rozumiem, że jesteś "schematowcem". No problem, zainstaluj sobie ISE Xilinxa, na dzień dobry nie potrzebujesz znajomości VHDL/Verilog. Zrobisz to z poziomu schematu i sprawdzisz czy projekt po implementacji zmieści się w w jakimś tam CPLD/FPGA. Jeżeli braknie jakiegoś specyficznego komponentu typu 74xx i trzeba będzie zastąpić go modułem zdefiniowanym w VHDL/Verilog, to wtedy pytaj tutaj. Jeszcze raz z uporem maniaka sugeruję najpierw zainstalowanie softu, wrzucenie na projekt kilku prostych bramek splątanych drutami z poziomu schematu. Zobaczysz, że nie taki diabeł straszny. Taka jest logiczna kolejność. Tymczasem odnoszę wrażenie, że podchodzisz do problemu "od dupy strony"
Atlantis
Guest
Fri Feb 09, 2018 11:22 am
On 09.02.2018 10:14, J.F. wrote:
Quote:
To sie nazywa reset asynchroniczny i ma wady - bo ten stan 6 sie na
chwile pojawia, potem znika, impuls resetujacy jest krotki, moze byc za
krotki - no ale to nie w kombinacji z 141.
Hmm... Ale przecież impuls resetujący jest krótki właśnie dlatego, że
licznik zostaje zresetowany. Normalnie linia jest ustawiana na czas
trwania cyklu generatora taktującego licznik z wyjściem binarnym.
Jeśli zostanie ustawiona linia 6, licznik się zresetuje i znów będę miał
ustawioną linię 0, a linia 6 przestanie być aktywna. Jednak będzie to
miało miejsce już po restarcie licznika, więc jakim cudem impuls
resetujący miałby być za krótki? Co jest nie tak z moim rozumowaniem? :)
Quote:
Podobnie dobrze robi to jedna bramka N/AND na bicie 1 i 2 - jak na obu
sa jedynki, to znaczy ze mamy 6 i resetujemy.
Hmm... Takie rozwiązanie też na dobrą sprawę mogę wykorzystać, tylko to
oznacza dodanie kolejnego scalaka. Dlaczego ten sposób jest lepszy od
wykorzystania linii 6 układu 141?
Atlantis
Guest
Fri Feb 09, 2018 11:26 am
On 09.02.2018 10:22, J.F. wrote:
Quote:
Ale na LED to robisz inaczej - po co ci multipleksowanie ?
Sa fajne rejestry szeregowe sterujace wprost wyswietlaczami,
a z wypluciem 42/48 bitow z 8266 chyba sobie poradzisz - nawet nie musi
byc szybko.
Powód jest dość prozaiczny. Już kiedyś zbudowałem zegar binarny , w
którym wyświetlacze były multipleksowane przez stary AT89C51. Chciałbym
wykorzystać istniejącą płytkę wyświetlaczy, dodając jedynie nowy układ
sterujący z ESP8266. Poza tym jak mówiłem - aspekt dydaktyczny.
Dariusz Dorochowicz
Guest
Fri Feb 09, 2018 11:38 am
W dniu 2018-02-09 o 11:22, Atlantis pisze:
Quote:
On 09.02.2018 10:14, J.F. wrote:
To sie nazywa reset asynchroniczny i ma wady - bo ten stan 6 sie na
chwile pojawia, potem znika, impuls resetujacy jest krotki, moze byc za
krotki - no ale to nie w kombinacji z 141.
Hmm... Ale przecież impuls resetujący jest krótki właśnie dlatego, że
licznik zostaje zresetowany. Normalnie linia jest ustawiana na czas
trwania cyklu generatora taktującego licznik z wyjściem binarnym.
Jeśli zostanie ustawiona linia 6, licznik się zresetuje i znów będę miał
ustawioną linię 0, a linia 6 przestanie być aktywna. Jednak będzie to
miało miejsce już po restarcie licznika, więc jakim cudem impuls
resetujący miałby być za krótki? Co jest nie tak z moim rozumowaniem?
Licznik to parę przerzutników - wystarczy żeby jeden zmienił stan i już
dekoder przeskoczy. Ale reszta przerzutników jeszcze będzie w stanie
poprzednim lub w trakcie zmiany. Krótkie zerowanie to nie jest
najszczęśliwszy pomysł, chociaż generalnie działa.
Quote:
Podobnie dobrze robi to jedna bramka N/AND na bicie 1 i 2 - jak na obu
sa jedynki, to znaczy ze mamy 6 i resetujemy.
Hmm... Takie rozwiązanie też na dobrą sprawę mogę wykorzystać, tylko to
oznacza dodanie kolejnego scalaka. Dlaczego ten sposób jest lepszy od
wykorzystania linii 6 układu 141?
Trochę opóźnienia przy zerowaniu.
Ale jak masz mieć wędrującą jedynkę albo zero, to można też skorzystać z
zapętlonego rejestru przesuwającego, byle miał równoległe wpisywanie. Po
starcie ładujesz odpowiednią sekwencję a potem tylko tykasz zegarem.
Tylko że nie ma to wysokonapięciowego wyjścia, więc i tak coś potrzebne
(jakiś ULN2007?).
Pozdrawiam
DD
Piotr Wyderski
Guest
Fri Feb 09, 2018 11:58 am
Atlantis wrote:
Quote:
Ewentualnie myślę, czy wceśniej nie "potrenować" sobie na nieco
prostszym przykładzie - zegarku Nixie
Swoją drogą, skąd ten powszechny pęd do budowania zegarków,
w tym na Nixie? Bardzo porządna niegdyś gazetka degeneruje
się na moich oczach do magazynu dla zegarmistrzów, dosłownie
co drugi numer to jakiś zegar. Coś kiepsko z kreatywnością,
Panowie. :-(
Pozdrawiam, Piotr
Goto page Previous 1, 2, 3 Next