Post on 14-Jan-2016
description
Puertos I/OPuertos I/O
Puertos I/OPuertos I/O
56 lineas divididos en 7 puertos de 8 bits56 lineas divididos en 7 puertos de 8 bits
No todos accesibles en los pines del módulo No todos accesibles en los pines del módulo RCM3XX0RCM3XX0
Los pines suelen tener funciones alternativasLos pines suelen tener funciones alternativas
Puerto APuerto A
Funciona como todo entradas o todo Funciona como todo entradas o todo salidassalidas
Comparte función con el bus de datos del Comparte función con el bus de datos del puerto esclavo o del puerto auxiliarpuerto esclavo o del puerto auxiliar
Puerto APuerto A
Puerto BPuerto B
Se puede programar cada línea como Se puede programar cada línea como entrada o salidaentrada o salida
Comparte función con el bus de Comparte función con el bus de direcciones del puerto auxiliardirecciones del puerto auxiliar
PBDDR 1=salida 0=entradaPBDDR 1=salida 0=entrada
Puerto CPuerto C
Cuatro entradas (impares) cuatro salidas Cuatro entradas (impares) cuatro salidas (pares)(pares)
Comparte función con los puertos serieComparte función con los puertos serie
Puerto DPuerto D
• Se puede programar cada línea como Se puede programar cada línea como entrada o salidaentrada o salida
• Pueden funcionar en drenador abierto o Pueden funcionar en drenador abierto o como salidas normalescomo salidas normales
• Pueden sincronizarse las salidas con un Pueden sincronizarse las salidas con un timertimer
• Pines 4,5,6 y 7 pueden funcionar como Pines 4,5,6 y 7 pueden funcionar como puertos serie (B y A)puertos serie (B y A)
Puerto DPuerto D
Puerto DPuerto D
Puerto DPuerto D
Puerto EPuerto E
• Se puede programar cada línea como Se puede programar cada línea como entrada o salidaentrada o salida
• PE7 es el chip select del puerto esclavoPE7 es el chip select del puerto esclavo• Cada linea puede ser un I/O strobe Cada linea puede ser un I/O strobe
(registro de función)(registro de función)• Cuatro líneas pueden pedir interrupción Cuatro líneas pueden pedir interrupción
(PE0, PE1, PE4, PE5)(PE0, PE1, PE4, PE5)• Pueden sincronizarse las salidas con un Pueden sincronizarse las salidas con un
timertimer
Puerto EPuerto E
Puerto EPuerto E
Puerto FPuerto F
• Se puede programar cada línea como Se puede programar cada línea como entrada o salidaentrada o salida
• Pueden sincronizarse las salidas con un Pueden sincronizarse las salidas con un timertimer
• Funciones alternativas : salidas PWM, Funciones alternativas : salidas PWM, entradas del encoder en cuadratura, Reloj entradas del encoder en cuadratura, Reloj del puerto serie síncronodel puerto serie síncrono
Puerto FPuerto F
Puerto GPuerto G
• Se puede programar cada línea como Se puede programar cada línea como entrada o salidaentrada o salida
• Pueden sincronizarse las salidas con un Pueden sincronizarse las salidas con un timertimer
• Funciones alternativas : puerto serie Funciones alternativas : puerto serie síncronosíncrono
Puerto GPuerto G
Funciones para escribir en Funciones para escribir en registrosregistros
BitRdPortI <SYSIO.LIB>
SYNTAX: int BitRdPortI(int PORT, int bitnumber);
KEYWORDS: parallel port
PARAMETER1: address of internal I/O port.
PARAMETER2: bit (0-7) to read value from.
DESCRIPTION: Returns 1 or 0 matching the value of the bit readfrom the specified internal I/O port.All of the Rabbit internal registers have predefined macroscorresponding to the register's name. PADR is #defined to be0x30, etc.
RETURN VALUE: Returns an integer equal to 1 or 0.
Funciones para escribir en Funciones para escribir en registrosregistros
RdPortI <SYSIO.LIB>
SYNTAX: int RdPortI(int PORT);
KEYWORDS: parallel port
PARAMETER1: address of internal I/O port.
DESCRIPTION: Reads an internal I/O port specified by theargument (use RdPortE for external port.)All of the Rabbit internal registers have predefined macroscorresponding to the register's name. PADR is #defined to be0x30, etc.
RETURN VALUE: Returns an integer, the lower 8 bits of whichcontain the the result of reading the port specified by thefirst argument.
Funciones para escribir en Funciones para escribir en registrosregistros
BitWrPortI <SYSIO.LIB>
SYNTAX: void BitWrPortI(int PORT, char *PORTShadow, int value, int bitcode);
KEYWORDS: parallel portPARAMETER1: address of internal I/O port.PARAMETER2: address of variable shadowing current value of port.PARAMETER3: value to write to port.PARAMETER4: bit (0-7) to write value to.
DESCRIPTION: Updates shadow register at bit with value (0 or 1) andcopies shadow to I/O port. WARNING: a shadow register is REQUIREDfor this function.All of the Rabbit internal registers have predefined macroscorresponding to the register's name. PADR is #defined to be0x30, etc.
RETURN VALUE: None
Funciones para escribir en Funciones para escribir en registrosregistros
WrPortI <SYSIO.LIB>
SYNTAX: void WrPortI(int PORT, char *PORTShadow, int data_value);
KEYWORDS: parallel port
PARAMETER1: address of internal I/O port.PARAMETER2: address of variable shadowing current value of port.PARAMETER3: value to write to port.
DESCRIPTION: Writes an internal I/O port with 8 bits andupdates shadow for that port. The variable names must be of form"Port" and "PORTShadow" for most efficient operation. A nullpointer may be substited (use "NULL") if shadow support is notdesired or needed.All of the Rabbit internal registers have predefined macroscorresponding to the register's name. PADR is #defined to be0x30, etc.
RETURN VALUE: none
EjemplosEjemplos
Configurar PF4 como salida:
BitWrPortI(PFDDR, &PFDDRShadow,1, 4);
Poner PF4 a 1: BitWrPortI(PFDR, &PFDRShadow,1, 4);