Você está na página 1de 54

TECH TRAINING ENGENHARIA E TREINAMENTOS Prof. Alessandro Ferreira da Cunha msn: afcunha01@gmail.

.com skype: alessandroferreiradacunha CURSO BSICO MICROCONTROLADOR MSP430


PROGRAMAO DO TREINAMENTO:

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

1. Arquiteturas von-Neumann X Arquiteturas Harvard 1.1. von-Neumann

Algoritmos para computadores se baseiam em alguns conceitos bsicos e em um modelo de computador, os quais devem ser bem entendidos para que se possa criar algoritmos eficientes. Este modelo foi proposto pelo matemtico hngaro Neumann Jnos Lajos Margittai. Em hngaro o nome de famlia aparece antes. Assim em portugus o seu nome seria Jnos Lajos Margittai Neumann. O seu pai, que era rico, comprou um ttulo de nobreza e ele passou a se chamar Jnos Lajos Margittai von Neumann. No modelo de computador proposto por von Neumann as instrues e os dados ficam juntos na memria. O processador busca na memria e executa uma instruo de cada vez. Portanto, as transferncias entre a memria e o processador so feitas passo a passo. O ciclo normal da execuo de um programa ento: 1. Busca instruo; 2. Decodifica instruo; 3. Executa instruo; 4. Volta para o passo 1 buscando a instruo seguinte na memria. Dados e programas compartilham um meio de armazenamento nico. Mais simples, menos restritivo, menos eficiente dados e programas misturados permitem ao programador intercambiar a semntica de dados e programas ao longo do tempo

Pgina 2

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

1.2.

Harvard

Dados e programas estocados em meios de armazenamento distintos Mais propenso a fomentar paralelismo, mais caro, mais complexo dados e programas separados permitem que ambos sejam facilmente tratados em paralelo. Harvard permite duas leituras de memria simultneas (dado e instruo). A maioria dos processadores DSP (celulares, telecom, cmeras digitais,) usam organizao Harvard, pois isto permite maior largura de banda de memria e tempo de acesso a dados mais previsvel.

Pgina 3

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

1.3.

Qual a escolha da Texas para o MSP430?

Veja o que dizem os manuais das famlias MSP430x4xx e MSP430x2xx: Architecture The MSP430 incorporates a 16-bit RISC CPU, peripherals, and a flexible clock system that interconnect using a von-Neumann common memory address bus (MAB) and memory data bus (MDB). Partnering a modern CPU with modular memory-mapped analog and digital peripherals, the MSP430 offers solutions for demanding mixed-signal applications. Isso significa que a Texas optou por uma arquitetura von-Neumann modificada, tendo dois barramentos separados (como na arquitetura Harvard) mas fazendo acesso a apenas um barramento por vez (como na arquitetura von-Neumann). Como ser visto ao longo deste treinamento, isto acaba tirando proveito das vantagens de cada uma das arquiteturas em um nico chip.

1.4.

Mquina von-Newmann

Pgina 4

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha Exemplo de funcionamento de uma arquitetura Von Newmann: SOMAR DOIS NMEROS QUE SO INSERIDOS NA ENTRADA E COLOCAR O RESULTADO NA SADA. 1. Colocar o primeiro nmero a ser somando na porta de entrada do C. 2. Dar um pulso de clock no BUFFER. 2.1. O primeiro nmero passa a ocupar o barramento de dados e fica armazenado no BUFFER. 3. Dar um pulso de clock no Registrador A. 3.1. O primeiro nmero passa a ocupar o barramento interno, fica armazenado no Registrador A e est na entrada da ULA. 4. Colocar o segundo nmero a ser somado na porta de entrada do C. 4.1. Enquanto no for aplicado no BUFFER um pulso de clock, em sua entrada ter o segundo nmero e em sua sada ter o primeiro nmero. 5. Dar um pulso de clock no BUFFER. 5.1. Ao fazer isso, o primeiro nmero apagado da sada do BUFFER, que passa a ser ocupado pelo segundo nmero. Caso o primeiro nmero no tenha sido armazenado em algum Registrador, ele ser perdido. 6. Dar um pulso de clock no Registrador B. 6.1. O segundo nmero passa a ocupar o barramento interno, fica armazenado no Registrador B e est na entrada da ULA. 7. Colocar nos bits de comando da ULA a informao X0 = 0 e X1 = 0. 7.1. Ao fazer isso, a ULA calcular a soma dos dados que estejam presentes em suas entradas. Se no houver dados na entrada, ela somar zero com zero. Automaticamente, o resultado colocado na sada da ULA. 8. Dar um pulso de clock no Gate da ULA (GULA). 8.1. Ao fazer isso o segundo nmero apagado do barramento de dados, que passa a ser ocupado pelo resultado da soma dos dois nmeros. 9. Dar um pulso de clock no LATCH. 9.1. O resultado da soma colocado na porta de sada.

Pgina 5

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

1.5.

Mquina von-Neumann modificada

1.6.

CISC x RISC

A principal funo de um microcontrolador executar uma srie de ordens (comandos ou instrues), armazenados em um programa, na sua memria. Cada uma destas instrues interpretada pela CPU e, ento, executada. Assim, cada tipo de computador digital, deve ter um conjunto de instrues (ou set de instrues) definidas, de modo que sua CPU possa interpret-las e execut-las. Em funo deste conjunto de instrues, existem duas classes de computadores digitais:

1.6.1. CISC

Complex Instruction Set Computer

Conjunto de instrues ampliado, ou seja, a CPU capaz de executar um grande nmero de instrues (ex.: microcontrolador 8051, da Intel, com 256 instrues); geralmente associada a computadores com arquitetura von-Neumann.

1.6.2. RISC

Reduced Instruction Set Computer

Conjunto de instrues reduzido (ex.: famlia PIC, da Microchip, com 35 instrues, e famlia MSP430, da Texas, com 24 instrues emuladas e 27 instrues fsicas); geralmente associada a computadores com arquitetura Harvard.

Pgina 6

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

2. Famlias MSP430 e detalhamento do hardware


Arquitetura do MSP430F2013.

Arquitetura do MSP430FG4618.

Pgina 7

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

3. Clocks e LPM

FAMLIA 4 - 16-Bit RISC Architecture, 125-ns Instruction Cycle Time FAMLIA 2 - 16-Bit RISC Architecture, 62.5 ns Instruction Cycle Time Quanto tempo demora a ser executada cada uma das instrues no MSP430? Como acontece no 8051, a quantidade de ciclos de mquina necessria para executar uma instruo varia de acordo com o modo de endereamento utilizado e com o formato da instruo. Sempre as instrues so referenciadas ao sinal de clock chamado de MCLK. Os chips MSP430 se caracterizam pelo baixo consumo de energia. Um dos mtodos utilizados para obter estas funcionalidades o gerenciamento de clock e os modos de operao em baixa potncia (LPM Low Power Mode). Tanto a famlia 2 quanto a famlia 4 tem vrias opes de clock que podem ser conectadas ao chip.

3.1.

Sinais de clock externo

Na famlia 2 o funcionamento do clock gerenciado pelo Basic Clock Module+. Ele permite que at 4 tipos de clock diferentes sejam utilizados: LFXT1CLK (Low-frequency/high-frequency oscillator): Funciona com o uso de um cristal externo. Este cristal pode ser desde um modelo de baixa velocidade, fixado em 32.768 Hz, at cristais de quartzo ou ressonadores, com valores entre 400 khz e 16 Mhz. Sinais de clock criados por geradores externos tambm so aceitos. XT2CLK (Optional high-frequency oscillator): Funciona com o uso de um cristal externo de alta velocidade. Isto pode ser feito atravs de cristais de quartzo, ressonadores ou fontes de clock externa (entre 400 khz e 16 Mhz). Pgina 8

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha DCOCLK (Internal digitally controlled oscillator (DCO)). VLOCLK (Internal very low power, low frequency oscillator): com 12-kHz de frequencia tpica. J na famlia 4 o funcionamento do clock bem similar ao da famlia 2, mas o gerenciamento feito por um mdulo que leva o nome de FLL+ Clock Module. Ele permite que somente 3 primeiros tipos de clock mostrados na famlia 2 possam ser gerados, sendo que a opo VLOCLK no est disponvel. As velocidades de clock externo admissveis para a famlia 4 vo de 450 khz a 8 Mhz. Apenas os dispositivos MSP430F47x admitem velocidades at 16 Mhz.

3.2.

Sinais de clock internos

Independente de qual fonte de clock foi utilizada pelo chip, sempre sero gerados trs sinais de clock internamente: ACLK (Auxiliary clock): esta fonte de clock selecionvel por software quando as fontes so o LFXT1CLK ou o VLOCLK. ACLK pode ser dividido por 1, 2, 4, or 8. Esta a fonte de clock utilizada por todos os mdulos de perifricos. MCLK (Master clock): esta fonte de clock tambm selecionvel por software, para qualquer uma das quatro fontes de clock possveis: LFXT1CLK, VLOCLK, XT2CLK ou DCOCLK. MCLK pode ser dividido por 1, 2, 4, ou 8. utilizado para alimentar a CPU. SMCLK (Sub-main clock): tambm selecionvel por software para qualquer uma das quarto fontes de clock possveis, divisvel por 1, 2, 4, or 8. utilizado individualmente para alimentar alguns perifricos. Apenas na famlia 4, um quarto sinal de clock interno pode ser gerado, mas que complementar aos j mostrados anteriormente: ACLK/n (Auxiliary clock buffed output): faz um buffer de sada do sinal gerado pelo ACLK. Dedica-se apenas ao uso externo ao chip, para gerar um sinal de sincronismo, por exemplo. Na figura a seguir possvel visualizar o mdulo que controla o clock do MSP430, para as famlias 43, 44 e 46. Depois mostrado o mdulo para a famlia 2.

Pgina 9

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Pgina 10

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Pgina 11

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

3.3.
FAMLIA 2

Os registradores que controlam os clocks

FAMLIA 4

3.4.
FAMLIA 2

As freqncias possveis no DCO

Pgina 12

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

FAMLIA 4

Pgina 13

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Pgina 14

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

3.5.

LPMs

LOW POWER MODES

A existncia de sinais de clock diferentes internamente permite que modos de consumo diferentes sejam utilizados de acordo com cada aplicao do usurio. Isto permite uma grande economia da energia consumida pelo chip. Isto pode ser visualizado na figura a seguir.

A entrada ou sada em cada um dos modos de operao em baixo consumo feito atravs de bits localizados no registrador especial R2, como ser descrito em detalhes ao longo deste treinamento.

Pgina 15

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha So ao todo cinco modos de operao em baixa potncia, alm do modo ativo, como pode ser visto nas tabelas das famlias 2 e 4, logo abaixo: FAMLIA 2

FAMLIA 4

A entrada ou sada de qualquer um destes modos pode ser feita atravs de mudanas nos bits do registrador R2, como pode ser visto nos exemplos abaixo:

; Enter LPM0 Example BIS #GIE+CPUOFF,SR ; Enter LPM0 ; Program stops here ; Exit LPM0 Interrupt Service Routine BIC #CPUOFF,0(SP) ; Exit LPM0 on RETI RETI
Pgina 16

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

; Enter LPM3 Example BIS #GIE+CPUOFF+SCG1+SCG0,SR ; Enter LPM3 ; Program stops here ; Exit LPM3 Interrupt Service Routine BIC #CPUOFF+SCG1+SCG0,0(SP) ; Exit LPM3 on RETI RETI
Como em cada modo de potncia apenas alguns clocks so desligados, pode-se deixar a CPU desligada e manter perifricos funcionando, o que comprova o baixo consumo do dispositivo.

Pgina 17

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

4. Os registradores de trabalho, ou registradores especiais


Diferente de outros fabricantes de microcontroladores, a Texas colocou nas famlias MSP430 16 registradores de trabalho com acesso direto a CPU e aos barramentos de dados e memria, como pode ser visto na figura abaixo. Isto gera uma grande praticidade de uso do chip, com facilidades que sero discutidas ao longo deste treinamento.

Vamos analisar cada um destes registradores em detalhes.

Pgina 18

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

4.1.

Program counter (contador de programa)

Aponta qual ser a prxima instruo dentro do programa a ser executada pela CPU.

Ele pode ser endereado por qualquer um dos sete modos existentes no MSP430. Alguns exemplos so mostrados a seguir. MOV MOV MOV #LABEL,PC ;desvio para o endereo do LABEL LABEL,PC ;desvio para o endereo indicado pelo LABEL @R14,PC ;desvio indireto indicado pelo R4

4.2.

Stack Pointer (ponteiro da pilha)

A pilha um recurso utilizado para armazenar informaes enquanto so executadas rotinas de interrupo ou chamadas de sub-rotinas. Para tanto necessrio apontar qual posio da pilha ser utilizada. Isto feito atravs do registrador Stack Pointer.

MOV MOV PUSH POP

2(SP),R6 R7,0(SP) #0123h R8

; ; ; ;

Item I2 > R6 Overwrite TOS with R7 Put 0123h onto TOS R8 = 0123h

Pgina 19

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

4.3.

Status Register (R2)

O registrador de status contm os bits de controle aritmtico, atualizados a cada operao realizada pela CPU. Alm disto nele que so ajustados os bits de controlam os modos de operao em baixa potncia, como pode ser visto abaixo.

A descrio bit a bit de funcionamento e suas respectivas configuraes so mostradas na tabela a seguir.

4.4.

Constant Generator (R3)

As seis constantes mais utilizadas durante toda a operao da CPU so geradas de modo automaticamente pelo gerador de constantes, que composto pelos registradores R2 e R3, sem a necessidade de qualquer cdigo adicional de programa. As constantes so selecionadas de acordo com o endereamento do registrador fonte, como mostrado na tabela a seguir.

Pgina 20

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha BITS DO STATUS REGISTER

CONSTANTES GERADAS AUTOMATICAMENTE

Pgina 21

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha So estas constantes que permitem que o set de instrues do MSP430, que tem originalmente apenas 27 instrues (RISC) possa ser expandido em mais 24, totalizando 51 instrues. Tudo isto sem a necessidade de acrescentar nenhuma outra linha de cdigo. Alguns exemplos de como isto funciona so mostrados abaixo: INSTRUO PARA LIMPAR UM REGISTRADOR (CLR) CLR dst Isto emulado em uma instruo de duplo operando, com o mesmo comprimento, fazendo: MOV R3,dst ;onde R3 recebe o valor de #00 INSTRUO INCREMENTAR UM REGISTRADOR (CLR) INC dst Isto emulado em uma instruo de duplo operando, com o mesmo comprimento, fazendo: ADD 0(R3),dst ;onde R3 recebe o valor #01

4.5.

General Purpouse Registers (R4 R15)

Os demais registradores conectados diretamente a CPU (R4 a R15) so de propsito geral, podendo ser utilizados para qualquer funo desejada pelo usurio, como armazenamento de constantes ou valores, ponteiros de endereamento, indexadores de valores, etc. Alguns exemplos das operaes que podem ser realizadas com estes registradores so mostradas na figura a seguir.

Pgina 22

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

5. Estrutura de memrias: RAM, ROM (Flash)


Como pode ser visto no item 2 deste material, as memrias RAM, ROM (Flash) so dois trechos distintos dentro do hardware. Porm seu mapeamento contnuo, incluindo os vetores de interrupo, de reset, perifricos e registradores com funes especiais.

5.1.

Memrias no MSP430

O mapeamento de memria no MSP430 igual para as famlias 2 e 4 e seguem a estrutura mostrada na figura a seguir.

Pgina 23

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

A quantidade de dados armazenada em cada espao do mapa de memria de 8 bits. Porm o MSP430 um microcontrolador de 16 bits. Como resolver isto? O acesso ao mapa memria pode ser feito em Word (16 bits), byte (8 bits) ou em bit, como pode ser visto na figura a seguir.

Pgina 24

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

5.1.1. Memrias de programa (ROM FLASH)


O microcontrolador MSP430 armazena todo o programa que ser executado em sua memria ROM/FLASH. Perceba que na arquitetura destes processadores no h memria do tipo EEPROM. Deste modo, dados permanentes, que no podem ser perdidos em caso de falta de energia eltrica, devem tambm ser armazenados na memria FLASH. O Hardware onde est a memria FLASH mostrada na figura a seguir.

Pgina 25

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Toda a memria FLASH do MSP430 particionada em segmentos. O processo de gravao pode acontecer em trechos de Words, Bytes ou mesmo bits. Mas para apagamento isto s pode ocorrer por segmentos completos. O particionamento para uma memria de 4 Kbytes mostrado na figura abaixo. Isto sempre ocorre em segmentos, sendo que cada segmento sub dividido em 4 blocos.

Pgina 26

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

6. Reduced Instruction Set Code RISC


O MSP430, apesar de ter uma arquitetura do tipo von-Neumann, trabalha com um set de instrues reduzido (RISC). So apenas 27 instrues fsicas (core instructions). Com o uso dos registradores que geram constantes (R2 e R3) possvel emular mais 24 instrues, totalizando 51 instrues. Basicamente as instrues so de trs tipos: Dual-operand: dois operandos fonte e destino; Single-operand: apenas um operando, que pode ser uma fonte ou um destino; Jump: instrues de salto no programa. Todas as instrues de operando simples ou duplo podem ser escritas em bytes (8 bits) ou words (16 bits). Na construo das instrues sempre seguida a seguinte nomenclatura: src: o operador fonte definido por As e S-reg; dst: o operador destino definido por Ad e D-reg; As: determina qual modo de endereamento utilizado pela instruo, especificando quem o registrador fonte; S-reg: quem, dos 16 registradores diretos CPU, utilizado como fonte; Ad: determina qual modo de endereamento utilizado pela instruo, especificando quem o registrador destino; D-reg: quem, dos 16 registradores diretos CPU, utilizado como destino; B/W: indica se a instruo orientada a byte (1) ou a word (0);

Pgina 27

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

6.1.

Modos de endereamento

Pgina 28

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

6.2.

Formatos das instrues

6.3.

As 51 instrues

SOURCE AND DESTINATION INSTRUCTIONS

Pgina 29

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha DESTINATION ONLY INSTRUCTIONS

JUMPS INSTRUCTIONS

Pgina 30

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Pgina 31

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

6.4.

Ciclos de mquina e tamanho das instrues

INTERRUPES E RESET

INSTRUES DE FORMATO II (DESTINATION ONLY)

INSTRUES DE FORMATO III (JUMP) Todas as instrues desta categoria necessitam de um Word de comprimento e dois ciclos de mquina para serem executadas, independente da ao de salto acontecer ou no.

Pgina 32

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha INSTRUES DE FORMATO I (SOURCE AND DESTINATION)

Pgina 33

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

7. A PLACA DE EXERCCIOS: EXPERIMENTER BOARD

Pgina 34

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Pgina 35

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Pgina 36

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Pgina 37

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

7.1.

Instalando os drives do gravador FET USB

Ao colocar o FET numa porta USB, o Windows XP abriar a tela abaixo, solicitando a instalao do driver. Para tanto o IAR j deve estar instalado.

Deve-se clicar em NO, NO AGORA, e em seguida em AVANAR.

Pgina 38

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha O prximo passo indicar onde esto os arquivos do driver do FET para o MSP430. Assim deve-se selecionar a opo INSTALAR DE UMA LISTA OU LOCAL ESPECFICO na tela abaixo, clicando em seguida no boto AVANAR.

Ao clicar em avanar, clique no combo Box INCLUIR ESTE LOCAL NA PERQUISA, e clique no boto procurar:

O endereo a ser selecionado :


C:\Arquivos de programas\IAR Systems\Embedded Workbench5.3\430\drivers\TIUSBFET\WinXP

Como pode ser visto na figura a seguir.

Pgina 39

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Com o caminho selecionado, clique em AVANAR. Aparecer a janela de confirmao de instalao, como mostrado a seguir:

Deve-se ento clicar em CONTINUAR ASSIM MESMO. Isto deve finalizar a instalao do TI FET USB, como pode ser visto na figura a seguir.

Pgina 40

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Ao clicar em CONCLUIR, a instalao do TI FET USB ser finalizada. Mas isto iniciar o procedimento de instalao da PORTA SERIAL. Os passos a serem executados so exatamente os mesmos, como foi feito para o TI FET USB.

8. AMBIENTE IAR
O IAR um ambiente IDE completo e trabalha com o conceito de rea de trabalho (Workspace) que pode conter diversos projetos (Project).

Pgina 41

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha Esta organizao ser mantida em nossos estudos, facilitando a portabilidade de cdigo e projetos de um computador para outro.

8.1.

Comeando do zero: criando um novo projeto

Abra o IAR. A primeira tela que ser mostrada para a seleo de uma ao (criar um novo projeto, adicionar um projeto, abrir uma rea de trabalho ou abrir uma pasta com exemplos), como pode ser visto na figura a seguir. Como a idia aqui ser comear do zero, partindo do pressuposto que no h projetos anteriores, ento clicaremos em cancelar nesta janela.

Assim, ao clicar em cancelar na janela anterior, o ambiente de trabalho do IAR se abrir, porm nenhum projeto ou rea de trabalho estar ativa, como se pode ver na imagem abaixo:

Pgina 42

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Para manter a estrutura de rea de trabalho e projetos, necessrio primeiramente criar um projeto e em seguida salva-lo em alguma rea de trabalho. Por isto extremamente interessante manter uma estrutura de pastas no computador que seja coerente com a organizao feita pelo IAR. Veja o exemplo mostrado a seguir:

Na raiz do disco rgido foi criada uma pasta chamada MSP430. Dentro dela uma pasta chamada REA DE TRABALHO. dentro desta pasta que ser salva a rea de trabalho (workspace) do IAR. Dentro desta pasta sero criadas tantas pastas quanto forem os projetos a serem criados. Para facilitar o entendimento, criamos, inicialmente, trs pastas de projeto, respectivamente PROJETO 1, PROJETO 2 e PROJETO 3. Para que um cdigo e um projeto seja portvel de um micro para outro (voc faz um exerccio no computador da escola e quer lev-lo para o micro da empresa ou de sua casa e quer execut-lo sem erros) necessrio que esta estrutura de pastas seja mantida em todos os locais onde ser executado. Mudanas de encaminhamento geram erros de compilao no IAR. Pgina 43

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha Uma vez que a estrutura de pastas est pronta, temos que criar um novo projeto para em seguida salv-lo em uma rea de trabalho. Comecemos pelo projeto. Isto feito no MENU principal. L escolha a opo PROJECT e clique em seguida em CREATE NEW PROJECT, como mostra a figura a seguir.

A janela para criao de projetos aparecer, como mostrado a seguir:

Pgina 44

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha Deste modo o usurio pode optar por comear um projeto a partir de diversos modelos (templates) que a prpria IAR fornece, seja para linguagem C ou Assembly. Como nosso objetivo partir do zero, neste primeiro momento no faremos uso de nenhuma template pronto. Para isto selecionaremos a opo de criar um EMPTY PROJECT (projeto vazio). Aps esta seleo se abria uma janela pedindo que aquele projeto seja salvo, como mostra a figura a seguir. A extenso de um projeto sempre .ewp e no precisa ser digitada, pois o software faz o complemento de extenso automaticamente. No se esquea de selecionar o local onde o projeto ser salvo de acordo com a organizao de pastas mostradas anteriormente, antes de clicar em salvar, como mostra a figura a seguir.

A partir do momento em que o projeto est salvo ele aparecer na rea de trabalho, como mostra a figura a seguir.

Pgina 45

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha Note que abaixo da caixa azul que representa o projeto no h nenhum arquivo associado. Portanto faz-se necessrio associar um arquivo de cdigo (neste caso ser uma arquivo de linguagem de mquina Assembly, cuja extenso adotada pelo IAR a .s43). Podemos escrever um arquivo a partir do zero clicando no menu FILE e em seguida NEW e escolhendo a opo FILE (ctrl + N). Isto far aparecer um arquivo em branco onde voc digitar seu cdigo. Para este primeiro projeto faremos outra opo. Associaremos a este projeto um arquivo Assembly j existente. Usaremos o exemplo E-0-0.s43. Para isto necessrio salvar uma cpia do arquivo dentro do diretrio do projeto, como pode ser visto na figura abaixo:

Com o arquivo .s43 j colocado dentro da pasta do projeto, voltamos a rea de trabalho do IAR e clicamos com o boto direito sobre o quadrado azul que representa o projeto criado. Isto far aparecer um menu de opo de projeto, como mostrado na figura abaixo:

Neste menu selecionaremos a opo ADD e em seguida ADD FILES, como pode ser visto na figura acima. Deste modo ser possvel associar um arquivo Assembly (.s43) ao projeto j existente, como mostra a figura a seguir. Pgina 46

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Com isto a rea de trabalho, onde est o projeto, muda de figura, informando que determinado arquivo de cdigo est associado a um determinado projeto, como se pode ver na figura a seguir.

Note que o asterisco existente no projeto indica que modificaes foram feitas (foi inserido uma arquivo de cdigo) mas ele ainda no foi salvo. Ao clicar duas vezes sob o arquivo do cdigo fonte (E-0-0.s43) ele se abrir na janela ao lado, permitindo qualquer edio que o programador julgue necessrio, como pode ser visto na figura a seguir.

Pgina 47

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Antes de salvar o projeto ou compilar o programa que foi escrito/editado, interessante primeiramente configurar o projeto. Para isto, devemos clicar novamente com o boto direito sobre o cone azul do projeto. Desta vez faremos a seleo do item OPTIONS, como pode ser visto na figura a seguir.

Pgina 48

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha Isto far com que a janela de configurao de projetos seja aberta, como pode ser visto na figura a seguir.

Esta janela contm uma srie de configuraes para o projeto. Muitas vezes o bom funcionamento de um projeto depende exclusivamente da configurao correta desta tela. No abordaremos aqui todos os itens destas configuraes, o que ser feito ao longo do treinamento. Nos prenderemos, neste primeiro momento, apenas naquelas que so essenciais para compilar o primeiro projeto. Veja que esta tela tem categorias de configuraes (GENERAL OPTIONS, C/C++, ASSEMBLER, etc.) e que cada uma destas categorias tem uma srie de paletas (TARGET, OUTPUT, LIBRARY CONFIGURATION, etc.) correspondentes. Para uma primeira configurao inicial, selecionaremos a na paleta TARGET na categoria GENERAL OPTIONS. A primeira coisa a fazer selecionar qual o dispositivo que ser gravado. Como faremos uso da Experimenter Board neste treinamento, devemos selecionar o chip correspondente (MSP430FG4618) na caixa de seleo DEVICE, como pode ser visto na figura a seguir. Pgina 49

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

Pgina 50

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha O prximo passo clicar no Box ASSEMBLY-ONLY PROJECT, pois como o cdigo est todo escrito em linguagem de mquina. Deste modo as diretivas correspondentes a linguagem C sero ignoradas, como mostra a figura a seguir.

Vrias outras configuraes podem ser feitas nesta categoria (GENERAL OPTIONS). Mas para nosso primeiro projeto funcionar pararemos aqui e passaremos direto categoria DEBUGGER. Nesta categoria, selecionaremos a aba SETUP, como pode ser visto na figura abaixo.

Pgina 51

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha Na aba SETUP necessrio selecionar o driver que ser utilizado para a compilao do projeto. As opes so SIMULATOR (o projeto no ser gravado em nenhum dispositivo e ser simulado apenas no computador) ou FET DEBUGGER (o programa ser gravado no dispositivo selecionado anteriormente e executado em tempo real). Com todas estas configuraes feitas, chegou a hora de compilar o projeto e coloc-lo para rodar. Para isto, v at o menu principal e selecione PROJECT, e em seguida DOWNLOAD AND DEBUG (CTRL + D).

Note que at aqui fizemos toda a configurao de projeto, mas ainda no salvamos uma rea de trabalho. Por este motivo, antes de compilar um projeto necessrio salvar uma rea de trabalho. Deste modo, ao tentar compilar pela primeira vez, aparecer a tela de salvamento de rea de trabalho, como pode ser visto na figura a seguir.

Pgina 52

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha Fique atento para o local onde a rea de trabalho ser salva. Lembre-se da organizao de pastas que criamos no comeo deste processo. Uma rea de trabalho no deve ser salva dentro de uma pasta de projetos, e sim dentro da pasta de rea de trabalho, como voc pode ver na figura abaixo. Uma rea de trabalho tem a extenso .eww, que no precisa ser colocada, pois o software preenche automaticamente.

Se tudo ocorreu bem, e o arquivo assembly no contm erros, o projeto ser compilado e aparecer a tela de execuo, como pode ser visto na figura abaixo.

Pgina 53

Material auxiliar para curso Bsico de MSP430 Prof. Alessandro F. Cunha

9. COMO ESTRUTURAR UM PROGRAMA EM ASSEMBLY PARA MSP430?

;****************************************************************************** ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; K. Quiring/K. Venkat Texas Instruments Inc. Dec 2006 Built with IAR Embedded Workbench Version: 3.41A /|\| | | --|RST | | MSP430xG461x ----------------| | | | P5.1|-->LED Description: Toggle P5.1 by xor'ing P5.1 inside of a software loop. ACLK = 32.768kHz, MCLK = SMCLK = default DCO MSP430xG46x Demo - Software Toggle P5.1

;****************************************************************************** #include <msp430xG46x.h> ;------------------------------------------------------------------------------RSEG CSTACK ; Define stack segment ;------------------------------------------------------------------------------RSEG CODE ; Assemble to Flash memory ;----------------------------------------------------------------------------RESET mov.w #SFE(CSTACK),SP ; Initialize stackpointer StopWDT SetupP5 Mainloop Wait L1 mov.w bis.b xor.b mov.w dec.w jnz jmp #WDTPW+WDTHOLD,&WDTCTL #002h,&P5DIR #002h,&P5OUT #050000,R15 R15 L1 Mainloop ; Stop WDT ; P5.1 output ; ; Toggle P5.1 ; Delay to R15 ; Decrement R15 ; Delay over? ; Again ; ;-----------------------------------------------------------------------------COMMON ORG DW END INTVEC RESET_VECTOR RESET ; Interrupt Vectors ; MSP430 RESET Vector ; ; obrigatrio ;------------------------------------------------------------------------------

Pgina 54