설계 Design/펌웨어 개발 Firmware

[펌웨어][F2837xx] TBCTR Register와 TBSTS Register

NewBeaver 2023. 12. 28. 22:05

TBCTR : Time Base Counter

ePWM 모듈에서 컴페어 레지스터와 비교할 때 사용하게되는 카운터 레지스터이다.

 

TBCTR Resister Field Description

 

레지스터의 필드설명을 보면 16비트로 구성되어있고 읽고 쓰는것이 가능하다.

 

이 레지스터를 읽어와 변수에 저장하고 다음 시점에서 또 읽어와 다른변수에 저장하면

 

두 값의 차이를 두 시점이 카운터 몇이 차이나는지 계산할수있다.

 

이를 응용하여 코드의 실행시간 분석이나 실행 시점등을 소프트웨어적으로 알수있다.

 

하지만 Up-Down 카운터를 사용하는 경우 레지스터의 값이 증가했다가 다시 감소하기 때문에

 

Up-Down 카운터 한주기 내에서 두 시점의 레지스터 값을 비교하기 마땅하지 않은 경우가 있다.

 

이때에는 타이머의 상태 레지스터에서 카운터가 현재 증가하는 상태인지? 감소하는 상태인지? 알아야한다.

 

이때 TBSTS 레지스터를 사용한다.

 

 

 

 

 

TBSTS : Time Base counter STatuS? (약자는 정확하지 않을 수 있다.)

Time Base counter 의 상태를 나타내는 Register 이다.

TBSTS Register Field Descriptions

 

레지스터의 필드설명을 보면 총 16비트로 구성되어있고 CTRMAX 1 비트, CYNCI 1 비트, CTRDIR 1 비트 나머지는 RESERVED영역으로 구성된다. CTRMAX와 SYNCI는 읽고 쓰기가 모두 가능하고 CTRDIR은 읽기만 가능하다.

 

CTRMAX : 카운터가 최대값을 도달했는지 나타내는 비트, Time-Base Conter의 최대값 0xFFFF 를 도달했다면 1로 나타낸다.

SYNCI : 카운터의 동기 신호 입력상태를 나타내는 비트, 외부 동기 신호를 통해 이벤트가 발생했다면 1로 나타낸다.

CTRDIR : 카운터의 UP/DOWN 방향을 나타내는 비트, Down 상태면 0, Up 상태면 1로 나타낸다. 이 비트는 카운터가 카운터 중에면 유효하다.