Programovatelné hodiny (aneb: vzorová diskuse bastlířů)

Klasické bastlení z domácích zásob

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
danhard
Příspěvky: 6638
Registrován: 05 bře 2007, 00:00
Bydliště: Jesenice u Prahy

#76 Příspěvek od danhard »

Hlavně je to trochu jinak, vyhodnocuje se až registr rovnosti (pin 9 U13B), takže se to vyhodnocuje až na začátku další sady registrů, tj. TON se vyhodnocuje negovaným REG_TOFF_1 a TOFF se vyhodnocuje negovaným REG_DIV_1 a na klíčování jde přímo CLK.
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.
Uživatelský avatar
danhard
Příspěvky: 6638
Registrován: 05 bře 2007, 00:00
Bydliště: Jesenice u Prahy

#77 Příspěvek od danhard »

Na jiné platformě nevím ?
Na CPLD si moc nepomůžeš a na FPGA je dostatek materiálu a stejně si to FPGA přeloží po svém :D
Několik "kafamlejnků" jsem udělal na FPGA, ale teď je to to tak do muzea.
Třeba FDX2000 je moje dílo :D
https://www.etcconnect.com/Products/Leg ... tures.aspx
Abyste nebyli v omylu, vyrábí se to už 25 let, tak to bylo nadčasové.
Naposledy upravil(a) danhard dne 14 čer 2026, 11:23, celkem upraveno 2 x.
Uživatelský avatar
tomasjedno
Příspěvky: 6547
Registrován: 11 říj 2008, 00:00
Bydliště: ZZ9 Plural Z Alpha

#78 Příspěvek od tomasjedno »

Nechtěls sem dát funkční link?
Uživatelský avatar
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"

#79 Příspěvek od Ivan_Ryger »

Dobrý deň,
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ľ.
Přílohy
programovatelne_hodinky_pracovna_6-10-2026.png
programovatelne_hodinky_pracovna_6-10-2026.png
Uživatelský avatar
danhard
Příspěvky: 6638
Registrován: 05 bře 2007, 00:00
Bydliště: Jesenice u Prahy

#80 Příspěvek od danhard »

Jsem rád, že to za mě někdo rozmaluje :D

/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 :D

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.
Uživatelský avatar
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"

#81 Příspěvek od Ivan_Ryger »

Prikladam poslednu verziu, v Kicad-e 10.0.3
Přílohy
programmable_clock_kicad_0.0.2.zip
(68.04 KiB) Staženo 22 x
Uživatelský avatar
danhard
Příspěvky: 6638
Registrován: 05 bře 2007, 00:00
Bydliště: Jesenice u Prahy

#82 Příspěvek od danhard »

Tak asi takto je to zadrátované.
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 :D
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
Uživatelský avatar
danhard
Příspěvky: 6638
Registrován: 05 bře 2007, 00:00
Bydliště: Jesenice u Prahy

#83 Příspěvek od danhard »

Tak co tomu říkáte ? nikdo mi to nepochválil, zase abych to udělal sám :D

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 :D

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í :D
A nebo 4.194304MHz, ten tu mám z nějakého RFT budíku, chodil přesně.
Uživatelský avatar
samec
Příspěvky: 6669
Registrován: 19 pro 2017, 00:00

#84 Příspěvek od samec »

Rád by som pochválil, ale "KiCad was unable to open this file because it was created with a more recent version than the one you are running".

Môžem ťa však pochváliť za to, že si mi uvoľnil asi 1GB miesta na disku, keďže som sa rozhodol, že už KiCad nepotrebujem. :hockey:
Uživatelský avatar
danhard
Příspěvky: 6638
Registrován: 05 bře 2007, 00:00
Bydliště: Jesenice u Prahy

#85 Příspěvek od danhard »

Proto je to tam v PDF, to je stejné.
V KiCad v.10 je to pro ty, co si to chtějí postavit :lol:
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ší :D

Takhle by to vypadalo, jako samotné hodiny s cca 10 TTL obvody.
Přílohy
only_clock.pdf
(57.1 KiB) Staženo 7 x
Uživatelský avatar
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"

#86 Příspěvek od Ivan_Ryger »

Preštudoval som si schému,
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 :)
Uživatelský avatar
danhard
Příspěvky: 6638
Registrován: 05 bře 2007, 00:00
Bydliště: Jesenice u Prahy

#87 Příspěvek od danhard »

Namaloval jsem to jak je to skutečně zadrátované i s chybama :D
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 :D
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í :D

Kdyby se to vešlo na dvouvrstvej tišťák 100x100mm tak by to byl pěknej demonstrační bastl TTL logiky :lol:

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.
Uživatelský avatar
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"

#88 Příspěvek od Ivan_Ryger »

Zhruba tak to aj beriem,pre mladú generáciu, z ktorých mnohí si už neprejdú trajektóriou TTL logiky, nebudú mať šancu pochytiť, ako sa prišlo na FPGA.
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.
Odpovědět

Zpět na „Zapojení ze šuplíku“