보드 매니저 URL추가
아두이노 환경설정에서 보드파일 주소를 등록 해 준다.
https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/master/STM32/package_stm_index.json
보드 매니저에서 STM32-Core 패키지를 인스톨 한다.
알맞은 보드 파일을 설정하면 STM32를 아두이노 개발환경해서 사용할 수 있다.
보드 매니저 URL추가
아두이노 환경설정에서 보드파일 주소를 등록 해 준다.
https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/master/STM32/package_stm_index.json
보드 매니저에서 STM32-Core 패키지를 인스톨 한다.
알맞은 보드 파일을 설정하면 STM32를 아두이노 개발환경해서 사용할 수 있다.
STM32 내부클럭 사용하기
보드 단가를 낮추기 위해서는 내부 오실레이터를 이용하면 좋은데 특히 STM32F100 시리즈는 저렴하기 때문에 보드 단가 측면에서 내부 오실레이터를 사용하는것이 유리하다.
다만 디폴트가 PLL클럭의 1/2이다.
따라서 최대 64Mhz로 구동 하므로 주의가 필요 하다. (외부 8Mhz 구동시 최대 72Mhz로 구동가능하다.)
PLLCLK = 8MHz/2 * 16 = 64 MHz
/* PLL entry clock source */
#define RCC_PLLSource_HSI_Div2 ((u32)0x00000000)
#define RCC_PLLSource_HSE_Div1 ((u32)0x00010000)
#define RCC_PLLSource_HSE_Div2 ((u32)0x00030000)
void RCC_Configuration(void)
{
/* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------*/
/* RCC system reset(for debug purpose) */
RCC_DeInit();
/* Disanable HSE */
RCC_HSEConfig(RCC_HSE_Bypass);
/* Wait till HSE is ready */
HSEStartUpStatus = RCC_WaitForHSEStartUp();
//if(HSEStartUpStatus == SUCCESS)
{
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
/* Flash 2 wait state */
FLASH_SetLatency(FLASH_Latency_2);
/* HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1);
/* PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);
/* PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div2);
/* On STICE the PLL output clock is fixed to 72 MHz */
// RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16); //64 Mhz
/* Enable PLL */
RCC_PLLCmd(ENABLE);
/* Wait till PLL is ready */
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
/* Select PLL as system clock source */
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
/* Wait till PLL is used as system clock source */
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
}
Generic Part Number | Package | Operating Frequency (Processor speed) (MHz) | FLASH Size (Prog) (kB) | Internal RAM Size (kB) | 12 or 16-bit timers (IC/OC/PWM) | Serial Interface |
STM32F101T4 | VFQFPN 36 6x6x1-0 | 36 | 16 | 4 | 2x16-bit (8/8/8) | 1xSPI;1xI2C;2xUSART(IrDa, ISO7816) |
STM32F101T6 | VFQFPN 36 6x6x1-0 | 36 | 32 | 6 | 2x16-bit (8/8/8) | 1xSPI;1xI2C;2xUSART(IrDa, ISO7816) |
STM32F101T8 | VFQFPN 36 6x6x1-0 | 36 | 64 | 10 | 3x16-bit (12/12/12) | 1xSPI;1xI2C;2xUSART(IrDa, ISO7816) |
STM32F101TB | VFQFPN 36 6x6x1-0 | 36 | 128 | 16 | 3x16-bit (12/12/12) | 1xSPI;1xI2C;2xUSART(IrDa, ISO7816) |
STM32F103T4 | VFQFPN 36 6x6x1-0 | 72 | 16 | 6 | 3x16-bit (12/12/14) | 1xSPI;1xI2C;2xUSART(IrDa, ISO7816);USB;CAN |
STM32F103T6 | VFQFPN 36 6x6x1-0 | 72 | 32 | 10 | 3x16-bit (12/12/14) | 1xSPI;1xI2C;2xUSART(IrDa, ISO7816);USB;CAN |
STM32F103T8 | VFQFPN 36 6x6x1-0 | 72 | 64 | 20 | 4x16-bit (16/16/18) | 1xSPI;1xI2C;2xUSART(IrDa, ISO7816);USB;CAN |
STM32F103TB | VFQFPN 36 6x6x1-0 | 72 | 128 | 20 | 4x16-bit (16/16/18) | 1xSPI;1xI2C;2xUSART(IrDa, ISO7816);USB;CAN |
댓글을 달아 주세요