A maior rede de estudos do Brasil

Grátis
256 pág.
Descobrindo o STM32

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

difíceis (por exemplo, USB) para depurar.
Todos os exemplos deste livro devem funcionar sem modificação em
qualquer processador das famílias STM32F1xx. Algumas mudanças serão ne-
cessárias para os arquivos no diretório template fornecido com este livro. O
script do linker de STM32-Template precisa da seguinte modificação:
MEMORY
{
RAM (rwx) : ORIGIN = 0x20000000 , LENGTH = 8K
FLASH (rx) : ORIGIN = 0x08000000 , LENGTH = 128K
}
248 Revision: (None) ((None))
17.1. PROCESSADORES
[frame=none]
Os tamanhos das duas regiões de memória devem serem modificadas de modo
a refletir o componente que está sendo usado. Makefile.common precisa ter
suas variáveis LDSCRIPT, PTYPE, STARTUP modificadas conforme o caso. Fi-
nalmente, a tabela de vetor no startup_stm32f10x.c precisará ser atualizada
para refletir os vetores do componente da família que está sendo usado. A bi-
blioteca padrão de periféricos inclui arquivos de inicialização em linguagem
assembly que podem servir como um guia. Observe que a tabela de vetores
termina com um número “magico” que é necessário se você construir projetos
que farão boot da SRAM.
Há famílias STM32 adicionais, incluindo STM32 F0 (baseado no Cortex-
M0), STM32 L1 (Cortex-M3 de Ultra baixa potência), STM32 F2 (Cortex-M3
de alto desempenho – 120MHz), e STM32 F4 / F3 (baseado no Cortex-M4).
Cada destes exige a utilização de uma biblioteca padrão de periféricos dife-
rente. Embora muitos dos periféricos sejam os mesmos ou melhorias daqueles
na série STM32 F1, alguns cuidados serão necessários para portar o código
deste documento para estes dispositivos. Existem “discovery boards” extre-
mamente atraentes para o STM32 L1, STM32 F0, e STM32 F4 que valem
a pena investigar. Neste momento, o código da interface gdb usados neste
documento suporta todos menos o dispositivo STM32 F0; no entanto, parece
que o openocd openocd.sourceforge.net pode suportar todos.
Pelas razões descritas acima, a atualização mais simples do STM32F100
é um outro membro da família STM32F1xx. A SparkFun vende uma header
board para o STM32F103 com 20K bytes de RAM e 128K bytes de Flash
por aproximadamente US$40. – o mesma placa também é vendida pela Mou-
ser. Esta placa, produzida pela Olimex, também tem um conector USB como
o STM32F103 tem um periférico USB escravo (não para os fracos de cora-
ção!). Várias placas com desenvolvimento semelhante estão disponíveis de
vários fornecedores no Ebay por US$ 15-25. Por cerca de US$30 é possível
comprar uma placa STM32F103 com um touch-screen de 2,8”TFT no Ebay.
Esse é um excelente valor e suporta uma alta performance gráfica através do
FSMC paralela interfaceada com o periférico do STM32F103.
A maioria das placas STM32 atualmente disponíveis fornecem um co-
nector padrão JTAG para a interface do depurador. Embora seja possível utili-
zar a STM32VL Discovery Board para se comunicar com esta interface, os pro-
blemas de conexão podem se tornar irritantes. A ST vende um módulo depu-
rador separado ST-LINK/V2 que faz a interface direta com o conector JTAG.
Este módulo está disponível a partir de tanto na Mouser (www.mouser.com)
Revision: (None) ((None)) 249
CAPÍTULO 17. PRÓXIMOS PASSOS
como na Digikey (www.digikey.com) por aproximadamente US$ 22 e seria
um bom investimento para trabalhar com placas STM32. O protocolo ST-
LINK/V2 é suportado pelo driver gbd utilizado neste documento – na verdade,
causa menos problemas em um ambiente OS X ou Linux do que o protocolo
V1.
Como mencionado anteriormente, displays mais poderosos geralmente
requerem o uso de uma interface paralela, como a FSMC fornecida pelo
STM32F103. Tomar partido das capacidades avançadas requer uma biblioteca
de gráficos mais sofisticada. Há um bom número de bibliotecas comerciais e de
código aberto disponíveis. A ST fornece uma biblioteca STM32 [22]. A bibli-
oteca STM32 inclui uma camada de abstração de hardware (HAL - Hardware
Abstraction Layer), que pode ser modificada para suportar vários dispositivos,
incluindo LCDs, touch-screens e joysticks.
Recentemente a ST Microelectronics lançou uma Discovery Board com
microcontroladores STM32F4 e STM32F3. Trata-se de um produto incrível.
Por exemplo, a placa STM32F3 Discovery inclui uma unidade de movimento
inercial de 9 graus (acelerômetro, giroscópio, bússola) por menos de US$ 15. A
maior barreira para começar a utilizá-la será a necessidade de se adaptar a uma
nova biblioteca para periféricos. Embora esteja confiante de que os exemplos
deste livro podem ser utilizados com um trabalho modesto, alguns periféricos
podem ter mudado consideravelmente – por exemplo, a inicialização dos pinos
do GPIO tem parâmetros adicionais.
17.2 Sensores
Existem muitos sensores disponíveis que possuem interfaces SPI, I2C,
ou analógicas. Nesta seção, vamos discutir alguns deles. Os leitores interessa-
dos podem folhear o site SparkFun para ideias.
Medições de Posição/Inercial
A ST, a Analog Devices e a Freescale fazem dispositivos acelerômetros -
muitos deles são suportados por placas de break-out da Sparkfun.com que for-
nece um guia de compra acessível em http://www.sparkfun.com/tutorials/
167. Em geral, estes dispositivos utilizam interfaces I2C, SPI, ou analógicas.
Uma “unidade de medida inercial” completa geralmente contém um giroscó-
pio de 3 eixos, um acelerômetro de 3 eixos e um magnetômetro de 3 eixos; a
ST produz um módulo que contém todos os três dispositivos em um fator de
forma DIP (STEVAL-MKI108V2), que está disponível na Mouser por US$ 29.
250 Revision: (None) ((None))
17.2. SENSORES
Um outro dispositivo de detecção de posição útil é um receptor GPS.
A SparkFun vende uma boa unidade com base no Venus638FLPx por US$ 50.
Como a maioria de tais unidades, ela se comunica via serial assíncrona – basta
ligá-la a uma UART.
Sensores Ambientais
Sensores ambientais incluem sensores de temperatura, umidade e pres-
são. Estes são amplamente disponíveis com interfaces I2C, embora alguns,
como os dispositivos 1-Wire da Maxim/Dallas exigem um protocolo especial.
O protocolo 1-wire não é suportado diretamente nos periféricos STM32, mas
podem ser implementados com temporizadores e GPIO. O Saleae Logic inclui
um analisador de protocolo para dispositivos 1-wire. Observe que existem al-
guns muito semelhantes, mas incompatíveis com o estilo do barramento 1-wire;
no entanto, a maioria é relativamente simples.
Alem dos protocolos digitais, sensores ambientais frequentemente pro-
duzem um sinal analógico. Exemplos incluem os vários sensores de gás (álcool,
de monóxido de carbono, hidrogênio, ...) vendidos pela SparkFun e outros.
Sensores de Força e Movimento
Existem muitos sensores de força/posição cuja resistência varia com a
entrada. A medição destes requer uma tensão de referência e resistência para
traduzir a resistência do sensor para uma tensão analógica.
Identificação – Código de Barras/RFID
A SparkFun e outros vendem leitores de RFID e de código de barras
com interface serial e I2C.
Proximidade
Os sensores de proximidade incluem tanto os módulos de distância por
ultra-som e infravermelho. Nós demonstramos o uso de sensores de ultra-som
no Capítulo 10. Sensores por reflexão infravermelha frequentemente necessi-
tam de uma saída digital para alimentar um LED e uma entrada analógica
para medir a intensidade da luz refletida.
Revision: (None) ((None)) 251
CAPÍTULO 17. PRÓXIMOS PASSOS
17.3 Comunicação
Muitos projetos interessantes exigem uma comunicação melhorada seja
com wireless ou com fio. No domínio wireless, módulos de baixo custo de
bluetooth, wifi, e até mesmo celulares GSM estão disponíveis com interfaces
seriais. Para aplicações de baixa potência, links de rádio dedicados, como o
Nordic nRF24L01 utilizam a interface SPI. Finalmente, é relativamente fácil
fazer o interfaceamento de controles remotos infravermelho padrão com um
detector de infravermelho simples.
17.4

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