Určitě mnoho z vás, kteří se zajímáte o AVR, tak máte výborné udělátko USBASP. Jde o programátor jehož autorem je Fischl, který využil simulovaného USB v AVR a vytvořil tak maximálně jednoduchý USB programátor pro AVR mcu. Tento článek odkazuje na řešení, jak využít USBASP pro programování ATxmega čipů.

Problém je, že ATxmega mcu s USBASP programátorem programovat nejde (informaci přebírám, já jsem totiž po problémech Atmelu s výrobou přešel na ARMmy a tak jsem se k ATxmega čipům nedopracoval). ATxmega se programuje prostřednictvím PDI protokolu, který se od ISP používaného u AVR mcu liší v tom, že vyžaduje konstatní clock signál pro datový přenos. Což je u USBASP problém, neboť tam je nejvyšší prioritou ošetření USB komunikace a tím dochází k přerušením (přesněji prodloužení pulzů) v generování hodinového signálu pro ISP.

A zde přichází se svým nápadem autor szu, kterého napadlo použít pro hodiny HW čítač a nebýt tak závislý na programovém generování hodinového signálu. To ovšem znamenalo zásah do firmware pro USBASP, který můžete provést pomocí patch souborů. Pokud používáte 3.3V USBASP, tak jen sloučíte signál pomocí dvou odporů a máte PDI. Pokud používáte klasický 5V USBASP (předpokládám že většina), tak je potřeba holt použít ještě dvě zenerky a dva odpory navrch.


Schéma zapojení převodníku




To je opravdu vše, co je potřeba na HW straně. Co se týče sw, tak odkazy naleznete na stránce autora szu.


Odkaz

Homepage projektu je zde.


Upozornění na projekt mi zaslal kolega Petus, za což mu děkuji!