Programuje w systemie(ISP) mikrokontrolery takie jak: 89S8252, 89S53, 89S51, 89S52, i rodzinę AVR(do 64KB kodu na razie). Używa do tego celu portu COM (można wybrać, który) a zasilanie pobiera z programowanego układu. Czas programowania ok. 4KB to ok. 1 minuta i 48 sekund.
Ten projekt może nie jest nowy, ponieważ w Internecie można znaleźć sporo programatorów tzw. ISP, tzn., że mikrokontroler może być programowany w systemie poprzez kilkuprzewodowy interfejs. Można zapytać, że skoro jest już parę gotowych projektów to, po co tworzyć następny?
Kiedyś siedziałem sobie przy komputerze tworząc kolejny program do mikrokontrolera tym razem próbowałem przerobić radio samochodowe z RDSem. no i za którymś razem zdenerwowało mnie bardzo kolejne przełączanie wtyczki, aby wydrukować kolejną wersję kodu. No właśnie. Większość programatorów używa tego samego złącza, co drukarka LPT. Powiecie pewnie żebym sobie albo zmienił drukarkę albo dołożył drugiego LPT’ka. Ale, po co mi drugi taki port. Drukarkę i tak trzeba będzie zmienić, ale jeszcze nie teraz.
Dlatego właśnie zacząłem szukać programatorów, ISP, które używają złącza COM. No i owszem jest parę w Internecie, ale albo trzeba za nie zapłacić albo działają tylko z paroma układami. Dodatkowo ATMEL wprowadza nowy mikrokontroler AT89S52, który ma zastąpić AT89C51 i C52. No i jak to przystało na nowy produkt da się go zaprogramować przez ISP. Niestety inżynierowie z ATMEL a albo nie pomyśleli wystarczająco długo albo mieli inny powód i wprowadzili pewne zmiany w protokole komunikacji z tym chipem poprzez ISP. Normalność nakazywałaby zunifikowanie protokołu programowania albo z poprzednikami (89s8252, 89s53) albo przynajmniej z rodziną mikrokontrolerów AVR. Niestety mamy kolejną mutację protokołu i starym programatorem raczej nic nie zdziałamy. Dlatego postanowiłem opracować mój własny programator.
Cały programator został wykonany od podstaw. Własnoręcznie zaprojektowałem płytkę drukowaną, napisałem wsad do mikrokontrolera oraz oprogramowanie pod windows. Do zaprojektowania płytki oraz do stworzenia schematu elektrycznego użyłem programy Circuitmaker 2000, który zawiera w sobie edytor schematów(Circuitmaker) i edytor obwodów drukowanych(Traxmaker). Ktoś pewnie zapyta, dlaczego nie użyłem pakietu Protela? Otóż, dlatego że polubiłem ten pakiet no i uruchamia się on szybciej niż Protel. Wsad do mikrokontrolera napisałem w Bascomie a aplikacje pod Windows w Visual Basicu. BASIC znowu ktoś zapyta, dlaczego? Ja uważam, że używanie programów wyższego rzędu niż asembler jest dużo przyjemniejsze, bo można się skupić na tym, co chcemy osiągnąć a nie na tym jak i co poprzesuwać, przez ACC. Ale dość już wstępu. Przejdźmy do szczegółów.
Kompletny projekt w załączniku
Autor: Szymon Trocki
Zgoda na publikację: #3

Ten projekt może nie jest nowy, ponieważ w Internecie można znaleźć sporo programatorów tzw. ISP, tzn., że mikrokontroler może być programowany w systemie poprzez kilkuprzewodowy interfejs. Można zapytać, że skoro jest już parę gotowych projektów to, po co tworzyć następny?
Kiedyś siedziałem sobie przy komputerze tworząc kolejny program do mikrokontrolera tym razem próbowałem przerobić radio samochodowe z RDSem. no i za którymś razem zdenerwowało mnie bardzo kolejne przełączanie wtyczki, aby wydrukować kolejną wersję kodu. No właśnie. Większość programatorów używa tego samego złącza, co drukarka LPT. Powiecie pewnie żebym sobie albo zmienił drukarkę albo dołożył drugiego LPT’ka. Ale, po co mi drugi taki port. Drukarkę i tak trzeba będzie zmienić, ale jeszcze nie teraz.
Dlatego właśnie zacząłem szukać programatorów, ISP, które używają złącza COM. No i owszem jest parę w Internecie, ale albo trzeba za nie zapłacić albo działają tylko z paroma układami. Dodatkowo ATMEL wprowadza nowy mikrokontroler AT89S52, który ma zastąpić AT89C51 i C52. No i jak to przystało na nowy produkt da się go zaprogramować przez ISP. Niestety inżynierowie z ATMEL a albo nie pomyśleli wystarczająco długo albo mieli inny powód i wprowadzili pewne zmiany w protokole komunikacji z tym chipem poprzez ISP. Normalność nakazywałaby zunifikowanie protokołu programowania albo z poprzednikami (89s8252, 89s53) albo przynajmniej z rodziną mikrokontrolerów AVR. Niestety mamy kolejną mutację protokołu i starym programatorem raczej nic nie zdziałamy. Dlatego postanowiłem opracować mój własny programator.
Cały programator został wykonany od podstaw. Własnoręcznie zaprojektowałem płytkę drukowaną, napisałem wsad do mikrokontrolera oraz oprogramowanie pod windows. Do zaprojektowania płytki oraz do stworzenia schematu elektrycznego użyłem programy Circuitmaker 2000, który zawiera w sobie edytor schematów(Circuitmaker) i edytor obwodów drukowanych(Traxmaker). Ktoś pewnie zapyta, dlaczego nie użyłem pakietu Protela? Otóż, dlatego że polubiłem ten pakiet no i uruchamia się on szybciej niż Protel. Wsad do mikrokontrolera napisałem w Bascomie a aplikacje pod Windows w Visual Basicu. BASIC znowu ktoś zapyta, dlaczego? Ja uważam, że używanie programów wyższego rzędu niż asembler jest dużo przyjemniejsze, bo można się skupić na tym, co chcemy osiągnąć a nie na tym jak i co poprzesuwać, przez ACC. Ale dość już wstępu. Przejdźmy do szczegółów.

Kompletny projekt w załączniku
Autor: Szymon Trocki
Zgoda na publikację: #3
Cool? Ranking DIY