Curso sobre Microcontroladores Familia HC9S08 de Freescale



Documentos relacionados
Curso sobre Microcontroladores Familia HC9S08 de Freescale

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Curso sobre Microcontroladores Familia HC9S08 de Freescale

SPI. Teoría y Aplicaciones. INGENIERIA EN MICROCONTROLADORES Protocolo SPI( Serial Peripherical Interface) Protocolo

El Protocolo SPI. IES Juan de la Cierva. Aprendizaje de la Electrónica a través de la Robótica. Fernando Remiro Domínguez

I2C. Ing. Pablo Martín Gomez

COMUNICACIÓN SERIAL FAMILIA DSP56800: Síncronas y Asíncronas CAPÍTULO VII

Como sacarle mayor provecho a las herramientas disponibles para la familia HC908

TEMA EL BUS I 2 C (Inter Integrated Circuit Bus) I2C EN C

Descripción General de un Microcontrolador (Módulos de Comunicación)

Buceando en el HC908...

Como sacarle mayor provecho a las herramientas disponibles para la familia HC908

Memoria 24LC256 I. I NTRODUCCIÓN

TEMA7. SISTEMAS SECUENCIALES

Actividad 4: Comunicación entre PLC s vía Ethernet

Comunicación Serie IIC: Inter-Integrated Circuit

DESCRIPCION DEL SITEMA MASTER.

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Curso sobre Microcontroladores Familia HC9S08 de Freescale

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

MONITOR ROM MODULE (MON08)

Introducción a Arduino

t i Q 7 Q 6 Q 5 Q 4 Q 3 Q 2 Q 1 Q 0

COMUNICACIÓN I2C (INTER-INTEGRATED CIRCUIT)

BUS I2C: IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC MEMORIAS EEPROM SERIE

Trabajo 3. PROTOCOLOS DE COMUNICACIÓN SERIAL INDUSTRIALES Edwin Gilberto Carreño Lozano, Código:

5.5 Interfaces especiales Interfaz V.24. Norma V.24. neris 4/8/64

BUS I2C. IES Los Viveros Sevilla Dpto. Electrónica. 1

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

2 Sea una unidad de disco duro de brazo móvil con las siguientes características:

DISPLAYS DE CRISTAL LIQUIDO

Microprocesadores, Tema 8:

PUERTOS DE ENTRADA Y SALIDA

(SPI) Módulo Serial Sincrónico

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA

Tema. Módulo Captura Comparación Modulación n de Achura de Pulsos. C. F. G.S. D.P.E. Módulo de Proyectos 1

ELECTRONICA ESTUDIO MODULO TRASMISOR-RECEPTOR DE RF A RS232 BIDIRECCIONAL Clave: 875

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

Pines de entrada/salida (I/O) de propósito general. Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos.

SiAM Conversor Versión 2.0. siam CONVERSOR EXTERNO RS232-RS485 AUTO-VELOCIDAD AUTO-RTS. software i automatismes morvedre. Manual del usuario

4. Programación Paralela

Registros y Contadores

Curso sobre Microcontroladores Familia HC9S08 de Freescale

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

Instrucciones de Comunicaciones

una industria o en lugares remotos, y envía esos datos a una unidad central que realiza el procesamiento de los datos. En la actualidad los

Fundamentos de Ethernet. Ing. Camilo Zapata Universidad de Antioquia

Métodos de direccionamiento IP

Unidad 1: Conceptos generales de Sistemas Operativos.

TEMA - 3 LÓGICA SECUENCIAL. REGISTROS DE DESPLAZAMIENTO Y CONTADORES. 1.- Introducción.

Anexo B. Comunicaciones entre mc y PC

Tema 3. Buses. Arquitectura de computadores. Plan 96. Curso Jerarquía de buses

Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León

GUIAS ÚNICAS DE LABORATORIO GENERADOR DE NÚMEROS PRIMOS AUTOR: ALBERTO CUERVO

AUTOMATIZACIÓN - CURSO: Práctica 4: Sistema de Monitorización de tiempo mediante Arduino

+++OK atis C E. CTC-072, Utilización de XBee Wi-Fi para sensores remotos

Especificaciones técnicas. Power, Inputs and Outputs. Operating Voltage Input Voltage (recommended) Input Voltage (limits) Analog Input Pins

BUSES. Una comunicación compartida Un conjunto de cables para comunicar múltiples subsistemas. Memoria

APLICACIÓN CON LOS KITS LEGO Y DRIVERS PARA LOS MOTORES DC DE ESTOS KITS CON LA TARJETA XS95 MINI PALANCA MECANICA

SISTEMA CAN-BUS en las Carretillas Elevadoras

ACTIVIDAD 4: Puntos de interconexión y distribución

Sistema de control de equipos electrónicos vía Internet mediante dispositivos móviles

RESETS & INTERRUPCIONES

REGISTROS DE DESPLAZAMIENTO

Protocolo USB CDM /11/2012 Autor: Ing. Jorge R. Osio 1

Puesto que la trama consta de 32 intervalos de tiempo iguales, la duración de cada intervalo o canal será de:

Tarea 4.2 Memoria Virtual

INTRODUCCION A LA PROGRAMACION DE PLC

Capítulo 5 Programación del algoritmo en LabVIEW

Contenido. Sistemas de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida

18. Camino de datos y unidad de control

INGENIERIA EN MICROCONTROLADORES. Protocolo RS-485. Introducción

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones:

Utilización de los puertos serial y paralelo de una PC usando LabView

Modos de ahorro de energía a en los chips CMOS

Tema 4. Gestión de entrada/salida

Estructuras de Sistemas Operativos

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

TELEOPERACIÓN DE UN ROBOT MOVIL CON MANEJO DIFERENCIAL A BAJO COSTO

INTERRUPCIONES. Existen 256 interrupciones En el modo real cada una tiene un vector asociado Vectores de 4 bytes: segmento + offset 32 F0 50 8A

Tema 6: Periféricos y entrada-salida

Curso sobre Controladores Lógicos Programables (PLC).

Tema 8. Circuitos secuenciales de Propósito general: REGISTROS Y CONTADORES

EB ES. Appendix 1 Circuit Diagram Hoja de datos de la placa LCD EB Contenido - 1 -

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

MANUAL CÁMARA DE MOWAY

Práctica 4 Diseño de circuitos con puertas lógicas.

TEMA 4. Unidades Funcionales del Computador

Comunicación Arduino Bluetooth JY-MCU

Qué es un Microcontrolador?

Comunicacion Serial Modbus entre un Maestro Modbus (PLC o RTU) y un(os) computadores de flujo Echart.

Capítulo 5. Cliente-Servidor.

USB (Universal Serial Bus)

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

Unidad 3 Direccionamiento IP (Subnetting)

La Unidad Procesadora.

En todas ellas, la tecnologia que habilita en vmotion.

Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali

Resumen ÁREA DE FACTURACIÓN::INFORMES::Pedidos Detalle Resumen ÁREA DE

Sistema RTUQM DESCRIPCIÓN

Transcripción:

Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Capítulo 7.- Módulo Serial Sincrónico de Comunicaciones SPI. Serial Peripheral Interface. Dentro de las comunicaciones seriales, el módulo SPI (Serial Peripheral Interface) constituye un módulo importante para las comunicaciones dentro del ámbito de un sistema microcontrolado. Como se ha visto durante el curso teórico de la familia HC908, tanto la interface de comunicación SPI como la I2C (Inter Integrated Circuit) han sido diseñadas para lograr comunicaciones sincrónicas (señal de reloj explícita) de alta velocidad y de corta distancia (dentro del ámbito de un sistema microcontrolado o placa PCB) con alta eficiencia. El módulo SPI de la familia HC9S08 es, en muchos aspectos, muy similar al implementado en la familia HC908, pero incorpora nuevas características que permiten mayor flexibilidad en el uso de este módulo. Veamos a continuación un resumen de las mismas.

Características: Operación Full Duplex a 2 hilos. Modos de operación MASTER y SLAVE. Máxima frecuencia en modo MASTER = FBUS / 2. Máxima frecuencia en modo SLAVE = FBUS / 4. Modo especial Bidireccional de comunicación Single Wire (1hilo). Selección de desplazamiento MSB primero o LSB primero. Selección de fase y polaridad del reloj para distintos dispositivos SPI. Interrupciones separadas de TX / RX. Aplicaciones típicas: Comunicación serial sincrónica con periféricos externos como conversores A/D de alta resolución, memorias externas EEPROM, MCUs de otras placas del sistema. Procesamiento distribuido entre MCU principal y MCU s esclavos del sistema. Configuración SPI MASTER SLAVE. El módulo SPI está construido alrededor de un registro de desplazamiento (Shift Register) doble buffered (con doble almacenamiento) con ambos extremos del shif register disponibles como líneas exteriores. Una de las líneas del shift register está conectada al pin MISO (Master In Slave Out). Este pin oficia como entrada de datos del módulo configurado como MASTER y como salida de datos para el módulo configurado como SLAVE. La otra línea conectada al pin MOSI (Master Out Slave In) oficia en forma inversa, o sea como salida de datos para el módulo configurado como MASTER y como entrada de datos para el módulo configurado como SLAVE.

El CPU comienza una transferencia SPI por medio de la escritura de un byte de datos en el registro de datos del transmisor del módulo SPI MASTER (SPID). La totalidad de los 8 bits de datos serán transferidos en forma automática por el pin MOSI sincronizados por medio de la señal de reloj SPSCK del dispositivo MASTER. De esta forma, por cada bit que es enviado al exterior por el pin MOSI, un bit ingresa al shift register desde el pin MISO. Esto permite realizar comunicaciones FULL DUPLEX con solo 8 pulsos de clock (8 Bits del MASTER y 8 Bits del SLAVE con solo 8 clocks). Como se vio durante el curso teórico de la familia HC908, la línea SS (negada) (Slave Select) funciona de forma distinta para el módulo configurado como MASTER (amo) o para el módulo configurado como SLAVE (esclavo). Para el módulo configurado como Amo, la línea SS (negada) debe conectarse a +VDD para indicar por hardware que el dispositivo se usará en configuración AMO antes de configurar por medio de los registros de configuración el módulo como AMO. Aunque esta acción parezca redundante, es fundamental para garantizar el funcionamiento de la red en configuraciones del tipo Multi Masters, en donde más de un dispositivo puede asumir el rol de Master en algún momento de la comunicación. El funcionamiento de este tipo de configuración se ha explicado en detalle en el curso teórico de la familia HC908 y dejamos para el lector el repaso de dichos conceptos. Para el módulo configurado como Esclavo, la línea SS (negada) funcionará como línea de selección del dispositivo SPI esclavo a comunicar. Cuando la línea SS (negada) de un dispositivo esclavo es forzada a 0V ( 0 lógico), este dispositivo es seleccionado para establecer la comunicación con el dispositivo Amo. Cuando la línea SS (negada) es forzada a + VDD, el dispositivo esclavo está deshabilitado para la comunicación y pone a las líneas MISO / MOSI / SPSCLK en alta impedancia. Cabe recordar que en una comunicación SPI de más de un dispositivo esclavo, las líneas MISO / MOSI / SPSCK estarán conectadas en paralelo con cada uno de los dispositivos SPI, formado un BUS de comunicaciones de 3 hilos. Las líneas SS (negada) de cada uno de los dispositivos esclavos deben ser controladas por el MCU Amo de forma tal de que solo 1 (un) dispositivo esclavo esté habilitado por vez. Los dispositivos esclavos no habilitados estarán en estado de alta impedancia (Tri State) conectados al bus SPI y no formarán parte de la comunicación.

Registros de Control del SPI (SPI Control Registers). Registro de Control 1 SPIC1. Veamos bit por bit el registro de control 1 del SPI. SPIE: Este bit de lectura / escritura habilita / deshabilita la generación de pedidos de interrupción al CPU por parte del módulo SPI. Existen dos tipos de fuentes de generación de pedidos de interrupción, una de ellas es cuando el buffer de recepción del módulo está lleno y la otra es cuando se generan pedidos ante errores de la comunicación. Cuando el bit SPIE es puesto a 1, se generará un pedido de interrupción por hardware cuando se cumpla la condición de buffer lleno de recepción (flag SPRF = 1) en el registro de estados del módulo (SPIS) o cuando la línea SS (negada) del dispositivo AMO (master) se fuerza a 0 lógico causando el modo falla (Mode fault, flag MODF = 1). SPE: El bit SPE (SPI System Enable) permite encender o apagar el módulo SPI. Cuando SPE = 0, se deshabilita el módulo SPI, se detiene cualquier transferencia que esté en curso, se limpia el buffer de datos y se inicializan las máquinas de estado internas. El flag SPRF se limpia y el flag SPTEF (SPI Transmit Data Buffer Empty Flag) en el registro de estados SPIS es forzado a 1 indicando que ambos buffers están vacíos. SPTIE: El bit SPTIE (SPI Transmit Interrpt Enable) de lectura / escritura permite generar el pedido de interrupción al CPU cuando un byte es transferido desde el registro de datos al shift register.

MSTR: El bit MSTR (Master / Slave Mode Select) permite seleccionar entre el modo de funcionamiento Master o Slave del módulo SPI. Si MSTR = 1, el módulo se configurará como Master. Si MSTR = 0, el módulo lo hará como Slave. CPOL: Este bit (Clock Polarity) permite configurar la polaridad de la línea SPSCK durante la transmisión de un dato. En realidad, este bit permite deshabilitar / habilitar un inversor lógico en la línea de reloj lo que le permite adaptarse a las polaridades de los distintos dispositivos. Recordemos que para efectuar una comunicación SPI ambos dispositivos tienen que tener idéntica polaridad. CPHA: El bit CPHA (Clock Phase) permite controlar la relación de tiempos (timing) entre la señal de reloj y la señal de datos, o lo que se denomina fase del clock. Recordemos que para efectuar una comunicación SPI ambos dispositivos tienen que tener idéntica fase. SSOE: El bit SSOE (Slave Select Output Enable) se usa en combinación con el bit de habilitación del modo de falla (MODFEN) en el registro de control 2 y con el bit MSTR para determinar la función de la línea SS (negada). LSBFE: El bit LSBFE (Least Significant Bit First Enable) permite seleccionar la dirección de desplazamiento de los datos del shift register del módulo. Si LSBFE = 1, configura al módulom SPI para que la transferencia de datos comience con el bit menos Significativo (LSB). Si LSBFE = 0, se configurará para comenzar con el bit más significativo (MSB). Registro de Control 2 SPIC2.

Veamos bit por bit el registro de control 2 del SPI. MODFEN: El bit MODFEN (Master Mode Fault Function Enable) junto con el bit SSOE y el bit MSTR determinan como se usará la línea SS (negada) en el módulo SPI. La tabla superior muestra como las distintas combinaciones de los bits mencionados le asignan distintas funciones a la línea SS (negada). Como se puede ver, cuando el módulo SPI es configurado en modo Esclavo (Slave), el bit MODFEN no tiene efecto sobre la línea SS (negada). BIDIROE: El bit BIDIROE (Bidirectional Mode Output Enable) se utiliza cuando el módulo SPI se configura en el modo bidireccional de un solo hilo (Bidirectional Single Wire Mode) y sirve para habilitar la línea I/O SPI a un solo hilo como salida. Cuando BIDIROE = 0, la línea actúa como entrada y cuando BIDIROE = 1, actúa como salida. Dependiendo de si el módulo SPI es configurado como Master o como Slave la línea bidireccional de datos I/O puede ser la MOSI (ahora como MOMI) o la MISO (ahora como SISO) respectivamente. SPISWAI: El bit SPISWAI (SPI Stop in Wait Mode) es un bit de lectura / escritura que se utiliza para mantener al reloj corriendo o detenido en el módulo de SPI cuando el MCU entra en un estado WAIT. Si SPISWAI = 1, el clock del SPI se detiene cuando el microcontrolador entra en modo WAIT. Esto permite un considerable ahorro de energía si se tiene pensado no utilizar el módulo SPI durante el estado WAIT del MCU.

SPCO: El bit SPCO (SPI Pin Control) permite seleccionar el modo de salida del módulo SPI entre Single Wire Bidirectional Mode o Full Duplex Mode. Si SPCO = 1, el modo de salida es el de Single Wire. SPI Baud Rate Register (SPIBR). El registro SPIBR (SPI Baud Rate Register) es el utilizado para configurar la velocidad de comunicación SPI solo en el modo Master, ya que como es sabido, el nodo Master de una red de comunicaciones SPI es el único responsable de fijar la velocidad de comunicación debido a que este nodo es el que impone el reloj (SPSCK) al resto de los nodos que constituyen la red SPI. Con este registro se configuran el valor del prescaler y el divisor de Baud Rate para establecer el valor final del reloj SPSCK que regirá la comunicación. En modo Slave (esclavo) este registro no tiene efecto alguno sobre la velocidad de comunicación. A continuación describiremos cada uno de los bits que constituyen el registro. SPPR2/SPPR1/SPPR0: Estos tres bits son los utilizados para establecer el valor del divisor del pre escaler (1 de los 8 valores posibles). La salida del pre-escaler ingresa al divisor de Baud Rate del módulo SPI.

SPR2/SPR1/SPR0: Estos tres bits son los utilizados para establecer el valor del divisor de la señal de reloj proveniente del pre-escaler, y por ende, fijar el Baud Rate según la siguiente ecuación: La ecuación muestra como con los bits de los campos SPPR[2:0] y SPR[2:0] se puede determinar la velocidad de comunicación o Baud Rate del módulo SPI Master. A continuación se detallan las tablas con los diferentes valores de configuración del registro y los valores de división del pre escaler y divisor de Baud Rate.

Continuará... Nota de Redacción: El lector puede descargar este capítulo y capítulos anteriores del curso desde la sección Artículos (Curso_HC9S08) en el sitio web de EduDevices (www.edudevices.com.ar )