Produkty Novinky Články Návody Kontakty

Program SAM-BA

Aplikace SAM-BA slouží pro nahrávání firmware do mikrokontrolerů řady SAM9 od společnosti Atmel přes sériový port, USB či JTAG. Je možné ji ovládat jak přes grafické rozhraní, tak i z příkazové řádky operačního systému. Podporovány jsou systémy Windows i Linux.

Instalace

Instalátor aplikace v nejnovější verzi je ke stažení se stránek firmy AtmelInformationhttp://www.atmel.com/System/BaseForm.aspx?target=tcm:26-17930. Je nutná registrace. Po stažení program nainstalujeme - stačí spustit instalátor sam-ba_2.11.exe a následovat pokynů průvodce instalací.
Po instalaci programu SAM-BA musíme ještě přidat podporu pro náš modul uCSimply SAM9260. Stáhneme si patchInformationhttp://www.ucsimply.cz/products/modsam9260/ a rozbalíme jej. Vznikne tak adresář samba-add-ucsimply_sam9260-support.patch. Vstoupíme do něj a celý obsah adresáře samba-add-ucsimply_sam9260-support.patch (ne adresář samotný!) nakopírujeme do adresáře, kam jsme si program SAM-BA nainstalovali (výchozí je C:\Program Files (x86)\ATMEL Corporation\sam-ba_2.11. Tímto je program SAM-BA připraven na spolupráci s naším modulem SAM9260.

Připojení přes USB

Nyní si zprovozníme spojení mezi programem SAM-BA běžícím na našem počítači a modulem SAM9260 přes USB.
Jako první krok musíme v případě, že máme v modulu bootovatelný firmware, oddělat jumper z pinheadu J7 (DataFlash) nebo z pinheadu J5 (NandFlash) na modulu, abychom zabránili spuštění bootstrapu z DataFlash/NandFlash. Tím dosáhneme toho, že se spustí monitor RomBoot a modul bude připravený na komunikaci s programem SAM-BA. Pak připojíme napájecí napětí a propojíme náš počítač s modulem SAM9260 pomocí USB kabelu A-B.
Operační systém (předpokládáme Windows 7) zareaguje tak, že oznámí připojení nového zařízení. To znamená, že detekce našeho modulu na USB sběrnici proběhla v pořádku. V případě nějaké chyby v zapojení, systém Windows nebude schopen naše zařízení detekovat.
Po úspěšné detekci našeho modulu začne systém Windows 7 hledat odpovídající ovladač na serveru Windows Update. Po delší době systém oznámí, že našel odpovídající ovladač GPS Camera Detect (COM7). Nevadí, nikdo není dokonalý. Ovladač sice s modulem funguje, ale ovladač od Atmelu je ovladač od Atmelu. Ovladač na ten správný změníme takto:
  1. Spustíme si správce zařízení: Start->Ovládací panely->Systém->Správce zařízení. Náš modul jako zařízení GPS Camera Detect (COM7) je v kategorii Porty (COM a LPT):
  2. Klikneme na něj pravým tlačítkem a zvolíme Aktualizovat software ovladače....
  3. V dalším dialogu vybereme Vyhledat ovladač v počítači a v dalším dialogu zvolíme Vybrat ovladač ze seznamu.
  4. V následujícím okně stiskneme tlačítko Z disku a zadáme cestu k ovladači atm6124_cdc.inf od firmy Atmel, který je v adresáři <instalační adresář\drv>, nejčastěji tedy v adresáři C:\Program Files (x86)\ATMEL Corporation\sam-ba_2.11\drv.
  5. V zadané cestě zvolíme soubor atm6124_cdc.inf a dáme Otevřít.
  6. V původním okně se objeví v textovém okně Model ovladač AT91 USB to Serial Converter. Stiskneme tlačítko Další.
  7. Objeví se okno s varováním, že ovladač není digitálně podepsán - to nám nevadí, proto zvolíme Přesto nainstalovat tento software ovladače.
  8. Systém nám po chvíli činnosti oznámí, že ovladač zařízení AT91 USB to Serial Converter úspěšně nainstalovat, dáme Zavřít.
A jsme ve finále. Spustíme program SAM-BA. Může trvat dlouho (řádově i minuty) než se objeví okno SAM-BY, protože SAM-BA se skenuje všechny USB, JTAG a sériové porty a pokouší se najít nějaké AT91 zařízení.
obrázek sam9260-samba-connect
Obrázek 1.5 SAM-BA - úvodní okno
Pokud SAM-BA nějaké zařízení na jednom z komunikačních portů našla, objeví se úvodní okno (viz obrázek 1.5). V něm si vybereme komunikační kanál a desku s kterou chceme komunikovat. Jako komunikační rozhraní zvolíme USB, tj. \USBserial\COM7 (číslo se může lišit podle počtu sériových portů ve vašem počítači), a jako desku vybereme náš modul, tj. sam9260-ucsimply. Stiskneme tlačítko Connect. Objeví se hlavní okno aplikace SAM-BA (viz obrázek 1.6).
obrázek sam9260-samba-default-screen
Obrázek 1.6 SAM-BA - hlavní okno
Poznámka: Abychom zabránili zavedení bootstrapu (primární zavaděč) z paměti Data/NandFlash, tak jsme museli oddělat jumper z pinheadu J7, resp. J5 na modulu. Díky tomu zabudovaný monitor RomBoot přešel do režimu čekání na spojení s aplikací SAM-BA. Jestliže však chceme v aplikaci SAM-BA pracovat s pamětí Data/NandFlash, musíme po spuštění SAM-BY jumper nasadit zpět. Jinak nebude možné paměť Data/NandFlash inicializovat a číst/nahrávat do ní obsah (např. firmware).

Ovládání

Nemáme na mysli stejnojmenný tanec, to opravdu ne, ale program SAM-BA od firmy Atmel pro nahrávání firmware.
Hlavní okno SAM-BY (obrázek 1.6) je rozděleno do tří oblastí. První oblast nám ukazuje obsah vnitřních pamětí - ROM, SRAM0 a SRAM1. V druhé části je seznam dostupných pamětí (vnitřních i vnějších) v podobě horizontálních záložek. A konečně třetí část je textové okno, které slouží jako příkazový řádek a jako konzole pro výstup provedených příkazů a skriptů. Úplně dole je pak stavový řádek, který informuje o použitém komunikačním rozhraní a desce, s kterou právě pracujeme.
Nás bude z pohledu nahrávání firmware zajímat především část druhá. Výchozí záložkou je DataFlash. Obsah záložek se mění podle typu paměti. V zásadě však je vždy možné do paměti přenést obsah nějakého souboru (tlačítko Send File) nebo naopak obsah paměti uložit do nějakého souboru (tlačítko Receive File). Pak ještě můžeme ověřit, že obsah aktuální paměti odpovídá obsahu souboru přeneseného do paměti (tlačítko Compare sent file with memory). Při zápisu i při čtení souboru musíme zadat výchozí adresu v poli Address v hexadecimálním formátu. Při čtení paměti lze omezit maximální velikost souboru, kam se výpis paměti bude ukládat, na velikost danou hodnotou v poli Size. Naší pozoronosti by neměl uniknout ani rozbalovací seznam Scripts, kde jsou uvedeny všechny možné skripty (naprogramované sekvence příkazů), které jsou pro danou paměť předdefinovány. Například pro paměť DataFlash je to skript Enable Dataflash (SPI0 CS0), který zinicializuje paměť DataFlash, takže pak z ní můžeme číst či do ní ukládat firmware. Nebo skript Erase All, který vymaže obsah celé DataFlash. Poslední skript určený pro paměť DataFlash je skript Send Boot File, který nám umožní zapsat do paměti DataFlash na adresu 0x0 bootstrap (primární zavaděč). Při provádění skriptů jsou do třetí části okna aplikace vypisovány zprávy informující o průběhu vykonávání skriptu nebo o vzniklé chybě.
Podobné skripty jako pro paměť DataFlash najdeme i pro paměť NandFlash. Pro paměť SDRAM je vytvořen pouze jeden skript - Enable SDRAM, který provede opětovnou inicializaci řadiče pamětí SDRAM. Pro paměť SRAM není připraven žádný skript.

Tipy a triky

Níže uvádíme poznatky z našeho používání aplikace SAM-BA:
  • Před novým spuštěním SAM-BY vždy resetujeme modul!
  • Ujistíme se, že máme oddělán jumper z pinheadu J7, resp. J5 na modulu, takže se po zapnutí napájení nezavede automaticky bootstrap z Data/NandFlash paměti, ale zabudovaný monitor RomBoot přejde do režimu čekání na spojení s aplikací SAM-BA.
  • Běžící bootstrap, resp. obecně probíhající bootování modulu z Data/NandFlash, nebo kvazistav modulu způsobený neprovedením resetu před novým spuštěním SAM-BY často vyvolá při spuštění SAM-BY chybové hlášení Error in startup script s výpisem kódu TCL skriptu.