[INTERFACE]/USB2018. 3. 22. 02:04

USB KeyBoard Encoder 보드 제작

USB KeyBoard Encoder 보드 제작


USB Keyboard 로 동작하는 Encoder 보드를 제작했다.

5개의 키 값과 Encoder값을 입력 받아 처리 할수 있는 보드로 MCU는 ST사의 STM32F042를 적용하여 제작하였다.

HID composite device 로 인식해서 Key값을 실시간으로 변경 가능하다.


USB KeyBoard Encoder 보드 구성도



Key값은 HID Key Config 프로그램으로 재 설정 가능하다. HID 장시치로 인식해서 동작중 실시간으로 설정 가능하다.

키값는 Function Key(CTRL, ALT, SHIFT), Normal Key 에디트 창에서 키값을 입력하면 간단히 설정 가능하다.


Posted by nexp

댓글을 달아 주세요

[DSP]/DSP283352011. 11. 11. 23:00

[DSP28335 EVM] 로터리 엔코더 테스트 - TMS320F28335 QEP

[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으로 설정했다.
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);
 }
}  



Posted by nexp

댓글을 달아 주세요

[DSP]/PICCOLO2011. 5. 5. 11:52

[TMS320F28096 EVM] eQEP 엔코더 테스트

[TMS320F28096 EVM] eQEP 엔코더 테스트


TMS320F28069 에는 eQEP (QEI)는 여러가지 기능이 많이 있다. 간딘히  엔코더 카운터 테스트를 해 보았다.
eQEP의 핀맵은 아래와 같다.
GPIO20/EQEP1A  :  EQEP Phase A
GPIO21/EQEP1B   : EQEP Phase
BGPIO23/EQEP1I  : EQEP Index



[EXP-DSP EVM] 보드에는 엔코더가 장착되어 있는데 처음에 제작시에 TMS320F2808을 타겟으로 제작했기 때문에 점퍼가 필요하다. 확장성을 고려하여 핀을 뽑아 두었기 때문에 점퍼선으로 연결가능하다.



TMS320F28069 eQEP 블록도



TMS320F28069 eQEP 초기화 코드
void QEP_Init(void)
{
    EQep1Regs.QUPRD=800000;         // Unit Timer for 100Hz at 80 MHz SYSCLKOUT

    EQep1Regs.QDECCTL.bit.QSRC=00;      // QEP quadrature count mode

    EQep1Regs.QEPCTL.bit.FREE_SOFT=2;
    EQep1Regs.QEPCTL.bit.PCRM=00;       // PCRM=00 mode - QPOSCNT reset on index event
    EQep1Regs.QEPCTL.bit.UTE=1;         // Unit Timeout Enable
    EQep1Regs.QEPCTL.bit.QCLM=1;        // Latch on unit time out
    EQep1Regs.QPOSMAX=0xffffffff;
    EQep1Regs.QEPCTL.bit.QPEN=1;        // QEP enable

    EQep1Regs.QCAPCTL.bit.UPPS=5;       // 1/32 for unit position
    EQep1Regs.QCAPCTL.bit.CCPS=6;       // 1/64 for CAP clock
    EQep1Regs.QCAPCTL.bit.CEN=1;        // QEP Capture Enable
}


초기화 하고 QPOSLAT레지스터에서 값을 읽으면 아주 쉽게 엔코더값을 읽을 수 있다.
count = EQep1Regs.QPOSLAT;

[TMS320F28069 EVM] eQEP 엔코더 테스트 동영상
엔코더 카운트 값을 FND로 출력하는 예제



[TMS320F28069 EVM] eQEP 엔코더 테스트 소스코드
void main(void)
{
 unsigned int cnt = 0;

 //DSP System Initialize
 SystemInit();

 DebugInit(BAUD_115200);
 DebugPrint("TMS320F28069 eQEP Test(%d)Mhz\r\n", _SYS_CLK);

 Led1Init();
 Led2Init();
 Led1On();

 //eQEP 초기화
 InitEQep1Gpio();
 QEP_Init();

 //FND 초기
 FndInit();

 while(1)
 {
  //QEP 데이터 카운트값 읽어와서 
  cnt = EQep1Regs.QPOSLAT;

  DisplayFnd(cnt);
  Delay(1);
}
Posted by nexp

댓글을 달아 주세요

  1. 백대성

    관리자의 승인을 기다리고 있는 댓글입니다

    2012.08.20 22:24 [ ADDR : EDIT/ DEL : REPLY ]

[MyProject]/20102010. 11. 7. 20:30

[AcceleroMeter] 모터 가속도 측정 장치

[AcceleroMeter] 모터 가속도 측정 장치

회전하는 모터의 가속도를 츨정하여 그래프로 표시하는 시험기를 개발





하드웨어

MCU는 Cortex-M3 코어의 STM32를 사용하였다. 

측정해야 할 데이터는 디지털 엔코더 및 아날로그 출력의 타코메터가 있다.

타코메터는 2채널의 16비트 ADC ADS8320 을 이용하여 동시점에 두개의 ADC값을 읽어올 수 있다. 

데이터응 USB를 통해 HID인터페이스로 전송된다.




디지털 엔코더 입력 보드




소프트웨어

수집된 데이터를 실시간으로 표시하고 그래프 저장 및 출력을 할 수 있도록 구성 했다.




실제 타코 데이터 입력 데이터


Posted by nexp

댓글을 달아 주세요

[TI]/LM3S8xx2010. 9. 12. 09:44

[LM3S818 EVM] Encoder 테스트 - 무선(Bluetooth)으로 엔코더값 전송

[LM3S818 EVM] Encoder 테스트 - 무선(Bluetooth)으로 엔코더값 전송


LM3S818은 QEI모듈이 있기 때문에 엔코더값을 쉽게 측정 가능하다.
Bluetooth모듈을 이용하여 무선으로 실시간 엔코더값을 출력하는 테스트를 해 보았다.

Encoder 연결
Encoder은 1024펄스(E40S-1024)를 이용하였고 A, B상을 LM3S818의 PC4, PC6에 연결하였다.



Bluetooth 무선모듈/ USB2UART 모듈 연결
[LM3S818 EVM]은 SM-Type모듈로 USB2UART, Bluetooth 모듈 연결이 가능하다.
Bluetooth 모듈 연결



USB2UART 모듈 연결



PC호스트 프로그램
무선으로 전송받은 Encoder값을 PC에 표시하는 프로그램




[LM3S818 EVM]을 이용한 무선 Encoder 데이터 전송 테스트 동영상




Posted by nexp

댓글을 달아 주세요