[ST_MICRO]/STM32F103-642008. 5. 23. 23:59

[STM32-64 EVM]rev2 보드 제작 - STM32F103 소형 버젼

[STM32-64 EVM]rev2 보드 제작 - STM32F103 소형 버젼

사용자 삽입 이미지


Cotex-M3코어 STM32F103 소형 버젼을 새롭게 만들었다. 요즘 심플함에 매료되어서 가장 간단하게 그리고 소형으로 만들어 두면 쓰일곳이 많아 핀맵을 동일하게 해서 소형으로 만들고 있다.





기존 STM32-64 EVM 보드와 비교해 좀더 심플하고 소형이다.



전용의 Application보드로 FTF LCD, VS1003 MP3, Ethernet(W5100) 등을 테스트 해 볼수 있다.





Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM322008. 3. 9. 00:05

[STM32 EVM]부트로더 제작 ( In-Application Programming with USART )

[STM32 EVM]부트로더 제작 ( In-Application Programming with USART )

사용자 삽입 이미지



JTAG없이 마이컴 테스트 할때 가장 문제점이 플래시 다운로드 이다. ST에서 제공하는 프로그램은 속도도 느리고 라이팅 할때 마다 프로그램을 다시 시작해야 하므로 상당히 불편하다.
간단한 장비와 손쉬운 프로그램을 위해 ST에서 부트로더 방법을 설명하고 있는데 ST홈페이지에
STM32F10xxx in-application programming using the USART 라고 예제 소스를 제공하고 있다.(STM32 IAP)





이 파일을 받아서 약간의 수정으로 시리얼 부트로더를 제작해 보았다.
제공되는 부트로더를  0x800 0000 ~ 0x800 1FFF에 올려 두고 사용자 프로그램을 0x800 2000 이후에 올라 가도록 프로그램을 작성해서 부트로더를 통해 시리얼로 다운로드 하는 방식이다.
사용자 프로그램 작성할때 약간 수정을 해 주어야 하는 단점은 있지만 자주 수정해야 할 필요가 있을때 개발을 상당히 빠르게 진행 할 수 있다



먼저 [STM32 EVM]을 위해 만든 부트로더를 ST의 Flash Loader를 이용하거나 내가 만든 Flash Write로 0x800 0000번지로 다운로드 한다.

STM32 EVM을 위해 수정된 부트로더  (STM32-48, STM32-64 EVM모두 적용가능)

소스코드




다운로드 후 실행하면 시리얼 포트 115200 baudrate로 접속하면 부트로더의 메세지가 출력된다.
이때 부트로더의 진입 STM32 EVM의 SW1을 누른 상태에서 리셋을 누르면 부트로더로 실행되고 시리얼 포트로 메세지를 출력한다. 만약 그냥 리셋하면 사용자 프로그램이 실행된다.



사용자 프로그램은 0x800 2000번지부터 동작 하도록 작성해야 하므로  ld파일을 수정한 예제를 다운 받는다.




그리고 예제에는 system.c파일에 있는 인터럽터 백터테이블의 옵셋도 0x2000번지로 수정 했다.
void NVIC_Configuration(void)
{
#ifdef  VECT_TAB_RAM 
  /* Set the Vector Table base location at 0x20000000 */
  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else  /* VECT_TAB_FLASH  */
  /* Set the Vector Table base location at 0x08000000 */
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);  
#endif
}

시리얼포트로 1을 전송하하고 [파일 보내기]를 이용하여 파일을 전송한다. 이때 프로토콜을 "Ymodem"으로 설정하면 된다.



사용자 프로그램이 다운로드 되면 바로 0x800 2000번지로 실행을 하게 된다.



STM32-48 EVM에도 적용하여 테스트 했는데 부트로더 IAP 로 잘 동작한다.
간단히 수정하고 많은 예제 테스트 할때는 편리하게 사용할 수 있을것 같고 앞으로 이더넷이나 USB로 펌웨어를 업데이트 할 수 있도록 수정 해야 겠다.




참고로 IAR에서는 XCL파일을 수정할 필요가 있다.
// Code memory in FLASH
-DROMSTART=0x8002000
-DROMEND=0x801FFFF

// Data in RAM
-DRAMSTART=0x20000000
-DRAMEND=0x20004FFF

Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM322008. 3. 8. 23:29

STM32 Flash Write제작

STM32 Flash Write제작


ST에사 제공하는 Flash Loader은 편하긴 한데 한번 라이팅하면 프로그램을 종료하고 다시 실행해야 하는 불편함이 있는데 자주 수정해야 할 경우라면 상당히 불편하다. 물론 IAP나 JTAG를 사요하면 되지만 여건이 않되거나 특히 양산용 일 경우 문제가 있는데... "천동이"님께서 올리신 예제를 약간 수정하여 만들어 보았다.



원작의 경우 시리얼 포트 설정이나 Open/Close가 않되 실행중에서 시리얼 포트를 이용하여 테스트 하기가 쉽지 않은데 그래서 약간 수정을 해서 시리얼 포트 설정 할수 있도록 했고 시리얼 포트 Open/Close를 두어 시리얼 디버깅 테스트도 쉽게 할 수 있도록 했다.

"Initialzie" 버튼으로 시리얼 포트를 Open/Close 할 수 있다. 시리얼 포트 테스트 예제의 경우 터미널 창에서 시리얼 포트를 사용하므로 Open/Close 기능이 필요 했다.

원작자의 프로그램
"열심히 만드셔서 소스 공개 해 주어서 감사합니다."



ST제공 프로그램



일단 간단하게 만들어 보려고 약간의 수정을 했는데...
앞으로 다운로드 주소 설정이나 테스트 명령등 몇가지 추가하면 좋은 툴이 되지 않을까 생각한다.
인터페이스를 이쁘게 하기위해서는 C++ Bulder로 개발해야 겠다. VC++은 아무래도 노가다 작업 이다.

소스는 원작자의 동의를 위해 카페에 올리록 하겠다.
Posted by nexp

댓글을 달아 주세요

  1. 비밀댓글입니다

    2009.05.20 13:19 [ ADDR : EDIT/ DEL : REPLY ]

[ST_MICRO]/STM32F103-SM2008. 2. 14. 09:00

[STM32-48 EVM]관련자료

[STM32-48 EVM]관련자료




stm32-48_sch.pdf

STM32 회로도


회로도


Part List (BOM)


LED 테스트예제




내가가진 STM32F101C8이 2500원정도라고 하니 성능대비 가격경쟁력도 있고 저렴하게 적용하기 좋을것 같다.





핀맵




 회로도




*CM2830과 CM2830A는 핀번호가 달라 주의를 요함
현재 CM2830A로 디자인 되어 있고 CM2830을 이용하려면 CM2830을 뒤집어서 45도 뒤틀어서 납땜 해야 함





[STM32-48 EVM]에서 부트모드 설정



USB2UART 보드 커넥터 연결 사진
빨, 파, 검 -> TX, RX, GND 로 연결되어 있음


Posted by nexp
TAG STM32EVM

댓글을 달아 주세요

[ST_MICRO]/STM32F103-SM2007. 12. 29. 17:08

[STM32-48 Exp] Board 관련 자료

[STM32-48 Exp] Board 관련 자료

사용자 삽입 이미지


소형 STM32-48 EVM보드의 테스트 용으로 만든 확장 보드 입니다. STM32의 모든 기능을 테스트 할때 편리하게 사용할 수 있지만 다른 MUC도 적요할 수 있도록 점퍼처리 되어 있습니다.

기능으로 기본 포트 모드 빠져 있고 FND, LED, LCD, IR, VR, 온도센서, MIC입력, Speaker출력, Switch, ISP확장 커넥터(DC모터/엔코더 보드, MP3보드) 테스트 가능합니다.


Posted by nexp

댓글을 달아 주세요