INSTITUTO TECNOLOGICO DE OAXACA
DEPARTAMENTO DE INGENIERIA ELECTRONICA
CATEDRATICO: ING. MIGUEL ANGEL PEREZ SOLANO


InicioBAJAR 


Carrera: Ingeniería Electrónica
Clave de la asignatura: ETD-1022



Horas teoría-horas práctica-créditos: 3-2-5

AVISOS IMPORTANTES

1.-El examen práctico de la 2a. evaluación parcial será el próximo martes 14 de Noviembre. Se evaluará el LAB #4 y por lo tanto deberán traer todos los códigos correspondientes, simulados en Proteus y su implementación en la tarjeta de desarrollo que se tenga. Deberá tener sus carpetas de la memoria USB con todos sus documentos.







BIENVENIDOS AL SEMESTRE AGOSTO DICIEMBRE 2023

REQUISITOS NECESARIOS PARA TENER EXITO AL CURSAR ESTA MATERIA


      • Codigos de MPLAB X.
        • Lab #1
          • P1.asm, P2.asm, P3.asm. P4.asm, P5.asm, P6.asm, P7.asm
          • P8.asm, P9.asm. P10.asm
        • Lab #2
        • Lab #3
        • Lab #4
  • Tener computadora personal en casa y ser competente en su manejo.
  • Contar con bata antiestatica, color ; Blanca o azul (A partir de la semana del 28 de agosto...es obligatorio para ingresar al laboratorio).
  • Contar con un cuaderno único para la materia (dividalo en teoría y práctica). Su cuaderno con apuntes en forma y su datasheet serán los únicos que podran sacar en los examenes.
  • Ser disciplinado en la puntualidad, tener orden en sus apuntes y material de clase.
Foreword
A microcontroller is a compact integrated circuit designed to govern a specific operation in an embedded system. A typical microcontroller includes a processor, memory and input/output (I/O) peripherals on a single chip.

Sometimes referred to as an embedded controller or microcontroller unit (MCU), microcontrollers are found in vehicles, robots, office machines, medical devices, mobile radio transceivers, vending machines and home appliances, among other devices. They are essentially simple miniature personal computers (PCs) designed to control small features of a larger component, without a complex front-end operating system (OS).

A microcontrollers work in this way: 

A microcontroller is embedded inside of a system to control a singular function in a device. It does this by interpreting data that receives from its I/O peripherals using its central processor (core). The temporary information that the microcontroller receives is stored in its data memory, where the processor accesses it and uses instructions stored in its program memory to decipher and apply the incoming data. It then uses its I/O peripherals to communicate and enact the appropriate action.

Microcontrollers are used in a wide array of systems and devices. Devices often utilize multiple microcontrollers that work together within the device to handle their respective tasks. For example, a car might have many microcontrollers that control various individual systems within, such as the anti-lock braking system, traction control, fuel injection or suspension control. All the microcontrollers communicate with each other to inform the correct actions. Some might communicate with a more complex central computer within the car, and others might only communicate with other microcontrollers. They send and receive data using their I/O peripherals and process that data to perform their designated tasks.

What are the elements of a microcontroller?

The main  elements of a microcontroller are:

  • The processor (CPU, core): A processor can be thought of as the brain of the MCU. It processes and responds to various instructions that direct the microcontroller's function. This involves performing basic arithmetic, logic and I/O operations. It also performs data transfer operations, which communicate commands to other components in the larger embedded system.
  • Memory: A microcontroller's memory is used to store the data that the processor receives and uses to respond to instructions that it's been programmed to carry out. A microcontroller has two main memory types:
    • Program memory, which stores long-term information about the instructions that the CPU carries out. Program memory is non-volatile memory, meaning it holds information over time without needing a power source.
    • Data memory, which is required for temporary data storage while the instructions are being executed. Data memory is volatile, meaning the data it holds is temporary and is only maintained if the device is connected to a power source.
  • I/O peripherals: The input and output devices are the interface for the processor to the outside world. The input ports receive information and send it to the processor in the form of binary data. The processor receives that data and sends the necessary instructions to output devices that execute tasks external to the microcontroller.

While the processor, memory and I/O peripherals are the defining elements of the microprocessor, there are other elements that are frequently included. The term I/O peripherals itself simply refers to supporting components that interface with the memory and processor. There are many supporting components that can be classified as peripherals. Having some manifestation of an I/O peripheral is elemental to a microprocessor, because they are the mechanism through which the processor is applied.

Other supporting elements of a microcontroller include:

  • Analog to Digital Converter (ADC): An ADC is a circuit that converts analog signals to digital signals. It allows the processor at the center of the microcontroller to interface with external analog devices, such as sensors.
  • Digital to Analog Converter (DAC): A DAC performs the inverse function of an ADC and allows the processor at the center of the microcontroller to communicate its outgoing signals to external analog components.
  • System bus: The system bus is the connective wire that links all components of the microcontroller together.
  • Serial port: The serial port is one example of an I/O port that allows the microcontroller to connect to external components. It has a similar function to a USB or a parallel port but differs in the way it exchanges bits. <<Continue reading>>


Course objetive

  •  Understanding the basic building blocks of a microcontroller device in general.
  •  Knows the terminologies like embedded and external memory devices, CISC and RISC processors etc.
  •  Knows the architecture and special CPU features of PIC16F887XA family microcontrollers.
  •  Knows the architecture of Microchip PIC16F877A 8-bit microcontroller.
  •  Knows how to use the MPLAB X IDE v4.01 ad C8 compiler.
  •  Knows about programming with Assembler and C language the PIC16F877A.
  •  Implementing your code in a PIC16F877A development board.
Description
 
Esta asignatura comprende cinco unidades fundamentales; en la primera unidad se encuentran los conceptos básicos de los microcontroladores, el alumno comprenderá como se organizan internamente estos dispositivos, como se comunican entre si las unidades internas y la función específica de cada uno de ellos. Será capaz de localizar información del dispositivo en su hoja de datos, cómo interpretarla y como seleccionar el microcontrolador más adecuado para una aplicación.

En la segunda unidad se define y se aplica la metodología para la programación de los microcontroladores con lenguaje ensamblador. Es de suma importancia la parte práctica de la materia ya que es la base para la solución de problemas prácticos de ingeniería electrónica. Por lo que se propone la realización de prácticas, que permitan dominar la configuración y programación de los microcontroladores, así como la realización de un proyecto integrador, que estimule la colaboración en el trabajo y la discusión entre los estudiantes, que le permitan resolver los retos que este trabajo implica. En esta unidad se inicia con el estudio de la arquitectura del uC basado en el core Cortex-M4 el ambiente de desarrollo integrado STM32 CubeIDE para la programacion en lenguaje ensamblador.

En la tercera unidad se definen y se aplica la metodología para la programación de los microcontroladores con lenguaje C. Se recomienda que se realicen programas híbridos que contengan sentencia en C y ensamblador. Se propone la realización de prácticas, que permitan dominar la configuración y programación de los microcontroladores, así como la realización de un proyecto integrador, que estimule la colaboración en el trabajo y la discusión entre los estudiantes para resolver los retos que este trabajo implica.

En la cuarta unidad se estudian las interfaces de comunicación, que son de suma importancia ya que cualquier sistema digital, sea un equipo de medición, de control,etc., potencializa su uso al comunicarse mediante interfaces y protocolos con otros equipos. Por ello es indispensable que el alumno aprenda las formas en que un microcontrolador se puede comunicar con otros sistemas digitales, logrando así un valor agregado a la aplicación.

En la quinta unidad, se hace hincapié en que el alumno desarrolle una actividad integradora, utilizando como base de funcionamiento un microcontrolador. Con la intención de consolidar los conocimientos adquiridos, así como desarrollar su potencial creativo y emprendedor.

Durante el desarrollo de las actividades programadas en la asignatura es muy importante que el estudiante aprenda a valorar las actividades que lleva particularmente a cabo y entienda que está construyendo su conocimiento, aprecie la importancia del mismo y los hábitos de trabajo; desarrolle la precisión, la curiosidad, la puntualidad, el entusiasmo, el interés, la tenacidad, la flexibilidad y la autonomía y en consecuencia actué de manera profesional.


Volver al principio

Temario

UNIDAD I: ARQUITECTURA INTERNA DEL MICROCONTROLADOR
 
1.1. Introducción a los microcontroladores.
1.2. Arquitectura interna del microcontrolador.
1.3. Arquitectura externa del microcontrolador.

 

   MATERIAL Y ACTIVIDADES DE UNIDAD I.
1.- Lab # 0 Getting started with MPLAB X IDE v 4.01
2.- Lab # 1 Handling I/0 PORTS.


UNIDAD 2: EL MODELO DE PROGRAMACION DEL MICROCONTROLADOR EN LENGUAJE ENSAMBLADOR.

2.1. Programación en lenguaje ensamblador.
2.1.1. Modos de direccionamiento.
2.1.2. Conjunto de instrucciones.
2.1.2.1. Instrucciones aritméticas.
2.1.2.2. Instrucciones lógicas.
2.1.2.3. Instrucciones de control de programa.
2.2. Estructura del programa.
2.3. Programación de puertos digitales


   MATERIAL Y ACTIVIDADES DE UNIDAD II.


 UNIDAD 3:  EL MODELO DE PROGRAMACION DEL MICROCONTROLADOR DEL LENGUAJE C .

3.1. Programación en lenguaje C.
3.1.1. Estructura del programa.
3.2. Puertos de entrada/salida digital.
3.3. Interrupciones.
3.4. Convertidor analógico/digital.
3.5. Temporizador, generador de señales, medidor de intervalos, decodificador QEP (Quadrature encoder pulse) y PWM (Pulse Wide Modulation).


   MATERIAL Y ACTIVIDADES DE UNIDAD III.
1.- Course: Sintax and Structure of C.
2.- Course: Advance C programming.


UNIDAD 4:  INTERFASES DE COMUNICACION

4.1. Comunicación paralela.
4.2. Comunicación serial síncrona y asíncrona.
4.2.1. Comunicación RS-232.
4.2.2. Comunicaciónl I2C.
4.2.3. Comunicación SPI.
4.2.4. USB.
4.3. Redes de comunicación.
4.3.1. Control Área Network (CAN).

   MATERIAL Y ACTIVIDADES DE UNIDAD IV.


UNIDAD 5: DESARROLLO DE APLICACIONES CON MICROCONTROLADORES

5.1. Aplicaciones.



Software and reference manuals.
                                                                                             {
THE FOLLOWING COURSES WILL HELP YOU .
FOR STM8 & STM32 MICROCONTROLLERS


1.- SOFTWARE TO DOWNLOAD:
ST Visual develop IDE for developing ST7 and STM8 applications.


FOR CORTEX M3 AND M4 PROCESSORS
1.- PAPER: ARM Cortex for beguinners.
2.- TEXT_BOOK: The Definitive Guide to ARM® Cortex®-M3 and M4 Processors.
3.- TEXT FOR SUPPORT:  Mastering STM32.

  • VIDEO LESSONS: ARM Programming tutorial. ( If you don't learn microcontrollers, is because you don´t want).

ARM® Cortex®-M Architecture Overview: Course from Microchip University

1.- Introduction to RISC architecture of ARM.
2.- ARM Architecture and instruction design philosophy.
3.- ARM Microcontroller block diagram.
4.- ARM Microcontroller memory controller and management.
5.- Data flow model an register set in ARM.
6.- Program status Register and modes in ARM.
7.- Pipeline in ARM microcontrollers.
8.- MOV  instruction set and barrel shifter in ARM.
9.- ARM Conditional instruction set.
10.-Thumb mode vs ARM mode instruction set.
11.- Arithmetic instructions in ARM.
12.- Logical instructions in ARM.
13.- Comparations instructions In ARM.
14.- Multiply instructions in ARM.
15.- Branch instructions in ARM_Part_1
16.- Branch instructions in ARM_Part 2
17.- Load store instructions set in ARM.
18.- Load store addressing mode in ARM.
19.- Using multiple register transfer in ARM.
20.- Stack push and pop operation in ARM.
21.- RISC and CISC architecture.
22.- Little endian vs big endian.
23.-
24.- ARM Exception handling and modes.
25.- ARM link register; LR and program counter, PC in exception mode.
26.- Exception mode priority level in ARM.







TEAMWORKS FOR FINAL PROJECT
















 







Ponderacion de la evaluacion.
 
Cada unidad se evalua de la siguiente manera

(P) Prácticas                                                 50%    
(C) Cuestionamientos (examen escrito)      20 % 
(T) Proyecto final                                         30%
Free Web Hosting