[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. 4. 29. 12:26

[ STM32 ] Timer 테스트 - 1초 만들기

[ STM32 ] Timer 테스트 - 1초 만들기
 
타이머 인터럽트로 1ms만든 후 1초를 만들어 보자
STM32는 16비트 타이머를 가지고 있고 ... 정리를 위해 코드를 작성

//----------------------------------------------------------------------------- 
// Timer2 Interrupt Handler

void Timer2IntrHandler(void)
{
 Led1Toggle();
 Timer2_Counter++;
// SetTimer2(value);
}
//-----------------------------------------------------------------------------
 
//-----------------------------------------------------------------------------
//Timer2 Init

void Timer2Init(void)
{
 NVIC_InitTypeDef NVIC_InitStructure;
 TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
 /* TIM2 clock enable */
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 
 /* Enable the TIM2 gloabal Interrupt */
 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure); 
 
  /* ---------------------------------------------------------------
    TIM2 Configuration: Output Compare Timing Mode:
    TIM2CLK = 36 MHz, Prescaler = 4, TIM2 counter clock = 7.2 MHz
    CC1 update rate = TIM2 counter clock / CCR1_Val = 146.48 Hz
    CC2 update rate = TIM2 counter clock / CCR2_Val = 219.7 Hz
    CC3 update rate = TIM2 counter clock / CCR3_Val = 439.4 Hz
    CC4 update rate = TIM2 counter clock / CCR4_Val =  878.9 Hz
  --------------------------------------------------------------- */
 
 /* Time base configuration */
 TIM_TimeBaseStructure.TIM_Period = 7200;
 TIM_TimeBaseStructure.TIM_Prescaler = 0;
 TIM_TimeBaseStructure.TIM_ClockDivision = 0;
 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
 
 /* Prescaler configuration */
 TIM_PrescalerConfig(TIM2, 4, TIM_PSCReloadMode_Immediate);
 
 /* TIM IT enable */
 TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
 
 /* TIM2 enable counter */
 TIM_Cmd(TIM2, ENABLE); 
}
//-----------------------------------------------------------------------------

간단히 만든 MCU 타이머 계산기로 계산 한 결과
    TIM2CLK = 36 MHz, Prescaler = 4, TIM2 counter clock = 7.2 MHz

 



main에서 1초마다 LED 점등..
 
 if(Timer2_Counter>1000)
 {
  Led2Toggle();
  Timer2_Counter = 0;
 }
 
STM32 1Hz Test

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]/STM322008. 3. 7. 11:21

ST Cortex-M3 STM32 관련자료

ST Cortex-M3 STM32 관련자료

Application Note
Reference Description Version Date Size File File
AN2606 STM32F101xx and STM32F103xx system memory boot mode 2 Jan-2008   13801.pdf  
AN2548 Using the STM32F101xx and STM32F103xx DMA controller 2 Dec-2007   13529.pdf an2548.zip
AN2639 Soldering recommendations and package information for lead-free microcontrollers 1 Oct-2007   14016.pdf  
AN2569 STM32F10xxx GPIO application examples 2 Oct-2007   13629.pdf  
AN2563 STM32F10xxx debug application examples 2 Oct-2007   13606.pdf  
AN2585 STM32F101xx and STM32F103xx core and system peripherals application examples: covers NVIC, SysTick, DMA, RCC, EXTI, PWR, BKP, RTC, Flash, IWDG and WWDG peripherals. 2 Oct-2007   13671.pdf  
AN2629 STM32F101xx and STM32F103xx low-power modes 1 Oct-2007   13922.pdf an2629.zip
AN2557 STM32F10xxx in-application programming using the USART 2 Oct-2007   13588.pdf an2557.zip
AN2594 EEPROM emulation in STM32F101xx and STM32F103xx microcontrollers 1 Oct-2007   13718.pdf an2594.zip
AN2592 How to achieve 32-bit timer resolution using the link system in STM32F101xx and STM32F103xx microcontrollers 1 Aug-2007   13711.pdf an2592.zip
AN2604 STM32F101xx and STM32F103xx RTC calibration 1 Aug-2007   13789.pdf  
AN2598 Smartcard interface with the STM32F101xx and STM32F103xx 1 Aug-2007   13750.pdf an2598.zip
AN2586 STM32F10xxx hardware development: getting started 1 Jul-2007   13675.pdf  
AN2576 STM32F10xxx SPI application examples 1 Jul-2007   13649.pdf  
AN2570 STM32F10xxx I²C application examples 1 Jun-2007   13630.pdf  
AN2580 STM32F10xxx TIM1 application examples 1 Jun-2007   13654.pdf  
AN2581 STM32F10xxx TIM application examples 1 Jun-2007   13658.pdf  
AN2582 STM32F10xxx USART application examples 1 Jun-2007   13661.pdf  
AN2558 STM32F10xxx ADC application examples 1 Jun-2007   13592.pdf  
AN2561 STM32F10xxx CAN application examples 1 Jun-2007   13603.pdf  
 
Brochure / Flyer
Reference Description Version Date Size File File
BRSTM320807 STM32 MCU family - 32-bit Flash microcontrollers powered by ARM® Cortex™-M3   Oct-2007 416 KB 1190813173.pdf  
SGMICRO0607 8, 16 and 32-bit microcontrollers - Product and tool selection guide   Jun-2007   sgmicro0607.pdf  
 
Certification
Reference Description Version Date Size File File
  VDE Certification for STM32 Class B   Nov-2007 1342 KB 1196432924.pdf  
 
Datasheet
Reference Description Version Date Size File File
STM32F101x
Product Catalog P/N's :
STM32F101T6 STM32F101CB STM32F101R6 STM32F101R8 STM32F101RB STM32F101C6 STM32F101C8 STM32F101T8 STM32F101V8 STM32F101VB
Access line, Advanced ARM-based 32-bit MCU with Flash, 6 timers, ADC, 7 communication interfaces 4 Nov-2007   13586.pdf  
STM32F103x
Product Catalog P/N's :
STM32F103VB STM32F103RB STM32F103T6 STM32F103T8 STM32F103V8 STM32F103R6 STM32F103R8 STM32F103CB STM32F103C6 STM32F103C8
Performance line, Advanced ARM-based 32-bit MCU with Flash, USB, CAN, 7 timers, 2 ADCs, 9 communication interfaces 4 Nov-2007   13587.pdf  
 
Firmware
Reference Description Version Date Size File File
STM32F10x ARM-based 32-bit MCU STM32F101xx and STM32F103xx firmware library 1.0 Oct-2007   um0427.zip 13475.pdf
STM3210B-EVAL STM3210B-EVAL demonstration software 1.1 Nov-2007   um0435.zip 13534.pdf
STM32F10x STM32F101xx and STM32F103xx Flash loader demonstrator 1.0 Oct-2007   um0462.zip 13916.pdf
STM32F10x STM32F10xxx USB developer kit 1.0 Oct-2007   um0424.zip 13465.pdf
 
Press Release
Reference Description Version Date Size File File
  Broad Range of Low-Cost, Third-Party Starter Kits for STM32 Microcontroller Available from STMicroelectronics   Oct-2007   p2217.htm  
  Development Tool from STMicroelectronics Opens Performance Monitoring Window on New STM32 ARM® Cortex™-M3 core-based Microcontrollers   Nov-2007   p2219.htm  
  STMicroelectronics Introduces Free Self-Test Software for STM32 MCU to Simplify End-Product Safety Compliance   Nov-2007   p2230.htm  
  STMicroelectronics Reshapes the MCU Market with New 32-Bit Family Powered by ARM Cortex-M3 Core   Jun-2007   p2184.htm  
 
Programming Manual
Reference Description Version Date Size File File
  STM32F10xxx Flash programming 2 Oct-2007   13259.pdf  
 
Quality - Product Documentation
Reference Description Version Date Size File File
PPM Microcontroller PPM 2007 Q3 1.0 Oct-2007   customer_ppm.pdf  
Reliability Reliability Monitoring 2007 Q2 1.0 Sep-2007   reliability_monitoring.pdf  
STM32F10x STM32F10x Qualification Certificate 1.0 Dec-2007   mcd_qa07-003_qual_certif.pdf  
 
Reference Manual
Reference Description Version Date Size File File
RM0008 STM32F101xx and STM32F103xx advanced ARM-based 32-bit MCUs 3 Feb-2008   13902.pdf  
 
Software - PC
Reference Description Version Date Size File File
DfuSe DfuSe USB Device Firmware Upgrade STMicroelectronics Extension:
Contains the Demo GUI, Debugging GUI, all sources files and the protocol layer
2.2 Jan-2008   um0412.zip 13379.pdf
 
Technical Note
Reference Description Version Date Size File File
  Overview of the STM32F103xx ACIM and PMSM motor control software libraries 1 Feb-2008   14380.pdf  
 
User Manual
Reference Description Version Date Size File File
UM0412 DfuSe USB Device Firmware Upgrade STMicroelectronics Extension 2 Jan-2008   13379.pdf um0412.zip
UM0486 STM3210B-MCKIT motor control starter kit 1 Dec-2007   14209.pdf  
UM0435 STM3210B-EVAL demonstration software 4 Dec-2007   13534.pdf um0435.zip
UM0462 STM32F101xx and STM32F103xx Flash loader demonstrator 1 Oct-2007   13916.pdf um0462.zip
UM0424 STM32F10xxx USB developer kit 2 Oct-2007   13465.pdf um0424.zip
UM0427 ARM®-based 32-bit MCU STM32F101xx and STM32F103xx Firmware Library 2 Oct-2007   13475.pdf um0427.zip
 
 
DEVELOPMENT TOOLS - Technical Library
 
Data Brief
Reference Description Version Date Size File File
  Product overview for IAR's EWARM development environment for STR7/STR9 and Advanced development kit for STR9 with trace support 1.0 Jun-2007   12669.pdf  
  Product overview for Raisonance's fun, low-cost kit for STM32F10xB. 1.0 Oct-2007   13942.pdf  
  Product overview for Raisonance's professional development tool bundles STX-PRO with RLink for STR7 and STR9, and STR9 Professional developers kit with Signum JTAGjet for trace support 1.0 Jun-2007   12463.pdf  
Hitex starter kits for ARM core-based MCUs
Product Catalog P/N's :
STM3210B-SK/HIT STR730-SK/HIT STR750-SK/HIT STR710-SK/HIT STR91X-SK/HIT
Product overview for Hitex starter kits for STM32F10xB, STR91xF, STR75xF, STR73xF and STR71xF. 4.0 Oct-2007   11968.pdf  
IAR KickStart kits for ARM core-based MCUs
Product Catalog P/N's :
STM3210B-SK/IAR STR730-SK/IAR STR731-SK/IAR STR750-SK/IAR STR711-SK/IAR STR712-SK/IAR STR91X-SK/IAR
Product overview for IAR starter kits for STM32F10xB, STR91xF, STR75xF, STR73xF and STR71xF 5.0 Oct-2006   11310.pdf  
Keil starter kits for ARM core-based MCUs
Product Catalog P/N's :
STM3210B-SK/KEIL STR750-SK/KEIL STR91X-SK/KEI
Product overview for Keil starter kits for STM32F10xB, STR91xF, STR75xF, STR73xF and STR71xF 3.0 Oct-2006   12425.pdf  
Raisonance REva starter kits for ARM core-based microcontrollers
Product Catalog P/N's :
STM32103B-D/RAIS STM3210B-SK/RAIS STR730-D/RAIS STR750-D/RAIS STR730-SK/RAIS STR750-SK/RAIS STR71X-SK/RAIS STR912-D/RAIS STR91X-SK/RAI
Product overview for Raisonance starter kits for STM32F10xB, STR91xF, STR75xF, STR73xF and STR71xF 6.0 Oct-2006   11543.pdf  
STM3210B-PFSTICK
Product Catalog P/N's :
STM3210B-PFSTICK
Product overview for Hitex low-cost, starter kit for evaluation of STM3210xB performance and starting application development 1 Oct-2007   stm3210b-pfstick.pdf  
 
User Manual
Reference Description Version Date Size File File
STM3210B-EVAL Description of STM32F10xB evaluation board and implemented features. Includes archived board schematics and files for production. 4.0 Oct-2007   13472.pdf um0426.zip
STR750-MCKIT - STM3210B-MCKIT STM3210B-MCKIT and STR750-MCKIT 3-phase motor control power stage 2 Dec-2007   13031.pdf  
STR750-MCKIT, STM3210B-MCKIT JTAG opto-isolation board 1 Feb-2007   13030.pdf  
Posted by nexp
TAG STM32

댓글을 달아 주세요