[DSP28335 EVM] 로터리 엔코더 테스트 - TMS320F28335 QEP
TMS320F28335는 2채널의 EQEP 모듈이 있어 엔코더를 쉽게 연결 할 수 있다.
[DSP28335 EVM] EQEP 핀맵
[EXP-ALL EVM] 보드를 이용하면 로터리 엔코더를 이용하여 간단히 TMS320F28335의 EQEP를 테스트 해 볼 수 있다.
로터리 엔코더는 EQEP 채널 1에 연결되어 있다.
GPIO50/EQEP1A <- GPIO0/EPWM1A (simulates EQEP Phase A signal)
GPIO51/EQEP1B <- GPIO1/EPWM1B (simulates EQEP Phase B signal)
GPIO23/EQEP1I <- GPIO4 (simulates EQEP Index Signal)
[EXP-ALL EVM]보드의 로터리 엔코더 회로도
TMS320F28355 QEP 테스트 동영상
TMS320F28335 EQEP 를 이용한 로터리 엔코더 테스트 소스코드
QEP 레지스터에서 로터리 엔코더 값을 읽어와 FND에 출력하는 예제 코드 이다. 테스트를 위해 최대 QEP값은 100으로 설정했다.
TMS320F28335는 2채널의 EQEP 모듈이 있어 엔코더를 쉽게 연결 할 수 있다.
[DSP28335 EVM] EQEP 핀맵
[EXP-ALL EVM] 보드를 이용하면 로터리 엔코더를 이용하여 간단히 TMS320F28335의 EQEP를 테스트 해 볼 수 있다.
로터리 엔코더는 EQEP 채널 1에 연결되어 있다.
GPIO50/EQEP1A <- GPIO0/EPWM1A (simulates EQEP Phase A signal)
GPIO51/EQEP1B <- GPIO1/EPWM1B (simulates EQEP Phase B signal)
GPIO23/EQEP1I <- GPIO4 (simulates EQEP Index Signal)
[EXP-ALL EVM]보드의 로터리 엔코더 회로도
TMS320F28355 QEP 테스트 동영상
TMS320F28335 EQEP 를 이용한 로터리 엔코더 테스트 소스코드
QEP 레지스터에서 로터리 엔코더 값을 읽어와 FND에 출력하는 예제 코드 이다. 테스트를 위해 최대 QEP값은 100으로 설정했다.
void main(void)
{
unsigned long cnt = 0;
unsigned long old_cnt = 0;
//DSP System Initialize
SystemInit();
Led1Init();
Led1On();
DebugInit(BAUD_115200);
DebugPrint("DSP28335 QEP Test\r\n");
//FND 초기화
FndInit();
FndOut(10);
//QEP1 초기화
InitQep1();
while(1)
{
//QEP 데이터 카운트값 읽어와서
cnt = EQep1Regs.QPOSLAT;
if(old_cnt != cnt)
{
Led1Toggle();
FndOut((unsigned char)cnt);
DebugPrint("cnt=%ld\r\n", cnt);
}
old_cnt = cnt;
Delay(1);
}
}
{
unsigned long cnt = 0;
unsigned long old_cnt = 0;
//DSP System Initialize
SystemInit();
Led1Init();
Led1On();
DebugInit(BAUD_115200);
DebugPrint("DSP28335 QEP Test\r\n");
//FND 초기화
FndInit();
FndOut(10);
//QEP1 초기화
InitQep1();
while(1)
{
//QEP 데이터 카운트값 읽어와서
cnt = EQep1Regs.QPOSLAT;
if(old_cnt != cnt)
{
Led1Toggle();
FndOut((unsigned char)cnt);
DebugPrint("cnt=%ld\r\n", cnt);
}
old_cnt = cnt;
Delay(1);
}
}
반응형