AtISP

From Tučňák Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Projekt AtISP umožňuje práci s procesory Atmel vybavenými sériovým bootloaderem. Projekt zahrnuje vlastní hardware programátoru a obslužný program pro Linux. Podporuje jednočipy zejména AT89C51RD2/AT89C51ED2.

Jsou to jednočipy kompatibilní s 8051, přesněji 8052, s několika rozšířeními:

  • Sériový bootloader - v ROM procesoru je bootloader, který se aktivuje resetem při pinu PSEN staženém do nuly. Bootloader komunikuje s PC textovým protokolem vycházejícím z formátu IntelHEX.
  • 64KB pro program - už žádné starosti s malou flash, žádné zoufalé optimalizace pro kompiler
  • XRAM 1792B - na čipu umístěná paměť dostupná jako externí instrukcemi MOVX
  • EEPROM 2KB - pouze u verze ED2
  • X2 mód - umožňuje zdvojnásobit rychlost procesoru při stejném krystalu. Dallas má sice pořád navrch, ale Atmel je běžně dostupný v kusovém množství a i levnější - kolem 200Kč.
  • Keyboard interface - jinak řečeno 8 pinů portu P1 použitelných jako vstupy pro přerušení, aktivace libovolnou hranou nebo oběma
  • Další bižutérie typu PCA s watchdogem, power monitor, SPI, 2xDPTR ...

Více v datasheetu.

Schéma zapojení

Věmnujte prosím pozornost také USB variantě.


Schéma zapojení AtISP

Programátor je navržen tak, aby fungoval pokud možno na libovolném počítači. Proto je napájen z +5V ze zařízení. Základem je notoricky známé zapojení s MAX232, zde konkrétně MAX232CWE, kterému stačí pro nábojovou pumpu kondenzátory 1µF.

Do procesoru se přivádí singály RxD, TxD a PSEN na TTL úrovni. Reset se aktivuje sepnutím tranzistoru.

ISP konektor vychází z aplikační poznámky Atmelu AVR910. Napájení a reset zůstaly, místo SPI pinů jsem zapojil RxD, TxD a PSEN. Prioritou bylo, aby v aplikaci vycházel rozumně plošný spoj.

Jako konektor do PC jsem zvolil samici Cannon 9 (D-SUB) do plošného spoje. Programátor lze tedy připojit přímo do PC bez kabelu nebo s prodlužovačkou, která zachová alespoň signály 1-8.

Konstrukce

Celek je navržen na jednostranném kuprextitu. Z důvodu rozměrů jsem použil většinu součástek v provedení SMD

Jak to nakonec vypadá

Při připojování k notebooku mi překážel velký elektrolyt. Opřel se o stůl a páčil programátor. Proto jsem elyt nakonec přesadil na druhou stranu desky.

Program

Program Flip od Atmelu mi z nějakého důvodu nefungoval, proto jsem si napsal vlastní. Jak je u mě běžné, je určen pro Linux. Patrně bude fungovat i na ostatních UN*Xech, ale nemám to vyzkoušené.

Typicky se používá:

atisp /dev/ttyS0 firmware.hex

Dále umí zjistit informace o procesoru, smazat a zamnkout procesor. Podporuje formáty IntelHEX a BIN. Stáhnout si jej můžete na konci stránky v části Přílohy. Omlouvám se za .zip, ale redakční systém si nějak neporadí se soubory .tar.gz. Snad ho časem přesvědcím :-)

Verze 0.2 má jedno omezení - používá natvrdo komunikační rychlost 57600 baudů. Tato rychlost je totiž maximální pro krystal 24MHz, který používám prakticky výhradně. S některými jinými krystaly nebude programátor fungovat! Z běžných krystalů se to týká snad jen 12MHz. Naopak u další hojně používané hodnoty - 11.0592 MHz by bylo možné použít i 115200 baudů. Podrobnosti o možných kombinacích krystalů a baudové rychlosti jsou v datasheetu, hledejte 'autobaud performances'. Používáte-li jiný krystal, můžete rychlost změnit v souboru atisp.c, hledejte 'B57600'. Ve verzi 0.3 se rychlost meni parametrem -r.