A maior rede de estudos do Brasil

Grátis
256 pág.
Descobrindo o STM32

Pré-visualização | Página 4 de 47

de flash e 8KB de RAM, assim como um hardware de interface de depuração
integrado, baseada em um STM32 F103 dedicado conectado via USB. Com
software adequado rodando no PC (host) é possível conectar o processador
STM32 F100 para baixar, executar e depurar o código do usuário. Além
disto, a interface depuradora integrada é acessível através de pinos e pode
ser usada para depurar qualquer membro da família STM32 –- efetivamente,
ST está dando de graça uma interface de hardware de depuração (debugger)
com a placa de prototipação. O STM32 VL Discovery é distribuído com uma
documentação completa incluindo esquemáticos. [14].
Na fotografia, há uma linha branca vertical um pouco para a esquerda
da metade do CI. Na parte à direita da linha está o STM32 F100, cristais
osciladores, dois LED’s acessíveis ao usuário, um botão também acessível e
outro botão de reset. À esquerda está presente a interface depuradora de
hardware, incluindo um STM32 F103, regulador de tensão e outros compo-
nentes. O regulador converte 5V fornecido pela porta USB para 3,3V para o
processador e outras conexões da placa. Este regulador é capaz de fornecer
corrente suficiente para os hardwares adicionais usados nos tutoriais.
4http://www.st.com/internet/evalboard/product/250863.jsp
18 Revision: (None) ((None))
1.1. HARDWARE NECESSÁRIO
Todos os pinos do STM32 F100 trazem consigo rótulos –- como ire-
mos ver, os rótulos dos pinos correspondem diretamente aos nomes lógicos
utilizados na documentação do STM32 em vez de associar os pinos físicos com
códigos particulares utilizados. Este uso de nomes lógicos é consistente através
da família e simplifica a tarefa de definir softwares portáteis.
O STM32 F100 é um membro da value line de processadores STM32 e a
velocidade de execução é relativamente lenta (para processadores Cortex-M3)
em 24Mhz, mesmo assim provê mais computação e portas I/O do que requerido
pelos tutoriais utilizados neste livro. Além disto, todos os periféricos providos
pelo STM32 F100 são compatíveis a outros membros da família STM32, e
o código desenvolvido desde componente é completamente portátil entre os
micro controladores da família.
Asynchronous Serial
Uma das técnicas mais utilizadas para depuração de software é exibir
mensagens no terminal. O micro-controlador STM32 provê capacidade ne-
cessária para comunicação serial através de dispositivos USART (Universal
Synchronous Asynchronous Receiver Transmitter), mas não a conexão física
necessária para comunicar com um PC (host). Nos tutoriais utilizamos uma
bridge USB/UART comum. A mais comum dessas é conhecida como substitu-
tos para a porta serial dos PCs e são impróprios para nosso propósito porque
incluem conversores de nível de tensão para satisfazer a especificação RS-232.
Em vez disto, necessitamos um dispositivo que provê acesso direto aos pinos
dos dispositivos da bridge USB/UART.
Figura 1.3: Pololu CP2102 Breakout Board
Um exemplo de dispositivo, mostrado na Figura 1.3, é a placa brea-
kout Pololu CP2102. Uma alternativa é a placa breakout Sparkfun FT232RL
(BOB-00718) que utiliza o chip bridge FTDI FT232RL. Comprei uma placa
CP2102 no Ebay a preço baixo e que funciona bem. Enquanto uma placa com
portas para dispositivos parece ser viável, é importante notar que nem todas
Revision: (None) ((None)) 19
CAPÍTULO 1. INICIANDO
Figura 1.4: EEPROM em package PDIP
as placas são utilizáveis. As placas CP2102 mais comuns, que possuem seis
pinos, não provem acesso aos pinos de controle de fluxo do hardware, o que
é essencial para confiabilidade em conexões de alta velocidade. Um tutorial
importante neste livro cobre a implementação de uma interface serial de alta
velocidade confiável. Você deve procurar entre os pinos de qualquer placa
deste tipo para garantir que pelo menos os seguintes sinais estão disponíveis
– rx, tx, rts e cts.
Interfaces seriais assíncronas são utilizadas normalmente em muitos
módulos receptores GPS (Global Positioning System), modems de GSM de
celular e interfaces wireless bluetooth.
SPI
A mais simples das interfaces seriais síncronas que examinaremos neste
livro é a SPI. Os módulos principais que consideramos são um display LCD
colorido e um cartão de memória SD. Como estes representam uma relativa
complexidade da utilização da interface SPI, então inicialmente discutiremos
um dispositivo mais simples –- uma EEPROM serial (Electrically Erasable
Programmable Memory). Muitos sistemas embarcados a utilizam para ar-
mazenamento permanente e é relativamente simples de desenvolver o código
necessário para acessá-la.
Existem muitas EEPROMs disponíveis, embora com diferentes inter-
faces. Recomendo começar com o Microchip 25LC160 com um package PDIP
(Figura 1.4). Outros packages podem ser desafiadores de serem usados em
um ambiente básico de protótipo. EEPROMs com diferentes densidades de
armazenamento frequentemente requerem diferentes protocolos de comunica-
ção.
O segundo dispositivo SPI que consideramos é um display –- utilizamos
um módulo TFT colorido barato que inclui uma entrada para cartão micro
SD. Enquanto utilizei aquele mostrado na Figura 1.1, um módulo equivalente
20 Revision: (None) ((None))
1.1. HARDWARE NECESSÁRIO
está disponível pela Adafruit. A restrição mais importante é que os exemplos
no livro assumem que o display é um ST7735 com uma interface SPI. Nós
utilizamos o adaptador SD card, embora seja possível encontrar adaptadores
alternativos da Sparkfun ou outros fornecedores.
O display tem 128x160 pixels colorido similar aos de dispositivos como
ipods ou câmeras digitais. As cores são brilhantes e podem facilmente exibir
imagens com boa fidelidade. Uma limitação significativa dos displays baseados
em SPI é a largura da banda de passagem de comunicação –- Para gráficos
de alta velocidade é recomendado utilizar um display com interface paralela.
Embora os componentes da linha value line das Discovery Board não pos-
suem um periférico interno para suportar interfaces paralelas, muitos outros
componentes STM32 possuem.
Figura 1.5: Color Display Module
Finalmente você necessitará um cartão de memória SD de 1G-2G jun-
tamente com um adaptador para programar o cartão em um computador
desktop. A velocidade e marca não são parâmetros críticos. O módulo TFT
recomendado inclui um slot de cartão SD.
I2C
A segunda interface serial síncrona que estudaremos é o I2C. Para ilus-
trar a utilização do I2C utilizaremos um Wii Nunchuk (Figura 1.6). Ele foi
desenvolvido para consoles de vídeo Wii, mas foi reutilizado por hobbystas.
Ele contém um acelerômetro ST LIS2L02AL de 3-eixos, um joy-stick analó-
gico de 2-eixos, e dois botões que podem ser utilizados (polled) via I2C. Eles
estão disponíveis tanto no modelo genuíno quanto nos clones. Devo dizer que
existem algumas diferenças sutis entre vários clones que podem impactar no
Revision: (None) ((None)) 21
CAPÍTULO 1. INICIANDO
Figura 1.6: Wii Nunchuk
desenvolvimento de software. O problema especificamente é a diferença nas
sequências de inicialização e na codificação de dados.
Figura 1.7: Wii Nunchuk Adaptor
O conector do Nunchuk é proprietário do Wii e não encontrei um for-
necedor para um conector semelhante. Existem placas adaptadoras simples
disponíveis que funcionam bem para os objetivos deste tutorial. Eles estão dis-
22 Revision: (None) ((None))
1.1. HARDWARE NECESSÁRIO
poníveis em vários fornecedores; a versão da Sparkfun é mostrada na Figura
1.7.
Time Based
Temporizadores são componentes chaves da maioria dos micro-controladores.
Além de serem utilizados para medir a passagem do tempo –- por exemplo,
criar um alerta em intervalos regulares –- temporizadores são usados para ge-
rar e decodificar trens de pulsos complexos. Um uso comum é na geração do
sinal PWM para controle de velocidade de motor. Os temporizadores STM32
são bastante sofisticados e fornecem medições e geração

Crie agora seu perfil grátis para visualizar sem restrições.