Curso de EA870 2S2009 - freescale - MCF12

De DCA-Wiki

Contents

Avisos

  • 28/07/09 - Roteiro 1 e calendários ja disponibilizados - Prof D.Camilo
  • 08/09/2009 - Caros,

É preciso um cuidado especial quando se usar as instruções de move quando esta envolver a leitura e escrita nos registradores de Entrada/Saída. A razão é a seguinte. Como os registradores de dados (D0 a D7) possuem 4 bytes, se a entrada e saída for BYTE e estiver associada a um endereço, por exemplob BASE. Fazer move D0, BASE fará com que a parte mais significativa do D0 (bits 31 a 24) sejam escritas no registrador BASE, e fará com que os restantes 3 bytes de D0 (bits 23 a 0) sejam escritas nos endereços BASE+1, BASE+2 e BASE+3, o que é conceitualmente errado, pois pode ser que nestes endereços existam outros registradores de E/S que não devem ser alterados. Assim, o correto é move.b D0, BASE. Qualquer dúvida estou à disposição. Lotufo

  • 9/10/2009 - dúvidas no roteiro7

Concordo com o Lotufo. Detalhe: Tem muita gente errando nesse programa na seguinte linha em BOLD...

  • UCR0 =0x30;
  • UCR0 = 0x20;
  • UCR0 = 0x10;
  • UMR10 = 0x13;
  • UMR10 = 0x07;
  • UCSR0 = 0%11011101;
  • UISR0 = 0x0;
  • UBG10 = 0x1;
  • UBG20 = 0x04;
  • UCR0 = 0x05000000;

No caso do assembly, precisamos do valor 0x05000000 valor para nao precisarmos deslocar o dado recebido do registrador UCR0 ao fazer o OR. Porém em C, estaremos jogando um long em um unsigned char (8bits). Desta forma o valor correto nao é jogado na inicialização.

No caso, deve-se jogar apenas *UCR0 = 0x05;

Um metodo mais correto seria jogar o seguinte codigo: *UCR0 = (0x05 | *UCR0);

O trecho em verde é uma duvida minha, ja que o operador % é mod em C, certo? Logo, eu colocaria o valor 0xDD.

Rodei esse programa hoje e funcionou certinho, em alguns alunos eu dei a dica para mudar para 0x05 e funcionou também!

Outra problema comum foi o uso errado da condicao de envio para a serial. Devemos testar a condicao do terceiro bit do UCR0, logo, fazemos um AND lógico em C ( lala & lele ) com 0x04 e entao testamos...!

Ate mais!

Guilherme

26out09 - Os pontos acima apontados pelo Guilherme foram modificados no roteiro da serial. Lotufo

26out09 - Atenção, as turmas E e F não terão aula no dia 27 de outubro. Os relatórios referente ao roteiro experimental deverão ser entregues nesta própria wiki. Para isto, é necessário que todos os alunos sejam cadastrados na wiki. Peço a ajuda dos monitores para fazerem isto. Assim, a tarefa desta semana é: 1) cadastrar na wiki, 2) aprender a usar e editar na wiki, 3) colocar o relatório da experiência do teclado, sem e com interrupção na wiki, embaixo do roteiro experimental. Lotufo

12/11/2009 - Disponibilizei 5 possíveis projetos finais para os alunos das turmas S e T. Verifiquem no Roteiro 13. Quevedo.

09/12/2009 - Notas parciais das turmas S e T na seção "Notas".

14/12/2009 - Nova atualização de notas parciais das turmas S e T.

18/12/2009 - Notas finais das turmas S e T.

Página do Curso EA870 2S 2009 - Freescale MCF52

Alunos

Notas

Introdução

O objetivo desta disciplina de laboratório é fixar conceitos básicos associados à organização/arquitetura de microcontroladores digitais. Para isto, o estudo experimental é feito através das linguagens de programação suportada pela máquina. A Disciplina EA870, de 4 créditos, foi idealizada como complementar à Disciplina teórica EA869 - Introdução a Sistemas de Computação. As duas disciplinas são oferecidas pela Faculdade de Engenharia Elétrica e de Computação - FEEC.

Para atender o objetivo da disciplina é proposto um total quatorze experiências. Destas, treze delas definem diferentes roteiros entre si, sendo, cada, tratado nos respectivos período de aula. Isto faz compreender um subtotal de 26 horas/aulas. A décima-quarta experiência, denominada de Projeto Final, é proposto um ou mais roteiros, que podem ser desenvolvidos em grupo de um ou no máximo dois alunos. Por tratar-se de um roteiro mais completo é reservado um total de 4 horas/aulas, o que perfaz o total de 30 horas/aulas.

As treze propostas dos roteiros de experiências para que se cumpra o objetivo da disciplina - fixação dos conceitos básicos de microcontroladores - são:

1. Introdução à arquitetura e linguagem de montagem - assembly language - própria do microcontrolador. Desde o segundo semestre de 2008 passamos a usar o MCF52223 ColdFire® Integrated Microcontroller - Freescale® Semiconductor.

2. Montagem e desmontagem - Assembly, disassembly - memória e portas. Execução e depuração de programas modelos com a finalidade é tornar-se familiar com o Operator System Code Warrior, própria do microcontrolador.

3. Execução e modificação de programas. A execução e depuração de programas modelos tem a finalidade de familiarizar o Operator System Code Warrior do microcontrolador.

4. Conceito de transmissão serial assíncrona.

5. Conversor Analógico/Digital - A/D.

6. Programação em linguagem C e RTC.

7. Trasmissão Serial e Conversões ASCII/Hexadecimal/Decimal. Utilização das rotinas em C para transmissão serial e rotinas basicas de conversão ASCII/Hexadecimal/Decimal.

8. Introdução ao conceito de Interrupção em microcontrolador: programação do teclado com e sem interrupção. Como exercício de fixação pede-se: a geração de onda quadrada.

9. Interrupção: como exercício de fixação pede-se: a geração de uma onda quadrada.

10. Transmissão Serial Síncrona - via Synchromous Serial Peripheral Interface - SPI e visor de LCD.

11. Transmissão Serial Síncrona (SPI) e Conversor Digital/Analógico.

12. Temporizador e geração de onda digital PWM.

13.

14. Projeto Final.

Outros roteiros de experiências estão sendo elaborados, sobretudo, dentro do conceito básico associado à organização e arquitetura de microcontroladores digitais.

Conteudo e Roteiros das Experiencias

Na /Refer 23/ - http://www.fee.unicamp.br/EA870/referencias/Placa_Auxiliar.pdf / encontra-se uma documentacao completa da placa auxiliar utilizado nesta disciplina EA870 - Laboratorio de Computação.

Na /Refer. 20/ Referência rápida para o MCF52223 media:ReferenciaRapida.pdf - encontra-se uma documentação resumida sobre o microcontrolador MCF52223, essencial para o aprendizado.

Calendário e Avaliação

Instruções: Wiki, Phptest, Teleduc, Lista de Discussão

Referências

Manuais da Freescale

  • Refer. 1 - MCF52223 ColdFire® Integrated Microcontroller Reference Manual - Devices Supported:

MCF52223 - MCF52221 - Document Number: MCF52223RM - Rev. 3 - 04/2007. http://www.freescale.com/files/32bit/doc/ref_manual/MCF52223RM.pdf

Manuais feitos na FEEC


Manuais e Tabelas
MCF52221DEMO - Freescale

Manuais de software

Livros

  • Brian W. Kernighan e Dennis M. Ritchie C A Linguagem de Programacao, Padrao ANSI, Editora Campus,ISBN 8570015860
  • Refer. 100 - Beatriz M. Daltrini, Mario Jino, Léo P. Magalhães; Introdução a Sistemas de Computação Digital; Makron Books do Brasil Editora Ltda; ISBN 85-346-0986-1

Apostilas de outros professores

Material do Curso de C

  • Slide do Curso de C - Frederico V. Silva e Rudson P. de Souza

(ppt com ~200KB) http://www.fee.unicamp.br/EA870/referencias/cursoc.ppt

  • Curso de C On-Line da EE da UFMG - 1996-2004

(HTML) http://ead1.eee.ufmg.br/cursos/C/c.html

  • Tutorial de programação C para HC11 - Murillo Fernandes Bernardes

(pdf com ~200KB) http://www.fee.unicamp.br/EA870/referencias/tutorial.pdf

Manuais em preparação

Roteiros

Recomendações para confecção de relatórios

  • Roteiro 1 EA870 2S2009 - Microntrolador ColdFire MCF52211 - Introdução a sua arquitetura e linguagem assembly.

Turmas E e F

Grupo de Discussão

Grupo no Domínio Google Groups para perguntar e responder as duvidas sobre a disciplina:

Professores

Tutores

Ferramentas pessoais