PDF de programación - Capítulo 3/5 - Puerto I/O, Keyboard Interrupt Module (KBI) - Curso sobre Microcontroladores

Imágen de pdf Capítulo 3/5 - Puerto I/O, Keyboard Interrupt Module (KBI) - Curso sobre Microcontroladores

Capítulo 3/5 - Puerto I/O, Keyboard Interrupt Module (KBI) - Curso sobre Microcontroladoresgráfica de visualizaciones

Publicado el 31 de Mayo del 2018
650 visualizaciones desde el 31 de Mayo del 2018
291,7 KB
9 paginas
Creado hace 13a (16/04/2011)
Curso sobre Microcontroladores
Familia HC9S08 de Freescale

Por Ing. Daniel Di Lella – EduDevices – www.edudevices.com.ar
e-mail: [email protected]
Responsable Area Educación – ELKO / ARROW – www.elkonet.com
e-mail: [email protected]

Capítulo 3.

Entrega Nº 5
Puertos I/O, Keyboard Interrupt Module (KBI).

En la familia HC9S08 se han implementado módulos de Puertos I/O y KBI (Keyboard
Interrupt) muy similares a los de la familia HC908, pero con agregados muy
interesantes en cuanto al control del bajo consumo, control de la emisión de
radiación electromagnética (EMI), y configuración de resistencias de Pull – Up /
Pull – Down, que hacen a esta familia muy flexible para distintas aplicaciones de bajo
consumo.

En este capítulo se verán con cierta profundidad las características de los módulos de
puertos I/O y KBI, se explicarán algunas cuestiones comunes que surgen cuando se
empieza a utilizar la familia HC9S08 y se darán “trucos” para aprovechar las
características de bajo consumo que posee la familia. También se verán técnicas para
reducir los errores producidos cuando se utiliza el conversor A/D que comparte líneas
I/O del MCU.

Características de los Puertos I/O en la familia HC9S08.



Configuración Típica de un Puerto I/O en la flia. HC9S08.

Destacados:

• Los resistores de Pull – Ups son programables en forma individual en cada pin.
• Se puede controlar por soft el “slew rate” (pendiente) de la señal de salida de

cada pin.

• Corriente de manejo del pin configurable por soft.

En la figura superior, se puede observar la configuración típica de un puerto I/O en la
familia HC9S08. Como se puede ver, existen 4 transistores MosFET por cada pin I/O, 2
controlan los estados “alto” (1) y “bajo” (0), y los otros 2 restantes activan los resistores
de Pull – Up y Pull – Down respectivamente. Cada pin I/O del MCU está protegido
contra sobre – excursiones de tensión por medio de diodos rápidos en polarización
inversa.
Los resistores de Pull – Up / Pull - Down pueden ser activados en cualquier momento
por medio de registros especialmente asignados para ello.

En la realidad, los transistores MosFET que controlan los estados de alto y bajo, no son
simples transistores, sino múltiples transistores configurados para poder controlar la
corriente final del pin I/O. De esta forma, por medio del software se puede configurar la
corriente final que puede manejar un pin I/O y la pendiente (slew rate) del mismo.

Controlar el Slew Rate de un puerto es muy útil cuando el diseñador necesita que la
aplicación con MCUs genere la menor cantidad de emisiones electromagnéticas (EMI)
con los otros elementos involucrados en el sistema.

En el circuito de salida, pueden observarse resistores de limitación de corriente de
pequeño valor (cada resistor del circuito es en realidad una pequeña fuente de corriente
implementada en una estructura CMOS que oficia en la práctica como un resistor), que
son muy efectivos para limitar los picos de corriente presentes en los puertos I/O en
distintas circunstancias.

Registros asociados con los puertos I/O.

5 registros están asociados con cada puerto I/O. Estos registros están divididos en 2
grupos. El primer grupo, denominada “I/O Paralelo”, incluye los registros Port Data
Register (PTxD) y el Port Data Direction Register (PTxDD). El registro de Datos
(PTxD) se usa para leer el valor de una entrada (Input) o escribir un valor si el puerto
es configurado como salida (Output). El registro de Dirección de Datos, configura las
distintas líneas del puerto como entradas o salidas. Al igual que en la familia HC908,
estos dos registros son accedidos en forma muy frecuente y por ello están ubicados en
la página de acceso directo del mapa de memoria de la familia HC9S08, lo que hace
muy eficiente el código utilizado para acceder a los mismos.

El segundo grupo de registros comprenden a los que “controlan al pin”. En cualquiera
de las aplicaciones donde el pin es utilizado como un puerto I/O o está siendo
controlado como por algún otro módulo, los registros que controlan al pin gobiernan el
funcionamiento del mismo.

Los registros de control del pin incluyen:

• Pull – Up Enable Register (habilita resistores de Pull – Up pin a pin del puerto por

medio de cada bit del registro asociado al puerto).

• Slew Enable Register (habilita / deshabilita el control de pendiente del puerto pin a

pin por medio de cada bit del registro asociado al puerto).

• Drive Strength Register (habilita / deshabilita el manejo de alta / baja corriente del

puerto pin a pin por medio de cada bit del registro asociado al puerto).

Después del reset, los registros de Pull – Up, Slew Rate y Drive Strength, quedan
configurados a sus valores por defecto, esto significa que los resistores de Pull –
Up, y el control de pendiente están deshabilitados, mientras que el manejo de
corriente es configurado a baja corriente.

Como puede observarse en la siguiente figura, los registros de control del pin están
ubicados en la página alta de memoria RAM de los MCUs de la familia HC9S08 y
a ellos se accede con instrucciones de direccionamiento extendido, ya que son
utilizados no tan frecuentemente como el anterior grupo.

Los 5 Registros Asociados con cada Puerto I/O.

Multiplexado de Funciones.

Es común en los MCUs de pocos pines físicos, por ejemplo 8, 16, 20 pines, compartir
funciones en un mismo pin físico. Esto se lo denomina “Multiplexado de Funciones”
y se busca que un mismo pin comparta funciones que, en general, no se molesten unas
con otras.

Por ejemplo, en el diagrama en bloques de la figura, se ha elegido el pin “PTA0” o
Puerto A0, este comparte además las siguientes funciones KBIP0 (Keyboard Interrupt
Pin 0), TPMCH0 (Timer Channel 0), ADP0 (A/D Pin 0) y finalmente ACMP+
(Analog Comparator Plus input Signal). En total, estas 5 funciones comparten el
mismo pin físico del MCU, para ello, existen circuitos asociados que permiten activar
y desactivar cada una de las funciones en forma individual. Si una o más
habilitaciones han sido activadas para un mismo pin, tendrá validez solo la de
mayor prioridad de las funciones activadas. La prioridad se establece desde el
rótulo de la función que figura en la extrema derecha de cada pin del MCU
elegido. En nuestro ejemplo, la función ACMP+ tiene la mayor prioridad y PTA0
tiene la menor prioridad. Este sistema de prioridades se establece para evitar posibles
daños en los puertos cuando más de una función es activada en forma simultanea por
medio del programa del usuario.

Este sistema de prioridades funciona en forma similar al de la familia HC908 y
también incluye el mismo sistema de prioridades para periféricos de comunicación
serial como el SPI, SCI, o I2C. En estos periféricos, pueden producirse habilitaciones
parciales (SCI) o totales (SPI, I2C) de las líneas que comparten con los puertos I/O.

Por ejemplo, se puede utilizar solo el pin de RX (RXD) del módulo SCI para recibir
datos seriales desde el exterior y liberar el uso del pin TXD de dicho módulo para ser
usado por otra de las funciones que comparten dicho pin, sin necesidad de “inmovilizar”
todos las líneas compartidas por dicho periférico.

Al igual que en la familia HC908, se sugiere al lector, consultar con los manuales
técnicos del MCU elegido en cuanto a las distintas configuraciones, y recomendaciones
impartidas para cada función implementada en cada uno de los pines físicos del MCU.

Esquema de “Multiplexado” de un puerto I/O de un MCU flia. HC9S08.

Características Especiales en los Puerto I/O de la Familia HC9S08.
Slew Rate & Drive Strength.

Como se ha mencionado en párrafos anteriores, las características de los puertos I/O de
la familia HC9S08 son muy similares a las de la familia HC908 con la diferencia de
algunas características especiales agregadas que permiten el control de la pendiente de
la señal de salida y la corriente de manejo de un puerto I/O. Estas nuevas
funcionalidades son muy útiles cuando la aplicación debe cumplir con normas de
control ambiental o interferir lo menos posible con el resto del sistema, ya que tienden a
mantener en niveles bajos las emisiones electromagnéticas (EMI) que generan los
cambios de estado en los puertos I/O del MCU.

Slew Rate.

El control de la pendiente (Slew Rate) es muy importante para la disminución de
armónicos generados por la “pendiente abrupta” de un señal (cambio de “0” a “1” o a la
inversa) de salida de un puerto I/O. En las siguientes ilustraciones se puede observar las
diferentes formas de onda de las señales de un puerto I/O con y sin control de la
pendiente.

Con una carga de 50 pF en un puerto I/O vemos que la pendiente de la señal de
salida del mismo es 10 veces más lenta cuando tiene activado el control de pendiente
(3 nS vs 30 nS).

En esta figura se pueden ver dos señales de salida de distintos puertos I/O. La línea
PTA0 ha sido configurada sin control de pendiente, mientras que la línea PTA1 ha
sido configurada con control de pendiente. Ambas líneas tienen idénticas cargas de 1K
ohms y la señal cambia en forma simultánea en ambas.

Se puede observar que la línea PTA0 presenta un “sobre impulso” o “overshoot”
muy pronunciado y una pendiente muy abrupta, estas dos características son las
responsables principales de la generación de armónicos electromagnéticos (EMI)
cuando el la placa de circuito impreso (PCB) existen pistas largas o deficiente desacople
en las líneas de alimentación. La baja emisión de armónicos hace a nuestro sistema más
estable ante condiciones de ruidos eléctricos, tanto internos como externos.

Drive Strength.

La posibilidad de controlar la corriente de manejo de un puerto I/O, es un factor
muy importante cuando se quiere controlar las emisiones electromagnéticas (EMI)
o bien se requiere mejorar la capacidad de manejo de corriente de un puerto en
determinadas circunstancias.

En las siguientes ilustraciones se puede observar las diferentes formas de onda de las
señ
  • Links de descarga
http://lwp-l.com/pdf11464

Comentarios de: Capítulo 3/5 - Puerto I/O, Keyboard Interrupt Module (KBI) - Curso sobre Microcontroladores (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad