001 a 010 material auxiliar para curso avançado ii msp430

10
TECH TRAINING – ENGENHARIA E TREINAMENTOS Prof. Alessandro Ferreira da Cunha msn: [email protected] skype: alessandroferreiradacunha CURSO AVAÇADO II – PERIFÉRICOS DO MSP430 PROGRAMAÇÃO DO TREINAMENTO:

Upload: texas-instruments

Post on 03-Jul-2015

2.034 views

Category:

Technology


3 download

DESCRIPTION

Material do curso avançado II

TRANSCRIPT

Page 1: 001 A 010   Material Auxiliar Para Curso AvançAdo Ii Msp430

TECH TRAINING – ENGENHARIA E TREINAMENTOS

Prof. Alessandro Ferreira da Cunha msn: [email protected]

skype: alessandroferreiradacunha

CURSO AVAÇADO II – PERIFÉRICOS DO MSP430

PROGRAMAÇÃO DO TREINAMENTO:

Page 2: 001 A 010   Material Auxiliar Para Curso AvançAdo Ii Msp430

Material auxiliar para curso Avançado II de MSP430 – Periféricos – Prof. A. F. Cunha

Página 2

0. Objetivos deste treinamento Quem está fazendo este módulo avançado II é porque já passou pelos módulos anteriores. Portanto não serão abordados aqui os tópicos já visto nos cursos anteriores. Aqui o aluno já deve dominar suficientemente a linguagem C e o ambiente de trabalho IAR. O estudo dos periféricos será feito diretamente na fonte: manual da família 4 e datasheet do dispositivo, o que pode ser obtido da internet nos endereços abaixo. Manual da família: http://focus.ti.com/lit/ug/slau056h/slau056h.pdf Datasheet do MSP430FG4618: http://focus.ti.com/lit/ds/symlink/msp430fg4618.pdf

Este material será apenas um descritivo dos exercícios que devem ser feitos ao longo deste treinamento.

Page 3: 001 A 010   Material Auxiliar Para Curso AvançAdo Ii Msp430

Material auxiliar para curso Avançado II de MSP430 – Periféricos – Prof. A. F. Cunha

Página 3

1. FLL+ Clock Module Carregue o primeiro exercício feito no curso de linguagem C, onde um LED fica piscando de acordo com a velocidade de um loop infinito, como pode ser visto abaixo. //****************************************************************************** // 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; // Stop WDT P5DIR |= 0x02; // P5.1 output while(1) { P5OUT ^= 0x02; for(i=50000;i>0;i--); // Delay } }

1.1. Freqüência atual do clock

Analise a configuração do módulo FLL+ no programa exemplo. Qual é a freqüência atual do clock?

1.2. Aumentando e diminuindo a freqüência de clock durante a execução de um programa

Reescreva o programa anterior de modo que um toque no botão 1 faça com que a freqüência do clock aumente gradativamente, chegando até ao valor máximo possível para este dispositivo. Um toque no botão 2 deverá fazer com que a freqüência diminua gradativamente, chegando até o valor mínimo possível. Isto deve ser realizado em LPM. O que se deve observar como saída é que o LED aumentará e diminuirá a freqüência das piscadas proporcionalmente a variação de velocidade de processamento do MSP430.

Page 4: 001 A 010   Material Auxiliar Para Curso AvançAdo Ii Msp430

Material auxiliar para curso Avançado II de MSP430 – Periféricos – Prof. A. F. Cunha

Página 4

2. Flash Memory Controller Durante o curso de linguagem C foi desenvolvido um RTC (Real Time Clock), onde um relógio passa a funcionar a partir da interação com o usuário, que informa qual é o horário inicial (dia, mês, ano, dia da semana, hora, minuto e segundo). Estes valores, depois de inseridos, passam a ser mostrados no display da Experimenter Board. Carregue este programa e verifique o seu funcionamento. Ele servirá como base para o nosso próximo exercício.

2.1. Criando um data looger com o MSP430 A partir do programa do RTC do curso anterior, crie um novo software que faça o seguinte:

• Uma vez que o RTC foi inicializado de acordo com o programa anterior, ele passa a operar normalmente, mostrando a hora inicial no display;

• Quando o usuário pressionar o botão S1, o valor atual do RTC (dia, mês, ano,

dia da semana, hora, minuto e segundo) deve ser gravado na memória flash. Isto deve ocorrer por tantas vezes quanto forem os pressionamentos deste botão, ou até esgotar o espaço de armazenamento da memória flash;

• Quando o usuário pressionar o botão S2, a primeira posição de memória flash

é mostrada no display. Pressionamentos seguidos deste botão fazem aparecer no display, seqüencialmente, todos os dados que foram armazenados, até o fim do último dado armazenado antes de pressionar S2 pela primeira vez.

3. Supply Voltage Supervisor – SVS

3.1. Medindo o nível de tensão da bateria do MSP430 Escreva um programa, utilizando o periférico SVS, que indique no display da Experimenter Board qual é o nível de tensão atual da bateria. O programa deve acender o seguimento do display que indica a carga da bateria proporcionalmente à tensão de alimentação do chip, de acordo com a tabela e a figura mostrada a seguir. Deve ser feita uma verificação em tempo real da tensão de alimentação. Caso hajam variações de tensão, estas devem ser mostradas no diplay.

Page 5: 001 A 010   Material Auxiliar Para Curso AvançAdo Ii Msp430

Material auxiliar para curso Avançado II de MSP430 – Periféricos – Prof. A. F. Cunha

Página 5

4. ADC12

4.1. Voltímetro medidor de tensão com o ADC12 do MSP430 Será inserido na entrada do ADC do MSP430 um potenciômetro. Isto fará com que a tensão de entrada neste pino varie de +Vcc (~ 3 V, com as pilhas carregadas) até GND (0 V). Escreva um programa que faça a leitura deste valor de tensão e escreva no display, em tempo real, qual é o valor da tensão, no formato:

Page 6: 001 A 010   Material Auxiliar Para Curso AvançAdo Ii Msp430

Material auxiliar para curso Avançado II de MSP430 – Periféricos – Prof. A. F. Cunha

Página 6

4.2. Termômetro medidor de temperatura com o ADC12 do

MSP430 O ADC12 pode ter como referência de entrada uma junção de um transistor que indica qual é a temperatura do encapsulamento. Escreva um programa que faça a leitura deste valor de temperatura e escreva no display, em tempo real, qual é o valor da temperatura, no formato:

4.3. Múltiplas conversões com o ADC12 Tensão e temperatura no display da Experimenter board

Escreva um programa que mostre, ao mesmo tempo e em tempo real, a temperatura do encapsulamento do MSP430 e o valor de tensão colocado na entrada no conversor ADC12, mostrando as informações no display da Experimenter Board no seguinte formato:

Page 7: 001 A 010   Material Auxiliar Para Curso AvançAdo Ii Msp430

Material auxiliar para curso Avançado II de MSP430 – Periféricos – Prof. A. F. Cunha

Página 7

5. DAC12

5.1. Gerador de funções com o DAC12 Escreva um software que faça o seguinte:

• Ao pressionar o botão S1 será colocada na saída do DAC12 uma forma de onda, de acordo com o mostrado abaixo. Estas formas de onda deverão ter a amplitude máxima permitida para este dispositivo. Cada pressionar de botão troca a forma de onda da saída, de modo seqüencial.

o 1ª: SENOIDAL 100 Hz o 2ª: QUADRADA 1 Khz o 3ª: TRIANGULAR 100 Hz

• Ao pressionar o botão S2 a freqüência da forma de onda que estiver no terminal de saída naquele instante deverá ser aumenta ciclicamente, chegando a um limite e retornando ao valor incial proposto, de acordo com o número de pressionamento do botão. O número de toques no botão pode ser limitado a 5, para facilitar a elaboração do código fonte.

• A forma de onda que estiver sendo colocada na saída deve ser indicada no display da Experimenter Board, através de nomes que possibilitem reconhecer que determinada forma de onda está em ação naquele momento.

6. DMA (Direct Memory Access) ControlerAC12 A Texas Instruments disponibiliza em seu site um software de exemplo que faz o uso do DMA: é o Voice Recorder, cuja cópia pode ser obtida nos links mostrados abaixo: http://focus.ti.com/mcu/docs/mcusupporttechdocsc.tsp?sectionId=96&tabId=1502&abstractName=slaa361 http://focus.ti.com/lit/an/slaa361/slaa361.pdf http://focus.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=slaa361&fileType=zip Neste exemplo é feito um tratamento da voz utilizando todos os recursos estudados até este momento do curso: conversão AD, uso de DMA, armazenamento em memória Flash, e conversão DA. O funcionamento deste programa exemplo pode ser visto em blocos, na figura a seguir.

Page 8: 001 A 010   Material Auxiliar Para Curso AvançAdo Ii Msp430

Material auxiliar para curso Avançado II de MSP430 – Periféricos – Prof. A. F. Cunha

Página 8

6.1. Data looger utilizando o DMA Será inserido o potenciômetro na entrada do conversor AD. Ao pressionar o botão S1 será gravado na memória Flash todas as variações de sinal que entrarem no conversor AD, através da variação do cursor do potenciômetro. Isto deve acontecer, obrigatoriamente, utilizando o recurso do DMA. É interessante mostrar ao usuário qual o valor de tensão que se está salvando na memória, através do display. Um indicação de que o sinal está sendo armazenado também é desejável (pode ser a utilização do símbolo de TX ou RX no display). Para efeitos didáticos, podemos limitar a gravação de dados a um tamanho de 5 Kbytes na memória flash. Após a gravação de dados, se o usuário pressionar o botão S2 será feita a leitura de dados gravados na memória Flash. O sinal será entregue a saída do conversor DA e ao conectar um osciloscópio a saída do dispositivo, a mesma forma de onda da entrada deve ser observada na saída.

Page 9: 001 A 010   Material Auxiliar Para Curso AvançAdo Ii Msp430

Material auxiliar para curso Avançado II de MSP430 – Periféricos – Prof. A. F. Cunha

Página 9

Também é interessante mostrar no display quais são os valores de tensão que foram armazenados e indicar que a operação de saída está acontecendo (pode ser a utilização do símbolo de TX ou RX no display). 7. Watch Dog Timer Recarregue o software do gerador de funções, desenvolvido durante o estudo do DAC12. Acrescente neste software o uso do WDT, escolhendo quais são os pontos corretos de inserir a limpeza deste hardware, e verifique o seu funcionamento. Retire alguns destes pontos colocados estrategicamente durante o programa e verifique se realmente o software é resetado quando uma rotina excede o tempo previsto no WDT. Modifique a configuração do WDT para outros valores de tempo e veja como isto afeta o funcionamento do programa. 8. Comunicação Serial: Máquina USART Para esta série de exercícios serão necessárias duas placas Experiementer Board. Então os alunos deverão trabalhar em dupla. Será conectado um potenciômetro em cada placa, que deve estar ligado ao conversor ADC12. As variações de sinal decorrente da atuação no cursor do potenciômetro deve ser mostrado no display da outra placa. Assim, o sinal do potenciômetro A, ligado na placa A, deve ser mostrado no display da placa B. Por outro lado, o sinal do potenciômetro B, ligado na placa B, deve ser mostrado no display da placa A. A troca de informações deve ocorrer através da interface de comunicação serial pedida a seguir. Serão conectados os sinais entre as placas através de fios fornecidos pelo professor.

8.1. UART Configurar a máquina USART para atuar como uma UART e fazer o programa acima rodar na máxima velocidade possível.

Page 10: 001 A 010   Material Auxiliar Para Curso AvançAdo Ii Msp430

Material auxiliar para curso Avançado II de MSP430 – Periféricos – Prof. A. F. Cunha

Página 10

8.2. SPI

Configurar a máquina USART para atuar como uma SPI e fazer o programa acima rodar na máxima velocidade possível. 9. Comunicação Serial: Máquina USCI Para esta série de exercícios também serão necessárias duas placas Experiementer Board. Então os alunos deverão trabalhar em dupla. Será conectado um potenciômetro em cada placa, que deve estar ligado ao conversor ADC12. As variações de sinal decorrente da atuação no cursor do potenciômetro deve ser mostrado no display da outra placa. Assim, o sinal do potenciômetro A, ligado na placa A, deve ser mostrado no display da placa B. Por outro lado, o sinal do potenciômetro B, ligado na placa B, deve ser mostrado no display da placa A. A troca de informações deve ocorrer através da interface de comunicação serial pedida a seguir. Serão conectados os sinais entre as placas através de fios fornecidos pelo professor.

9.1. SPI Configurar a máquina USCI para atuar como uma SPI e fazer o programa acima rodar na máxima velocidade possível.

9.2. I2C Configurar a máquina USCI para atuar como uma I2C e fazer o programa acima rodar na máxima velocidade possível.