[Site Oficial]
[Objetivo]
[Local e Período Letivo]
[Calendário de Atividades]
[Ementa]
[Ementa Detalhada]
[Auxiliares Didáticos]
[Critério de Avaliação]
[Notas e Frequência]
[Manuais]
[Folhas Técnicas]
[Referências Úteis]
[Ambiente Ensino Aberto - Moodle]
Objetivo
A disciplina EA871, de 4 créditos, foi idealizada como complemento à
disciplina teórica EA869, Introdução a Sistemas de Computação. Esta
disciplina de laboratório tem como objetivo consolidar conceitos
básicos associados à organização/arquitetura de microcontroladores
através de uma série de atividades de introdução a um ambiente de
desenvolvimento integrado de software de um sistema embarcado
e programação dos diversos módulos de periférico
disponíveis nos microcontroladores da série
Kinetis L da NXP (Freescale).
Local e Período Letivo
- Local: LE-30
- Período Letivo: 26/fevereiro/2018 a 7/julho/2018
O acesso ao LE-30 é permitido para os alunos fora dos horários de
aula, mediante identificação na entrada do Bloco E. Antes de sair do
laboratório, favor desliguem TODOS os
equipamentos sobre as bancadas, arrumem a bancada utilizada, fechem as
janelas, desliguem o ar condicionado, e apaguem as luzes.
Programação em linguagem assembly. Instruções de
máquina. Diretivas do montador. Depuradores. Interfaces de
entrada/saída. Programação de interface serial. Comunicação entre
computadores. Programação de interface paralela. Interrupções.
Ementa Detalhada
São programadas 10 atividades práticas com a finalidade de praticar os
conceitos relacionados com a arquitetura, linguagem de programação de
máquina, linguagem de programação de alto nível (C), memória,
periféricos de entrada e saída, comunicações paralelas e seriais, mecanismos de interrupção e temporizadores. Os alunos devem ser
capacitados a desenvolver um projeto de software de baixa
complexidade reusando o hardware disponível.
Calendário de Atividades
- |
Exp. |
Turma T(Quartas, 16:00 - 18:00h) |
Roteiro |
Materiais Complementares |
Introdução à placa FRDM-KL25 e ao shield EA871 |
1 |
28/02 |
roteiro 1
|
Ambiente de Desenvolvimento - Hardware
Nova versão do esquemático do shield FEEC
Bitwise Operators in C and C++: A Tutorial
Linguagem C: Operações sobre os Dados
apostila.c
Modelo de relatório
|
Ferramentas de Desenvolvimento de Software: CodeWarrior (SIM, PORT, GPIO: led RGB) |
2 |
07/03 |
roteiro 2 |
Ambiente de Desenvolvimento - Software
Tabela de teclas de atalho no CodeWarrior IDE
hello_world.zip
|
Linguagem de Montagem (Assembly) |
3 |
14/03 |
roteiro 3
|
Linguagem de Montagem
Thumb 16-bit Instruction Set Quick Reference Card
asm.s
|
Representação e Armazenamento de Dados (GPIO: push buttons) |
4 |
21/03 |
roteiro 4 |
Linguagem C: Representação de Dados
ledRGBPB.zip
|
Interface Paralela (GPIO: LCD) |
5 |
28/03 |
roteiro 5 |
LCD Tutorial for Interfacing with Microcontrollers lcdled.zip
|
6 |
04/04 |
Interrupções (MCG, NVIC, SysTick, PIT) e RTC |
7 |
11/04 |
roteiro 6 |
Exceções
nvic.zip
rtc.zip
|
8 |
18/04 |
Interface Serial Assíncrona (UART: Terminal) |
9 |
25/04 |
roteiro 7 (diagrama de estados alternativo) |
Serial Communication Serial Terminal Basics
Estrutura de Dados
Implementing Circular/Ring Buffer in Embedded C
uart_polling.zip
uart_interrupcao.zip
exp7b.zip |
10 |
02/05 |
Modulação por Largura de Pulso (TPM)
| 11 |
09/05 |
roteiro 8 |
tpm_pwm.zip |
Input Capture e Output Compare (TPM)
| 12 |
16/05 |
roteiro 9 (UM modelo do projeto em diagrama de estados) |
tpm_icoc.zip |
Conversor AD (ADC)
| 13 |
23/05 |
roteiro 10 |
Understanding SAR ADCs: Their Architecture and Comparison with Other ADCs ADC Input Noise: The Good, The Bad, and The Ugly. Is No Noise Good Noise? adc.zip |
Projeto Final |
14 |
30/05 |
Conector P2
MMA8451Q - Bare metal example project (acelerômetro)
Using RTC module on FRDM-KL25Z
Tutorial: Touching the Freedom KL25Z Board |
Sugestões de Projetos:
Embedded Systems Projects | Embedded Systems Project Ideas;
Top Embedded Systems Projects Ideas for Engineering Students;
100+ Embeddes Systems Projects for Engineering Students
|
15 |
06/06 |
|
16 |
13/06 |
|
Prazo da Apresentação do Projeto Final |
|
18/06/2018 Projetos apresentados: Alarme Sonoro com Sensor de Presença (Infravermelho), Jogo Genius, Fechadura Elétrica com Senha, Alarme Luminoso com Sensor de Distância (Ultrasônico) e Jogo Dino Run. |
- |
Auxiliares Didáticos
Neste semestre contaremos com o apoio didático de 2 monitores:
- Breno Levi Corrêa (b dot levi dot correa at gmail dot com) (turma T)
- Lucas
|
Segunda |
Terça |
Quarta |
Quinta |
Sexta |
8:00 - 9:00 |
|
|
|
|
aula (turma Q) |
9:00 - 10:00 |
|
|
|
|
aula (turma Q) |
10:00 - 11:00 |
|
|
|
|
aula (turma R) |
11:00 - 12:00 |
|
|
|
|
aula (turma R) |
12:00 - 12:30 |
|
monitoria (Lucas) |
monitoria (Lucas) |
monitoria (Lucas) |
|
12:30 - 13:00 |
monitoria (Breno) |
monitoria (Breno e Lucas) |
monitoria (Lucas) |
monitoria (Lucas) |
|
13:00 - 14:00 |
monitoria (Breno) |
monitoria (Breno) |
monitoria (Breno) |
|
|
14:00 - 15:00 |
|
|
monitoria (Breno) |
|
|
15:00 - 16:00 |
|
|
monitoria (Breno) |
|
|
16:00 - 17:00 |
|
|
aula (turma T, Breno) |
|
|
17:00 - 18:00 |
|
|
aula (turma T, Breno) |
|
|
18:00 - 19:00 |
|
monitoria (Lucas) |
|
monitoria (Lucas) |
|
19:00 - 20:00 |
|
|
|
monitoria (Lucas) |
|
20:00 - 21:00 |
|
|
|
|
|
21:00 - 22:00 |
|
|
|
|
|
22:00 - 23:00 |
|
|
|
|
|
Critério de Avaliação
M = 0.7R+0.3Pr ,
onde R é a média das notas dos 10 relatórios (1 a 10) dos 13 experimentos realizados individualmente e Pr é a nota do projeto final. Os relatórios devem ser postados
no site
de Ensino Aberto - Moodle até 5 minutos antes do início do próximo roteiro. Os projetos finais devem ser realizados em grupo de até no máximo 2. Eles devem ter uma aplicação prática, como um jogo e um tacômetro. As notas dos projetos são atribuídas em função da qualidade da solução, qualidade do relatório e do domínio técnico na apresentação oral do projeto.
É imprescindível a entrega de todos os relatórios. Relatórios entregues fora do prazo terão suas notas zeradas no cômputo da média, além de poder comprometer a realização dos experimentos que se seguem.
Serão aprovados os alunos que satisfizerem as três condições:
-
M > = 5.0 .
- as notas dos relatórios superiores a 4.0.
- frequência superior ou igual a 75%.
A média final, Mfinal, destes alunos é igual a M.
Exame Final
Não haverá exame final.
Notas e Frequência
Folhas Técnicas
Referências Úteis
-
Dicas de Instalação de CodeWarrior, Antonio Augusto Fasolo Quevedo: não é necessário instalar plugin Terminal nem o driver
para o shielder FRDMKL25Z
-
Tutorial: The Role of JTAG in system debug & test throughout the embedded system development lifecycle, Lyle Pittroff
-
Por que a arquitetura ARM Cortex M0+ consome menos energia que o Cortex M0?, Thiago Lima
- ARM Cortex -M Programming Guide to Memory Barrier Instructions
-
Nested Vectored Interrupt Controller of AEM Cortex-M3, Chang-yeon Jo
-
Oscillators: How to generate a precise clock source, Ashish Kumar and Pushek Madaan
- ARM Keil MDK 5.10 Toolkit
-
ARMSIM#: A Simulator for the ARM Architecture
-
Profile Guided Selection of ARM ad Thumb Instructions, Arvind Krishnaswamy e Rajiv Gupta
-
ARM Cortex-M0+ Core, Mark Dunnett
-
Introduction to ARM thumb, Joe Lemieux
-
MCG Module, Freescale
- CodeWarrior Linker Command File (LCF) for Kinetis
- ARM GCC Inline Assembler Cookbook
- Analog-to-digital Converter
- Conversores A/D e D/A
- How Initialization Functions Are Handled?
- Autodependencies with GNU make, Scott McPeak
- How is a binary executable organized? Let's explore it!, Julia Evans
- The ELF Object File Format: Introduction and by Dissecation, Eric Youngdale
- Executable and Linkable Format (ELF)
- Using the Backdoor Access Capability to Unsecure HCS12 MCU, Rogelio Reyna García
-
IEEE754 Converter
- Código ASCII
- Informações sobre codificação de caracteres UNICODE
- LCD Tutorial for Interfacing with Microcontrollers
- Serial Communication. Sparkfun
- Circular Buffer
- Algorithm in Programming
- Extended Asm - Assembler Instructions with C Expression Operands
-
C-Quick Guide
- C A Linguagem de Programacao, Padrao ANSI
Brian W. Kernighan e Dennis M. Ritchie
Editora Campus
ISBN: 8570015860
- Freescale CodeWarriorU. Learn Programming with C
- C Programming Storage Class
- C Programming Operators
- Bitwise Operators in C and C++: A Tutorial
- C Strings (Arrays vs. Pointers)
- C Programming/Procedures and functions
- C-Type Casting
- C Programming break and continue Statement
- C Programming switch Statement
- C Dynamic Memory Allocation: malloc(), free() & realloc()
- C Processor Directives
- C Programming Tutorial: Loops
- Setting Up Include Paths and Macros for C/C++ Indexer
- MCU on Eclipse
Sugestões:
ting at dca dot fee dot unicamp dot br
Última modificação: Wed Feb 21 23:18:22 BRT 2018
"Esta página, assim como todas as páginas sob esta
mesma árvore, não é uma publicação oficial da UNICAMP, seu conteúdo
não foi examinado e/ou editado por esta instituição. A
responsabilidade por seu conteúdo é exclusivamente do
autor."
"This page, as well as all pages
under this same tree, is not an official publication from UNICAMP;
its content has not been verified and/or edited by this
institution. The author is solely responsible by its
contents."