Quais as boas alternativas de processadores pra aprender/ensinar

Boa noite a todos os garagistas!

 

Como alguns devem saber, trabalho como professor na área de sistemas embarcados. O coordenador do curso me pediu pra montar o curso de microcontroladores e microprocessadores para os alunos do 3o ano de engenharia eletrônica. Estou querendo discutir aqui sobre as arquiteturas disponíveis e vantagens/desvantagens.

 

Atualmente os alunos já possuem uma disciplina no primeiro chamada programação de sistemas embarcados ano usando placas com microcontroladores PIC, tudo em linguagem C.

 

Eu pensei em usar o motorola/freescale HC12 para a matéria de microprocessadores. Eu acho interessante essa matéria ser dada em assembler, pois o objetivo é conhecer os detalhes do processador, os registros internos, ALU, mapa de memória, etc. Estou tendencioso pelo 68HC12 por esse processador ter uma arquitetura bem simples e clássica (descendente direto do 8008/6800) mas ainda em produção!

 

Para a matéria de microcontroladores eu pensei em abordar a arquitetura ARM, talvez usando uma beagleboard como placa de desenvolvimento. Essa segunda matéria tem mais o foco nos periféricos e no relacionamento destes com o processador. Desse modo essa disciplina poderia ser dada toda em linguagem C e focada mais nos periféricos do chip. Acho o ARM ideal porque possui uma grande quantidade e variedade de periféricos. Pensei até em passar alguns conceitos de SO embarcado nessa disciplina.

 

O que vocês acham? Além das opções, vantagens e desvantagens vocês poderiam citar livros e apostilas sobre o assunto? Uma coisa importante pra mim é a disponibilidade de informação disponível, principalmente livros em português.

 

Muito obrigado!

Exibições: 793

Responder esta

Respostas a este tópico

UNIFEI Itajubá/Itabira, EFEI nos meus tempos. http://www.unifei.edu.br/

Olá Rodrigo, tudo bem?

 

Acredito se estivéssemos falando de uma disciplina introdutória o Arduino se encaixaria perfeitamente!

Mesmo em disciplinas intermediárias/avançadas, acredito que o uso do Arduino possa ser benéfico por vários motivos:

 

- A plataforma é totalmente aberta

- Existe bastante material (software, hardware e documentação) pronto e gratuito

- É fácil de utilizar

- Permite rapidez na criação de projetos (basta plugar na USB, fazer o upload e você já poderá ver um resultado)

- É bastante barato comparado aos kits de desenvolvimento proprietários

- Consegue se comunicar bem com computadores via USB, facilitando o projeto de sistemas assistidos por um PC - além disso, o software que você precisa escrever no PC para se comunicar com o Arduino pode ser virtualmente em qualquer linguagem, visto que existem bibliotecas de comunicação com o Arduino feitas em Python, Ruby, PHP, Java, Perl, C etc.. Enfim, lhe dá liberdade com relação à plataforma (SO e linguagem).

- Possui SPI, I2C e suporte a outros protocolos que são utilizados por vários periféricos, como por exemplo: cartões SD usam SPI, controle Numchuck do Nintendo Wii utiliza I2C, vários controladores Ethernet utilizam SPI.

 

Porém também enxergo algumas desvantagens, como:

- Pouco poder de processamento e memória

- Ausência de um "SO"/kernel (até por conta das limitações)

- O projeto Arduino sempre escolhe facilidade de uso em vez de otimização (alguns professores preferem focar em otimização)

 

Com relação a material, em breve pretendo lançar a apostila do Curso de Arduino[http://www.CursoDeArduino.com.br/] como Creative Commons - e espero que até o final do ano consiga adicionar mais material a ponto de virar uma referência completa (livro) em Português sobre a plataforma.

 

Abraços.

Não tinha pensado no arduino. Você sabe se tem como eu fazer a programação dele em assembly? O processador é 8 ou 16 bits? A arquitetura é von neumman? (acho que os dois barramentos da harvard é complicado d+ pra ensinar num primeiro contato =)

 

Legal por disponibilizar o material, vai ter bastante gente baixando! Mas vc indica mais algum livro? é que eu precisaria de livros em portugues com uma certa urgencia, acho que não vou poder esperar pela versão 1.0.

 

Abraços!

Acho que se você for ensinar microcontroladores especificamente, você tem que ensinar o conceito. É como se comporta as portas, endereçamento, etc. Então, não importa qual o modelo específico vai usar, tampouco se tem barramento de 8 ou 16 bits. E isso necessariamente envolve Assembly (Assembler é o montador, Assembly é a "linguagem").

Ao se usar arquiteturas mais modernas, como ARM na BeagleBoard, você corre o risco de desviar o assunto do que realmente é importante em um curso desse. Você tem muitos recursos, mas o conceito se aprende com a simplicidade, e não o inverso.

O Arduino é legal pela disponibilidade, custo, comunidade, etc. Porém, se procurar material especificamente sobre Arduino, naturalmente vai esbarrar em C (ou Wiring) e outros tópicos de alto nível, que não são bons para um curso sobre microcontroladores. Mas nada impede que você trabalhe em Assembly.

Nesse caso, procure material sobre o Atmega mais especificamente, que é o microcontrolador utilizado no Arduino. O site http://www.avrfreaks.net é uma boa referência. Não conheço nenhuma boa referência de livros em português, porém não deve ser difícil encontrá-los.

A propósito, estudei na Unifei. Fiz Bacharelado em Física por 2 anos, mas parei. Acabei indo pra SP e me formei na FEI em Engenharia Elétrica. Por isso, perguntei outro dia. :)
O Arduino é, sem dúvida, uma proposta didática interessante, com uma grande comunidade aberta. Mas não sei se isto se reflete na vida profissional futura do aluno, onde os processadores mais em uso e com tendência de aumento são outros. A velha dialética teoria x prática. Enfim, as opções são diversas, Gustavo !
Cada família de microcontrolador tem suas vantagens e desvantagens. AVR (usado no Arduino) e PIC tem bastante apoio das comunidades hobbistas, mas a arquitetura dos processadores (Harvard) é meio ingrata. O ARM segue uma arquitetura RISC, mas são dispositivos mais sofisticados e normalmente usados em aplicações mais complexas. O MCS-51 tem uma arquitetura mista que é usada por vários fabricantes e é bastante usado na indústria, mas é menos usado por hobbistas. Lembraria ainda o MSP-430 que tem um arquitetura muito boa mas ainda é pouco usado (mas pode ser interessante se você conseguir um apoio da Texas e fornecer aos alunos o Launchpad - veja http://ti.com/launchpadwiki).

Sobre livros em português, eu destacaria os do Fábio Pereira. Ele tem bons livros sobre PIC, HCS08, MSP430 e ARM: http://sctec.com.br/site/index.php/livros.

Bônus: uma palestra do Fábio Pereira que eu tive o prazer de assistir: http://video.google.com/videoplay?docid=8843879563961368245#
O MSP430 é muito bom. Pode ser uma boa saída. Temos vários produtos com ele.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço