Escolar Documentos
Profissional Documentos
Cultura Documentos
Actividad Prctica
Mdulo PM-GPIO
Entrega Jueves 17 de septiembre
I- Revisar para la actividad del prximo jueves los siguientes temas:
-
II- Traer resuelto para la clase del jueves por equipos las siguientes actividades
realizadas.
Utilizando la librera de funciones del mdulo PM y GPIO realice las siguientes configuraciones
de los distintos componentes del mdulo:
2.1Configuracin del reloj principal del sistema (relojes sncronos) con las siguientes
especificaciones:
-
PLL0 como reloj principal con una frecuencia de 120MHz, modo Wide Bandwidth
inhabilitado, PLLCOUNT = 16.
La fuente de reloj del PLL0 ser el oscilador 1 en modo cristal con una frecuencia de
12MHz y startup de 36ms.
#include "pm.h"
#include "flashc.h"
void inicializa_pm(void){
pm_enable_osc1_crystal(&AVR32_PM, 12000000, 4); // usa oscilador 1 a 12MHz,
con 36 ms de espera
pm_pll_setup(&AVR32_PM,
0,
//PLL:0 en uso
4,
//MUL=4 que viene del despeje de
Fvco=2*(MUL+1)*Fosc => 120MHz=2*(MUL+1)*12MHz
0,
//DIV es 0, es por eso que se us
1,
//Osc:1 en uso
16);
//Lockcount para el PLL
pm_pll_set_option(&AVR32_PM,
0, //PLL: 0 en uso
1, //PLL_frec = Vco_frec: 1 frecuencia de 80180MHz
0, //PPL_div2: 0 No divide la frecuencia del
PLL
pm_cksel(pm, 1,
3, PBA divisor habilitado
1,
3,
1,
0);
2.4 Habilitar la interrupcin del pin PB23 por frente de cada (Falling Edge).
gpio_enable_pin_interrupt(AVR32_PIN_PB23,
(VQFP144-EVK1105) de GPIO
mode GPIO_FALLING_EDGE
2- Configurar el reloj genrico 2 para dar reloj a un mdulo de comunicacin con las
siguientes especificaciones:
-
pm_gc_setup(pm,
2,
0,
0,
1,
15);
//Power Managment
//Reloj genrico: 2
//Fuente: Oscilador
//Osc: 0
//Habilitarelog genrico: 1
//Fgen = Fosc/(2*(DIV+1)) => 16MHz = (16MHz/32) / (2*(DIV+1))
//Se divide el Fosc entre 32 / Se despeja DIV
3- Funcin que realice un Polling de la tecla Down del Touch sensor de la EVK1105 y de
acuerdo al valor encienda o apague el LED 2
While(1)
{
if (gpio_get_pin_value(QT1081_TOUCH_SENSOR_DOWN)==true)
{
Delay_ms(10);
gpio_clr_gpio_pin(LED2_GPIO);
}
else
{
Delay_ms(10);
gpio_set_gpio_pin(LED2_GPIO);
}
}