[ST_MICRO]/STM32F0x2016. 5. 30. 03:10

STM32F030 UART2 테스트 오동작

STM32F030 UART2 테스트 오동작



STM32F030 을 이용하여 USART2를 테스트 중에 이상한 점을 발견 했다.

USART1 을 사용 할 때도 문제가 전혀 없었고  STM32F103 , STM32F 테스트 할때도 문제가 없었는데... 잘 사용하던 코드인데 동작을 하지 않는다.


컴파일러 문제가 인지 스텍 크기 문제 인지?


아무튼 USART_Cmd() 함수를 초기화 설정 함수내에서 호출 하면 문제가 없는데... 다른 함수에서 호출 하면 문제가 되고 있다.



void U1_SetBaud(unsigned char baud)

{

         :


        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);


GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_1);

GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_1);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;

// USART1 Tx: PA9; Rx: PA10.

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

    

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

GPIO_Init(GPIOA, &GPIO_InitStructure);    


    

USART_InitStructure.USART_BaudRate = baud_rate;

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

USART_InitStructure.USART_Parity = USART_Parity_No;

USART_InitStructure.USART_StopBits = USART_StopBits_1;

USART_InitStructure.USART_WordLength = USART_WordLength_8b;

USART_Init(USART2, &USART_InitStructure);  


        USART_Cmd(USART2,ENABLE);  

}



기존 코드에서 USART초기화 부분을 수정하니 잘 동작한다.

void U1_Init(unsigned char baud)

{

U1_SetBaud(baud);

//USART_Cmd(USART2, ENABLE);

}




Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM32F0x2015. 9. 6. 02:47

[STM32F030-S EVM] 보드 제작 - STM32F030F4P6TR 테스트

[STM32F030-S EVM] 보드 제작 - STM32F030F4P6TR 테스트




ST의 Cortex-M0 코어중 가장 저렴한 STM32F030F4P6TR 를 테스트 할수 있는 소형 테스트 보드를  s-Type 형태로 제작 했다.

0.5$ 정도에 구매 할수 있으므로 저렴하면서 어느정도 성능이 필요한 프로젝트에 적용하면 좋을것 같다. 특히 기존 STM32 코드를 약간의 수정으로 작성 가능하다. (ST에서 프로모션 하는 가격은 32센트 이다. 32센트 하는 32bit MCU로 선전하고 있다.)


Architecture : ARM Cortex-M0

CPU Speed : 48MHz

Program Memory Size : 16KB

RAM Memory Size : 4KB

No. of Pins : 20

MCU Case Style : TSSOP

No. of I/O's : 15

Embedded Interface Type : I2C, SPI, USART

Supply Voltage Min : 2.4V

Supply Voltage Max : 3.6V

Packaging : Cut Tape

MSL : MSL 3 -168 hours





보드는 기존 핀맵을 유지하면서 가능한 간단하게 제작 했다.





S-Type EVM 형태의 핀맵으로 기존 확장 테스트 보드에서 쉽게 테스트 가능하다.






STM32F030-S EVM 핀맵 회로도







S-Type EVM 의 다앙한 확장 보드에 연결하여 테스트 가능하다. (WiFi 테스트 모듈 연결하여 테스트 중)














Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM32F0x2015. 5. 24. 00:38

[STM32F050 EVM] - STM32F050, STM32F030 보드 제작

[STM32F050 EVM] - STM32F050, STM32F030 보드 제작



Cortex-M0 코어의 소형 패키지 STM32F050K 칩이 저렴하게 판매해서 테스트 보드겸 만들어 보았다.

소형 패키지에 맞는 s-Type EVM형태로 보드를 제작해 여러 확장 보드애서다양한 테스트가 가능하다.

소형이고 저렴한 가격이라 여러 어플리케이션에 적용하면 좋을것 같다. 비슷한 가격대의 NXP사의 LPC1112 와 비교해 볼만 하다.


- Coretex-M0+

- 16k Flash/4k Ram

- 48Mhz

- 27 IO





s-Type EVM형태의 확장 테스트 보드에 연결





Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM32F0x2015. 4. 29. 16:21

STM32F030 I2C, UART 디자인시 주의 사항

STM32F030  I2C, UART 디자인시 주의 사항


STM32F030, STM32F050 시리즈에서 TSSOP타입의 소형 페키지는 기존 STM32F1 시리즈와 비교 했을때 약간의 핀맵 차이가 있다.


대부분의 핀은 거의 유사한데 I2C의 경우 UART와 공유하기 때문에 I2C와 UART를 동시에 사용해야 한다면 UART 핀을 리맵해서 사용해야 하므로 주의가 필요하다.


PA9

USART1_TX,TIM1_CH2,TIM15_BKIN,I2C1_SCL



PA10

USART1_RX,TIM1_CH3,TIM17_BKIN,I2C1_SDA




PA13

SWCLK, IR_OUT



PA14

USART1_TX, USART2_TX, SWCLK



PA15

SPI1_NSS, USART1_RX, USART2_RX, EVENTOUT





STM32F103, STM32F030, STM32F050 UART 차이점

STM32F103의 경우 PA2, PA3이 UART2로 할당되어 있지만 STM32F030C6은 하나의 채널만 있으므로 주의를 요한다. 다만 STM32F0x는 UART1에 리맵해서 사용 할 수 있다.

STM32F030C8의 경우 UART가 2채널이기 때문에 UART2를 사용할 수 있다.


PA2 USART1_TX / USART2_TX / TIM15_CH1 / ADC_IN2

PA3 USART1_RX / USART2_RX / TIM15_CH2 / ADC_IN3



STM32F050의 경우 UART가 한채널만 제공된다.

PA2  TIM2_CH3 / USART1_TX / ADC_IN2

PA3  TIM2_CH4 / USART1_RX / ADC_IN3

Posted by nexp

댓글을 달아 주세요