Jednoduchý (ale ne zase moc) ATX breakout board pro 8-bity

Pro napájení mých 8-bitových miláčků je potřeba spousta napětí. Ponejvíce se jedná o +/- 5V a +/- 12V. Sem tam se ale šikne i exotika, jako je –9V, –10V nebo ještě něco úplně jiného. Existují starší zdroje, jako je SN 080, EA 1605 a další. Velmi hezky o napájení 8080 pojednává Nostalcomp. Všechny tyto zdroje mají ale jednu společnou nevýhodu. Jsou velké a těžké a ne úplně univerzální. Jako skvělá volba se jeví obyčejný ATX zdroj. I ten má ale nevýhody. Jednak u moderních zdrojů chybí –5V a druhak mají „blbý“ ATX konektor, ke kterému se cokoli špatně připojuje. Mně osobně vadí i nutnost spínání klasickým SPST vypínačem. Na zabudování některých počítačů je fajn ATX skříň a tam je k dispozici jen tlačítko. Protože nejsem zdaleka první, koho to napadlo, existují různé breakout boardy, např. od Sparkfun nebo Dangerous Prototypes. Protože ale žádný není podle mých představ, rozhodl jsem se postavit vlastní, o něco složitější, ale malý breakout board.

ATX_power_adapter_8bity_FailureInd   ATX_power_adapter_8bity_ResetGen   ATX_power_adapter_8bity_Tick50Hz

Sparkfun ATX breakout board je příliš jednoduchý, neřeší vůbec spínání, vlastně jen vytahuje ATX konektor na klasické pájecí piny. Dangerous Prototypes ATX breakout board je o dost lepší. Řeší zapínání pomocí SPST vypínače a připojení je přes klasické zdrojové svorky na banánky nebo upevnění kabelu. Dostanete i zatěžovací odpor, kdyby Váš zdroj nechtěl sepnout naprázdno. Neřeší ale důležitou věc, kterou je –5V, bez kterých se u 8080 a obdobných neobejdete. Navíc díky svorkám je spíše vhodný na stůl než na zabudování do zařízení. Také mi vadí jen jedna zemnící svorka.

Sparkfun_ATX_breakout_boardDangerous_Prototypes_ATX_breakout_board

Já jsem uvažoval při návrhu trochu jinak. Potřeboval jsem zdroj, který bude malý, půjde snadno zabudovat do počítače a bude mít i oněch potřebných –5V. Proto jsem jako terminály zvolil klasické šroubovací svorky pro kabely a musel jsem přidat stabilizátor 7905 pro získání –5V z dostupných –12V. Některé starší ATX zdroje –5V mají a tak jsem na desku přidal jumper JP1, kterým jde navolit, zda –5V vzít přímo ze zdroje nebo z –12V větve. Nutno říci, že –12V a tudíž i –5V není příliš proudově zatížitelných, na –12V je max. odběr 0,8A a na –5V jen 0,3A, ale s tím si budeme muset vystačit.

Spínání jsem chtěl vyřešit klasickým tlačítkem. Hlavní důvod byl v tom, že některé počítače mám a již zabudované a některé ještě plánuji zabudovat do ATX skříně, která právě disponuje jen tlačítkem. To vyžaduje klopný obvod a ošetření zákmitů, což by se snadno dalo vyřešit TTL logikou. Jenže já chtěl víc. Minimálně pro jeden další projekt potřebuji zdroj, který generuje 50 Hz takt. Pro další projekt zase mám k dispozici jen zapínací tlačítko a chtěl jsem vyřešit možnost zapínání i resetu počítače pomocí dlouhého nebo krátkého stisku tohoto tlačítka. Navíc jsem potřeboval něco hodně malého. Chtěl jsem levnou desku a to znamená držet se v limitu 50×50 mm. Teď už určitě většina z vás ví, kam mířím a Petr začíná skřípat zubama Mrkající veselý obličej. Ano, použil jsem malé MCU z řady ATTINY. Lze použít jakýkoli od ATtiny13 až po ATtiny85 v pouzdře DIP-8, cenově okolo 30 Kč.

8bity_ATX_adapter_2013-07-22.sch

A když už tam to MCU je, tak jsem ho zkusil použít i na něco víc, než jen chytristiky s zapínáním napájení a generování 50 Hz taktu. Obvod umí změřit, zda –5V, potažmo i +5V je v pořádku. Zpočátku jsem uvažoval o invertujícím operačním zesilovači, ale nějak se mi to nevlézalo, tak jsem nakonec vše vyřešil odporovým děličem. Není to úplně čisté, ale je to jednoduché a funguje to. MPU také sleduje signál POWER GOOD (Power OK) ze zdroje a v případě výpadku kteréhokoli z těchto napětí umí indikovat poruchu nebo aspoň vypnout zdroj, podle nastavené konfigurace.

ATX_8bit_power_adapter_PCBs

Na desce jsou standardně 2 LED – žlutá pro indikaci zapnutého Standby napětí ATX zdroje a tím i připravenosti k zapnutí a zelená indikující –5V a tím zapnutý zdroj. Zelená LED současně slouží i jako minimální zátěž regulátoru 7905. Zátěž ATX zdroje je potřeba řešit externě, pokud je to nutné. Zdroje které mám k dispozici spínají však bez problému.

Na šroubovacích svorkách jsou k dispozici následující napětí:
+5V (2x)
-5V
+12V
-12V
+3.3V

Standby napětí +5V jsem nevyváděl, ale v případě potřeby je možné přeškrábnout např. +3,3V a vyvést ho místo něj. Každá svorka má svoji zem a všechny země jsou spojené.

Kromě výstupních napěťových svorek jsou k dispozici i dva 2-pinové konektory. K6 slouží k připojení zapínacího tlačítka, přičemž jedno mikrotlačítko je pro snazší manipulaci již na desce adaptéru. Konektor K7 je poněkud univerzální a v kombinaci s osazením odporu R3 umožňuje buď přímé připojení LED nebo lze tento signál použít jako obecný vstup či výstup, například jako signál RESET pro počítač.

Firmware MPU je napsaný v jazyce C pro Atmel Studio, které je zdarma. Program je opravdu jednoduchý a nepoužívá žádné složité konstrukce, takže jeho úprava by neměla nikomu činit větší potíže. Aktuální velikost kódu je 908 bytů flash a 18 bytů RAM, což opravdu zvládne i nejmenší ATtiny13.

Na desce adaptéru je k dispozici 6-pinový ISP konektor se signály GND, RESET, MISO, MOSI, SCK a VCC. VCC je připojeno přes diodu D1, kterou je potřeba správně otočit podle toho, jaký máte programátor a zda chcete napájet desky z něj nebo naopak potřebujete napětí z desky. Případně je možné i místo diody D1 osadit drátovou propojku.

Protože je k dispozici málo pinů, jsou signály MISO, MOSI a SCK společné pro K7, měření napětí na –5V a načítání signály Power OK. Aby se „nepletly“, jsou k dispozici jumpery JP2 (měření –5V) a JP3 (Power OK vstup). Nejpohodlnější je přepnout procesor do DebugWIRE módu, kde je potřeba jen GND, VCC a RESET. Tyto signály se nikde jinde nevyužívají a je tedy možné plnohodnotně programovat, testovat a ladit program v MPU při plném zapojení. Potřebujete ovšem vhodný programátor/debugger, jako např. poměrně levný AVR Dragon.

ATX_power_adapter_programming   ATX_power_adapter_finished

Program jde dobře konfigurovat díky nastavení proměnný a v současné době používám tři následující konfigurace:
1) Zdroj generující 50 Hz signál
– k dispozici jsou všechny napětí +/-5V, +/-12V, +3.3V
– zdroj lze zapnout a vypnout krátkým stiskem tlačítka
– MPU měří –5V (společně s +5V) a Power OK signál a v případě jejich výpadku vypne zdroj
– na konektoru K7 je generován 50 Hz signál (s přesností danou interním 8 MHz oscilátorem)

2) Zdroj s indikací poruchy
– k dispozici jsou všechny napětí +/-5V, +/-12V, +3.3V
– zdroj lze zapnout a vypnout krátkým stiskem tlačítka
– MPU měří –5V (společně s +5V) a Power OK signál a v případě jejich výpadku vypne zdroj
– na místě K7 je zapojena červená LED a v případě detekovaného výpadku je zde indikován typ poruchy pomalým nebo rychlým blikáním

3) Zdroj ovládající signál RESET pro počítač
– k dispozici jsou všechny napětí +/-5V, +/-12V, +3.3V
– zdroj lze zapnout krátkým stiskem tlačítka a vypnout jeho dlouhým stiskem
– při zapínání je RESET na K7 aktivní až do doby naběhnutí zdroje a ověření správnosti napětí
– krátký stisk tlačítka při zapnutém napájení generuje na K7 signál reset o délce 500 ms
– MPU měří –5V (společně s +5V) a Power OK signál a v případě jejich výpadku vypne zdroj
– při vypnutí zdroje díky výpadku napájení je na K7 nejprve aktivován a udržován RESET

První typ zdroje mám pro GBA1000, druhý na bastlení a třetí pro zabudování 8-bitového počítače do ATX skříně. Samozřejmě si asi každý dokážete představit, jaké další možnosti a využití se nabízejí pro konkrétní aplikace. Šlo by toho ještě víc, ale chtělo by to více pinů na MPU pro měření všech napětí, vyvedení více „blikátek“, LED nebo LCD displeje, více tlačítek, relátek apod. Něco mám v hlavě, ale uvidíme, jak moc bude čas.

Co se mi už nevlezlo na DPS jsou nějaké montážní díry, takže plánuji na spodní „pájecí“ stranu tlustší oboustrannou samolepku, kterou současně použiji pro upevnění adaptéru do skříně nebo přímo na tělo ATX zdroje.

Nechal jsem udělat 10 plošňáků, ke kterým jsem koupil i komplet součástky. Nějaké použiju sám, některé už jsem slíbil, ale ještě tu 3 jsou volné. Tak pokud máte zájem, jedna komplet sada součástek s DPS vychází na 160 Kč + poštovné a balné (cca 50 Kč), tak dejte vědět. Kdo dřív přijde, ten dřív napájí. Jo a řekněte si, jaký firmware chcete naprogramovat do MPU.

Kdo by si chtěl desky udělat sám, tak tady jsou Gerber data a nebo si napište o Eagle zdroje. Zdrojáky firmware pro MCU ATtiny stahujte zde.

Příspěvek byl publikován v rubrice Moderní projekty, Nezařazeno, PC. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

13 komentářů: Jednoduchý (ale ne zase moc) ATX breakout board pro 8-bity

  1. zz_indigo napsal:

    ten 7905 asi nebude moc nadseny ked nema blokovacie kondenzatory a po odpojeni ostane vystup len tak vo vzduchu.

    Mne sa pri tomto radi rozkmitavali. A sem tam odchadzali do kremikoveho neba

    • Martin napsal:

      Jakto, ze nema? Standardne mas na JP1 spojene 1-2, jsou tam hned 2. Pravda, ze jsem je mohl nechat pripojene porad, i v pripade, ze beres -5V primo ze zdroje. Pokud mas zapojeno 2-3, tak je pravda, ze nema zadne kondiky a zadny odber, ale je otazka, jestli ho pak vubec osazovat, kdyz neni potreba. Vsechny novejsi zdroje (pouzivam s oblibou ty male uATX) -5V nemaji.

      • zz_indigo napsal:

        Ad neosadzovanie 7905. Ja to viem ty to vies ale napadlo by to aj ostatnich?

        • Martin napsal:

          Mas recht, mohl jsem to nejak osetrit. Pravda, ze mne vubec nenapadlo, ze kdyz vypojim vystup, mam ho porad na napajeni. Otazka zni, jestli i pak neni potreba tam mit nejakou zatez, aby se to neuregulovalo az do smrti 😉

          • zz_indigo napsal:

            no nejaka simbolicka zataz (10k) a 100n kondenzator by maly stacit

          • Martin napsal:

            Jj. poradim to vsem, kdo si ode mne berou desku a v pripade nejake budouci reinkarnace s nejakym lepsim MPU, merenim a postupnym nabehem napeti to tam dam. Jinak v DS je, ze ma min. odber 2 mA, takze kdyby clovek chtel dodrzovat specifikace, tak jse to na 2k2, ale praxe je samozrejme jina.

  2. SC napsal:

    Nejspíš jdu s křížkem po funuse a navíc jsem asi propadl v testu inteligence, neboť jsem nebyl schopen najít kontakt, kam poslat objednávku. Přesto se zeptám. Nebyla by tam ještě jedna deska (nebo celá sada součástek) na prodej? Pokud ano, měl bych zájem o variantu 2.

  3. Pingback: GBA1000 – solidní upgrade pro Amiga A1000 | Martinův 8-bitový blog

  4. Bogdan napsal:

    Můžete sestavit soubor s firmwarem do Hex
    Protože já nevím, jak sestavit. Díky vám.

  5. Bogdan napsal:

    Mám programátor USBtiny který programy Program AVRDUDE 3.3 .
    Dalo by se udělat firmware pro program AVRDUDE
    prodloužení .hex
    Photo Device : http://s014.radikal.ru/i329/1503/55/8e5805918fb0.jpg
    děkuji .

Napsat komentář: Martin Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *