====== Microprocessadores ====== ===== Aviso ===== ===== Introdução ===== Esta disciplina tem por objetivo introduzir os conceitos sobre microprocessadores e sistemas embarcados. A ementa e o programa da disciplina podem ser consultados no [[http://www.joinville.udesc.br/portal/ensino/graduacao/ciencia_computacao/disciplina.php?d=TOCI-18&toci=1&c=ciencia_computacao_ext_101|site oficial]]. === Sobre a compra do Arduino === Links para o Arduino Uno: [[http://goo.gl/Vz1zc|site internacional]], [[http://goo.gl/N2Iv8|site nacional]]. \\ O //Brasuino BS1// é uma versão nacional compatível com o Arduino Uno. Ele é um pouco mais caro, mas não tem os problemas do envio e pagamento internacionais. Arduino Mega 2560 ([[http://goo.gl/lrnM9|site internacional (clone)]]): versão mais robusta do Arduino com mais memória e mais portas de E/S. O preço deste site é apenas U$5,00 mais caro que a versão UNO por um hardware mais robusto. **__Não se esqueçam de comprar um cabo USB compatível com a placa__** (caso vocês não tenham nenhum disponível) === Sobre os impostos de importação === Existe **impostos de importação em compras maiores de U$ 50,00**, que é calculado como 60% do VALOR TOTAL (e não do que passar da cota). Fiz uma simulação no site, o envio de uma placa Arduino Uno para o Brasil custa U$ 5,00 (o que é **muito mais barato** que o **imposto de importação**!) ===== Bibliografia ===== PEREIRA, Fábio. Microcontroladores HC908Q: teoria e pratica. São Paulo: Livros Erica, 2004. 294 p. GANSSLE, Jack G. The art of programming embedded systems. New York: Academic Press, 1992. 279 p. BALL, Stuart R. Embedded microprocessor systems: real world design. 3rd ed. New York: Newnes, 2004. SCHULTZ, Thomas W. C and the 8051 : hardware, modular programming, and multitasking. 1 ed. New Jersey: Prentice Hall, 1998. PREDKO, Myke. Handbook of microcontrollers. 1 ed. New York: McGraw-Hill, 1998. 861 p. ==== Motorola HC08 ==== [[http://www.joinville.udesc.br/portal/professores/noveletto/materiais/Apostila_HC08.rar|Apostila: Treinamento de Microcontroladores – Baseado na Família MC68HC908QT/QY]] [[http://www.joinville.udesc.br/portal/professores/noveletto/materiais/DataSheet_HC08.rar|Motorola. M68HC08 Microcontrollers – Data sheet]] [[http://www.joinville.udesc.br/portal/professores/noveletto/materiais/Ref_Manual_HC08.rar|Motorola. M68HC08 Microcontrollers – Central Processor Unit Reference Manual]] ==== Atmel AVR ==== [[http://www.atmel.com/dyn/resources/prod_documents/doc8271.pdf|Datasheet do Microcontrolador ATmega328 e ATmega328P]] [[http://www.atmel.com/atmel/acrobat/doc0856.pdf|AVR Instruction Set]] [[http://www.atmel.com/dyn/resources/prod_documents/DOC1022.PDF|AVR Assembler User Guide]] [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/AVR_Assembly_ShortReference.pdf|Guia de referência rápida das instruções do microcontrolador AVR]] ([[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/AVR_Assembly_ShortReference_economico.pdf|versão econômica]]) [[http://www.avr-asm-download.de/beginner_pt.pdf|Introdução para o iniciante à Linguagem Assembly dos Microprocessadores ATMEL AVR]] [[http://ruggedcircuits.com/html/ancp01.html|10 Ways to Destroy an Arduino]] **(IMPORTANTE)** ===== Calendário ===== O calendário da disciplina para o **segundo semestre de 2012** pode ser consultado [[lectures:mip_calendar|aqui]]. ===== Laboratório ===== [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/AVR_assembly_template.zip|Template para programas em Assembly para o microcontrolador AVR]] [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/mip_basic_toolset_win.zip|Pacote de ferramentas standalone]] para o microcontrolador AVR (versão para Windows): * avra: montador que suporta a sintaxe Assembly da Atmel; * avrdude: software para fazer o upload do programa compilado no Arduino via USB; * Drivers para o Arduino Uno e Arduino Mega 2560. [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/avra-1-3-0-ubuntu.zip|Montador avra]] (versão 1.3.0, Ubuntu) para o microcontrolador AVR. Além dessa ferramenta, você também deve instalar o avrdude. \\ \\ Comando para fazer o upload do software compilado (*.hex) na placa do Arduino: //avrdude -pm328p -carduino -P{porta} -b115200 -F -Uflash:w:{arq.hex}:a// **onde**:\\ {porta} é a porta serial associada ao Arduino;\\ {arq.hex} é o aquivo (caminho completo sem espaços) no formato HEX gerado pelo assembler ou o AVR Studio. ==== Exercícios de Programação Assembly ==== [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/TOCI-18-MIP_ListaExercicios_v1.pdf|Lista de exercícios para programação assembly no microcontrolador AVR]] ==== Exercícios com o Arduino ==== [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/lab/arduino/Laboratorio_02.pdf|Exercício de Laboratório 02]] (Resposta: [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/lab/arduino/lab02a.zip|item 1]], [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/lab/arduino/lab02b.zip|item 2]]) [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/lab/arduino/Laboratorio_03.pdf|Exercício de Laboratório 03]] (Resposta: [[|item 1]], [[|item 2]]) [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/lab/arduino/Laboratorio_04.pdf|Exercício de Laboratório 04]] (Resposta: [[|item 1]], [[|item 2]]) ===== Slides ===== [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/slides/TOCI-18-MIP_slide_01.pdf|Capítulo 01]] - Introdução (~30MB) [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/slides/TOCI-18-MIP_slide_02.pdf|Capítulo 02]] - Sistemas Digitais [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/slides/TOCI-18-MIP_slide_03_AVR.pdf|Capítulo 03]] - Arquitetura do Conjunto de Instruções [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/slides/TOCI-18-MIP_slide_04_AVR.pdf|Capítulo 04]] - Microcontrolador Atmel AVR [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/slides/TOCI-18-MIP_slide_05_AVR.pdf|Capítulo 05]] - Mecanismos de Controle para Entrada e Saída + Interrupções [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/slides/TOCI-18-MIP_slide_06_AVR.pdf|Capítulo 06]] - Temporizadores e Contadores [[https://bdes.dcc.joinville.udesc.br/~marcow/lectures/mip/slides/TOCI-18-MIP_slide_07_AVR.pdf|Capítulo 07]] - Conversores Analógico-Digital (AD) e Digital-Analógico (DA) ===== Links ===== [[http://www.eetimes.com/design/microcontroller-mcu|Microcontroller Designline]] [[http://goo.gl/Lhwm1|Introduction to Arduino]]: História em quadrinhos explicando o Arduino e alguns conceitos básicos de eletrônica. [[http://www.roboticopenplatform.org/|Robotic Open Platform]] [[http://goo.gl/7J6c5|How to build an 8-bit computer from scratch]] [[http://goo.gl/rAq1j|Physicist: Moore's Law as we know it is on its last legs ]] [[http://goo.gl/bcqgr|Consertando máquina de lavar Electrolux, com Arduino]] ==== Ferramentas ==== === Eletrônica Digital === [[http://ozark.hendrix.edu/~burch/logisim/|Logisim]]: Ferramenta educacional para projeto e simulação de circuitos digitais. [[http://fritzing.org/|Fritzing]]: Outra ferramenta para projeto de circuitos digitais. Inclui suporte ao Arduino. === Motorola HC08 === [[http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CW-MICROCONTROLLERS|Code Warrior]]: Ferramenta de desenvolvimento para o microcontrolador M68HC08. Neste link está disponível a documentação completa da ferramenta, assim como a documentação das instruções assembly do microcontrolador.\\ **Baixar o arquivo CWX-H08-SE**. === AVR/Arduino === [[http://www.atmel.com/avrstudio|AVR Studio]]: Ferramenta de desenvolvimento para o microcontrolador Atmel AVR Atmega328P (**microcontrolador do Arduino**), contém o assembler e um simulador que permite testar os programas sem a necessidade do hardware. [[http://avra.sourceforge.net/index.html|avra]]: Assembler para o microcontrolador AVR. Projeto de código aberto, suporta várias plataformas diferentes. [[http://winavr.sourceforge.net/|WinAVR]]: Conjunto de ferramenas alternativo (somente Windows) AVR-GCC para programação de microcontroladores AVR. [[http://www.obdev.at/products/crosspack/index-de.html|CrossPack for AVR]]: versão do AVR-GCC para MacOS X. [[http://packages.ubuntu.com/search?suite=default§ion=all&arch=any&searchon=all&keywords=AVR|Pacotes AVR]]: Lista de pacotes do Ubuntu que contém ferramentas de desenvolvimento para o AVR. ==== Assembly para o Microcontrolador AVR ==== [[http://www.avr-asm-tutorial.net/avr_en/index.html|AVR Assembler Tutorial]]: Site com várias dicas sobre programação assembly com o microcontrolador AVR. [[http://www.avrbeginners.net/|AVRbeginners]]: outro site com informações sobre a linguagem assembly do microcontrolador AVR. [[http://www.avrfreaks.net|AVR Freaks]]: mais um site com bastante informação sobre o microcontrolador AVR. [[http://winavr.scienceprog.com/|WinAVR AVR-GCC Tutorial]]: site com tutoriais sobre a utilização do WinAVR.