[ST_MICRO]/STM322009. 5. 27. 22:30

[myUSB-Sensor] USB 센서보드제작

[myUSB-Sensor] USB 센서보드제작


USB를 이용하여 자이로, 가속도, 지자계, 압력 센서등의 모듈을 테스트 할수 있는 보드를 제작했다.
1차 프로토 보드로 여러가지로 테스트 할수 있는 커넥터 및 확장 분리 보드로 제작 했다.
보드에는 SPI, I2C, CAN Driver, 485 Driver, SD Card를 USB로 인터페이스 가능하도록 했다.



USB2UART를 연결할 수 있도록 해서 UART로 쉽게 디버깅 및 프로그램 다운도드 가능하다.



코어는 Cortex-M3 STM32로 USB가 있는 제품으로 저렴하고 성능 좋은 STM32F103으로 선택했다.



각종 센서 및 이더넷 모둘(ENC28J60) 연결가능하다.



USB 테스트 동영상


Posted by nexp

댓글을 달아 주세요

  1. 윤보람

    blueybr@naver.com
    죄송한데합니다. 제가 지금 졸업 작품을 만드려는 데 지금 USB센서 보드에 대한 자료가 필요해서 그런데
    USB센서 보드를 만드는 방법좀 설명해주실수 있나요? 무슨 재료가 들어가고 어떠한 순번으로 만들어야
    하는지? 참고로 진동 감지 센서가 진동을 감지하고 그걸 컴퓨터가 인식하게 만드려고 합니다.

    2009.10.29 15:45 [ ADDR : EDIT/ DEL : REPLY ]

[ST_MICRO]/STM322008. 12. 20. 22:30

STM32 USB 테스트 - USB HID이용 이미지파일 전송 테스트

STM32 USB 테스트 - USB HID이용 이미지파일 전송 테스트
STM32 USB HID를 이용하여 PC에서 이미지 파일을 전송하는 예제를 테스트 해 보았다. 표준 HID라 디바이스 드라이버는 필요없다.

STM32 HID 펌웨어 소스

프로그램을 실행시키면 장치관리자에 "USB  휴먼이터페이스 장치"로 인식된다.



MFC를 이용하여 간단히 HID테스트 가능한 프로그램을 작성해 보았다. 이미지(BMP)파일을 읽어서 USB로 전송하는 예제이다.



STM32 COM26T2844 TFT LCD모듈 테스트 동영상
"


Posted by nexp
TAG HID, STM32, USB

댓글을 달아 주세요

  1. 안녕하세요, 우연히 들르게 되었는데 ^^
    usb hid와 mfc통신 관련해서 간단한 조언을 좀 구하고 싶습니다~
    혹 댓글 보시게 되면 답장 부탁드리겠습니다 ^^

    herster79@naver.com

    2009.08.15 16:18 [ ADDR : EDIT/ DEL : REPLY ]
  2. hid driver를 MFC에서 불러와서 사용할 수 있는 부분에 대해 궁금하구~
    일반 hid 장치로 인식하게 할 경우에 디스크립터부분을.. 따로 지정하지 않는건지 음~

    2009.08.15 16:29 [ ADDR : EDIT/ DEL : REPLY ]
  3. ㅋㅋ

    usb_desc 파일을 빼놓고 올리셨네요

    실수로 빼놓은건 아닌거 같은데??

    2010.03.15 17:48 [ ADDR : EDIT/ DEL : REPLY ]
  4. 겨울이가고

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

    2019.08.16 13:41 [ ADDR : EDIT/ DEL : REPLY ]

[ST_MICRO]/STM322008. 12. 20. 10:00

[STM32-64 EVM] ST Cortex-M3 GPIO속도 테스트

[STM32-EVM] ST Cortex-M3 GPIO속도 테스트

사용자 삽입 이미지


RCC_Configuration() 함수에서 PLL을 기본(9, 8Mhz x 9 = 72Mhz)으로 설정후 GPIO토글링
    /* PLLCLK = 8MHz * 9 = 72 MHz */
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
GPIO토글 주기 ->152ns, 3.27Mhz

비트 제어 레지스터로 설정했을때 ->  12Mhz가 나온다.

[다른 MCU속도 측정 결과] 에 비교하면 플래시에서 실행 하고도 상당히 빠른편이다.

플래시 Latency를 1로 줄이면 75ns까지 가능하다.
-> FLASH_SetLatency(FLASH_Latency_1);   


테스트 프로그램
#define PORTA       GPIOA->ODR

int main(void)
{
    //System Init
    SystemInit();

    //LED Init
    Led1Init();
    Led1On();
    Led2Init();   
 
 while (1)
 {
     PORTA ^= BIT15;
 }
}

     28           while (1)
     29           {
     30            PORTA ^= BIT15;
   \   0000003C   C868               LDR      R0,[R1, #+12]
   \   0000003E   80F40040           EOR      R0,R0,#0x8000
   \   00000042   FAE7               B.N      ??main_1
   \                     ??main_0:
   \   00000044   00043000           DC32     0x300400
   \   00000048   ........           DC32     GPIO_InitStructure
   \   0000004C   00080140           DC32     0x40010800
     31           }



비트 토글 했을때 -> 3.27Mhz


 while (1)
 {
  PORTA |= BIT15;
  PORTA &= ~BIT15;  
 }

 

     28           while (1)
     29           {
     30            PORTA |= BIT15;
   \   0000003C   D168               LDR      R1,[R2, #+12]
   \   0000003E   41F40041           ORR      R1,R1,#0x8000
   \   00000042   D160               STR      R1,[R2, #+12]
     31            PORTA &= ~BIT15;  
   \   00000044   D168               LDR      R1,[R2, #+12]
   \   00000046   0140               ANDS     R1,R0,R1
   \   00000048   F7E7               B.N      ??main_1
   \   0000004A   00BF               Nop     
   \                     ??main_0:
   \   0000004C   00043000           DC32     0x300400
   \   00000050   ........           DC32     GPIO_InitStructure
   \   00000054   00080140           DC32     0x40010800
     32           }



Cortex-M3에서 장점이라 내세우는 비트 제어 방식으로 해 보니 12Mhz가 나온다.


 while (1)
 {
  GPIOA->BSRR = BIT0;
  GPIOA->BRR = BIT0;
 }

ASM코드: STR 두개와 BN명령어만 들어가고 있다.


     28           while (1)
     29           {
     30            GPIOA->BSRR = BIT0;
   \                     ??main_1:
   \   00000040   0161               STR      R1,[R0, #+16]
     31            GPIOA->BRR = BIT0;
   \   00000042   4161               STR      R1,[R0, #+20]
   \   00000044   FCE7               B.N      ??main_1
   \   00000046   00BF               Nop     
   \                     ??main_0:
   \   00000048   00043000           DC32     0x300400
   \   0000004C   ........           DC32     GPIO_InitStructure
   \   00000050   00080140           DC32     0x40010800
     32           }




결론적으로 STM32의 순수 GPIO On/Off  타임은 28ns 로 측정된다.

 

 





Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM322008. 12. 18. 14:32

STM32 USB테스트 - USB VCOM이용 테스트 PC에서 LED제어 예제

STM32 USB테스트 - USB VCOM이용 테스트 PC에서 LED제어 예제

STM32의 USB를 이용하여 가상 COM포트를 올리고 PC에서 LED제어하는 예제를 작성해 보았다.
CDC를 올리더라도 속도가 빠르니 상당히 가벼운 느낌이고 응용하여 여러가지 용도로 활용할 수 있을것 같다.

STM32 VCOM 테스트 예제소스


테스트용 VCP디바이스 드라이버 파일

먼저 VCP디바이스 드라이버를 설치한다., 프로그램 다운로드 하여 실행하면 디바이스 드라이버를 찾는데 드라이버를 설치하면



프로그램 다운로드 하여 실행하면 장치관리자에서 COM Port가 인식된것을 확인할 수 있다. 이 포트를 통하여 PC에서 데이터를 전송할 수 있고 이번 예제에서는 PC에서 LED를 제어할 수 있다.



테스트 동영상
Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM322008. 9. 12. 15:07

[STM32 + W5100] Etherent to 2 Port Serial 보드 제작

[STM32 + W5100] Etherent to 2 Port Serial 보드 제작




STM32F103C8 과 W5100을 이용하여 Ethernet To 2 Port Serial모듈을 제작



Ethernet Controller는 W5100 이용



STM32F103 - 48LQFP




Posted by nexp
TAG STM32, W5100

댓글을 달아 주세요