segunda-feira, 16 de julho de 2012

Programação em assembly para o MSP430


            É fato que a grande maioria dos programadores não gosta de programar microcontroladores em assembly. Contudo, o conhecimento de como as coisas funcionam nesta linguagem torna possível a otimização de código, solução de problemas e o desenvolvimento de programas que seriam muito difíceis, se não impossíveis, de serem realizados com linguagens de alto nível.
            Neste artigo apresento um programa feito em assembly para fazer o led vermelho da LaunchPad piscar. Apesar de ser bastante simples, este exemplo tem como objetivo mostrar os conceitos básicos para a criação de projetos em assembly no CCS v5.2 para os microcontroladores da linha MSP430.

sábado, 23 de junho de 2012

Pinos de Entrada/Saída (IO)


            Antes de começarmos a programar os microcontroladores que acompanham a LaunchPad, vamos conhecer os pinos de entrada/saída do microcontrolador MSP430G2553.
            O MSP430G2553 possui ao todo 20 pinos, sendo 16 pinos de IO divididos em 2 grupos chamados PORT1 e PORT2. Cada pino pode ser configurado como entrada digital, saída digital ou para utilização dos periféricos.
            Os pinos das portas PORT1 e PORT2 possuem a capacidade de gerar interrupções. Cada pino pode ser configurado individualmente para gerar uma interrupção em uma borda de subida ou descida de um sinal de entrada. As interrupções desviam a execução do programa para um endereço armazenado no vetor de interrupção, sendo que cada porta tem um vetor de interrupção distinto, mas que trata a interrupção de todos os pinos da porta.
            Cada pino também possui resistores de pullup/pulldown internos, que podem ser ativados para cada pino separadamente.
            Outra função incluída nos pinos do msp430g2553 é o oscilador interno para uso em sensores de toque capacitivos, mas isto fica para um próximo post.
            A figura 1 mostra o Device Pinout para o msp430g2553 e logo abaixo são apresentados os registradores utilizados para configuração e uso dos pinos.

Figura 1: Pinos do msp430g2553.


sexta-feira, 22 de junho de 2012

Microcontroladores MSP430

A linha MSP430 da Texas Instruments consiste em mais de 200 microcontroladores desenvolvidos especialmente para o baixo consumo de energia. Contendo até 7 modos de baixo consumo (Low Power Modes) e menos de 1µs de wakeup time, esses microcontroladores tem como foco aplicações em dispositivos de medição alimentados por baterias. Sua CPU RISC de 16 bits é construída utilizando a arquitetura von-Neumann e, em conjunto com um sistema de Clock flexível e vários tipos de periféricos analógicos e digitais, provê soluções para uma vasta gama de aplicações.
            A plataforma MSP430 é dividida em 5 gerações de acordo com os periféricos encontrados nos microcontroladores. A figura 1 mostra uma breve descrição das características, periféricos e protocolos de comunicação utilizados em cada uma das gerações.

Figura 1: Diferenças entre as gerações dos microcontroladores da linha MSP430. Fonte: Texas Instruments.

terça-feira, 19 de junho de 2012

Conheça a LaunchPad


            Houve um tempo em que o desenvolvimento de sistemas digitas para hobbistas era baseado em C.I.s da família 74xx e afins, sendo que ate alguns anos atrás o preço de microprocessadores/microcontroladores restringia seu uso apenas as empresas. Com os avanços no processo de fabricação de circuitos integrados, o preço de tais dispositivos deixou de ser um empecilho para sua utilização, tanto por engenheiros profissionais quanto por "engenheiros de garagem". Sua utilidade é tão grande que são encontrados em quase todos os tipos de aparelhos eletrônicos, indo desde uma simples cafeteira a satélites.
            Dada à facilidade com que os microcontroladores são utilizados, eles logo inundaram a bancada de hobbistas em todo o mundo. Empresas como Microchip e Atmel ganharam grande fama devido aos seus kits de desenvolvimento e microcontroladores de baixo custo. De olho neste nicho de mercado, a empresa Texas Instruments lançou em 22 de junho de 2010 seu kit para desenvolvimento com microcontroladores da família MSP430, a LaunchPad. Esse kit permite a programação, depuração e prototipagem de circuitos microcontrolados a um preço bem abaixo da media.
            Assim, se você é fascinado pelo mundo da eletrônica e adora brincar com microcontroladores, mas, assim como eu, não tem tanto dinheiro para gastar, apresento-lhe o kit de desenvolvimento LaunchPad, da Texas Instruments.

Figura 1: A placa de desenvolvimento LaunchPad.

segunda-feira, 18 de junho de 2012

Sim, um blog!


Mas por que um blog?

Faz algum tempo que a ideia de escrever em um blog me persegue, mas a fobia de transformar ideias em palavras sempre foi maior. Contudo, o que mais me consome tempo ultimamente é escrever, seja documentos para o condomínio onde moro, trabalhos para a faculdade ou até mesmo a apostila para disciplina de futebol de robôs. Com a falta de prática acabo demorando horas para produzir meia dúzia de linhas mau escritas. Escrever bem passou de um luxo para uma necessidade. Mas por que então, montar um blog? Porque a melhor maneira de se aprender a escrever é escrevendo, e nada melhor do que um blog para treinar.

E sobre o que você vai escrever?

Pretendo registrar aqui algumas das minhas experiências no mundo da programação e eletrônica. Claro que não sou mestre nestas áreas, porem, desde meu primeiro "Hellow Word!" em pascal a quase 10 anos, acabei aprendendo alguma coisa.
Começarei escrevendo uma serie de tutoriais sobre como utilizar a LaunchPad, da Texas Instruments, e os microcontroladores da família MSP430, por ser difícil de que encontrar este tipo de informação em português. Escolhi esta placa em especial por ter um preço extremamente baixo (U$4,30 com frete grátis para o Brasil) e ser fácil de utilizar, mas com o tempo quero adicionar também posts sobre outros microcontroladores, tais como PICs e ARMs.

Então, o que você espera deste blog?

O objetivo principal deste blog é, como já disse anteriormente, treinar minha escrita. Entretanto, também espero que as informações aqui contidas sejam uteis para alguém. Outra coisa interessante é a troca de informações com pessoas que tem um conhecimento mais profundo nessas áreas do que eu, pois é uma ótima maneira de se aprender. Além disso, pretendo utilizar este espaço como um backup de conhecimento, pois minha incrível memória insiste em esquecer detalhes e formulas mais rápido que a velocidade da luz.


O que os leitores deste blog irão encontrar?

            A ideia é produzir artigos na forma de tutoriais da maneira mais correta possível. Antes de escrever algo procuro sempre revisar a literatura para refrescar e/ou adquirir novos conhecimentos, mantendo assim, uma boa qualidade técnica no conteúdo. Mas, tendo em mente que eu estou para o português assim como o MC Catra está para a poesia, assumo que erros gramaticais serão um tanto quanto frequentes. Por mais que eu leia livros e apostilas de português, as regras da nossa língua simplesmente desaparecem da minha cabeça, talvez por falta de treino. Assim, correções, criticas e elogios serão sempre bem vindos.