Mudanças entre as edições de "MIC29004-2019-1"
Linha 307: | Linha 307: | ||
http://docente.ifsc.edu.br/roberto.matos/mic_public/Pinout_of_ARDUINO_Board_and_ATMega328PU.png | http://docente.ifsc.edu.br/roberto.matos/mic_public/Pinout_of_ARDUINO_Board_and_ATMega328PU.png | ||
− | + | Fonte: [https://commons.wikimedia.org/wiki/File:Pinout_of_ARDUINO_Board_and_ATMega328PU.svg Pinout of ARDUINO Board and ATMega328PU] by pighixxx is licensed under [https://en.wikipedia.org/wiki/en:Creative_Commons Creative Commons Attribution-Share Alike 4.0 International] | |
− | [https://commons.wikimedia.org/wiki/File:Pinout_of_ARDUINO_Board_and_ATMega328PU.svg Pinout of ARDUINO Board and ATMega328PU] by pighixxx is licensed under [https://en.wikipedia.org/wiki/en:Creative_Commons Creative Commons Attribution-Share Alike 4.0 International] | ||
Edição das 02h28min de 6 de junho de 2019
Microprocessadores: Diário de Aula 2019-1
- Professor: Roberto de Matos
- Encontros: 4ª e 5ª feira às 15:40h
- Plano de Ensino
- Cronograma de Aulas
- Notas
Material
Listas de Exercício
Aula 13/02/2019: Apresentação
- Apresentação do professor.
- Apresentação da disciplina: conteúdo, bibliografia e avaliação.
Aula 14/02/2019: Introdução sobre Memória
Diagrama em blocos da memória e barramentos
No diagrama abaixo está representado um bloco de memória primária de 16x8 (dezesseis endereços por 8 bits).
- Note que uma posição de memória pode ser vista como uma caixa que possue um endereço e um conteúdo.
- O conteúdo associado a posição de memória é uma palavra binária e, neste caso, possui 8 bits.
Para que us dispositivo externo possa "acessar" a memória para leitura ou escrita, ele deve se utilizar de um conjunto de fios que chamamos de barramentos.
Barramento de Endereços
Este barramento permite determinar o endereço de uma posição a ser acessada na memória. Um barramento de 4 linhas de endereço é designado por A3,A2,A1 e A0.
Supondo uma memória com endereços designados da forma hexadecimal de 0h a Fh. Supondo que A3 seja associado ao bit mais significativo e A0 ao bit menos significativo. Então, para acessar a posição Bh de memória, deve-se injetar A3=1, A2=0, A1=1 e A0=1. Note que
O termo "injetar" significa aqui que um dispositivo externo deve forçar tensão nas linhas do barramento. Esta tensão depende da tecnologia utilizada. Poderia ser, por exemplo, 5V para o nível lógico 1 e 0V par ao nível lógico 0.,
Aula 20/02/2019: Laboratório de Memória - Introdução
Experimento 1 - Acesso a memória RAM de 2K x 8 bits
- Roteiro
- Entrar no Windows.
- Baixar o arquivo de projeto Experimento 1 MIC. Coloque em um diretório conhecido.
- Clique sobre o arquivo. O PROTEUS será executado e o projeto aberto.
- Observe que o projeto está parcialmente pronto. Você pode entrar em modo simulação.
- O sistema está preparado para que se possa inserir ou ler manualmente posições de memória.
- Tente colocar o dado AFh na posição 0 de memória e 8Eh na posição 15.
- Note o Chip Select está habilitado sempre. Coloque uma chave adicional para colocar o Chip Select e repita a operação de gravação anterior.
- Exercícios adicionais
- Colocar uma chave de controle do Chip Select (CE).
- Colocar o seu nome ("Maria da Silva") na memória implmentada no projeto, a partir da posição 0 (endereço). Olhar tabela ASCII.
- Reimplementar o item dois para gravar nos últimos endereços de memória dos 2K disponíveis.
Aula 21/02/2019: Laboratório de Memória - Associação
- Associando memórias para aumentar a quantidade de endereços
- Usando como referência o projeto da aula anterior expandir o sistema de memória de 2Kx8bits para 8Kx8bits. Use decodificador (ver abaixo).
- Grave 0xAA na posição 2047, 0xBB na posição 4095, 0xCC na posição 6143, 0xDD na posição 8191.
- Quais os endereços de cada memória que foram acessados fisicamente?
Material de Apoio
- Decodificadores
Aula 27/02/2019: Laboratório de Memória - Associação (cont.)
- Associando memórias para aumentar o tamanho da palavra de memória
- Usando como referência o projeto da aula anterior expandir o sistema de memória de 2Kx8bits para 2Kx16bits.
- Grave 0xAAAA na posição 512
- Grave 0xBBBB na posição 2044
Aula 28/02/2019: Cancelada
Problemas de saúde
Aula 06/03/2019: Tipos de Memória
- Avaliação dos laboratórios de associação de memória: Notas
- Tipos de Memória
- Roteiro Extra Proteus
- Baixe o novo arquivo de projeto. Coloque em um diretório conhecido.
- Observe que o projeto está parcialmente pronto. Você pode entrar em modo simulação. O sistema está preparado para que se possa inserir ou ler manualmente posições de memória.
- Grave o dado Ah na posição 0 de memória e Bh na posição 8.
- Note o Chip Select está habilitado sempre. Coloque uma chave adicional para colocar o Chip Select e repita a operação de gravação anterior.
- Utilize a nova configuração para gravar o seu número de matrícula a partir da posição 0.
- Exercícios Extra Proteus
- Usando a memória do experimento como bloco base (16x4 bits), realize a ligação entre elas de modo que se construa um banco de memória de 16x8 bits.
- Usando a memória do experimento como bloco base (16x4 bits), realize a ligação entre elas de modo que se construa um banco de memória de 64x4 bits.
- Usando a memória do experimento como bloco base (16x4 bits), realize a ligação entre elas de modo que se construa um banco de memória de 32x8 bits.
- Exercícios Extra
- Quais os tamanhos dos barramentos de endereço e dado para uma Memória de 512x8 bits?
- Determine a capacidade final em bits e o endereço inicial e final em Hexadecimal das memórias com as seguintes características:
- 512x4
- 4Kx8
- 128Kx8
- 2Mx16
Aula 07/03/2019: Introdução a Arquitetura e Organização de Computadores
- Objetivos
- Introdução a Microprocessadores
- Material
- Slides: Introdução a Microprocessadores
- Exercícios
Aula 13/03/2019: Não Houve Aula
Aula 14/03/2019: Não Houve Aula
Aula 20/03/2019: Arquitetura do BIP
- Objetivos
- Apresentar a Arquitetura do BIP
- Material
- Exercícios
Aula 21/03/2019: Organização do BIP
- Objetivos
- Apresentar a Organização do BIP
- Simulação do BIP e Geração de Sinais de Controle de Forma Manual
- Material
Aula 27/03/2019: Organização do BIP
- Roteiro
1.Baixar e descomptar em um diretório os arquivos abaixo
2.Instalar a biblioteca e modelo antes de abrir o projeto usando o Menu System->Settings:
3.Abrir o projeto do BIP
4.Simular e gerar os sinais de controle conforme a instrução e a tabela de decodificação.
Aula 28/03/2019: Implementar Decoder do BIP
Aula 03/04/2019: Montar assembly do BIP
- Verificação do Decoder funcionando
- Montagem na mão do Assemby do BIP
Aula 04/04/2019: Arquitetura e Organização do BIP II
Atividade:
- Fazer a tabela de decodificação do BIP2
- Implementar o decoder do BIP2
- Modificar a organização do BIP para suportar as novas instruções do BIP2
- Fazer um programa para mostrar o funcionamento
- Enviar o Código via Sigaa e Apresentar para o professor.
- Deadline: 18/04/2019. Adiado para:
- Entrega: 23/04/2019
- Apresentação: 24/04/2019
Aula 10/04/2019: Aula Cancelada - Troca por sexta
Aula 11/04/2019: Dúvidas da lista de exercícios
- Nenhum aluno teve dúvida da lista ou do trabalho.
Aula 17/04/2019: Prova
Aula 24/04/2019: Revisão BIP2
- Dúvidas do Trabalho BIP2
Aula 25/04/2019: Terminar Decode Bip2
- Aula aberta para finalização do trabalho final de organização
Aula 02/05/2019: Apresentação dos Trabalhos
Aula 08/05/2019: Introdução a Microcontroladores
Aula 09/05/2019: Introdução a Microcontroladores (cont.)
Aula 15/05/2019: Não houve aula – Paralisação Nacional
Aula 16/05/2019: Preparação Seminários e CISC x RISC
- Grupo 1 (Guilherme e Luan):
- Visão Geral
- Núcleo AVR
- Qual arquitetura de memória usada?
- Detalhes da ALU (Quais os tipos de operação? Formato de dados)
- Registradores (Status e Uso geral e de Pilha)
- Apresentar:
- Modos de endereçamento
- Conjunto de instruções (classes e exemplos)
- Grupo 2 (Bruno e Gabriel):
- Descrição dos pinos
- Detalhes das Memórias do AVR
- Flash
- SRAM
- EEPROM (Descrição dos registradores)
- Apresentar:
- Tamanho e Tipo da palavra de de dados
- Tamanho e Formato da palavra de instrução
Aula 22/05/2019: Apresentação do Seminário
- Grupo 1 (Guilherme e Luan):
- Visão Geral
- Núcleo AVR
- Qual arquitetura de memória usada?
- Detalhes da ALU (Quais os tipos de operação? Formato de dados)
- Registradores (Status e Uso geral e de Pilha)
- Apresentar:
- Modos de endereçamento
- Conjunto de instruções (classes e exemplos)
Aula 23/05/2019: Apresentação do Seminário
- Grupo 2 (Bruno e Gabriel):
- Descrição dos pinos
- Detalhes das Memórias do AVR
- Flash
- SRAM
- EEPROM (Descrição dos registradores)
- Apresentar:
- Tamanho e Tipo da palavra de de dados
- Tamanho e Formato da palavra de instrução
- Simulação:
Aula 29/05/2019: Instruções de Movimentação de dados
https://www.microchip.com/webdoc/avrassembler/avrassembler.wb_instruction_list.html
Aula 30/05/2019: Instruções de Movimentação de dados
ldi r16, $06
ldi r27, $01 ;carregando o X (r27:r26) com o endereço 0102
ldi r26, $00
ram_prep:
st x+, r16
dec r16
BRBC 1, ram_prep
</syntaxhighlight>
Aula 05/06/2019: Portas de Entrada e Saída
- Apresentação dos testes de movimentação de memória
- Pinos do Arduino vs. ATmega328p:
Fonte: Pinout of ARDUINO Board and ATMega328PU by pighixxx is licensed under Creative Commons Attribution-Share Alike 4.0 International
- Tabela verdade de configuração das portas:
- Endereços registradores de I/O:
- Referência: