Programátor USBasp pre nižšie napätia

Vyskytla sa potreba programovať mikrokontroléry AVR v zariadení, ktoré pracuje s napájacím napätím 3 V. Takže nemôžme použiť programátor, ktorý používa 5 V napäťové úrovne. Preto som sa rozhodol upraviť programátor USBasp pre tieto účely.
titulny

Programátor USBasp je veľmi často používaný pre programovanie mikrokontrolérov rodiny AVR. Ja osobne ho už niekoľko rokov používam, teraz som však potreboval pracovať s µC fungujúcim s napätím nižším ako 5V (konkrétne 3V).
Je viacero možností ako sa dá dosiahnuť úprava napäťových úrovní, často sa môžme stretnúť s tým, že na programátore je stabilizátor s výstupom 3,3 V. Toto však má 2 nedostatky:

  • Sme obmedzení na programovanie zariadení s takým napätím, aké poskytuje použitý stabilizátor
  • Podľa údajov výrobcu potrebuje ATmega8 (ktorá je použitá v programátore) pre taktovaciu frekvenciu 12 MHz napätie min 3,6 V, takže pri 3,3 V to síce funguje, ale...

Ja som sa rozhodol pre použitie integrovaného prevodníka napäťových úrovní, konkrétne TXB0104 od výrobcu TI. Vďaka tomu môže programátor komunikovať s cieľovým µC pracujúcim s napätím v intervale 1,2 až 3,6 V (µC z radu ATmega mávajú obvykle rozsah od 2,7 V vyššie), je síce trošku obmedzujúce, že nemôže pracovať až do 5V, ale to som čiastočne obišiel.
Prevodník TXB0104 je priamo určený pre použitie na rozhraní SPI, je obojsmerný, má funkciu blokovania výstupov (všetky V/V nožičky sa prepnú do stavu vysokej Z), takže jeho použitie by malo byť jednoduché. Aby mohol programátor komunikovať s µC pracujúcim aj na 5 V, sú v zapojení 2 ISP konektory.
Jeden konektor (na schéme K2) slúži na komunikáciu s 5V systémom, druhý (K3) slúži na komunikáciu som systémom s nižším napätím.
Úrovňový prevodník má odblokované výstupy len v čase kedy má signál Reset vychádzajúci z programátora nízku úroveň (to buď zabezpečí IO1 alebo stlačenie tlačítka), vždy inokedy je na signále Reset vysoká úroveň (vďaka R11), takže úrovňový prevodník je odpojený.
Výstupy úrovňového prevodníka sú odpojené tiež ak je odpojené napájanie z nízkonapäťovej strany (odpojený kábel), z čoho vyplýva, že z programovaného zariadenia musí byť vždy privedené napájacie napätie (teda výhradne ISP prevádzka), ale to by nemal byť problém.
Ešte doplním, že v mojej úprave sú vymenené farby lediek (oproti pôvodnému zapojeniu) - zelená indikuje zapnutie, červená komunikáciu. Tiež si myslím, že brown-out reset by mal byť vždy zapnutý, takže treba náležite upraviť nastavenie poistiek.

Schéma zapojenia:


schema zapojenia

Program pre mikrokontrolér v programátore nájdete na stránke autora: www.fischl.de, v sekcii Na stiahnutie nájdete schému vo väčšom rozlíšení a plošáky vo formáte Eagle.