공부/MSP430 2012. 11. 15. 00:08

 

  1. FLL+ Clock module

 

5.1    FLL+ Clock module 구조

 

FLL+ Clock module은 msp430x4xx 디바이스에 clock 을 공급합니다. FLL+ Clock module를 사용하여 저가의 System 을 만들 수 있습니다. 또한 ultra low power 구현이 가능해 집니다. FLL+ Clock module은 내부에 3가지의 clock 소스(LFXT1CLK , XT2CLK, DCOCLK)가 존재합니다. 그 중 가장 사용이 편리한 것을 선택해서 사용이 가능하다. 내부의 FLL은 LFXT1 크리스탈(시계용) 주파수를 이용한 디지털 modulator 와 디지털 오실레이터 제어기(DCO)를 사용 합니다. Fll+ Clock module 은 두 개의 외부 크럭 입력부가 있으며, 크리스탈, 레조네이트, 또는 내부 발진기를 이용하여 동작합니다. (모든 것은 소프트웨어 적으로 제어가 가능 합니다.)

 

FLL+ clock 모듈은 두 개 또는 세 개의 clock source (LFXT1CLK , XT2CLK, DCOCLK )가 사용됩니다.

 

LFXT1CLK 는 저 주파수 또는 고 주파수 클럭용으로 사용 가능합니다. 32768Hz 의 시계용 크리스탈, 일반 크리스탈, 레조네이터 등이 사용되며, 450kHz – 8MHz 까지 사용이 가능 합니다.

XT2CLK 는 옵션으로 사용 가능한 고 주파수 클럭용으로 사용 가능합니다. 450kHz – 8MHz 까지 사용이 가능 합니다.

 

DCOCLK 는 내부에서 제어 가능한 RC특성을 가진 오실레이터 이며, FLL에 의해 안정화 됩니다.

 

4개의 clock 신호(ACLK, ACLK/n, MCLK, SMCLK)를 FLL+ module 용으로 사용할 수 있습니다.

 

ACLK은 보조 클럭 이며 LFXT1CLK를 source로 사용합니다. 주변 모듈사용을 위해 프로그램적으로 선택 하여 사용할 수 있습니다.

ACLK/n 은 ACLK를 n으로 나눈 클럭 입니다. N은 1,2,4,8이 될 수 있으며, 외부 출력용으로 사용할 수 있습니다.

MCLK는 메인 클럭 입니다. LFXT1CLK, XT2CLK, DCOCLK 중에 프로그램적으로 선택하여 사용할 수 있습니다. FLL에 의해 1,2,4,8로 나누어질 수 있으며, CPU와 SYSTEM에 사용 될 수 있습니다.

SMCLK은 보조 클럭 이며 오실레이터2 가 장착이 되어 있다면 XT2CLK 이나 DCOCLK중 프로그램적으로 선택하여 사용할 수 있습니다. 주변장치에 사용 되어 집니다.

 

msp430x44x나 msp430x43x의 FLL+ clock 모듈은 그림 5-1과 같습니다. 또한 msp430x42x와 mxp430x41x는 그림 5-2와 같습니다.

 

 

 

 

그림 5 - 1

그림 5 - 2

 

5.2    FLL+ Clock module 동작

 

FLL+ Clock 모듈은 PUC(power up clear)후에 MCLK, SMCLK는 DCOCLK에 의해 ACLK위 32배로 설정됩니다. 예를 들어 ACLK에 32768Hz 크리스탈을 사용하면 MCLK, SMCLK는 1.048576MHz 로 설정 됩니다.

 

상태 레지스터 컨트롤 bit 인 SCG0, SCG1, OSCOFF, CPUOFF의 설정은 MSP430의 동작모드를 조절하고 FLL+ Clock 모듈의 구성 요소들의 사용을 설정할 수 있습니다. System Reset 또는 인터럽트 동작 모드에 관련된 부분을 참고해서 보시길 바랍니다.

 

SCFQCTL, SCFI0, SCFI1, FLL_CTL0, FLL_CTL1레지스터의 설정은 FLL+ Clock 모듈을 조절합니다. 또한 FLL+ 는 동작중에 소프트웨어적으로 기능을 변경될 수 있습니다

 

5.3    LOW POWER 에서 FLL + Clock

 

에너지 보호를 위해서는 낮은 클럭을 사용하며, 빠른 동작 속도 요구 할 때는 빠른 클럭을 사용합니다. 이때주의 해야 할 것은 작동온도와 공급전압에 따는 클럭 안정도를 생각해야 한다는 것입니다.

 

저 출력 동작을 위해 ACLK는 32768Hz의 크리스탈을 사용하는 것이 좋습니다. 인터럽트가 발생해서 고속 동작이 필요할 때는 DCO를 이용해 MCLK를 고속 동작 시키는 방법이 있습니다. 단 이때도 주의해야 할 것은 주파수가 안정될 시간이 필요하다는 것입니다.

 

5.4    LFXT1 오실레이터

 

LFXT1 오실레이터는 LF(low-frequency) mode (XTS_FLL = 0)에서 32768Hz의 크리스탈을 사용하여 ultra low 전류를 사용하도록 지원 합니다. 32768Hz 크리스탈은 Xin과 Xout에 별도의 부품없이 연결하여 사용할 수 있습니다.

 

LFXT1 오실레이터는 HF(high-frequency) mode (XTS_FLL =1)에서 고속 크리스탈 또는 레조네이터를 사용 할 수 있습니다. 고속 크리스탈이나 레조네이터도 별도의 부품 없이 Xin과 Xout 에 바로 연결되어 사용할 수 있습니다.

 

XCAPxPF bit는 LFXT1에 연결된 크리스탈에 내부적으로 1,6,8,10pF의 콘덴서를 단것처럼 만들어 줍니다. 부가적으로 외부 콘덴서가 필요하며 달아 사용하면 됩니다. 만약 MCLK용으로 사용하지 않는다면 OSCOFF를 이용해 LFXT1을 정지시킬 수 있습니다.

( SELM 이 3이 아닐 때 CPUOFF = 1이 된다.)

 

LFXT1에 저 주파수 크리스탈을 사용시 잡음 영향을 받을 수 있으므로 크리스탈을 최대한 pin 가까이 놓아야 합니다. 또한 기본적으로 XCAPxPF는 0으로 설정되어 있으므로 1pF의 값을 가집니다. 그래서 크리스탈이 불안전하게 동작할 수 있습니다. 그래서 초기에 XCAPxPF의 값을 조정해야 합니다.

 

5.5    XT2 오실레이터

 

몇몇 MSP430x4xx 칩은 XT2기능이 있습니다. XT2는 LFXT1의 HF mode 의 특성과 동일 하므로 XT2CLK를 HF mode 처럼 사용해야 합니다. 주의할 사항은 내부에 콘덴서 값을 가지지 않아 외부에 달아야 합니다. 만약 XT2CLK가 MCLK 또는 SMCLK로 사용되지 않는다면 XT2OFF에 의해 중지 할 수 있습니다.

 

5.6    Digitally-Controlled Oscillator (DCO)

 

DCO는 내부에서 동작하는 RC 특성을 가진 오실 레이터 입니다. DCO 주파수는 FLL에 의해 ACLK 의 N 배로 안정화 됩니다. 주파수는 SCFQCTL 레지스터의 bit6-bit0까지 설정 할 수 있습니다. DCOPLUS bit 설정으로 FDCOCLK 주파수는 FDCO 또는 FDCO/D가 됩니다.

 

FLLDx bit 설정으로 D의 값은 1,2,4,8중 한 가지로 설정 될 수 있습니다. 기본적으로 DCOPLUS 는 D=2가 되도록 설정되어 있습니다. 즉 FDCOCLK는 FDCO/2 가 됩니다.

 

SCFQCTL 과 DCOPLUS 의 설정에 따라 다음과 같이 DCOCLK가 조정됩니다.

DCOPLUS = 0 이면 FDCOCLK =(N+1) * FACLK

DCOPLUS = 1 이면 FDCOCLK =D * (N+1) * FACLK

 

5.7    DCO 주파수 범위

 

FDCO 의 주파수 범위는 아래의 그림 5-3 의 리스트에 따라 FNx의 bit에 따라 선택됩니다. DCO는 DCOCLK의 주어진 범위 내에서 동작하도록 합니다. 이때 이용자는 MCLK이 최대 동작 주파수를 넘지 않도록 설정해야 합니다.

 

그림 5 - 3

5.8    Frequency Locked Loop (FLL)

 

FLL은 연속적으로 상승 또는 하강하는 10bit의 주파수 적분기 입니다. SCFI1와 SCFI0의 조건에 따라 DCO는 주파수 적분기를 조절합니다. ACLK 크리스탈 주기에 맞추어 +1 또는 –1씩 조절 됩니다. 5개의 SCFI1의 bit7-bit3는 DCO주파수 tap을 설정합니다. 주파수 tap은 29개가 있으며 28-31까지는 주파수는 동일 합니다. 각각의 tap은 이전에 비해 주파수가 약 10%정도 높아 집니다. 변조기(Modulator)는 2개의 이웃하는 DCO 주파수를 섞어 줍니다. SCFI1의 2-0bit와 SCFI0의 1-0bit는 변조기를 위해 사용됩니다(이것은 자동으로 조절됩니다). DCO는 PUC(power up clear)후 가장 낮은 주파수로 동작합니다. (이유는 SCFI0와 SCFI1이 초기화 되기 때문입니다.) 먼저 일반적인 동작을 이해 DCO를 설정 해야 합니다. DCO는 하나의 ACLK주기내에 32가지의 DCLK 주기를 가질 수 있습니다.

 

그림 5 - 4

 

5.9    FLL와 Modulator 사용정지

 

FLL은 상태 레지스터의 SCG0가 1일 경우 정지 합니다. FLL 이 정지하면 DCO는 이전에 설정된 상태로 동작하나 DCOCLK이 자동으로 안정화 되지 않습니다. DCO는 SCFQ_M 이 0이면 정지됩니다. DCO가 정지되면 DCOCLK는 사용 가능한 DCO tap 에 맞추어집니다.

 

 

5.10    Low power 모드에서 FLL의 동작

 

인터럽트 서비스 루틴 동작시 SCG1, CPUOFF, OSCOFF의 설정은 제거 되지만 SCG0의 설정은 제거되지 않습니다. 이것은 LPM1-4에서 발생한 인터럽트루틴에서 FLL을 조작해야 하는 것을 뜻 합니다. FLL은 정지 상태이며 SCFI0와 SCFI1에 정의된 상태로 DCO는 동작합니다. FLL 조작이 필요 할 때는 SCFI0을 제어하면 됩니다.

 

  1. Buffered Clock Output

 

ACLK을 1,2,4,8로 나누어져(클럭속도가 빨라짐) P1.5에 출력될수 있습니다. 나누어지는 값은 FLL_DIV에 의해 선택되어 집니다. ACLK는 다른 핀에도 다중 출력이 되며 이때 ACLK out으로 설정 되어야 합니다.

 

 

5.12    FLL+ Fail-Sefe 동작

 

FLL+ module에는 오실레이터 고장에 대한 안전 기능이 있습니다. 안전기능은 그림 5-5와 같이 LFXT1, DCO, XT2의 고장을 찾을 수 있습니다.

 

그림 5 - 5

 

고장조건은 다음과 같습니다.

 

LF mode에서 LFXT1이 저 주파수 오실레이터 장애(LFOF)가 발생, HF mode 에서 LFXT1이 고 주파수 오실레이터 장애(XT1OF)가 발생, XT2의 고 주파수 오실레이터 장애(XT2OF) 발생, DCO의 DCO 장애 플래그(DCOF) 발생을 말한다.

크리스탈이 정확하게 움직이지 않는다면 크리스탈 오실레이터 장애 bit LFOF, XT1OF, XT2OF에 설정됩니다. 고장 되어 있는 동안 장애 bit는 설정되어 있으며 이상 없이 동작 하게 되면 자동으로 제거 됩니다.

LFXT1 크리스탈 장애시 ACLK는 발생되지 않습니다.

 

DCO가 가장 낮은 tap이 되면 SCFI1의 bit7-3번까지 지워집니다. 이때 DCOF가 발생됩니다. DCO가 가장 높은 tap일때도 DCOF는 발생 됩니다. DCOF는 가장높거나 가장 낮은 tap에서 벗어나면 자동으로 제거 됩니다.

오실레이터 장애(LFOF,XT1OF,XT2OF,DCOF)발생시 오실레이터 장애 인터럽트 플레그 (OFIFG)가 설정되거나 POR( power of reset)이 됩니다.

인터럽트가 동작하면 OFIE 는 자동으로 지워 집니다. 그러나 OFIFG는 프로그램에 의해 지워야 합니다. 인터럽트 루틴에서는 bit를 검사해 고장의 원인을 찾을 수 있습니다. 만일 고장이 MCLK 에 영향을 주면 자동으로 MCLK의 소스를 DCO로 변경합니다. 그러나 이 동작에 의해 SELMx bit의 설정을 바꾸지 않습니다. 그래서 SELMx bit는 프로그램적으로 변경 시켜야 합니다.

 

 

 

5.13    관련 레지스터 설명

 

SCFQCTL (system clock control register)

BIT 

명칭

SCFQ_M 

초기값

읽고쓰기

R/W 

R/W 

R/W 

R/W 

R/W 

R/W 

R/W 

R/W 

 

SCFQ_M : 변조기(modulation)의 사용유무 설정 ( 0: 사용 ,1:비사용)

N     : 변조값,DCO에 사용될 변조값을 설정 한다.(아래 계산에서 N 값 조정)

DCOPLUS = 0 이면 FDCOCLK =(N+1) * FACLK

DCOPLUS = 1 이면 FDCOCLK =D * (N+1) * FACLK

 

 

SCFI0 (system clock frequency integrator register 0)

BIT 

명칭

FLLDx 

FN_x 

MODx(LSBs)

초기값

읽고쓰기

R/W 

R/W 

R/W 

R/W 

R/W 

R/W 

R/W 

R/W 

 

FLLDx     : Fdocclk의 D 값 조정 ( 00: /1 , 01: /2 , 10: /4 ,11 :/8)

FN_x     : DCO 의 동작 범위 설정

(0000:0.7-6Mhz, 0001:1.4–12Mhz, 001x:2.2-17Mhz, 01xx:3.2-25Mhz, 1xxx:5-40Mhz)

MODx    : 변조에 사용되는 변조값의 아래 bit 이 값은 FLL+ 에 의해 자동으로 조절 된다.

 

 

SCFI1 (system clock frequency integrator register 1)

BIT 

명칭

DCOx 

MODx(MSBs) 

초기값

읽고쓰기

R/W 

R/W 

R/W 

R/W 

R/W 

R/W 

R/W 

R/W 

 

DCOx     : 이 bit는 DCO tap을 선택해서 자동으로 FLL+ 값을 조정하게 한다.

MODx     : 변조에 사용되는 변조값의 상위 bit 이 값은 FLL+ 에 의해 자동 조절 됩니다.

 

 

FLL_CTL0 (FLL+ Control Register 0)

BIT 

명칭

DCOPLUS 

XTS_FLL 

XCAPxPF 

XT2OF 

XT1OF 

LFOF 

DCOF 

초기값

읽고쓰기

R/W 

R/W 

R/W 

R/W 

 

DCOPLUS : DCO를 MCLK나 SMCLK에 출력할 때 FLLDx(D값) 사용 할 것인지 결정한다.

(0 : 사용한다. ,1: 사용하지 않는다.)

XTS_FLL : LFTX1 mode 를 선택한다. (0: 저 주파수 모드 , 1: 고 주파수 모드)

XCAPxPF : LFTX1 의 내부 콘덴서 값을 조정한다. (00 : 1pF , 01: 6pF , 10 : 8pF , 11 : 10pF)

XT2OF     : XT2오실레이터 장애 (1이면 발생)

XT1OF     : LFXT1의 고 주파수 오실레이터 장애 (1이면 발생)

LFOF     : LFXT1의 저 주파수 오실레이터 장애 (1이면 발생)

DCOF    : DCO 오실레이터 장애 (1이면 발생)

 

 

FLL_CTL1 (FLL+ Control Register 1)

BIT 

명칭

사용안함

SMCLKOFF 

XT2OFF 

SELMx 

SELS 

FLL_DIVx 

초기값

0

읽고쓰기

R/W 

R/W 

R/W 

R/W 

R/W 

R/W 

 

SMCLKOFF : SMCLK 사용금지 선택 ( 0: SMCLK 사용 , 1 : SMCLK 사용금지)

XT2OFF : XT2 오실레이터 사용금지 선택

(0 : XT2 사용, 1: MCLK나 SMCLK 용으로 사용안할 때 사용금지 )

SELMx : MCLK의 소스 선택 (00:DCOCLK , 01:DCOCLK ,10:XT2CLK, 11:LFXT1CLK)

SELS    : SMCLK의 소스 선택 (0: DCOCLK , 1: XT2CLK)

FLL_DIVx : ACLK의 나눌값 선택 (ACLK/n 의 n 값) (00 : /1 , 01:/2 , 10:/4 , 11:/8)

 

 

IE1 (Interrupt Enable Register 1)

BIT 

명칭

      

OFIE 

 

초기값

      

 

읽고쓰기

      

R/W 

 

 

OSC 인터럽트 장애 인터럽트 동작 유무 설정 (0 : 인터럽트 동작 안함, 1: 인터럽트 동작)

 

 

IFG1 (Interrupt Flag Register 1)

BIT 

명칭

      

OFIFG 

 

초기값

      

 

읽고쓰기

      

R/W 

 

 

인터럽트가 발생되는지 알려준다. (0: 인터럽트 조건이 아님 , 1: 인터럽트 조건)

 

 

 

'공부 > MSP430' 카테고리의 다른 글

[MSP430] MSP430 자료 6  (0) 2012.11.15
[MSP430] MSP430 자료 5  (0) 2012.11.15
[MSP430] MSP430 자료 4  (0) 2012.11.15
[MSP430] MSP430 자료 3  (0) 2012.11.15
[MSP430] MSP430 자료 2  (0) 2012.11.15
[MSP430] MSP430 자료 1  (0) 2012.11.15
posted by 큰파도

댓글을 달아 주세요