wtorek, 5 kwietnia 2011

Stellaris Launchpad EK-LM4F120XL - Pierwsze kroki


Autor: Dexter
Redakcja: Dondu

Witajcie, w tym krótkim poradniku pokażę jak po raz pierwszy uruchomić zestaw Stellaris Launchpad EK-LM4F120XL na przykładzie wbudowanej diody RGB.

Jest to zestaw wypuszczony prze firmę Texas Instruments, w którym mamy do dyspozycji całkiem sporo podzespołów m.in.:
  • Szybki procesor ARM LM4F120H5QR
  • Maksymalna prędkość do 80MHz
  • architektura układu: 32-bit ARM Cortex-M4F
  • 256KB Flash - 32KB SRAM - 2KB EEPROM
  • 12x 32-bit & 12x 16-bit Timers
  • 11 kanałów ADC w tym 2x12-bitowe ADC (1Msps)
  • 2x Komparatory analogowe
  • czujnik temperatury
  • RTC
  • UART, I2C, SPI, CAN, USB
  • 1 LED RGB
  • 2x mikro switch

W zestawie jest dołączony przewód USB:





1. Oprogramowanie

Pierwszą rzeczą jaką musimy zrobić jest pobranie wymaganego oprogramowania. Z informacji na stronie producenta sugerowane oprogramowanie znajduje się pod tym linkiem LM4F120 LaunchPad Evaluation Board Software jest to pakiet EK-LM4F120XL-CCS. Przyda nam się też pakiet SW-LM3S-9453 który znajdziesz tutaj: StellarisWare® Complete (all boards, all components).

Mamy już potrzebny pakiet, teraz trzeba go wypakować do dowolnego folderu. Otwieramy rozpakowany folder EK-LM4F120XL-CCS-733\Software\CCS i odpalamy instalację.

Następnie akceptujemy warunki umowy - po ówczesnym przeczytaniu ;-) - i przechodzimy dalej. Pojawi się okno ścieżki instalacji, ja zostawiłem domyślną. Następnie pojawia się okno wyboru rodzaju instalacji, wybieramy CUSTOM.

W kolejnym oknie zaznaczamy które architektury mają być obsługiwane przez program. Dla naszego zestawu zaznaczamy Stellaris Cortex M MCUs oraz MSP430 Low Power MCUs i klikamy dalej. W kolejnym oknie nic nie zmieniamy, klikamy dalej.

W następnym oknie odznaczamy Blackhawk Emulators i Spectrum Digital emulators (zostawiamy jeśli ktoś planuje tego używać) Klikamy dalej i czekamy aż program się zainstaluje. W ostatnim oknie odznaczamy uruchomienie i klikamy zakończ. Kolejny krok to instalacja pakietu z drugiego linku w domyślnej lokalizacji.

2. Podłączenie

Po zainstalowaniu oprogramowania podłączamy przewód USB do gniazda i zmieniamy ustawienie przełącznika na DEBUG (w prawo), ponieważ na płytce są dwa gniazda USB przewód wpinamy do zaznaczonego poniżej.


Zaznaczone gniazdo


Następnie wpinamy drugi koniec przewodu do komputera. Zestaw powinien się włączyć co sygnalizuje dioda zasilania i dioda RGB ponieważ domyślnie wgrany jest program DEMO. Dalej system zakomunikuje że nie może zainstalować urządzenia, więc wchodzimy w menadżer urządzeń. Powinno być widoczne 3 nowe urządzenia z błędem.

Klikamy prawym przyciskiem na pierwsze od góry i wybieramy aktualizuj oprogramowanie. Dalej wybieramy przeglądaj komputer i podajemy ścieżkę do folderu który rozpakowaliśmy na początku. W przypadku pojawienia sie komunikatu o weryfikacji sterowników klikamy "zainstaluj mimo to".

Po zainstalowaniu klikamy zamknij i powtarzamy czynność dla dwóch pozostałych urządzeń. Mamy zainstalowane sterowniki.


3. Przykładowy program

Uruchamiamy CODE COMPOSER STUDIO, które zainstalowaliśmy w punkcie 1, pojawi się okno wyboru miejsca pracy klikamy ok. Jeśli wyskoczy okno licencji wybieramy EVALUATE (licencja pełna na 90 dni).

Klikamy PROJECT, dalej IMPORT EXITING CCS ECLIPSE PROJECT. W prawym rogu klikamy browse i podajemy ścieżkę C:\StellarisWare\boards\ek-lm4f120xl\project0, zatwierdzamy i klikamy FINISH.

W programie pojawił się pierwszy projekt, aby go uruchomić klikamy na plik "project0.c" z menu po lewej.

Następnie klikamy ikonę DEBUG, po poprawnie wykonanej operacji pojawi się kilka okien, a zestaw przestanie działać na programie demo. Teraz wystarczy kliknąć ikonę RESUME w oknie "Debug" pierwszym od góry i program zacznie działać na płytce.

W oknie "project0.c" możemy edytować kod np. zmieniając kolor diody w linii 95 na

GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, GREEN_LED);

Poniżej przykładowy program:

//*****************************************************************************
//
// project0.c - Example to demonstrate minimal StellarisWare setup
//
// Copyright (c) 2012 Texas Instruments Incorporated.  All rights reserved.
// Software License Agreement
// 
// Texas Instruments (TI) is supplying this software for use solely and
// exclusively on TI's microcontroller products. The software is owned by
// TI and/or its suppliers, and is protected under applicable copyright
// laws. You may not combine this software with "viral" open-source
// software in order to form a larger program.
// 
// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
// DAMAGES, FOR ANY REASON WHATSOEVER.
// 
// This is part of revision 9453 of the EK-LM4F120XL Firmware Package.
//
//*****************************************************************************

#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"

//*****************************************************************************
//
// Define pin to LED color mapping.
//
//*****************************************************************************

#define RED_LED   GPIO_PIN_1
#define BLUE_LED  GPIO_PIN_2
#define GREEN_LED GPIO_PIN_3

//*****************************************************************************
//
//! \addtogroup example_list
//! <h1>Project Zero (project0)</h1>
//!
//! This example demonstrates the use of StellarisWare to setup the clocks
//! and toggle GPIO pins to make the LED's blink. This is a good place to 
//! start understanding your launchpad and the tools that can be used to 
//! program it. See http://www.ti.com/stellaris-launchpad/project0 for more 
//! information and tutorial videos.
//!
//
//*****************************************************************************


//*****************************************************************************
//
// Main 'C' Language entry point.  Toggle an LED using StellarisWare.
// See www.ti.com/stellaris-launchpad/project0 for more information and 
// tutorial videos.
//
//*****************************************************************************
int
main(void)
{
    //
    // Setup the system clock to run at 50 Mhz from PLL with crystal reference
    //
    SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|
                    SYSCTL_OSC_MAIN);

    //
    // Enable and configure the GPIO port for the LED operation.
    //
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED);

    //
    // Loop Forever
    //
    while(1)
    {
        //
        // Turn on the LED
        //
        GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, BLUE_LED);

        //
        // Delay for a bit
        //
        SysCtlDelay(2000000);

        //
        // Turn on the LED
        //
        GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, RED_LED);

        //
        // Delay for a bit
        //
        SysCtlDelay(2000000);
    }
}

Następnie ponownie klikamy DEBUG i RESUME. Dzięki temu zacznie migać dioda zielona zamiast niebieskiej. Program możemy modyfikować jak tylko chcemy.

W pobranych plikach które instalowaliśmy są przykładowe lekcje, można je przerobić i trochę wdrożyć się w temat.

Źródła:

Brak komentarzy:

Prześlij komentarz