Académique Documents
Professionnel Documents
Culture Documents
AT91SAM7S256
2010 -10 - ADSD
Los pines resaltados son los de propsito general. Son 32 pines compartidos
con perifricos como USART, Timer, ADCs, PWMs, etc..
Ms adelante se mostrar
cmo configurar los pines.
Memorias
Internas
uP
(ARM7TDMI)
Perifricos
Datos
Direcciones
Control
Timers (3)
USB
Two Wire Interface
USART0
USART1
PWM
Sync. Serial Controller
ADCs (7)
Serial Peripheral Interf.
Otros Perifricos
Contr. Interrupc.
Puerto Paralelo
Uso de perifricos
El PMC (Power Management Controller) es un mdulo
dentro del AT91SAM7S256, el cual tiene (entre otras
funciones) entregar la seal de reloj a los perifricos que
se vayan a utilizar. Para tal motivo el PMC tiene un
registro denominado PMC_PCER (Peripheral Clock Enable
Register) mediante el cual se puede habilitar dichas
seales de reloj. Revisar la hoja de datos del microcontrolador e ir a la seccin del PMC para ms detalles.
Dado que los pines del micro-controlador AT91SAM7S256
estn compartidos entre distintos perifricos (adems del
mismo puerto paralelo), el PIO (Programmable
Input/Output) se encarga de controlar quien tiene el
manejo de dichos pines. Revisar la hoja de datos del
micro-controlador e ir a la seccin del PIO Controller para
ms detalles
Register (PMC_PCER).
En este registro de 32 bits, escribir un
1 en alguna posicin del mismo
implica activar determinado perifrico.
Registro PMC_PCER
En esta tabla se observa que cada perifrico tiene un identificador PIx. Los bits 0 y 1 de este
registro no se utilizan por lo que se puede escribir 0en ellos (lo cual no tiene ningn efecto).
El ltimo paso para activar el reloj para los perifricos es determinar en cul(es) bit se debe(n)
colocar 1 . Se necesita consultar la tabla de Identificacin de Perifricos.
Peripheral Identifiers
El puerto paralelo
corresponde a
PID2
Si se quiere
activar la seal de
reloj para este
perifrico se
necesita escribir
1en el bit que
corresponda a
PID2 del registro
PMC_PCER, es
decir, en el bit 3.
El valor a escribir
sera:
0x00000004H
PIO_PER [32](PIO Enable Register): Activa los pines para funcionar como puerto paralelo
(entrada o salida de propsito general). Cada bit corresponde a un pin, as si se quiere
utilizar el pin 0 como puerto paralelo el valor de PIO_PER(0) debe ser 1.
PIO_PDR [32] (PIO Disable Register): Cuando el pin se va utilizar con uno de los perifricos
disponibles y no como puerto paralelo se debe escribir un 1 en la posicin deseada. Si el
pin 31 se quiere utilizar con los perifricos, el valor de PIO_PDR(31) debe ser 1.
PIO_OER [32](Output Enable Register): Activa los pines para funcionar como salida. Cada
bit corresponde a una lnea, as si se quiere utilizar el pin 0 como salida de puerto paralelo
el valor de PIO_OER(0) debe ser 1.
PIO_ODR [32] (Output Disable Register): Cuando el pin se va utilizar como entrada del
puerto paralelo se debe escribir un 1 en la posicin deseada. Si se requiere que el pin 31
sea una entrada, el valor de PIO_ODR(31) debe ser 1
Para saber qu valor se va escribir si el pin fue de salida, se utilizan los registros:
si
no
Programa en Assembler
Declarar como constantes
los valores que se utilizarn
en el programa. En este caso
son las direcciones.
R0 = PMC_PCER = 0xFFFFFC10
R1 = 0x004H
(Direccin apuntada por R0) = R1:
PMC_PCER = 0x04H
R0 = 0xFFFFF400
R1 = 0xFFFFF410
R2 = 0x04000000
PIOA_PER = 0x04000000H
PIOA_OER = 0x04000000H
La instruccin: BX
R14; se devuelve a donde se
hizo el llamado a subrutina.