IAR을 이용한 소스를 한번 만들어서 대략 정인 설명을 해보고자 한다.

처음에 discovery 소스를 이용해서 프로젝트를 만들었다. 늘 그렇듯 이것 또한 복병이 숨어 있었다. 내가 discovery 보드가 없기 때문에 discovery 보드에 관련된 소스를 지우는 것도 …

폴더는 EWSTM8, inc, src, STM8L15x_StdPeriph_Driver, STVD 로 구성했다.

원래에서 변경한 것은 STM8L15x_StdPeriph_Driver를 이동한 것이다.

 

이유는 디렉토리를 하나 압축하면 하나의 프로젝트로 완벽하게 관리하기 위해서다.

 

폴더를 설명해 보면

EWSTM8 : IAR 관련 프로젝트 정의 파일이 있다.

Inc : 코딩중인 Header 파일이 들어 있다.

Src : 코딩중인 Source 파일이 들어 있다.

STM8L15x_StdPeriph_Driver : 표준 라이브러리 파일들이 들어 있다.

STVD : ST Visual Develop 관련 프로젝트 정의 파일이 들어 있다.

'공부 > STM8' 카테고리의 다른 글

[STM8] STM8L 해보기 6  (3) 2012.11.12
[STM8] STM8L 해보기 5  (0) 2012.11.12
[STM8] STM8L 해보기 4  (0) 2012.11.12
[STM8] STM8L 해보기 3  (0) 2012.11.12
[STM8] STM8L 해보기 2  (0) 2012.11.12
[STM8] STM8L 해보기 1  (0) 2012.11.12

 

STM8L 해보기 3

개발 환경을 구축 해보아야 하는데 컴파일러거의 IAR을 사용하는것으로 보인다. 그 외에 ST에서 배포하는 sttoolset 을 깔수도 있다.

인스톨 하면 대표적인 프로그램 2개와 예제 소스 매뉴얼 등인 인스톨 된다.

대표적인 프로그램은 아래와 같아.

ST Visual Develop : 프로젝트 만들어 컴파일하고 디버깅을 지원하는 프로그램

 

ST Visual Programmer : MCU의 FLASH를 쓰고 읽는등 양산용으로 사용하는 프로그램

 

사실 ST Visual Develop은 사용해 보지 않았다. IAR 컴파일러가 잘되어 있어서..

ST Visual Programmer은 양산을 하려면 꼭 필요하다.

 

또 하나 꼭 필요 한 것이 STLINK 다. SWIM 인터페이를 통해서 디버깅을 지원하는데 그 놈 참 똘똘하다. 써본 사람을 알겠지만 소스상태에서 디버깅이 가능하고, 운영 중 메모리나 변수의 값 등을 바로 바로 보면서 디버깅 가능하다.

 

해보지는 않았지만 STM32처럼 BOOT에서 시리얼 다운로드도 지원 한다고 되어 있다.

 

준비를 대충한 상태에서 PDF와 기존 소스만 보고 하려니 참 답답했다. 이때 몇 가지 문서를 발견했는데 꼭 필요한 레퍼런스 자료로 추천한다.

기본적은 MCU 설명이 들어 있는 PDF

자세한 설명과 그 소스가 들어있는 설명서 : stm8l15x_stdperiph_lib_um.chm

 

참고로 터치 관련된 설명과 소스가 들어있는 설명서 : stm8_ts_driver_um.chm

 

전부 ST 사이트에서 받았는데 정확하게 어디서 받았는지는 생각이 안 난다.

 

ST-LINK가 있어야 하는데 V2로 선택하길 바란다. 주의 사항은 전압이나 ESD에 좀 약한 것으로 보인다. USB단자의 불량 등 으로 인해 잘 죽는다고 한다. 나도 한 개 죽여 버리고 다시 산 후에 여러 곳에 바리스터를 덕지덕지 붙였다. 죽어도 A/S 불가니..

'공부 > STM8' 카테고리의 다른 글

[STM8] STM8L 해보기 6  (3) 2012.11.12
[STM8] STM8L 해보기 5  (0) 2012.11.12
[STM8] STM8L 해보기 4  (0) 2012.11.12
[STM8] STM8L 해보기 3  (0) 2012.11.12
[STM8] STM8L 해보기 2  (0) 2012.11.12
[STM8] STM8L 해보기 1  (0) 2012.11.12

 

STM8L 해보기 2

이번에 사용하는 MCU 는 STM8L151 이다. 저전력용이라 예를 들어 리모콘용으로 사용 된다.

스펙을 한번 보면 아래와 같다.

  • Operating conditions

– Operating power supply: 1.65 to 3.6 V

(without BOR), 1.8 to 3.6 V (with BOR)

– Temperature range: -40 to 85 or 125 °C

( 전압범위와 온도범위는 기본적으로 산업용 장비에 사용 가능 하다.)

 

  • Low power features

– 5 low power modes: Wait, Low power run, Low power wait, Active-halt with RTC, Halt

– Ultralow leakage per I/0: 50 nA

– Fast wakeup from Halt: 5 μs

( 저전력으로 사용가능하도록 성계 되어 있다.)

 

  • Advanced STM8 core

– Harvard architecture and 3-stage pipeline

– Max freq: 16 MHz, 16 CISC MIPS peak

– Up to 40 external interrupt sources

(성능 좋은 CORE 같아. 사용하다 보면 Atmega128보다 좋아보인다.)

 

  • Reset and supply management

– Low power, ultrasafe BOR reset with 5 selectable thresholds

– Ultralow power POR/PDR

– Programmable voltage detector (PVD)

 

  • Clock management

– 32 kHz and 1-16 MHz crystal oscillators

– Internal 16 MHz factory-trimmed RC

– Internal 38 kHz low consumption RC

– Clock security system

(내부 발징을 이용해서 사용중인데 생각보다 좋다.)

  • Low power RTC

– BCD calendar with alarm interrupt

– Digital calibration with +/- 0.5 ppm accuracy

– LSE security system

– Auto-wakeup from Halt w/ periodic interrupt

 

  • Memories

– Up to 8 Kbytes of Flash program memory plus 256 bytes of data EEPROM with ECC

– Flexible write/read protection modes

– 1 Kbyte of RAM

  • DMA

– 4 channels supporting ADC, SPI, I2C,

USART, timers

– 1 channel for memory-to-memory

 

  • 12-bit ADC up to 1 Msps/28 channels

– Temp. sensor and internal ref. voltage

 

  • 2 ultralow power comparators

– 1 with fixed threshold and 1 rail to rail

– Wakeup capability

 

  • Timers

– Two 16-bit timers with 2 channels (IC, OC,PWM), quadrature encoder (TIM2, TIM3)

– One 8-bit timer with 7-bit prescaler (TIM4)

– 1 Window and 1 independent watchdog

– Beeper timer with 1, 2 or 4 kHz frequencies

 

  • Communication interfaces

– One synchronous serial interface (SPI)

– Fast I2C 400 kHz

– One USART

 

  • Up to 41 I/Os, all mappable on interrupt vectors

 

  • Up to 20 capacitive sensing channels

– supporting touchkey, proximity touch, linear touch, and rotary touch sensors

 

  • Development support

– Fast on-chip programming and nonintrusive debugging with SWIM

– Bootloader using USART

 

  • 96-bit unique ID

(IC 별로 고유 ID가 있어서 재미있게 사용 가능 하다.)

세그먼트 LCD나 터치 등 다양한 기능이 있는다. 참 저렴한 놈이 별 기능이 다 들어 있다.

'공부 > STM8' 카테고리의 다른 글

[STM8] STM8L 해보기 6  (3) 2012.11.12
[STM8] STM8L 해보기 5  (0) 2012.11.12
[STM8] STM8L 해보기 4  (0) 2012.11.12
[STM8] STM8L 해보기 3  (0) 2012.11.12
[STM8] STM8L 해보기 2  (0) 2012.11.12
[STM8] STM8L 해보기 1  (0) 2012.11.12

 

STM8L 해보기 1

저가의 개발이 편리하고 사이즈가 작은 MCU를 찾았다.

물론 해당하는 MCU 생각보다 많은 건 사실이다. 특히 저가로만 찾을 경우 생각보다 많다.

그런데 개발이 편리하다는 부분에서 많이 문제가 된다.

예를 들어 시리얼로 메시지를 보면서 개발하거나 Flash 등을 구울 때 복잡 하기도 하다.

이런 MCU 개발 할 때 마다 생각하는 것이 컴파일러에서 소스레벨 디버깅을 하면서 개발 하면 얼마나 좋을까 하는 것이다.

내가 MCU를 만지기 시작한 초창기에 많은 MCU들이 있었다. 그 당시 가지고 놀던 MCU는 PIC, 8051, 68xx 등인데 주로 어셈으로 프로그래밍 하고 모든 시물레이션과 디버깅은 머리로 해야 했다.

물론 좋은 점도 있다. MCU의 모든 레지스터를 마스터 하고, 머리가 훨씬 잘 돌아가게 만들어 준다.

하지만 요즘은 제조사가 주는 라이브러리에 컴파일러의 성능만 믿고 개발 하는 경우도 있다.

이번에 STM8L을 쓰게 되었다. STM8L 또한 라이브러리, 컴파일러, STLINK, 만 믿고 개발을 시작하게 되었다.

이 선택은 아직까지 잘된 것 같다는 생각을 하고 있다.

 

레퍼런스 메뉴얼 입니다.  

DM00027749.pdf

'공부 > STM8' 카테고리의 다른 글

[STM8] STM8L 해보기 6  (3) 2012.11.12
[STM8] STM8L 해보기 5  (0) 2012.11.12
[STM8] STM8L 해보기 4  (0) 2012.11.12
[STM8] STM8L 해보기 3  (0) 2012.11.12
[STM8] STM8L 해보기 2  (0) 2012.11.12
[STM8] STM8L 해보기 1  (0) 2012.11.12

+ Recent posts