[ST_MICRO]/STM8 (9) 썸네일형 리스트형 STM8S - 타이머 테스트 (1초 만들기) STM8S - 타이머 테스트 (1초 만들기) 마이컴 다루면서 가장 기본으로 필요한 타이머 인터럽트인데, STM8S에서 타이머 인터럽트를 어떻게 제어 하는지 테스트 해 보았다. STM8S 타이머 구조STM8S는 3개의 타이머가 있다. TIM4 는 8bit 베이직타이머로 일반 시간 계산하는데 사용하면 편리하다. Auto-reload 기능이 있어 한번만 설정하면 계속해서 자동으로 타이머 설정이 가능하다. 동급의 AVR에서는 이 기능이 없어서 인터럽트가 걸릴때 마다 매번 갱신해 주었어야 했었다. 메인클럭이 16Mhz 이므로 프리스케일로 1/128 하면 125khz가 되고 이는 8us 마다 한번씩 카운트 된다.1초를 만드려면 1000ms/8ms -> 125번 만다 한번씩 인터럽트 걸리도록 하면 된다. ST제공 예.. STM8S - PWM테스트 (DC모터 속도 제어) STM8S - PWM테스트 (DC모터 속도 제어) 16비트 타이머 TIM1, TIM2를 이용하여 PWM출력을 각각 4, 3채널씩 출력 가능하다. 그리고 특이사항으로 PD4는 BEEP 핀이고 1, 2 , 4 kHz 로 사운드 출력을 할수 있다. (이 기능을 사용하려면 옵션비트 AFR7 을 리맵해야 한다고 한다.)PC6(HS)/SPI_MOSI [TIM1_CH1] PC7(HS)/SPI_MISO[TIM1_CH2] PC3(HS)/TIM1_CH3/[TIM1_CH1N] PC4(HS)/TIM1_CH4/CLK_CCO/AIN2/[TIM1_CH2N] PD4(HS)/TIM2_CH1/UART1_CK/BEEP PD3(HS)/TIM2_CH2/AIN4/ADC_ETR PA3(HS)/TIM2_CH3/[SPI_NSS] PC5(HS)/SP.. STM8S - ADC 테스트 STM8S - ADC 테스트 STM8S 는 10bit SAR ADC가 내장되어 있고 fADC = 1 to 4 or 6 MHz 로 동작한다. STM8S003F3 의 경우 VREF는 VDD이다. 저렴한 만큼 ADC의 성능은 기대할 수준은 아닌것 같다.LPC812와 같이 ADC없는것 보다는 나은것 같다. STM8S ADC 블록도STM8S003F3에서 ADC관련 핀맵은 아래와 같고 UART를 제외 하면 실제 2채널을 할당 할 수 있다.STM8-SS EVM에서는 ADC가 PD2/AIN3에 연결되어 있다. ADC테스트는 가변저항에 따라 변화되는 ADC값을 LCD에 표시하는 예제를 작성해 보았다. PD2(HS)/AIN3PD3 (HS)/AIN4/TIM2_CH2/ADC_ETR PD5(HS)/AIN5/UART1_TXPD6.. STM8S - SPI 테스트 STM8S - SPI 테스트 STM8S의 SPI는 최대 클럭 스피드 10Mhz로 동작한다. 동급의 8bit MCU인 AVR과 비교하면 조금더 성능이 좋아 보인다.S-Type EVM 보드를 이용하여 SPI인터페이스의 가속도센서를 테스트 해 보았다. STM8S SPI블록도8bit MCU의 전형적이 SPI구조 이고 AVR과 비교 했을때 큰 차이가 없어 보인다. STM8S SPI초기화 함수void SPI0_Init(void){SPI_DeInit();SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_32, SPI_MODE_MASTER, SPI_CLOCKPOLARITY_LOW, SPI_CLOCKPHASE_2EDGE, SPI_DATADIRECTION_2LINES_FULLDUPLE.. STM8S - UART 테스트 STM8S - UART 테스트 SS-Type EVM 보드와 USB2UART를 이용하여 STM8S UART 테스트를 진행했다. STM8S UART 블록도뭐 그리 특별한것은 없고 다른 8bit MCU와 같이 간단한 레지스터 구조로 구성되어 있다. 몇가지 레지스터만 확인하면 될것 같다. STM8S UART 송수신 함수unsigned char U0_GetByte(void){while ((UART1->SR & UART1_FLAG_RXNE) == RESET);return UART1->DR;} void U0_PutByte(unsigned char Data){ UART1->DR = Data; while ((UART1->SR & (u8) UART1_FLAG_TXE) == RESET);} STM8S UART 테스트 예제i.. STM8 EVM MCU성능테스트 - CLK 설정 STM8 EVM MCU성능테스트 - CLK 설정 STM8은 최대 24Mhz로 동작하는 8bit MCU이다. STM8SF의영우 16Mhz가 최대 동작 주파수 이다.속도는 그리 빠르지 않아도 가격대비 성능이 우수한데 간단히 성능 테스트를 해 보았다. STM8 클럭 블록도우선 STM8의 클럭 시스템을 보면 외부 오실레이터나 크리스탈을 연결하거나 내부 16Mhz RC 오실레이터를 이용할 수 있다. 사이즈가 워낙 작아서 내부 클럭 사용을 많이 하게되므로 내부 클럭 기준으로 테스트 할 예정이다. 동작 클럭은 외부로 출력 할 수 있는데 PC4-CLK CCO핀으로 출력해서 확인 할 수 있다. PC4(HS)/TIM1_CH4/CLK_CCO/AIN2/[TIM1_CH2N] STM8 클럭 설정void SystemInit(voi.. STM8S EVM - 개발환경 설정1 (IAR 편) STM8S EVM - 개발환경 설정1 (IAR 편) IAR에서 STM8을 컴파일러를 제공하는데 무료버전에서는 8Kbyte 까지 가능하다. STM8S003F3의 플래시 메모리는 8Kbyte 이므로 그냥 무료로 사용할 수 있다. IAR을 이용하면 기존 코드를 활용할 수 있고 별다른 환경 설정이 필요 없으므로 쉽게 사용해 볼 수 있다. STM8 IAR 사용하기우선 IAR 홈페이지에서 STM8용 컴파일러를 다운받아 설치하여 새로운 프로젝트를 생성 한다.STM8 만 지원하므로 원하는 디바이스를 선택하면 된다. 환경설정기존 IAR에서 사용하던 옵션과 동일하게 사용하면 되고 ST에서 제공하는 드라이버파일의 패스를 잡아 준다. $PROJ_DIR$\$PROJ_DIR$\..\$PROJ_DIR$\..\..\01_drv\$P.. [STM8S-SS EVM] STM8S003F3 초소형 보드 제작 [STM8S-SS EVM] STM8S003F3 초소형 보드 제작 ST사의 16 MHz STM8코어 8-bit MCU 500원대의 저렴한 8bit MCU [STM8-SS EVM]테스트 보드를 제작했다. MSP430, AVR, PIC등의 초소형 보드인 [SS-Type EVM EVMM] 보드와 핀 호환 되도록 제작 하였다.메모리는 8 Kbytes Flash, 128 bytes data EEPROM로 무료 IAR컴파일러에서 개발 가능하다. STM8S003F3 핀맵크기는 QFN타입의 3mm x 3mm로 정말 작다 STM8S-SS 회로도 STM8S 확장 테스트 보드소형 타입의 [SS-Type EVM EVMM] 보드와 핀 호환 되도록 제작해서 다양한 확장보드에서 테스트 가능하다. 거의 동급의 AVR 보드(Mega88.. 이전 1 2 다음