SAM9260 a .NET Micro Framework - 1. Začínáme
Začátky bývají těžké. Ne však s námi! Postupně si, krok za krokem, zprovozníme na modulu SAM9260 prostředí Microsoft .NET Micro Framework. Začneme tím, že si modul SAM9260 krátce představíme. Pak jej připojíme k napájení, zapojíme jeho sériový port a USB device port. Díky prostředí Microsoft .NET Micro Framework můžeme pro modul SAM9260 programovat aplikace v jazyce C# a ladit je ve vývojovém prostředí MS Visual Studio.
Vybavení modulu
Nemá smysl znovu opisovat údaje dostupné v technické dokumentaci modulu SAM9260. Uvedeme jen ty údaje, které se vztahují k prostředí MS .NET Micro Framework (dále jen NETMF).
- operační paměť SDRAM o velikosti 32MB; zde běží běhové prostředí NETMF a aplikace v C#
- nonvolatilní paměť DataFlash; velikost 4MB; úložiště pro bootstrap a pro zavaděč běhového prostředí NETMF TinyBooter
- nonvolatilní NandFlash paměť; velikost 256MB; prostor pro firmware NETMF, aplikace v C# a souborový systém FAT (flash disk)
- až 75 GPIO pinů (dle konfigurace)
- 1x sériový port pro ladění DBGU
- 3x sériový port USART (včetně signálů RTS a CTS)
- 1x sběrnice I2C (TWI)
- 2x sběrnice SPI
- 1x rozhraní USB device; nahrávání firmware a aplikací a ladění aplikací z prostředí Visual Studio 2012
Kvůli modularitě a velikosti nebyl modul SAM9260 vybaven konektory a potřebnými přizpůsobovacími obvody pro styk s okolím. K tomuto účelu slouží základní deska uCSimply Baseboard, do které se modul SAM9260 zasouvá, nebo zákaznická deska vyrobená na míru. Pro spojení vývodů modulu SAM9260 se základní deskou Baseboard se využívají drátové propojky (koupené nebo ručně dělané).
Zapojení sériového portu DBGU
První periférií modulu SAM9260, kterou si zapojíme, je sériový port DBGU používaný pro účely ladění a odchytávání hlášek zavaděče běhového prostředí NETMF. Přes toto rozhraní je možné také nahrávat jednotlivé části firmware NETMF, ale kvůli rychlosti je lepší použít rozhraní USB. To zapojíme vzápětí.
Zapojení sériového portu DBGU v případě použití základní desky Baseboard je dole na obrázku. Modul je zasunutý do pájecího pole základní desky a samotné propojení modulu a jednotlivých komponent základní desky je realizováno drátovými propojkami různých barev. Vývody modulu SAM9260 a základní desky Baseboard jsou označeny jako Modul::Pinhead::PinNo, např. SAM9260::J2::11, u základní desky je to pak např. Baseboard::J2::3.
Nejprve něco málo k signálům portu DBGU. Signály DRXD (signál Rx podle RS232) a DTXD (signál Tx podle RS232) portu DBGU jsou na modulu SAM9260 přístupné na pinheadu J2 (DRXD - pin 12, DTXD - pin 11). Signály jsou popsány z pohledu modulu, který se chová jako koncové zařízení (DTE), např. jako modem. Pro připojení k počítači, který vystupuje jako řídící zařízení (DCE), proto postačí libovolný sériový kabel pro připojení modemu, tj. s dutinkami na straně počítače a kolíky na straně modulu SAM9260, resp. základní desky Baseboard. Tzv. null-modem kabel (překřížené vodiče Tx a Rx) nelze použít.
Postup zapojení:
- SAM9260::J3::1 ---> Baseboard::+5V a SAM9260::J3::2 ---> Baseboard::+GND [Přivedeme napájecí napětí ze základní desky]
- SAM9260::J2::12 --> Baseboard::J2::3 a SAM9260::J2::11 --> Baseboard::J2::1 [Signály DRXD a DTXD v úrovni TTL jsme přivedli z modulu na vstup převodníku úrovní TTL/RS232 MAX3232]
- Baseboard::J4::3 --> Baseboard::J2::3 a Baseboard::J4::1 --> Baseboard::J2::1 [Signály DRXD a DTXD v úrovni RS232 jsme z výstupu převodníku MAX3232 přivedli na vývody konektoru P1(CAN9F)]
Pro možnost opticky indikovat probíhající komunikaci je vhodné pomocí jumperů připojit k signálům DRXD a DTXD LED diody. V případě naší základní desky je to úkol veskrze snadný - pomocí dvou jumperů propojíme druhou a čtvrtou dvojici pinů na pinheadu J30 na základní desce počítáno zleva od USB device konektoru J19.
Terminálový program
Pro komunikaci s modulem SAM9260 přes sériový port budeme na straně našeho počítače potřebovat nějaký terminálový program, tzv. emulátor terminálu. Můžeme použít oblíbený Putty nebo klasický Hyperterminál známý z prostředí Windows XP (ve Windows 7 už není dostupný).
Doporučujeme program Putty, protože je velmi univerzální a umí celou řadu komunikačních protokolů, např. i telnet. Navíc nevyžaduje instalaci, stačí jej zkopírovat do vybraného adresáře a pak rovnou spustit. Níže uvádíme parametry spojení přes sériový port:
- Rychlost: 115200 Bd
- Rámec: 1 start bit, 8 datových bitů a 1 stop bit
- Parita: žádná
- Řízení toku: žádné
Uvedené parametry a číslo sériového portu na straně počítače nastavíme v Putty v kategorii Connection, podkategorie Serial (viz strom kategorií Category vlevo v okně Putty). Pak se přepneme do kategorie Session, kde nastavíme jméno předvolby v poli Saved Sessions, typ spojení na Serial a předvolbu uložíme tlačítkem Save. Samotné spojení s modulem SAM9260 otevřeme tlačítkem Open.
Test
DBGU port máme zapojen, Putty běží na našem počítači. V Putty stiskem tlačítka Open otevřeme spojení s modulem SAM9260, připojíme základní desku přes konektor J5 na zdroj napětí 12V / 2A (min. 1A) a zapneme vypínač SW1 na základní desce. Rozsvítí se LED diody indikující přítomnost napájecího napětí 3.3V a 5V na základní desce a v okně Putty bychom měli vidět hlášení zavaděče:
RomBOOT >Start AT91Bootstrap... Starting .NETMF TinyBooter...
Pokud tomu tak není, bude chyba nejspíš v zapojení modulu nebo v propojení počítače a modulu (špatný kabel apod.), případně v nastavení parametrů spojení. Opticky můžeme zkontrolovat spojení pomocí LED diod u konektoru P1 (CAN9F). Druhá (modul přijímá) a čtvrtá (modul vysílá) LED dioda zleva od USB device konektoru J19 by měly při komunikaci poblikávat.
Zapojení rozhraní USB device
Zapojení rozhraní USB device je v případě použití základní desky Baseboard ještě jednodušší než zapojení sériového portu. Stačí z modulu vyvést datové vodiče rozhraní USB (D+ a D-) a na pin PC5 přes odporový dělič (součást základní desky) přivést +5V z USB device konektoru na základní desce kvůli detekci připojení modulu SAM9260 k počítači.
Ukázkové zapojení ”jak na to” v případě použití základní desky Baseboard je vidět na obrázku. Modul je zasunutý do pájecího pole základní desky a samotné propojení modulu a jednotlivých komponent základní desky je stejně jako u sériové portu realizováno drátovými propojkami různých barev. Vývody modulu SAM9260 a základní desky Baseboard jsou označeny jako Modul::Pinhead::PinNo, např. SAM9260::J2::11, u základní desky je to pak např. Baseboard::J2::3.
Postup zapojení:
- SAM9260::J3::1 ---> Baseboard::+5V a SAM9260::J3::2 ---> Baseboard::+GND [Přivedeme napájecí napětí ze základní desky]
- SAM9260::J2::32 --> Baseboard::J45::2 a SAM9260::J2::31 --> Baseboard::J45::3 [Signály DDM a DDP přivedeme z modulu na vývody D- a D+ konektoru J19 (USB device)]
- SAM9260::J2::26 --> Baseboard::J45::1 [Připojíme pin PC5 modulu na napětí +5V na konektoru USB device - detekce připojení k počítači]
- Pomocí tří jumperů propojíme dvojice pinů 1-2, 3-4 a 5-6 pinheadu Baseboard::J46 [Připojíme odporový dělič mezi pin PC5 a +5V na konektoru USB device]
Poznámka: Sériové odpory požadované USB specifikací pro datové signály jsou už součástí modulu SAM9260, takže se o ně nemusíme starat. Pin PC5 spolu s děličem je připojen na +5V přítomných na USB device konektoru (napětí dodávané USB hostem - počítačem) a slouží modulu SAM9260 pro detekci připojení k USB hostu (např. náš počítač). Jakmile USB host povolí napájení nového USB zařízené, tak toto USB zařízení musí následně svoji přítomnost na USB sběrnici potvrdit připojením datové linky D+ přes pull-up odpor na +5V. Mikrokontrolér AT91SAM9260, kterým je modul osazen, toto zajišťuje automaticky, pouze vyžaduje externí dělič připojený na definovaný pin, kde podle logické úrovně pozná, že jeho rozhraní USB device bylo připojeno k USB hostu. V připraveném firmware byl pro tyto účely vybrán právě pin PC5.
Test
Modul SAM9260, resp. USB device konektor J19 na základní desce připojíme pomocí USB kabelu A-B k počítači s MS Windows. Po zapnutí napájecího napětí se musí v systému Windows objevit hlášení o novém USB zařízení a systém by měl začít hledat ovladač. Pokud ne, ověříme znovu zapojení rozhraní USB device, hlavně propojení pinů na pinheadu Baseboard::J46 a připojení pinu PC5 modulu SAM9260.
Samotnou komunikaci necháme na později, až si nainstalujeme potřebné nástroje pro vývoj a nahrávání firmware.