[ST_MICRO]/STM322009. 10. 17. 01:30

USB2CAN 보드 제작

USB2CAN 보드 제작



Main features
● Supports CAN protocol version 2.0 A, B Active
● Bit rates up to 1 Mbit/s
● Supports the Time Triggered Communication option
Transmission
● Three transmit mailboxes
● Configurable transmit priority
● Time Stamp on SOF transmission
Reception
● Two receive FIFOs with three stages
● 14 scalable filter banks/CAN cell - shared between CAN cells
● Identifier list feature
● Configurable FIFO overrun
● Time Stamp on SOF reception
Time Triggered Communication Option
● Disable automatic retransmission mode
● 16-bit free running timer
● Configurable timer resolution
● Time Stamp sent in last two data bytes
Management
● Maskable interrupts
● Software-efficient mailbox mapping at a unique address space
 
 
 
 
STM32 CAN 통신 모듈 블록도
3개의 Mailbox로 구성된 2개의 FIFO가 있어 총 6개의 Mailbox가 있다.



STM32 CAN인터럽트
인터럽트 소스는 여러가지 있지만 가장 많이 사용하게 될 소스는 CAN_RF0R, CAN_RF1R 이다. CAN 데이터가 Mailbox에 정상적으로 저장되면 이벤트를 발생하게 된다. 인터럽트 발생 하면 CAN FIFO에서 데이터를 꺼내오면 된다. 아래 코드를 보면 아주 간단하다는 것을 알 수 있다.




인터럽트 Handler 부분 
[stm32f10x_it.c]
void USB_LP_CAN_RX0_IRQHandler(void)
{
   wIstr = USB_Istr();
  
  if(CAN_GetITStatus(CAN_IT_FMP0) == SET)
  {
    CAN_Receive(CAN_FIFO0, &gRxMessage);
  
   gFlagCanInt = 1;  
  }
}
인터럽트 발생하면CAN_Receive() 함수를 이용해 데이터를 가져오면 된다.



USB와 CAN은 동일한 인터럽트 핸들러를 공유 하므로 고려할 부분이 있는데... 일단 USB, CAN을 동시에 사용하면 문제가 있는것 같다.

메뉴얼을 살펴보니 USB와 CAN은 512-SRAM을 사용하고 있는데... 이를 동시에 사용할 수 없다고 되어 있다. 버퍼를 잘 관리해서 쓰면 불가능 하지는 않겠지만 USB드라이버 쪽을 다시 제작해야 하는 아주 큰 문제가 발생할것 같다...
The USB and CAN share a dedicated 512-byte SRAM memory for data transmission and reception, and so they cannot be used concurrently (the shared SRAM is accessed through CAN and USB exclusively). The USB and CAN can be used in the same application but not at the same time.

물론 CAN포트가 2개 있는 칩으로 하면 문제 없지만 그러면 가격이 상승된다. 저렴한 CAN to USB 장치를 만드는 것이 목적 이었기 때문에 결국 이 문제를 해결하기 위해 다른칩(LM3S5x)으로 해결해야 했다.

USB2CAN 보드(http://nexp.tistory.com/966) 참고
Posted by nexp
TAG Can, STM32

댓글을 달아 주세요

  1. 비밀댓글입니다

    2010.10.17 20:12 [ ADDR : EDIT/ DEL : REPLY ]

[ST_MICRO]/STM322009. 9. 22. 18:25

IAR EWARM 5.4 컴파일러 테스트 - STM32 예제

IAR EWARM 5.4 컴파일러 테스트 - STM32 예제
IAR에서 새로릴리즈 된 EWARM 5.4 32k 무료 버전을 다운로드해서 테스트 해 보았다.
 
왜 이넘들은 업데이트 하면서 호환이 되지 않도록 한것인지... 다음을 위해 정리해 본다.

왜 이넘들은 업데이트 하면서 호환이 되지 않도록 한것인지... 다음을 위해 정리해 본다.
 
EW ARM 5x 버전으로 STM32 예제 컴파일 하기
ST에서 제공하는 STM32 예제 소스 um0427 기준으로 테스트 프로젝트 생성 방법을 정리하려한다.
um4027 압축을 풀면  examples, library, project가 있고 project폴더를 복사해서 프로젝트를 생성하면 된다.
 
기존 예제와 호환을 위해 나는 아래와 같이 폴더를 재 구성했다.(상황에 따라서 폴더 배치는 편하게 정하면 되지만 한번 설정하면 바꾸지 않는것이 좋은것 같다.)
um0427\examples -> ST제공 예제
um0427\FWLib\library -> ST제공 Lib파일
um0427\project -> 프로젝트 파일(이 폴더를 복사해서 원하는 형태로 변경한다. 예. prj1_gpio)
um0427\prj1_gpio -> 수정할 프로젝트 파일. examples에 있는 예제중 테스트하기 위한 파일을 복사해 사용하면 된다.
 
수정된 STM32 프로젝트 파일 및 예제

예) 테스트할 예제가 GPIO일경우
임의로 prj1_gpio 폴더를 생성하고 project를 복사하고 GPIO 폴더에 있는 예제 파일을 prj1_gpio에 덮어 쉬운다.



EW-ARM을 실행하고 프로젝트를 연다.
프로젝트 옵션 수정
기본적인 옵션은 그냥 사용하면 되고 패스를 수정한 폴더 형태로 잡아주면 된다.
예)
$PROJ_DIR$\..\
$PROJ_DIR$\..\..\
$PROJ_DIR$\..\..\FWLib\library\inc


 
출력포멧 설정 -> bin파일로 설정 (STM32 다운로더 사용하기 위해)



컴파일 해 보면 에러가 발생한다. 예제마다 사용하는 LIB파일이 달라서 발생하는 에러이다.
stm32f10x_conf.h 파일에서 LIB 정의를 수정하거나 필요없는 파일을 프로젝트에서 제거하면 된다.
쉬운 방법으로 *마크로 에러가 발생한 FWlib 그룹의 파일을 선택해서 프로젝트에서 제거해 주면 된다.


필요한 Lib 파일만 이용해서 컴파일 한 결과 오류없이 잘 컴파일 된것을 확인 할 수 있다.

Posted by nexp
TAG iar, STM32

댓글을 달아 주세요

[INTERFACE]/ZIGBEE2009. 9. 20. 22:16

Zigbee 이용 3축 자이로, 가속도 센서 데이터 전송


Zigbee 이용 3축 자이로, 가속도 센서 데이터 전송



보드의 MCU는 Cortex-M3 STM32를 사용하였고 3축 가속도, 3축 자이로 센서를 포함하여 Zigbee무선 네트웍을 이용하여 ADC 6채널, PWM 6채널을 무선 제어 가능하다.

Zigbee를 이용한 무선으로 센서 데이터 전송 테스트 동영상



외부 ADC입력으로 VR값 무선 전송 테스트 동영상



멀티모듈 제어 테스트 동영상
Zigbee를 이용하여 다수 보드의 LED를 무선으로 제어하는 테스트.

Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM322009. 7. 10. 10:14

[myUSB rev2] 3축 자이로, 가속도, GPS, 지자계, 압력센서 테스트 보드 제작

[myUSB rev2] 3축 자이로, 가속도, GPS, 지자계, 압력센서 테스트 보드 제작



myUSB 를 좀더 컴펙트 하고 IMU전용의 모듈로 제작했다.
STM32를 이용하여 USB통신으로 데이터 수집하는것은 동일하고 SD, Data Flash로 데이터 저장이 가능하도록 했다.
지원 가능 센서는 3축 자이로 센서, 3축 가속도 센서, 지자계, 압력(고도)센서, GPS를 장착할 수 있다.




가속도3축,  자이로 3축 센서 테스트 동영상



GPS데이터 수집 테스트 동영상
USB를 이용한 가속도 3축, 자이로 3축, 지자계, 압력, 온도, GPS데이터 수집 테스트

Posted by nexp

댓글을 달아 주세요

  1. 비밀댓글입니다

    2010.01.25 10:26 [ ADDR : EDIT/ DEL : REPLY ]
  2. 문경주

    안녕하세요~ 이블로그에서 많은것을 보고 느끼고 있는 사람입니다. 혹시 제작하신 것에 대한 정보를 제가 좀 얻을 수 있을지 해서글남깁니다~저도 stm32F시리즈를 공부하고있는 학생인데요 저도 이것을 한번 제작해보고 싶은데 이것에 대한 소스를 좀 얻을수 있을까요? 가능하시다면 imurmkj@naver.com으로 부탁드리겠습니다!

    2010.09.01 09:28 [ ADDR : EDIT/ DEL : REPLY ]
  3. 비밀댓글입니다

    2010.09.10 17:45 [ ADDR : EDIT/ DEL : REPLY ]
  4. 김연균

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

    2011.07.14 23:42 [ ADDR : EDIT/ DEL : REPLY ]

[ST_MICRO]/STM32F103-Mtype2009. 6. 19. 08:30

[STM32-100 EVM]보드 제작

[STM32-100 EVM]보드 제작





ST사의 Cortex-M3코어를 가진 100핀 STM32F103VRT6 테스트를 위한 보드를 제작 했다. [M-Type EVM] 표준으로 제작해 기존 보드와 호환이 되도록 하였다.






STM32F103 - 100 EVM 회로도





USB2UART로 연결할 수 있어 USB로 펌웨어 다운로드 가능하다.



기존보드와 호환 가능하도록 핀맵을 통일화 해서 제작했다.








STM32F103VBT6 테스트 동영상



[myMUC-STM32-64 EVM] 과의 크기 비교

Posted by nexp

댓글을 달아 주세요