Web51 - Hardware

Web 51 - MAC adresy  hw_web51.html  Hardware - prototyp WWW8052

Hardware Web 51 - ISP programování

Dodávaný LPT ISP KIT


Programování procesorů ATMEL pomocí rozhraní ISP je dnes již běžná věc. Šetří to čas při vývoji, není třeba stále přenášet CPU mezi programátorem a paticí v zařízení. Zde najdete kromě obecného popisu použití ISP také jedno z možných řešení interface, který vytváří ISP (In System Programming) pomocí LPT portu. Popsané řešení je možné realizovat podle dokumentace uveřejněné na www.HW.cz nebo objednat jako hotový kit.

Praktické použití ISP

Rozhraní pro sériové programování implementoval ATMEL hlavně do rodiny procesorů AVR. Zde je použití ISP celkem bez větších problémů, problémy mohou nastat pouze se strmostí hran, což lze částečně řešit snížením hodnoty PULL UP odporů a nepoužíváním připojovací kabelu delšího než cca 1m.

ISP je však také u dvou procesorů z rodiny x51 AT89C8252 a AT89S53. Použití nahrávání programu do CPU po ISP je jeden z velmi dobrých způsobů jak vyvíjet aplikace na staré rodině x51. Je zde však potřeba počítat s opačnou polaritou úrovně RESET oproti AVR rodině, což je potřeba u některého SW nastavit. Pozor také na resetovací zapojení v laděné aplikaci. Periferie musejí počítat s resetem z ISP programátoru.

Významným problémem je ale špatná HW implementace podpory ISP rozhraní. To se z důvodu nedostatku pinů připojuje na piny, sdílené s bránou P1. Při programování v aplikaci by mělo zapojení periférií počítat s možností přenosu dat po těchto pinech ve stavu RESET. Programování FLASH procesoru skrz ISP je řešeno doplněním bloku obsluhy ISP do struktury obvodu. Tento blok čeká po resetu na definovanou sekvenci, při níž odpojí zbytek CPU a naprogramuje paměť. Problém, který popisuje ATMEL i ve svých errata dokumentacích spočívá v tom, že v některých případech blok ISP považuje za sekvenci programování i přístup na port P1 při běhu programu v CPU. Pokud tento stav nastane, procesor se dostane do nedefinovatelného stavu, kdy programování přes ISP chvíli funguje, chvíli ne. CPU je potom nutné vymazat a znovu naprogramovat v klasickém paralelním programátoru.

Zde je třeba si uvědomit, že po každém ukončení programování přes ISP nastavuje RESET programovací SW do neaktivního režimu, čímž v podstatě okamžitě spouští program, který byl do CPU nahrán. Kombinací které přistupují na bránu P1 je docela hodně a proto je potřeba s touto HW chybou počítat. Atmel doporučuje nepřistupovat na piny ISP z P1 prvních cca 500 ms po resetu. Pokud tedy například nastavujete po RESETu všechny I/O piny do logické 0 použijte před nastavením ISP pinů (P1.5 - P1.7) čekací smyčku.

Web51 po startu nastavuje porty pro snížení spotřeby do stavu log. 0. Tím však manipuluje také se zmíněným P1 a proto soubor web51.asm v adresáři /lib/ obsahuje v sekci .global_reset čekací smyčku :

	.global reset
reset:
	MOV	R7,#20		;ISP DELAY for AT89S8252 CPU
ISP_Ra:	MOV	R6,#0xFF	; 255 x 255 x 25 = 650 ms for 22.1184 MHz Xtal
ISP_Rb:	MOV	R5,#0xFF
ISP_Rc:	DJNZ	R5,ISP_Rc
	DJNZ	R6,ISP_Rb
	DJNZ	R7,ISP_Ra

LPT ISP Prog

Programování procesorů ATMEL pomocí rozhraní ISP je dnes již běžná věc. Šetří to čas při vývoji. Chceme vám představit jednoduchý programátor, nebo spíš interface, který vytváří ISP (In System Programming) pomocí LPT portu.

LPT ISP Prog je spíš interface, nežli programátor v pravém slova smyslu. Neobsahuje žádné patice pro programování obvodů přímo na základní destičce. Jeho výstupem je pouze konektor ISP. Pokud potřebujete naprogramovat ISP procesor mimo aplikaci, lze samozřejmě připojit ISP přímo na procesor, doplnit k procesoru krystal s kondenzátory a to je vše..

Schéma dodávaného programátoru

Napájení
ISP rozhraní obsahuje napájecí napětí. Protože zde existuje možnost napájení z aplikace, nebo z jiného zdroje, je na destičce programátoru oddělovací dioda D1. Pokuje ji zkratujete, je veškeré napájení propojeno. Dioda odděluje pouze napájení pro samotný oddělovací obvod, napájecí piny z ISP konektoru jsou propojeny se svorkovnicí pro případné externí napájení.
ISP rozhraní obsahuje kromě napájení ovládání resetování procesoru (/RESET), vodiče pro sériový zápis (MOSI) a čtení (MISO) obsahu interních pamětí FLASH a EEPROM + jeden vodič pro synchronizaci přenosu dat (SCK).
Vodiče MISO a MOSI nejsou křížené = MISO z programátoru se připojuje na MISO CPU a MOSI na MOSI!

Výhody programátoru :

Aplikační tipy

Ovládání programování skrz PonyProg z aplikace

Podle vyjádření autora PonyProgu lze volat ISP programování externě, přes PonyProg SW přes použití scriptů. Například z MAKEFILE tak lze zavolat Programovací SW a rovnou obvod naprogramovat.
Přiložený příklad volá PonyProg z Makefile pomocí příkazu make isp. Potřebujete nejméně PonyProg2000 v 2.04h.

    ISP = c:/programmi/ponyprog2000/ponyprog2000.exe
    MCU = at89s8252

isp:    $(TRG).rom $(TRG).eep
    echo -e "SELECTDEVICE $(MCU)\nLOAD-PROG $(TRG).rom\nLOAD-DATA 
$(TRG).eep\nERASE-ALL\nWRITE-ALL" >isp.e2s
    $(ISP) isp.e2s
    #$(RM) isp.e2s

Konstrukční podklady k programátoru

Veškeré konstrukční podklady najdete na HW serveru v článku LPT ISP Prog. Včetně zdrojových kódů pro plošné spoje a ovládacího softwaru..
Hotový ISP Programátor si můžete objednat s našimi dalšími produkty.

Použitá literatura

pdfAT89S8252 8-bit Microcontroller with 8K Bytes Flash (34 str.)
pdfThe Errata sheet for AT89S8252 and AT89LS8252 (2 str.)




Sponzored by LPhard Ltd. Graphics by GIMP Created by EasyPad

(c)Copyright 2000, 2001, HW server & Radek Benedikt
Web51@HW.cz, Web51.HW.cz

Final applications of the Web51 : www.HWgroup.cz
Web 51 - MAC adresy  Obsah  Hardware - prototyp WWW8052