Tutorial para projeto e utilização de uma placa baseada em processador da família MSP430.
Os requisitos básicos a serem cumpridos pela placa a ser desenvolvida são listados a seguir:
- possuir um chip de Real Time Clock (RTC);
- possuir um sensor de temperatura;
- possuir uma porta de comunicação serial;
- possuir um processador para realizar a leitura do RTC, amostragens de temperatura (do sensor de temperatura), e envio das informações via porta serial para o mundo exterior.
Para atender esses requisitos, os seguintes esquemáticos foram projetados:
- Circuito base com MSP430 – CPU de 16 bits com 8kbytes de flash e clock de 8MHz;
- Circuito para comunicação serial, e gravação do MSP430 – Precisa ser utilizado esse gravador, pois no esquemático proposto não é possível fazer a gravação com JTAG.
Essa pré-definição foi realizada, visando facilitar as etapas iniciais do projeto, e acelerar o processo de busca e aquisição dos componentes.
I – Seleção e aquisição dos componentes
Os componentes a serem utilizados estão listados nos esquemáticos do circuito base, e do circuito de comunicação. A primeira atividade consiste em preparar uma lista com todos os componentes a serem adquiridos. Alguns componentes a serem adquiridos são:
- CPU => MSP430F1232IDW, 16-bit Ultra-Low-Power Microcontroller, 8kB Flash, 256B RAM, 10 bit ADC, 1 USART.
- RTC (relógio/calendário) => BQ32000DR – RTC com interface I2C, compatível com DS1338.
- Sensor de Temperatura => TMP75AIDR – Interface I2C/SMBus
- Regulador de Tensão => LM3940IT – 3.3/NOPB-1A Low Dropout Regulator for 5V to 3.3V Conversion
Entrar no site da Texas Instruments, fazer um cadastro, selecionar os componentes desejados, e solicitar amostras. Em 72 horas estará recebendo os componentes em casa (ou no endereço fornecido, sem custo algum.
IMPORTANTE!!! Para cada pedido é possível solicitar APENAS 5 unidades de cada componente. Assim, a turma precisará se organizar visando compartilhar os pedidos. Por exemplo, no caso de uma turma com 18 alunos, e considerando o desenvolvimento do trabalho em duplas, bastaria três alunos da turma realizar a solicitação dos samples da Texas.
Comprar na Farnell Newark FT232RL, o chip conversor de USB para UART para gravar o firmware no MSP430.
Identificar os demais componentes necessários (resistores, capacitores, LEDs, conectores, barras de pinos, …), e procurar outros fornecedores.
II – Desenvolvimento das placas
Utilizando como base os esquemáticos fornecidos, cada grupo deverá projetar sua própria placa. Pode ser desenvolvida apenas uma placa com o MSP430, periféricos e programador, ou podem ser desenvolvidas duas placas, uma com o programador, e outra com o MSP430 e periféricos.
Os grupos podem selecionar a ferramenta de projeto que acharem mais adequada (ex. Eagle, Altium, Orcad, …). Um tutorial do Eagle interessante esta’ disponivel na pagina da disciplina: [Tutorial Eagle].
As etapas de um projeto PCB (Printed Circuit Board) são as seguintes:
- Entrada do esquemático (schematic capture) utilizando uma ferramenta de EDA (Electronic Design Automation), que pode ser o Orcad, Eagle, …
- Definição do tamanho da placa, de acordo com a quantidade de componentes, número de camadas da placa, entre outros.
- Definição do número de camadas da placa.
- Posicionamento dos componentes na placa, considerando as necessidades de alimentação, entre outros.
- Roteamento.
- Geração do arquivo a ser utilizado na fabricação (Gerber file), geração de arquivos de teste e net lists.
- Envio do arquivo Gerber e também das informações de furação (Drill) para o fabricante do PCB. A placa em questão possui baixa complexidade, e pode ser fabricada no lab. na UFSC pelos próprios grupos.
- Utilizar os dados de posicionamento para montar a placa (soldar os componentes) – também pode ser terceirizado.
- Uso das net lists e dados de teste para a verificação e testes elétricos do PCB.
III – Teste das placas
- O primeiro teste a ser realizado é a inspeção. Trata-se de uma inspeção visual, utilizando o esquemático e o layout como referência.
- Com a placa ainda sem alimentação, deve ser utilizado um multimetro para identificar possíveis fontes de mal contato, sendo identificados circuitos abertos e fechados indevidamente.
- Com a placa alimentada, utilizar um multimetro para identificação das tensões esperadas em vários pontos do circuito. Um osciloscópio pode ser utilizado para identificar se o sinal de clock está chegando no microprocessador (e outros componentes), conforme o esperado.
- Compilar o programa teste.c (ou o pisca LED) utilizando o Makefile disponível para cada um dos exemplos. Os arquivos Makefile executam os seguintes comandos:
- msp430-gcc -Os -mmcu=msp430x2619 -o teste.elf teste.c
- msp430-objdump -DS teste.elf > teste.lst
- msp430-objcopy -O ihex teste.elf teste.hex
- Gravar o programa de teste na placa com o msp430-bsl (a partir do Makefile), utilizando o FT232 (com a respectiva placa), uma vez que esse esquemático não suporta JTAG:
- msp430-bsl –invert-reset –invert-test -c16 -ep -r teste.elf
- Em caso de problemas na gravação, voltar para o passo 1 dessas dicas de teste da placa.
- Em caso de sucesso na gravação, mas o programa não apresenta o funcionamento esperado, as melhores ferramentas para depuração são o osciloscópio, e o analisador lógico.
IV – Recursos disponíveis
A placa a ser desenvolvida será utilizada no trabalho final da disciplina, que consiste em um sistema em C++ a ser executada em um kit de prototipação disponível no laboratório.
A aplicação da placa a ser desenvolvida poderá ser desenvolvida em C ou assembly, e podem ser aproveitados códigos fontes disponibilizados na página da disciplina.
Os seguintes recursos estão disponíveis para os alunos:
- Diversos tutoriais.
- Diversos exemplos.
- PISCA LED – exemplo simples para testar o funcionamento da placa.
- Compilador C.
- Driver USB.
- Programador do MSP430.
- Diagrama esquemático do circuito base com MSP430.
- Diagrama esquemático do circuito para comunicação serial, e gravação do MSP430.
- Fotos de PCB do projeto montadas.
- Tutorial do Eagle.
- Mais informações podem ser obtidas, também, em: http://www.feng.pucrs.br/~jbenfica/msp430.html