Escolar Documentos
Profissional Documentos
Cultura Documentos
Pgina 2
von-Neumann
Pgina 3
1.2.
Harvard
Pgina 4
1.3.
1.4.
Mquina von-Newmann
Pgina 5
Pgina 6
1.5.
1.6.
CISC x RISC
Pgina 7
Arquitetura do MSP430FG4618.
Pgina 8
3. Clocks e LPM
3.1.
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 9
3.2.
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 10
Pgina 11
Pgina 12
3.3.
FAMLIA 2
FAMLIA 4
3.4.
FAMLIA 2
Pgina 13
FAMLIA 4
Pgina 14
Pgina 15
3.5.
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 16
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:
Pgina 18
Pgina 19
4.1.
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
4.2.
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 20
4.3.
4.4.
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 21
Pgina 22
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.
Pgina 23
5.1.
Memrias no MSP430
Pgina 24
Pgina 25
Pgina 26
Pgina 27
Pgina 28
6.1.
Modos de endereamento
Pgina 29
6.2.
6.3.
As 51 instrues
Pgina 30
JUMPS INSTRUCTIONS
Pgina 31
Pgina 32
6.4.
INTERRUPES E RESET
Pgina 33
Pgina 34
Pgina 35
Pgina 36
Pgina 37
Pgina 38
7.1.
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.
Pgina 39
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.
Pgina 40
Pgina 41
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 42
8.1.
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.
Pgina 43
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 44
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.
Pgina 45
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 46
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 C, cuja extenso adotada pelo IAR a .c).
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.c. Para isto necessrio salvar uma
cpia do arquivo dentro do diretrio do projeto, como pode ser visto na figura abaixo:
Com o arquivo .c 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 de linguagem C (.c) ao
projeto j existente, como mostra a figura a seguir.
Pgina 47
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.c) ele se abrir na janela ao lado, permitindo qualquer edio que o
programador julgue necessrio, como pode ser visto na figura a seguir.
Pgina 48
Pgina 49
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 50
Pgina 51
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 52
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 53
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 .c no contm erros, o projeto ser compilado e aparecer
a tela de execuo, como pode ser visto na figura abaixo.
Pgina 54
Mas como estamos trabalhando com a linguagem C, veja o exemplo EXEMPLO-0 e observe
que apenas a configurao do Watchdog Timer que se faz necessria. Os dois outros
passos so realizados automaticamente pelo compilador IAR.
//******************************************************************************
//
MSP430xG46x Demo - Software Toggle P5.1
//
//
Description: Toggle P5.1 by xor'ing P5.1 inside of a software loop.
//
ACLK = 32.768kHz, MCLK = SMCLK = default DCO
//
//
MSP430xG461x
//
|-----------------|
//
/|\|
|
//
| |
|
//
--|RST
|
//
|
|
//
|
P5.1|-->LED
//
//
K. Quiring/M. Mitchell
//
Texas Instruments Inc.
//
October 2006
//
Built with IAR Embedded Workbench Version: 3.41A
//******************************************************************************
#include
<msp430xG46x.h>
void main(void)
{
volatile unsigned int i;
WDTCTL = WDTPW+WDTHOLD;
P5DIR |= 0x02;
while(1)
{
P5OUT ^= 0x02;
for(i=50000;i>0;i--);
}
// Stop WDT
// P5.1 output
// Delay
Pgina 55