Univerzální programátor

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

Univerzální programátor

#1 Příspěvek od Panda38 »

Zkouším sestavit univerzální programátor, který by kromě klasického sériového uměl i paralelní 12V programování, EPROM a testování obvodů (stačí 5V úrovně). Přestože se takové komerčně prodávají, nenašel jsem nikde jejich schéma (je ale možné, že nepoužívají +12V a pak je to bez problémů) - a zveřejněné programátory zas nejsou moc univerzální. Chtěl bych použít jedinou 40pin patici (s páčkou) bez nutnosti používat pro každý DIP jiný nástavec.

Zatím jsem vymyslel tuhle koncepci - jádrem ATmega169, 40 IO portů je vyvedeno na jednotlivé piny programovací patice. Na některé piny je občas potřeba přivádět +12V, proto jsou vstupy ATmegy chráněné odpory 120R a zenerkami 5,6V. Napětí +12V je na piny připojované PNP tranzistory, které jsou řízené ze sériového registru TPIC6C595. Víc by se mi líbilo spínání +12V nějakým IO, možná analogový multiplexer, nebo bitově řízený oddělovač sběrnice, ale nic vhodného jsem nenašel.

A protože jsou porty megy chráněné odpory, nedávají dostatečný proud a nemohou tak sloužit i jako napájecí, proto ještě další sada posuvných registrů musí spínat 0V a jiná sada s tranzistory zas +5V.

Výsledkem je monstrum s 15 registry TPIC a 160 tranzistory, což sice není problém finanční, ale rozměrový - plošňák vychází dost složitě a je dost rozměrný (zatím mi vychází na 3 jednostranné desky 10x8cm).

Neměl by někdo nějaký nápad jak to udělat líp? Jak nějak efektivně připojit k pinu +12V a přitom odpojit port procesoru, který takové napětí nesnese?
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#2 Příspěvek od Andrea »

Hádej proč to mají profíci na třech deskách nad sebou? :)
Mimochodem, používají tam například TD62783 v množství nemalém, tranzistorů taky nemálo a hlavně několik FPGAček se 100 a více piny. :)
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#3 Příspěvek od Panda38 »

Dík za názor. Takže spíš asi to nepůjde moc zjednodušit. TD62783AP je zajímavá varianta, tak přece jen něco umí spínat vyšší napětí.

Původně jsem myslel, že půjde použít programovatelné hradlové pole, které procesor přeprogramuje tak, aby mu správně přehazovalo piny a procesor tak mohl rychle přistupoval ke kompletním datům a adresám a nemusel to sestavovat po bitech, ale to se ukázalo nerealizovatelné.
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#4 Příspěvek od rnbw »

Tak si tam daj druhu ATmegu na spinanie 12V.

Alebo si postav Willem, ten na kopu flash a EPROM staci a nema procesor ziadny.
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#5 Příspěvek od Panda38 »

Willem se mi moc nelíbil, nutnost používat spousty adaptérů a myslím snad ani nepodporuje +12V. Ale mohu se mýlit, dostatečně podrobně jsem ho nestudoval.

Druhá ATmega by nahradila jen ty posuvné registry, tranzistory a ochranné odpory by musely zůstat ... i když ... teď ty posuvné registry zabírají dost místa, možná by druhý MCU mohl být také zajímavou náhradou.
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#6 Příspěvek od rnbw »

Pri Willeme zalezi na verzii, ja mam PCB 4.0, kde idu bezne flash a EPROM v DIP, PLCC32 a tiez FWH/LPC flash. Su tam aj dalsie patice na seriove EEPROM a tusim nejaky PIC (nikdy som nepouzil).

Vsetky piny su na jedno napatie VCC (nastavuje sa samostatne, da sa pouzit nielen 5V, ale aj 3,3V) a niektore sa daju prepinacmi prepnut na druhe napatie (VPP - tam sa da dat podla potreby napr. aj 13,8V), pripadne zem. Takze to nie je univerzalne. Nevyhodou je SW, ktory je stary a nikomu sa nechce urobit lepsi (chcel som urobit podporu do linuxoveho programu flashrom, ale potom ma presla chut).
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#7 Příspěvek od Panda38 »

No asi zkusím tu svou verzi. Možná jdu špatným směrem, ale jinak než pokusy by se člověk k ničemu nedopracoval a nic nenaučil. :-)
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#8 Příspěvek od Panda38 »

Mohl bych poprosit o názory? Zde je část přepínače napájení pro testovací pin programovacího konektoru (celkem je pinů 40).

Tranzistor T1 přivádí na pin napájecí napětí +5V, tranzistor T2 napětí +12V. Dioda v kolektoru T1 ho chrání proti průrazu emitorového přechodu v případě zapnutí +12V. Kvůli úbytku je proto napětí zvýšené na +6V. Tranzistory jsou spínané posuvným registrem s DMOS tranzistory na výstupu (otevřený kolektor), jeden z výstupů spíná pin na 0 jako napájecí. Přes ochranný odpor a zenerku 5,1V je připojen port procesoru, buď jako vstup nebo výstup (používá se když není zapnutý žádný napájecí tranzistor).

Nenapadá někoho možný zádrhel? (tedy kromě toho, že to stále vychází až moc rozsáhlé).
Přílohy
prepinac.png
(6 KiB) Staženo 124 x
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#9 Příspěvek od Panda38 »

Dotaz - v programátoru používám MC34063A na generování +12V z +5V, protože beru napájení z USB. Z USB mám za polyswitchem a tlumivkou 4,7V a potřeboval bych to zvednout na +5,5V (140 mA). Myslel jsem že bych použil zas MC34063A, ale kalkulátor takovou konfiguraci odmítá. Funkce obvodu mi není až tak úplně jasná, takže jsem zatím z datasheetu nevyčetl zda taková pumpa je možná nebo ne. Je nějaká možnost jak obvod na takový měnič zapojit? (tj. z +4,7V na +5,5V při proudu 140 mA) Nebo bych musel použít něco jiného? Kalkulátor mi povolil jen vstup +3,9V (při výstupu +5,5V). Tak nevím, znamená to že to při vstupu +4,9V nepojede nebo to můžu ignorovat a normálně takhle zapojit?

... no a možná by se mi ještě hodilo i možnost přepínání (z MCU) mezi +5.5V a +3,8V, ale to už je další problém a možná to nebudu používat, tak to až do budoucna. :-) Nevím jestli by šel obvod přepínat jen změnou dělicích odporů, i když by jednou napětí zvedal a podruhé snižoval, nebo zda bych musel přepínat 2 generátory. Ale asi obvody 3,3V ani programovat nebudu, zatím jsem na takovou potřebu nenarazil.

Mimochodem jak jsem se zde řešil přepínání napětí na pinech, tak už jsem měl z poloviny ten programátor sletovaný, ale pak mě naštvalo že to jsou 3 desky a hromady součástek, zahodil jsem to a začal znovu, jednodušší variantu, kde se +12V přepíná na piny jumperama. Vyjde to na 1 desku a zapojení je docela jednoduché, jen mám teď na programovaném obvodu docela malé napětí.
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#10 Příspěvek od Panda38 »

To znamená asi takhle že bych ten měnič zapojil. Ne že bych to nemohl vyzkoušet zda to funguje, jen že kdyby se to pak používalo ve větším množství, tak jestli by nebyl principiální zádrhel proč by to občas někde nefungovalo.
Přílohy
PandaProg_5V_sch.png
(4.7 KiB) Staženo 109 x
Uživatelský avatar
PvvS
Příspěvky: 464
Registrován: 25 lis 2008, 00:00
Bydliště: Brno
Kontaktovat uživatele:

#11 Příspěvek od PvvS »

Z ciny programator G540 i s adapterama a testovanim svabu za litr ..
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#12 Příspěvek od Panda38 »

PvvS píše:Z ciny programator G540 i s adapterama a testovanim svabu za litr ..
Tady je k němu recenze: http://nostalcomp.cz/g540.php

A jak je vidět podle vnitřností, přepínají různá napětí pomocí tranzistorů pro každý pin zvlášť. Jiné (profesionální) programátory na to mají speciální integráče, pin drivery.
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#13 Příspěvek od Panda38 »

Doplňuji info k Univerzálnímu programátoru, který jsem tu otevřel před rokem.

S projektem jsem už z časových důvodů skončil (nestíhám vše co bych chtěl) - bohužel v nedokončené fázi. Pokročil jsem na tom celkem dost, ale k využití v praxi to zatím ještě nestačí. Potěšilo by mě, kdyby někdo ten projekt ještě nějak využil nebo dokonce pokračoval. V programátoru je možné nyní programovat procesory Atmel (sériově i paralelně 12V), na víc už se nedostalo. K dispozici je poměrně dobrý a rychlý interpreter skriptů.

http://panda38.sweb.cz/hw/PandaProg.html

Při té příležitosti bych rád doporučil ještě jeden projekt - osvětlení vánočního stromku s 320 LED. Dělal jsem ho minulý rok na Vánoce a možná by to mohl někdo využít. Nahraná videa nejsou moc kvalitní (můj foťák to nezvládal), skutečnost vypadala mnohem líp.

http://panda38.sweb.cz/hw/Xmas.html

ukázkové video na YouTube: https://www.youtube.com/watch?v=Vc0DMElMmiI
Přílohy
PandaProg.jpg
(44.21 KiB) Staženo 87 x
Xmas.jpg
(40 KiB) Staženo 93 x
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“