ARM Cortex M0+ 32 bits - Método rápido, fácil e open source para iniciar.

Olá garagistas!

Muitos de nós ficamos travados quando o assunto é ARM. Primeiro pela complexidade e depois pelo custo.

Acima, uma opção a mais para iniciar facilmente com esses microcontroladores.

Consiste na placa "Freedom Board", com o microcontrolador ARM M0+ MKL25Z128VLK4 da Freescale.

Roda a 48 MHz, tem 128 KB de flash, 16 KB de SRAM, USB client e USB Host, 

2xSPI,2xI2C,3xUART, 6xPWM,6xDAC, sensor de toque capacitivo, acelerômetro MMA8451Q

de três eixos, um LED RGB, e várias GPIO.

Abaixo as interfaces disponíveis:

Ela foi lançada no final do ano passado, como uma alternativa de baixo custo para ARM.

Porém a Freescale não oferecia uma IDE free para o desenvolvimento, apenas

uma versão "evaluation", com limitação de código, etc...

A ótima notícia para os garagistas é que o site mbed (www.mbed.org) anunciou uma parceria com a Freescale 

e lançou o suporte para a placa com seu compilador online! 

Sem restrições de uso, e com uma vasta gama de bibliotecas prontas para serem utilizadas!

Além disso, recentemente, a mbed tornou todo o compilador e o hardware Open Source,

para facilitar o projeto para placas standalone.

Abaixo 3 exemplos de programação, para entender o quão alto nível é o compilador mbed:


EXEMPLO 1 - HELLO WORLD (BLINK LED)

#include
"mbed.h"


int main()
{
DigitalOut gpo(PTB8);
DigitalOut led(LED_RED);
while (true) {
gpo = 1;
led = 1; // Off
wait(2);
gpo = 0;
led = 0; // on
wait(2); }
}

 

EXEMPLO 2 - SENSOR DE TOQUE CAPACITIVO

#include "mbed.h"
#include "TSISensor.h"
int main(void)
{
PwmOut led(LED_GREEN);
TSISensor tsi;

while (true)
{
led = 1.0 - tsi.readPercentage();
wait(0.1);
}
}

EXEMPLO 3 - ACELERÔMETRO

#include "mbed.h" 
#include "MMA8451Q.h"
#define MMA8451_I2C_ADDRESS (0x1d1)

int main(void) {
MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
PwmOut rled(LED_RED);
PwmOut gled(LED_GREEN);
PwmOut bled(LED_BLUE);
while (true) {
rled = 1.0 - abs(acc.getAccX());
gled = 1.0 - abs(acc.getAccY());
bled = 1.0 - abs(acc.getAccZ());
wait(0.1);
}
}

Abaixo uma comparação com a pinagem do Arduino:

E abaixo um exemplo de utilização com uma shield para Arduino:

Creio que seja uma ótima opção para iniciar no mundo dos ARM. Ao dominar o hardware com o compilador acessível da mbed, podemos futuramente estudar melhor a arquitetura interna dos ARM e utilizar o compiladores proprietários em aplicações mais sérias. 

Abraço e bons estudos!

Exibições: 1750

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Marcus Vinicius Ferreira em 10 maio 2013 às 23:37

Recomendo a farnell, ou o ebay:

www.farnell.com.br

www.ebay.com

Comentário de Ivan Noé da Silva em 10 maio 2013 às 22:39

Eu participei aqui em Porto Alegre de um Road show e achei bem interessante essa plataforma, até mesmo pelo custo que pode ser encontrada a a partir de R$ 40,00 e gostaria de conseguir mais materiais em português. Se alguém poder me indicar agradeço.

Comentário de Marcus Vinicius Ferreira em 15 março 2013 às 15:13

Boa Tarde,

Como complemento ao artigo, gostaria de sugerir as seguintes ferramentas totalmente FREE

para desenvolvimento voltado aos microcontroladores com core ARM:

_ Eclipse

_ CDT GNU Cross Development Tools 

_ Zylin Embedded CDT 

_ Code Sourcery

É super fácil usar, pois o plugins (CDT GNU Cross Development Tools e Zylin Embedded CDT) do eclipse

se encarregam de gerar o makefile, e o Code Sourcery é um toolchain com tudo oque é necessaria para

gerar um codigo ARM; e mais, esse combo dá suporte ao J-link que é uma ferramenta de depuração muito

valiosa, capaz de gerar break points em tempo de execução.

A unica coisa que precisamos nos preocupar é com o linker script (arquivo que basicamente declara as sesões de memoria do microcontrolador) e o startup (arquivo responsável pela inicialização do core e algumas declarações de endereços de interrupção).

Porém a tarefa descrita acima, tornou-se relativamente fácil com o Cortex Microcontroller Software Interface Standard (CMSIS) que consiste em uma padronização de bibliotecas e arquivos de configuração dos microcontroladores com core ARM cortex-XX.

Quem tiver interesse posso enviar por e-mail um .pdf que fiz com instruções de instalação do eclipse e das demais ferramentas citadas acima.

Comentário de Helder Santana em 15 março 2013 às 13:53

Artigo interessante, comprei uma KL25Z em outubro do ano passado, mas ainda não tinha desenvolvido desenvolver nenhuma aplicação prática justamente por conta da particularidade da IDE.

Comentário de Mateus Henrique Calza em 15 março 2013 às 12:19

Boa tarde! Alguma recomendação de onde comprar? Obrigado.

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2020   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço