L8 System Control

Download Report

Transcript L8 System Control

UNIT
08 System Control & Clock
로봇 SW 교육원
조용수
학습 목표
•
•
•
•
System Control Register
System Clock
CMSIS
CMSIS Project
2
System Control Register
3
• Reset , System Timer, Interrupt 등을 관리
• 전반적인 MCU 동작에 영향을 미치는 작업으로, 초
기 Power Up 시점에서 관련 Register 설정이 필요
System Control Register
• PDID : MCU ID
4
System Control Register
• RSTSRC : System Reset Source Register
5
System Control Register
• IPRSTC1 : Peripheral Reset Control Register 1
6
System Control Register
• IPRSTC2 : Peripheral Reset Control Register 2
7
System Control Register
• Brown-Out Detector
– 전원 전압이 일정값 이하로 저하되는 것을 감지
• BODCR : Brown-Out Detector Control Register
8
System Control Register
9
• MCU의 경우 제한된 Pin 으로 인하여 여러가지 기
능이 하나의 핀 Out 에 공유된다.
• Px_MFP : Multi Function and Input Type Control
System Control Register
10
• P0_MFP : Multi Function and Input Type Control
System Control Register
11
• Lock & Unlock
– 외부 Noise 및 시스템 오 동작 으로 인한 전체 시스템의
영향을 막기 위한 작업
– MCU 의 중요한 Register 를 일정 형식의 Unlock 루틴을
거쳐야 Write 가능
System Control Register
• Lock & Unlock
12
System Control Register
• Lock & Unlock
13
System Control Register
• Lock & Unlock
14
System Control Register
• C
15
Clock
16
• MCU 동작을 위한 기본 단위
• 모든 내부 동작은 Clock 과 동기화 하여 진행된다.
Clock
• X-tal
– 주변에 발진에 필요한
회로 구성필요
– 가격 저렴
• Osc
– 발진 회로 내장
– 정확한 주파수 출력
17
Clock
• 4가지의 Clock Source 제공
•
•
•
•
4~24 MHz external high speed crystal oscillator (HXT)
Programmable PLL output clock frequency (PLL source can be selected from external 4~24
MHz external high speed crystal (HXT) or 22.1184 MHz internal high speed oscillator (HIRC))
(PLL FOUT)
22.1184 MHz internal high speed RC oscillator (HIRC)
10 kHz internal low speed RC oscillator (LIRC)
18
Clock
• 선택된 Clock 은 각 I/O 디바이스의 Clock 으로
공급
19
Clock Control Register
20
Clock Control Register
• PWRCON
21
Clock Control Register
• AHBCLK
22
Clock Control Register
• APBCLK
23
Clock Control Register
• CLKSTATUS
24
Clock Control Register
• CLKSEL0
25
Clock Control Register
• CLKSEL1
26
Clock Control Register
• CLKSEL2
27
Clock Control Register
• CLKDIV
28
Clock Control Register
• PLLCON
29
Clock Control Register
• PLLCON
30
System Init
#define GCR_BA
#define CLK_BA
#define GPIO_BA
0x50000000
0x50000200
0x50004000
void UnlockReg()
{
*((volatile
*((volatile
*((volatile
}
void LockReg()
{
*((volatile
}
unsigned int *)(GCR_BA + 0x100))=0x59;
unsigned int *)(GCR_BA + 0x100))=0x16;
unsigned int *)(GCR_BA + 0x100))=0x88;
unsigned int *)(GCR_BA + 0x100))=0x01;
void SystemInit()
{
int count = 200000;
UnlockReg() ;
*((volatile unsigned int *)(CLK_BA + 0x00)) |=0x04;
while(count--);
LockReg() ;
}
31