- 하드웨어 및 소프트웨어 개발 도구 선택
- STM8S103F3P6 개발
- STM8S103F3P6 프로그래머
- STM8S103F3P6 IDE 및 컴파일러
- Sduino를 사용하는 Arduino와 STM8S
- 필요한 소프트웨어 다운로드
- STVD 및 Cosmic C 컴파일러 설정
- STM8S103F3P6 용 표준 주변기기 라이브러리
- 첫 번째 프로그램 컴파일
- ST-Link V2를 사용하여 STVD에서 STM8S 개발 보드로 코드 업로드
STM8은 일련의 8 비트 마이크로 컨트롤러 (MCU) 에서 ST 마이크로 일렉트로닉스, 비용에 민감한 제품 개발을위한 마이크로 컨트롤러의 일반적인 선택이되고있다. 이전에 AVR, PIC 및 기타 몇 가지 ARM Cortex 마이크로 컨트롤러로 작업했지만 일부 애플리케이션에서는 분명히 과도하게 사용되어 BOM 비용이 상당히 증가합니다. 최근에 저렴한 중국 제품 몇 개를 분해 한 후 대부분의 제품에 STM8 마이크로 컨트롤러가 내장 되어 있음을 발견 했습니다. IC는 저렴할뿐만 아니라 다양한 기능과 옵션으로 가득 차있어 다양한 애플리케이션에 사용하기에 적합합니다. 예를 들어 STM8S 일련의 컨트롤러 (이 튜토리얼 시리즈에서 배울 것임)는 범용 컨트롤러이지만 이러한 컨트롤러의 애플리케이션을 확장하는 저전력 배터리 구동 설계를위한 STM8A 및 자동차 설계 용 STM8L 과 같은 다른 시리즈가 있습니다.
이 튜토리얼 시리즈에서는 STM8S 마이크로 컨트롤러, 특히 STM8S103F3P6 을 프로그래밍하는 방법을 배웁니다.. 이 특정 부품 번호로 시작하는 이유는 가격 대비 성능 때문입니다. 처럼!! 0.25 $ (약 20 루피)에 16Mhz 내부 발진기, 8kB 플래시, 10 비트 ADC, UART, SPI 및 I2C를 갖춘 8 비트 마이크로 컨트롤러를 구입했습니다. 호기심이없는 사람은 누구입니까? 또한 STM8S103F3P6은 널리 사용되기 때문에 초보자로서 튜토리얼 외부에서 도움이 필요한 경우 충분한 지원을받을 수 있습니다. 이것부터 시작하여 우리는 PIC 프로그래밍 튜토리얼과 유사한 일련의 튜토리얼을 갖게 될 것입니다. 여기서 우리는이 컨트롤러를 기본 깜박임에서 다양한 디스플레이 및 센서 인터페이스에 이르기까지 프로그래밍하는 방법을 배울 것입니다. 32 비트 STM 마이크로 컨트롤러에 관심이있는 경우 STM32F103C8 튜토리얼 및 프로젝트를 확인할 수도 있습니다.
하드웨어 및 소프트웨어 개발 도구 선택
이제 마이크로 컨트롤러를 제거 했으므로 학습 프로세스를 시작하기 위해 하드웨어 및 소프트웨어 개발 도구를 선택해야합니다. 많은 옵션이 있습니다. 여기서는 누구나 무료로 사용할 수 있고 쉽게 사용할 수있는 옵션을 선택했습니다.
STM8S103F3P6 개발
ST의 8 비트 마이크로 컨트롤러의 공식 개발 보드는 STM8 디스커버리 키트라고 불리지 만 현지 공급 업체 나 온라인 상점에서 쉽게 찾을 수있는 또 다른 저가형 개발 보드를 사용할 것입니다. 이 튜토리얼에서 사용할 STM8S103F3P6 개발 보드 의 이미지 는 다음과 같습니다.
보드는 개발을 시작하는 데 필요한 최소한의 구성 요소로만 구성됩니다. 브레드 보드 친화적이며 컴팩트 한 애플리케이션에 적합합니다. 개발 기판의 내부 회로도는 아래와 같습니다.
자세히 살펴보면 STM8S103F3p6 컨트롤러를 제외하고 컨트롤러를 재설정 할 수있는 재설정 버튼이 있습니다. PB5 (포트 B 핀 5)에 연결된 전원 LED 및 테스트 LED와 컨트롤러 용으로 5V를 USB 포트에서 3.3V로 변환하는 AMS1117 전압 조정기. 컨트롤러는 필요한 경우 5V에서 작동하도록 만들 수도 있습니다. 컨트롤러의 다른 부분은 아래에 표시되어 있습니다. 또한 마이크로 컨트롤러를 쉽게 프로그래밍하고 디버깅하는 데 사용할 수있는 3.3V, GND, SWIM 및 NRST라는 4 개의 프로그래머 핀이 있습니다.
STM8S103F3P6 프로그래머
컨트롤러 프로그래밍을 위해 저렴하고 온라인에서 쉽게 구할 수 있는 ST-LINK v2 를 사용합니다. 이 ST-LINK v2 보드에는 다양한 변형 (금속, 플라스틱, 금색, 분홍색, 베어 보드)이 있으며 모두 동일한 용도로 사용됩니다. 내 것은 아래에 나와 있지만 모든 유형의 ST-LINK 프로그래머를 사용할 수 있으며 핀아웃이 다르므로 케이스의 핀아웃을 올바르게 읽으십시오. 심각한 디버깅에 사용할 수있는 ST-Microelectronics 자체의 ST-LINK V3도 있습니다. 조금 비싸기 때문에 지금은 사용하지 않을 것이며, 미래를 위해 저장할 것입니다.
STM8S103F3P6 IDE 및 컴파일러
선택할 수있는 옵션이 많기 때문에 STM8S103F3P6에 적합한 IDE 및 컴파일러를 선택하는 것은 어렵습니다. STM8 마이크로 컨트롤러에 사용할 수있는 공식 도구는 아래 이미지에 나와 있습니다.
구성 측면에서 우리는 STM8CubeMx를 가지고 있으며 소프트웨어를 사용해 보았고 완전히 실망했습니다. STM32Cube 와 달리 STM8Cube 는 코드를 자동 생성 할 수 없습니다. 시각화 목적으로 만 핀 매핑을 생성 할 수 있으며 한 컨트롤러에서 다른 컨트롤러로 코드를 이식하는 경우 유용 할 수 있습니다. 그 외에는 사용하지 않을 것입니다. 따라서이 튜토리얼 시리즈에서는 이것을 사용하지 않을 것입니다.
IDE 및 컴파일러의 경우 선택할 수있는 많은 옵션이 있습니다. IDE의 상위 두 가지 옵션은 IAR 워크 벤치 와 ST Visual Develop (STVD)입니다. 두 소프트웨어 모두 90 년대의 느낌이 들지만 잠시 후 STVD가 완전히 무료이기 때문에 좋은 선택이라는 것을 알았습니다. 마찬가지로 컴파일러의 경우 완전히 무료이기 때문에 Cosmic C Compiler 를 사용할 것입니다. 이 IDE와 컴파일러를 선택하는 또 다른 이유는 일단 환경에 익숙해지면 ST의 다른 8 비트 마이크로 컨트롤러를 많은 노력없이 쉽게 사용할 수 있어야한다는 것입니다. 이 기사의 뒷부분에서 Cosmic C 컴파일러를 사용하여 STVD를 설치하고 설정하는 방법에 대해 설명합니다.
Flashing의 경우 STVP (ST Visual Programmer)를 사용합니다.이 도구는 STVD를 설치할 때 자동으로 설치됩니다. IDE 자체에 통합되어 신속하게 프로그래밍하고 디버깅 할 수 있습니다. 최종 소프트웨어는 STM8 모니터링 소프트웨어 인 STMStudio 입니다. 이 소프트웨어는 STM8의 실시간 디버깅에 도움이 될 수 있으며 변수 값 모니터링, 그래프 플로팅 등과 같은 멋진 기능이 있습니다.이 소프트웨어로 충분히 실험하지 않았습니다. 그리고 적어도 처음 몇 개의 자습서에서는 큰 디버깅 요구 사항이 필요하지 않으므로이 소프트웨어를 사용하지 않을 것입니다.
STM8S 표준 주변기기 라이브러리: ST Microelectronics는 STM8S 마이크로 컨트롤러를위한 코드 개발을보다 쉽게 해주는 라이브러리 세트를 제공합니다.이 라이브러리를“ 표준 주변기기 라이브러리 ”또는 간단히 SPL 이라고합니다. 라이브러리는 우리가 사용할 STM8S103F3P6 컨트롤러뿐만 아니라 STM8S / A 8 비트 제품군의 가능한 모든 컨트롤러를 염두에두고 작성된다는 점을 제외하면 멋집니다. 따라서 작동하도록 여기저기서 약간의 조정을해야합니다 (나중에 공유하겠습니다). 그러나 여전히 개발을 매우 빠르게 할 수 있기 때문에 시도해 볼 가치가 있다고 믿습니다. 따라서 튜토리얼에서 사용할 것입니다.
라이브러리를 사용하지 않으려면 컨트롤러의 레지스터에 직접 액세스하거나 베어 메탈 어셈블리 프로그래밍을 수행해야합니다. 배우고 사용할 시간이 있다면 두 가지 모두 재미 있습니다. 내 생각은 SPL 라이브러리가 잘 작동하는 모든 곳에서 사용하고 필요한 경우 레지스터 및 어셈블리 수준에서 작업하는 것입니다. 바퀴를 재발 명하지 않도록 노력합시다!
Sduino를 사용하는 Arduino와 STM8S
Arduino IDE 지원 STM8S를 언급하지 않으면 소프트웨어 옵션에 대한 논의가 완료되지 않습니다. 예, 동일한 STM8S103F3P6 보드는 Michael Mayer 덕분에 Sduino를 사용하여 Arduino IDE에서 직접 프로그래밍 할 수 있습니다. 그러나 프로젝트는 아직 개발 단계에 있으며 완전한 플랫폼 지원을 제공하기 위해 Sduino에 대한 시간과 커뮤니티 지원이 필요할 것입니다. 그러나 Sduino를 사용하고 몇 분 만에 나는 그것을 좋아하기 시작했고 따라서 Arduino로 STM8S 마이크로 컨트롤러를 프로그래밍하는 방법에 대한 별도의 기사를 작성하기로 결정했습니다. 준비가되면 여기에 기사를 링크하겠습니다. 이 기사에서는 STM8S 마이크로 컨트롤러를 프로그래밍하기 위해 Arduino IDE를 사용해야하는 이유와 이유를 설명합니다.
그래서, 이것들은 소프트웨어 및 하드웨어에 대한 나의 선택입니다. 다른 소프트웨어가 더 나은 선택이었고 그 이유가 있다고 생각되면 의견 섹션에서 알려주십시오. 다른 옵션도 살펴보고 싶습니다.
필요한 소프트웨어 다운로드
이제이 튜토리얼에 사용할 소프트웨어를 결정 했으므로 다음 링크를 사용하여 다운로드 해 보겠습니다. 모든 소프트웨어는 무료로 다운로드하여 사용할 수 있으며 아직 등록하지 않았다면 ST 및 Cosmic에 무료 계정을 등록해야합니다.
- ST Visual Develop (STVD)
- Cosmic C 컴파일러
- 표준 주변 라이브러리
- STM8Cube Mx (옵션)
- STM8 용 STMStudio (옵션)
STVD 및 Cosmic C 컴파일러 설정
두 소프트웨어를 모두 다운로드 한 후 화면의 지시에 따라 설치하면됩니다. 나중에 혼동을 피하기 위해 기본 디렉토리에 두는 것이 좋습니다. STVD IDE는 아무런 노력없이 설치됩니다. Cosmic C 컴파일러의 경우 설치 과정에서 무료 라이선스 키를 받아야합니다. E-mail ID와 함께 회사 정보를 제공하기 만하면됩니다. 학생 인 경우에는이를 언급하십시오. 라이센스 키를 얻는 프로세스는 즉시 자동으로 이루어집니다. 설치 지침에 하루나 이틀이 걸릴 수 있다고 나와 있지만 제출 한 즉시 내 이메일 ID로 라이센스 키를 자동으로 받았습니다. 스팸을 확인하십시오. 내 확인 이메일은 아래와 같습니다.
이메일 지침에 따라 license.lic 파일을 복사하여 설치 폴더의 "license"하위 폴더에 붙여 넣으십시오. 저에게 경로는 “C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License” 입니다. 아래 표시된 위치에 파일을 붙여 넣기 만하면됩니다.
STM8S103F3P6 용 표준 주변기기 라이브러리
앞서 말했듯이 ST Microelectronics는 모든 8 비트 STM8S / A 마이크로 컨트롤러에 사용할 수있는 SPL이라는 라이브러리를 제공합니다. ST Microelectronics에서 원본 SPL을 다운로드하고 필요한 사항을 변경하거나 STM8S103F3P6 SPL 라이브러리를 다운로드하여 그대로 사용할 수 있습니다. 나중에 추천합니다.
ST Microelectronics의 원본 SPL
STM8S103F3P6 SPL
컨트롤러를 프로그래밍 할 때 매우 편리한 SPL 사용자 매뉴얼도 다운로드하십시오.
첫 번째 프로그램 컴파일
이제 모든 것이 준비되었으므로 첫 번째 프로그램을 컴파일하여 IDE, 컴파일러 및 라이브러리가 모두 제대로 작동하는지 확인해 보겠습니다. 자세한 지침은 페이지 하단의 비디오를 확인할 수도 있습니다.
먼저 STVD를 열고 File-> WorkSpace를 선택하고 팝업에서 "New Workspace"를 선택하고 프로그램을 저장할 프로젝트 이름과 경로를 입력합니다. 내 프로그램의 이름을 BareMinimum으로 지정하고 데스크탑의 폴더에 저장합니다. 확인을 클릭하면 아래와 같은 새 프로젝트 대화 상자가 나타납니다.
프로젝트 이름을 다시 베어 최소화로 지정하고 도구 체인에서 STM8 Cosmic 컴파일러가 설치된 경로에 대한 도구 체인 루트를 지정해야합니다. 기본 경로 주소는 “C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8” 입니다. 그런 다음 확인을 클릭하면 "MCU 선택"창이 나타납니다.
STM8S103F3P를 검색하여 선택하고 확인을 클릭하십시오. 그러면 STVD에서 STM8S103F3P에 대한 새 프로젝트가 열립니다. 완료되면 창이 다음과 같이 보일 것입니다.
"소스 파일"을 마우스 오른쪽 버튼으로 클릭하고 "폴더에 파일 추가"를 선택하여 SPL 라이브러리의 모든 c 파일을 포함합니다. 마찬가지로 모든 헤더 파일을 포함하려면 파일 포함을 마우스 오른쪽 버튼으로 클릭합니다. 질문이 있으시면 아래 비디오를 참조하십시오. 모든 파일이 추가되면 Build-> rebuil d all을 클릭 한 다음 Compile을 클릭 하여 컴파일러와 SPL이 예상대로 작동하는지 확인합니다. 모든 것이 잘되면 빌드 결과 0 오류 및 0 경고와 함께 다음 화면이 표시됩니다.
이 작업이 완료되면 이제 모든 SPL 라이브러리가 Cosmic 컴파일러 및 STVD와 함께 작동하는지 확인할 수 있습니다. 이것은 모든 새 프로젝트에 대해 따라야 할 표준 절차입니다. 필요한 경우 빌드 시간을 줄이기 위해 프로젝트에 필요한 헤더 및 소스 파일 만 포함 할 수도 있습니다.
ST-Link V2를 사용하여 STVD에서 STM8S 개발 보드로 코드 업로드
아래 그림과 같이 ST-Link V2를 개발 보드와 연결합니다.
연결은 매우 간단하며 가장 좋은 점은 외부 구성 요소가 필요 없다는 것입니다. 프로그래밍을위한 하드웨어 설정이 아래에 나와 있습니다. 방금 여성 헤더 와이어를 사용하여 연결했습니다. 그러나 ST-Link의 핀 배치가 내 핀 배치와 다를 수 있으므로 연결하기 전에 장치의 핀 배치를 따르십시오.
연결하고 장치를 컴퓨터에 연결하면 드라이버 설치가 자동으로 시작됩니다. 장치 관리자를 사용하여 컴퓨터가 ST-LINK V2를 올바르게 검색했는지 확인할 수 있습니다. 보드에 처음 전원을 공급하는 경우에도 보드의 테스트 LED가 깜박입니다. STVD에서 코드를 성공적으로 컴파일하면 프로젝트 폴더의 디버그 디렉토리 아래에 "S19"확장 파일이 생성됩니다. 내 S19 파일은 아래와 같습니다.
이 S19는 컨트롤러에 업로드해야하는 Hex 파일과 같습니다. 프로그램을 업로드하려면 STVD와 함께 설치해야하는 ST Visual Programmer (STVP)를 엽니 다. 그런 다음 구성 창에서 아래 이미지와 같이 선택하고 확인을 클릭하십시오.
그런 다음 File-> Open을 클릭하고 앞서 보았던 S19 파일로 이동합니다. 그런 다음 장치를 플래시하려면 프로그램-> 현재 탭을 따르 십시오. 깜박임이 성공하면 다음 출력이 표시되어야합니다.
기본적으로 STM8S를 구입하면 테스트 LED를 깜박이는 블린 프로그램이 있습니다. 이제이 빈 코드를 업로드하면 LED가 더 이상 깜박이지 않습니다.
중요: ST-Link가 프로그래밍 후 보드를 자동으로 재설정하지 않는 것을 발견했습니다. 내 프로그램의 출력을 확인하기 위해 연결을 끊었다가 다시 연결해야했습니다. 이것이 모든 사람에게 문제인지 확실하지 않은 경우 댓글 섹션에서 알려주십시오. 또한 이에 대한 해결책을 설명하는 하단의 비디오를 확인하십시오.
이것으로이 튜토리얼을 마무리하고, 우리는 하드웨어의 기초를 배우고, 개발 환경을 설정하고, 코드를 컴파일하고 업로드하는 방법을 배웠습니다. 이제 진행할 준비가되었으며 앞으로 나올 모든 튜토리얼에서이를 사용할 것입니다. 궁금한 점이 있으면 포럼에 게시하고 계속 지켜봐주세요 !!