terça-feira, setembro 28, 2010

Microcontrolador C2000 - Parte 4

Esta série toda começou quando ganhei um kit do C2000, o Piccolo Control Stick. Agora é hora de botá-lo para funcionar.


O Kit

O kit é composto por:
  • Uma placa com o formato de um pen-drive, que é o controlSTICK em si.
  • Alguns jumpers para interligar os pinos do controlSTICK.
  • Uma extensão USB curta.
  • Um CD com o Code Composer Studio v4.1.
  • Um pequeno folheto com as instruções básicas para começar.
O controlSTICK possui um microcontrolador TMS32F28027, uma interface para programação e depuração, dois LEDs (um para indicar alimentação e o outro ligado a um pino de E/S do microcontrolador) e um conector de 32 pinos com os principais sinais do 28027.


O TMS32F28027 é bem respeitável: opera a 60MHz, tem 12K de Ram e 64K de Flash, 9 canais de PWM, 9 timers, 7 canais de ADC, 1 comparador, 1 SCI, 1 I2C e 1 SPI.


Instalação do Software


A instalação do software foi um pouco enjoada. Ao executar no Vista o instalador do Code Composer pediu para desligar o User Access Control durante a instalação. O Code Composer é o ambiente de desenvolvimento da Texas e suporta vários modelos de microcontrolador. Tentei instalar somente o que precisava e acabou faltando o driver da interface de programação/depuração do controlSTICK (é o XDS100, procurando no CD tem o instalador dele separado). A instalação é muito lenta (não colabora que ligar e desligar o UAC requer reiniciar o Windows).

Instalado o Code Composer, é preciso instalar a parte específica do controlSTICK. Isto é feito baixando e instalando o controlSUITE, que por sua vez baixa configurações, exemplos e documentação.

Por último é preciso fazer algumas configurações; basta seguir as intruções passo a passo no folheto.

Colocando Para Funcionar

Para um primeiro teste, nada como um LED piscando. E a Texas já fornece um projeto pronto para isto, o BlinkingLED. É claro que não é nada sofisticado; a forma de controlar o LED não deve merecer muito espaço no livro "2000 Maneiras de Acender um LED":
// iniciações diversas
for (;;)
{
if (CpuTimer0Regs.TCR.bit.TIF == 1)
{
CpuTimer0Regs.TCR.bit.TIF = 0;
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;
}
}
Basicamente o programa fica em loop infinito testando um bit que indica que o timer atingiu a contagem; quando isto acontece ele limpa este bit e chaveia a saída ligada ao LED.

Abaixo podemos ver o programa funcionando:



Para fechar a série, o tempo e a competência permitindo, vou tentar fazer algo mais complicado.

Nenhum comentário: