Jste zde

LPC-MT2106 - Praktické ukázky vývojové desky terminálu s ARM 7

LPC-MT2106 je vývojová deska terminálu s ARM 7 s 128K Bytes Program Flash, 64K Bytes RAM. Tento článek se zabývá nejen jejím popisem, ale i programovou částí, tj. ovládáním jednotlivých zařízení obsažených na tomto modulu.

Základní vlastnosti modulu:

  • MCU: 16/32 bit ARM7TDMI-S™: ( viz. popis v předcházejícím článku)
  • krystal: 14.7456 Mhz ( při nastavení 4x PLL bude frekvence mikrokontroléru 58,9824Mhz )
  • napájení: +6 až +9V AC/DC, JACK konektor
  • JTAG konektor pro programování a ladění programu (2x10 pinů)
  • deska obsahuje tři stabilizátory napětí 1.8V, 3.3V a 5V
  • propojky :
    • DEBUG - povolení JTAG rozhraní
    • TX_J - volba pinu TXD1 (TXD / Buzzer)
    • BSL - spuštění bootloaderu po resetu
  • rozhraní RS232 pro komunikaci a programování (9pin Cannon, samička)
  • rozhraní UART (TTL)
  • rozhraní 1-Wire pro obvody Dallas
  • vstup pro měření frekvence
  • LCD displej 2x16 znaků, řadič HD44780, 4-bitová komunikace
  • 5 uživatelských tlačítek
  • resetovací tlačítko
  • buzzer
  • LED dioda
  • konektor 2x7 pinů - univerzální vstupy/výstupy a řídící signály
  • relé s přepínacím kontaktem 10A/250VAC
  • rozměry modulu: 120x38 mm

Tabulky zapojení vývodů:

Popis univerzálních v/v pinů mikrokontroléru:

Mikrokontrolér obsahuje 32 univerzálních v/v pinů, jejich skutečný počet je však závislý na množství využitých alternativních funkcí (UART, SPI, PWM, atd.). Pro nastavení těchto pinů slouží čtyři registry:

Ukázka ovládání relé na modulu, nastavení příslušných registrů mikrokontroléru v prostředí CrossWorks:

Pokud potřebujeme ovládat relé na modulu, které je spínané tranzistorem T3 (viz. schéma lpc-mt-2106-sch.gif ), musíme nejdříve nastavit příslušný pin ( P0.13 ) na mikrokontroléru jako výstupní. Toto nastavení se provede příkazem IODIR |= 0x00002000, který provede log. součet obsahu registru IODIR s konstantou 0x00002000 a výsledek operace uloží zpět do tohoto registru. Tento příkaz lze zapsat i v nezkrácené podobě IODIR= IODIR | 0x00002000. Nyní ovládáme relé (resp. tranzistor T3) pomocí dvou příkazů. Příkazem IOSET= 0x00002000 provedeme jeho sepnutí, příkazem IOCLR= 0x00002000 provedeme jeho vypnutí. Obdobným způsobem ovládáme i ostatní zařízení na modulu.

Popis inicializace displeje a zobrazení textu v prostředí CrossWorks:

Ovládáním LCD displeje s řadičem HD44780 pomocí 4 bitové komunikace se zabývá řada článků, proto jenom bude popsána komunikace v několika bodech:

  • pro komunikaci se na displeji využívají pouze datové linky DB4 - DB7
  • data se do displeje posílají dvěma zápisy, nejdříve horní a pak dolní půlbyte
  • pomocí signálu RS volíme CG RAM (pamět generátoru znaků) nebo DD RAM (paměť zobrazovaných dat)
  • pomocí signálu R/W volíme čtení / zápis z / do displeje , místo čtení příznaku busy se většinou používá časové zpoždění
  • sestupnou hranou signálu E se provede vykonání daného příkazu

Komunikace s LCD displejem ve vyšším programovacím jazyku pak vypadá následovně:

Výpis části programu:

// inicializace LCD
LCDInit();
LCDSendCommand(DISP_ON); //zapnutí displeje
LCDSendCommand(CLR_DISP); //smazání displeje
LCDSendCommand(DD_RAM_ADDR); //nastav psaní na první řádek

// Zapíše text na LCD (první řádek)
LCDSendTxt("*Test modulu MT*");

// nekonečná smyčka
while(1) {
//je-li tlačítko 1 stisknuté
if(!BUT1_PRESSED)
{
LCDSendCommand(DD_RAM_ADDR2); //nastav psaní na druhý řádek
LCDSendTxt("Tlacitko 1 Beep "); // Zapíše text na LCD
Beep(); // pípni
}

Tento modul se výborně hodí pro konstrukci malých řídících jednotek a uživatelských ovládacích panelů. Při využití rozhraní 1-wire na modulu a kontaktních čipů Dallas typu DS199x můžeme sestrojit jednoduchý identifikační nebo přístupový systém, popř. docházkový systém.

Miroslav Dvořák
Dvorak.Linux@ seznam.cz

Ukázky programů pro Rowley CrossWorks:

Download & odkazy:

Hodnocení článku: