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":
  1. // iniciações diversas  
  2. for (;;)  
  3. {  
  4.   if (CpuTimer0Regs.TCR.bit.TIF == 1)  
  5.   {  
  6.     CpuTimer0Regs.TCR.bit.TIF = 0;  
  7.     GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;  
  8.   }  
  9. }  
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: