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

Oi Rodrigo,

 

Não ficou claro para mim se são dois cursos ou somente um. Independente disso, vou colocar a minha visão de profissional da área.

 

1) Acho interessante fazer microprocessadores em assembly, como você falou. Só assim se aprende como funciona uma arquitetura Von Neumann, bastante usada ainda. Jumps, registros de stack, PC, etc. Tentaria apenas adicionar pelo menos a teoria da concorrência, algo com arquitetura Harvard. Pularia os micros de oito bits, sem dúvida. Os de 16 bits ainda estão bem em uso e podem ser uma boa escolha, como o HC12 que falou. Apesar do mercado nacional adotar muito o PIC, esta não seria a minha escolha principal.

 

2) Já que pediu opinião, acho a beagleboard complexa demais para o foco da disciplina. Sem falar que tem um cortex A8, que não é um microcontrolador. Eu escolheria um ARM Cortex M3, de preferência com ethernet, para ter muitas possibilidades de aplicação. Tem muitos kits bons por aí. Assim, o foco iria sair de "Linux Embarcado" (que por si só merece uma outra disciplina) e se concentraria no microcontrolador. A pouca necessidade de assembly no CM3 também vai ajudar a manter o foco em C. Um pouco de RTOS aqui seria de grande valia, independente de qual seja.

 

3) Se tivesse mais uma disciplina, eu focaria em SOPC. Existem muita possibilidades aqui. Entre elas, colocar o seu processador na FPGA, lógica adicional, código, etc. Complexo, mas interessante e atual.

 

4) Embedded Linux com a beagleboard pode ser uma boa em outra disciplina. No entanto, lembro que ela não tem ethernet, o que considero uma falha grave. Isto me faria considerar outra placa que tivesse custo baixo também.

 

Marcelo Barros

 

Bem, minha opinião como explorador do assunto (nem formalmente estudante, nem completamente leigo):

A Beagleboard, como disse o marcelo é muito complexa, tanto que até hoje não achei um tutorial para ligar ela e colocar qualquer coisa na tela que fosse de fácil compreensão. Isso seria uma oportunidade de explorar o aprendizado nela de forma pioneira hehe.

Ela tem um enorme potencial que pode ser explorado tanto para tarefas complexas quanto para simples e a progressão controlada de dificuldade é a base para ensinar não? :)

Além de que com ela pode se estudar até os OS que você queria, então o seu alto custo compensa na grande possibilidade de aproveitamento de diversos campos dessa disciplina, assim ela seria usada durante quase todo curso.

A vantagem dela é que ela é de vanguarda e tem enorme potencial, a desvantagem é que se apenas usar ela no curso, o contato dos alunos com outros microcontroladores (mesmo que ela não tenha um) fica a se desejar.

 

Sobre a disciplina ser totalmente em C acho melhor fazer referências a outras linguagens, mas o foco ser C.

Marcelo Barros,

A BeagleBoard possui já duas versões onde esta última já veio com ethernet e um hub usb embutidos, isso ajuda muito mesmo quando instalar um SO como Linux. Alias, minha BBxM comprei aqui no Lab de Garagem.

 

Rodrigo Maximiano,

Considerando uma correção que ARM não é microcontrolador, a não ser que seja encapsulado. Interessante tentar passar isso aos alunos quanto a trabalhar com RISC com um ISA diferente do que estamos acustumados nos CISC como 6800. Deixe-os afiados em ASM que ajuda a entender as diferenças entre as duas arquiteturas e cada uma com suas vantagens.


Um bom livro para os alunos seria o do William Hohl, o qual visitou a Unifei em 2008 para uma apresentação da ARM e que tal convidar novamente?

 

A sugestão da Friendlyarm gostei, e se a universidade comprasse diversos destes kits seria mais interessante e motivante aos alunos. Mas um Cortex M0 também seria mais simples para inicio dos alunos.

Gustavo,

Se já tem, excelente. Sem ethernet se perde muito.
Concordo também que a definição do que é um ARM confunde. Todos são processadores, sendo as séries R e M considerados com embedded processors. Na prática, quem licencia o core M/R acaba fazendo um microcontrolador ao adicionar periféricos, RAM, flash, etc. Mas já vi ARM7 com cara de microcontrolador. Apenas pra deixar claro para outros leitores do post.

Marcelo
Pelo jeito arm não seria muito indicado para iniciantes. E o que vocês acham de ter uma disciplina de microprocessador e uma outra de microcontrolador? Vale a pena já entrar em microcontroladores?
Rodrigo, não vejo problemas em ter um ARM numa segunda disciplina, após algo mais básico e conceitualmente forte. Mas que seja um ARM Cortex M0 ou M3. A linha M (0, 3 e 4) já está em vários produtos e isto deve aumentar bastante. A ideia é que, ao sair da faculdade, tenham já um contato com algo moderno. Fora que os kits permitirão a criação de trabalhos bem interessantes por parte dos alunos, já que o conjunto de periféricos é bem amplo. Vale até uma competição.
E material sobre o assunto? tipo livros em português?

Tava pensando agora em ensinar ARM em microprocessador (pela arquitetura) e HC12 em controlador.

 

Tem mais alguma idéia.

Rodrigo,

 

Acredito que você poderia adotar os livros em inglês já que vi muitas traduções que acabam por confundir o leitor, e assim as opções são várias. Um que parte e gostei é do William Hohl, ARM Assembly Language, e tem apenas 1 exemplar na biblioteca, vale dar uma olhada.

Este também é interessante, para complementar:

 

ARM System Developer’s Guide - Designing and Optimizing System Software

Andrew N.;Dominic Symes,ChrisWright

 

Em português, para ARM, não tenho muita coisa a recomendar.

A turma da UNIFEI deve continuar boa, como no meu tempo, não deve ser problema.

De qual UNIFEI vocês estão falando? A FEI em SBC ou a antiga EFEI em Itajubá?

Unifei de Itajubá/Itabira =) heheh (bem lembrado Marcelo!)

 

Na verdade Unifei representa a antiga Efei de Itajubá. A FEI de SBC mudou o nome pra Centro Universitário FEI.

Na época da mudança houve uma certa confusão e até briga se me lembro bem (ambas reinvidicando o nome unifei). O nome foi então sancionado pela lei 10.432 de 24 de abril de 2002 para uso da Efei. Apesar disso algumas pessoas ainda usarem o nome Unifei para designar a FEI, gerando mais confusões.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço