Przeglądając Internet natknąłem się na prosty programator zbudowany na kilkunastu elementach. Po zbudowaniu układu okazało się, że ów programator ma kilka wad. Napięcie zasilające programowane układy jest zbyt niskie, a programator nie chce programować pamięci EEPROM z serii 24Cxx. Układ programatora był na tyle jednak fascynujący, że postanowiłem zlikwidować owe problemy. Schemat programatora został zamieszczony na rysi. Po wstępnej analizie schematu widać, że programator podłączany jest do komputera poprzez złącze RS232.
Aby zrozumieć działanie programatora trzeba zapoznać się choćby pobieżnie zdziałaniem R5232. Każde wyprowadzenie na złączu może przyjąć stan niski lub wysoki. Uzależnione jest to tylko od programu obsługującego, a w zasadzie od ustalonego standardu przesyłania danych lub tak, jak jest to w naszym przypadku – od programisty, który napisał program do obsługi programatora. Wcześniej zostało wspomniane, że każde wyprowadzenie złącza może przyjąć stan wysoki lub niski, czyli tak samo jak w technice cyfrowej „0” lub „1”. Jest jednak zasadnicza różnica w wielkości napięcia. „Zero” logiczne odpowiada wartości -12V, natomiast „jedynka” logiczna odpowiada wartości +12V – obie wartości względem masy. Co prawda prąd jaki można pobrać jest stosunkowo niewielki, ale przy odrobinie pomysłowości można sobie z tym problemem poradzić.
Jak widać na rysunku poniżej układ programatora nie posiada oddzielnego zasilacza. Zasilanie układu odbywa się z linii RTS. Podczas programowania np. pamięci 24C16 na linię RTS wysyłany jest ciąg impulsów. Dioda D3 spolaryzowana w kierunku przewodzenia przepuszcza tylko dodatnie impulsy o potencjale +12V. Na diodzie Zenera następuje spadek napięcia do 5,6V plus 0,7V na diodzie D4. Po dodaniu tych dwóch wartości otrzymujemy napięcie zasilania układu +6,3V. W rzeczywistości wartość napięcia może się różnić o parę, paręnaście procent. Kondensator C2 gromadzi nadmiar energii w momencie, gdy jest ona zbędna i oddaje ją, gdy układ potrzebuje większego poboru prądu.
Wiemy już jak jest otrzymywane napięcie zasilania +5V. Pozostało jeszcze +12V potrzebne do programowania niektórych układów mikroprocesorowych. Napięcie to uzyskujemy z linii TXT przy użyciu D1, DZ1, DZ2 i Tl.
Układ umożliwia programowanie 42 różnych układów mikroprocesorowych i pamięci. Lista wszystkich układów :
Wykaz elementów:
R1 – 10kΩ
R2 – 1,5kΩ
C1 – 100μF/25V
C2 – 22μF/25V
T1,T2 – BC547
D1,D2,D3,D4 – 1N4148
DZ1 – BZX55C8V2
jumper – PLS2
Schemat ideowy: