Programovatelné hodiny (aneb: vzorová diskuse bastlířů)
Moderátor: Moderátoři
Na U13B 7474 a U3 7475 jde do hodin /CLK.
Výstup /CLK z U13A nepoužívám a mám tam inverzi z CLK.
Radši bych tam dal jako zdroj hodin CD4060 s 32kHz hodinkovým krystalem a vstup hodin by byl 2048Hz a cykl zobrazení 128Hz.
Nebo 74HC4060 s krystalem 4,194304 MHz a 4096Hz.
Na CPLD si moc nepomůžeš a na FPGA je dostatek materiálu a stejně si to FPGA přeloží po svém
Několik "kafamlejnků" jsem udělal na FPGA, ale teď je to to tak do muzea.
Třeba FDX2000 je moje dílo
https://www.etcconnect.com/Products/Leg ... tures.aspx
Abyste nebyli v omylu, vyrábí se to už 25 let, tak to bylo nadčasové.
- tomasjedno
- Příspěvky: 6547
- Registrován: 11 říj 2008, 00:00
- Bydliště: ZZ9 Plural Z Alpha
- Ivan_Ryger
- Příspěvky: 1366
- Registrován: 02 bře 2005, 00:00
- Bydliště: Jára Cimrman- "Uppsala, Uppsala,... tam jsem taky nebyl"
po dlhšej odmlke prichádzam s aktualizáciou, dúfam, že ešte máte trpezlivosť.
Pridávam aktualizovanú schému a s ňou spojené otázky
A. vo Vašom návrhu je hodinový signál U14A (prenos Carry), a U3 (latch 7475) privedený na negované hodiny /CLK. Adresný čítač 7493 má hodiny aktívne na zostupnej hrane. Sú dve možnosti.
- a) Ak je adresný čítač riadený signálom CLK, v tej istej fáze hodín sa inkrementuje adresa RAM, zachytí sa jej obsah do latch registra a urobí sa prepis hodnoty RAM na základe nulovej podmienky vyhodnotenej hradlom U11A (7420). Tu ale môže nastať problém s oneskorením v dlhej vetve medzi výstupom RAM (U2) - zachytenou hodnotou LATCH(U3)- PROM(U9) - NAND4(U11A).
b) ak je adresný čítač riadený signálom /clk, potom je situácia jednoduchšia, odpadá problém s dopravným oneskorením, signály majú čas na ustálenie. Akurát signál /RAMWR by presahoval cez dve nasledujúce adresy, čo by vyžadovalo nejakým spôsobom skrátiť ho.
2. Pri nastavovaní inkrementu tlačítkom vyhodnocujem stav, kedy sa adresa registrov rovná napr: jednotky minút &/jednotky hodín & zobraz čas ON & /zobraz čas OFF. Prepnutie inverzie jednotlivých vstupov tohoto hradla (U11B) prepínačmi umožňuje vyhodnotiť ostatné alternatívy nastavovania času. Tlačítko je zavedené do D vstupu U14B, ktorý registruje jeho hodnotu, keď je splnená tu popísaná logická podmienka. Pre skrátenie pulzu na výstupe U14B (generovanie inkrementu 1x) je tam derivačný článok. Výstup potom nastaví /RAMWR do log 0 ( inkrement zápisom do RAM). Tu mi vychádza, že tento signál posielaný ako asynchrónny reset U14A musí byť v predstihu pred hodinami U14A, a teda hodiny U14B musia byť pol taktu v predstihu pred hodinami U14A, čo by malo byť splnené na výstupe hradla U11B.
3. V tomto návrhu sa mi minuli NOT hradlá. Zatiaľ som teda nenapravil inverziu CLK a chýba mi negovanie medzi U11B a U14B.
4. Kľúčovanie U12B som zatiaľ nevidel ako potrebné, keďže do hradiel ide signál registrovaný U13B. môžem sa mýliť.
Poznámky na neskôr:
V prvom kroku by som si chcel otestovať činnosť logiky na hradlovom poli, RTL logika bude kopírovať činnosť jednotlivých TTL obvodov a VHDL testbench vyhodnotí logickú funkciu bez ohľadu na časové oneskorenia (tie sa tam dajú doplniť ručne). Syntetizovaný obvod samozrejme bude vyzerať ináč, ako ste podotkli.
Druhou možnosťou je skúsiť pozháňať TTL (alebo ich CMOS) verzie pre zníženie spotreby, možno i s LCD segmentovkami. Dajú sa ešte zohnať paralelné EEPROM 28C16, ktoré by mohli nahradiť nedostupné PROM 74188 a 74287 a majú výrazne nižšiu spotrebu (100uA/2mA). Potom v kombinácii so CD4060 a 32.768kHz kryštálom by toto mohlo ísť na tužkové baterky. Ale to som ešte ďaleko odtiaľ.
/CLK z předděličky 7474 není použito.
Vstup jsou hodiny CLK které jdou na 7493 U1/14, ale také klíčují U12 TON/TOFF
Spojit 7493 U1/1 a U1/12
/CLK se dělá přes invertor a jde na 7475 U3/4,13 a 7474 U13/11
Zápis do RAM je klíčován CLK, použita U11B, do ní jde U14/6 a CLK, výstup na U2/3
Na buzení jsou použity TR15 s mizernou betou, v bázi je jen 470R
SEG2 a SEG3 se přepínají, při nastavování se vypínají číslice, které se nenastavují, to se dělá vypnutím +5V v emitorech
Sčítání derivačních pulzů by takhle nefungovalo, odpory R17, R18 mají jít do země. Kondy jsou 2n2.
Dělat to na něčem jiném nemá smysl, byla to aplikace na to, co se dá udělat z MH7489 a malých EPROM, nic jiného v té době nebylo
7489, 74188 mám, 74S287 můžu sehnat (kdyžtak mám 74S571)
Natáhl jsem si KiCad, můžeš mi to poslat a já to zkusím sesouhlasit s tím bastlem.
- Ivan_Ryger
- Příspěvky: 1366
- Registrován: 02 bře 2005, 00:00
- Bydliště: Jára Cimrman- "Uppsala, Uppsala,... tam jsem taky nebyl"
- Přílohy
-
programmable_clock_kicad_0.0.2.zip- (68.04 KiB) Staženo 22 x
Je tam dost ptákovin, které by se daly vypustit a použít na ovládání jen dvojité přepínače, ale když tam byly čtyrnásobné, tak jsem je musel využít
Kdyby to měly být jen prosté denní hodiny, tak by vypadly 4 obvody a na ovládání by stačily 3 přepínače.
- Přílohy
-
programmable_clock.pdf- (78.8 KiB) Staženo 29 x
-
programmable_clock.rar- (53.34 KiB) Staženo 4 x
Třeba ošetřené tlačítko ručního inkrementu.
Normálně je na to nutné přepínací tlačítko, to je tady také, za to se dá RS klopák ze dvou hradel, nebo 1/2 7474 no a tady je to vylepšené ještě tím, že shození 7474 přijde v přesný čas a od toho se derivací odvodí 1! inkrement.
Dalo by se to taky vylepšit tím, že po nějaké době by se to přes RC obvod samo nahazovalo, prostě na první zmáčkntí inkrement a za 1,5 s by to začlo inkrementovat s periodou 0,5s, tak by se mi to líbilo
Jako zdroj hodin bych radši použil CD4060 a "hodinkovej" 32kHz krystal, kvůli dostupnosti, přeci jen ten 4cm kus křemene na 32kHz, co tam mám, se už hůř shání
A nebo 4.194304MHz, ten tu mám z nějakého RFT budíku, chodil přesně.
V KiCad v.10 je to pro ty, co si to chtějí postavit
Bohužel s KiCad neumím, jen jem to upravil podle toho bastlu, jinak nevím, jak se sem dělá zobrazitelnej obrázek.
Dělají se repliky různejch PMI80 a APPLE, těch se ale vyrobilo větší množství, tady to bude replika jediného originálu, ta bude mnohem vzácnější
Takhle by to vypadalo, jako samotné hodiny s cca 10 TTL obvody.
- Přílohy
-
only_clock.pdf- (57.1 KiB) Staženo 7 x
- Ivan_Ryger
- Příspěvky: 1366
- Registrován: 02 bře 2005, 00:00
- Bydliště: Jára Cimrman- "Uppsala, Uppsala,... tam jsem taky nebyl"
Je to vymyslené dôvtipne s tým ušetrením NOT hradiel pre nastavenie času, cez signál SEG0 a SEG23 z dekodéra 7442. Teraz rozumiem ako bolo vymyslené to oneskorenie hodinového signálu pre U14B na ošetrenie kolízie, ktorá by nastala bijúcimi sa prenosmi z U14B a U11A. Zároveň vidím, že ten dotazovaný prekryv zapisovacieho pulzu cez dve adresy je vyriešený tak, že výstup Carry DFF U14A je kľúčovaný cez NAND 7420 hradlo, čo som spočiatku nepochytil v konverzácii. Taktiež vidím, že modifikácia adresy pri porovnávaní hodiniek je riešená trocha ináč, povolená ak signál /wre (/write enable?) je v logickej 1. Nedala mi pokoj tá diódová logika logického AND signálu pre /R U14A. V tomto zapojení mi vychádza, že vstup /R bude držaný (bez pulzu) na napätí cca (1/3)*5V + 0.7V = 2.3V, a obe diódy sú vodivé, čo je trocha nezvyčajné, ale zrejme to funguje dobre.
1. Malou záhadou mi ostáva, ako funguje signál RES a ERES kľúčujúci pamäť 74287.
Mal by som záujem skúsiť tieto hodinky poskladať vo voľnom čase. Ak by ste mali nazvyš nejakú 74188 a 287 s programom, rád to vyskúšam. Ak by ste našli, podrobnosti rád dohodnem cez súkromnú správu. Izostaty sú už dnes problém tiež, no tie sa dajú nahradiť páčkovými prepínačmi, TTL logické obvody zmiešane, niektoré mám, niektoré (napr RAM) nie.
Ďakujem za takúto dlhú výmenu správ, a potrápenie hlavy. To v dnešnej dobe plytkého sústredenia je potreba viac sko soli. Udržiava nás to čulých a aktívnych.
Ďalší hlavolam bude D/A prevodník
RES měl sloužit k vynulování vteřin, aby se dala nastavit přesně minuta, pak už hodiny běží a nastavování jen dělá inkrement ke zvolenému místu.
Teď to funguje tak, že když zvolím TON+TOFF, tak to zobrazuje základní čítač 1 minutového cyklu ze zobrazení. Když dám ruční nastavení segmentu minut, tak se při INC provede vynulování celé paměti a když to pustím, tak to začne čítat.
Aby to nulovalo jen segment základního čítače, tak to potřebuje ještě trochu pošolíchat
Sčítání pulzů přes diody by šlo asi odpory optimalizovat, aspoň aby to nebylo závislé na typu logiky, ale protože to chodilo bez problému, tak jsem do toho nesahal.
Logika k D/A převodníku je jednoduchá a hlavně to nic nedělá, jenom čítá pulzy, to hodiny jsou zajímavější, když jsou tam čudlíky na nastavování
Kdyby se to vešlo na dvouvrstvej tišťák 100x100mm tak by to byl pěknej demonstrační bastl TTL logiky
Udělám k tomu zásadní inovaci, připojím k tomu USB kabel, baští to asi 400mA.
U 7485 je asi chyba v knihovně, přehozený pin 12,13 to opravit neumím.
- Ivan_Ryger
- Příspěvky: 1366
- Registrován: 02 bře 2005, 00:00
- Bydliště: Jára Cimrman- "Uppsala, Uppsala,... tam jsem taky nebyl"
Tento projekt je dostatočne ne-abstraktný, aby ho ľudia so základnou matikou pochopili. Zároveň je dosť komplexný na to, aby uviedol do sveta aritmeticko-logických jednotiek, radičov, a pritom neznechutil ich prekomplikovaním.
Piny fixnem.