STM8S903K3 Mikrodenetleyici: Özellikler, Teknik Özellikler ve STVD STM8 Eğitim Kılavuzu

Genel Bakış

STM8S903K3, STMicroelectronics tarafından üretilen ve STM8S serisinin bir parçası olan 8 bitlik bir mikrodenetleyicidir. Bu mikrodenetleyici serisi, yüksek performansı, sağlamlığı ve uygun maliyetli olması nedeniyle piyasada oldukça popülerdir. STM8S903K3, sistem maliyetlerini düşürmeye ve uygulama geliştirme sürelerini kısaltmaya yardımcı olduğu için özellikle çeşitli endüstriyel kontrol ve ev aletleri uygulamaları için uygundur.

Önemli Özellikler:

  • Yüksek Performans: Yeni nesil STM8 çekirdeğine dayalı olarak gelişmiş işlem yetenekleri sunar.
  • Düşük Güç Tüketimi: Bekleme, Aktif Durdurma ve Durdurma modları dahil olmak üzere çok sayıda düşük güç modu ve ayrıca çevresel saatleri ayrı ayrı devre dışı bırakma özelliği sunar.
  • Yüksek Entegrasyon: 300.000'e kadar yazma/silme döngüsüne sahip gerçek veri EEPROM'u, dahili saat osilatörü, izleme zamanlayıcısı ve güç açıldığında sıfırlama işlevini entegre eder.
  • Saat Güvenlik Sistemi: Sistemin istikrarlı çalışmasını sağlamak için bir saat monitörü içerir.
  • Kesme Yönetimi: 32 adede kadar kesme ve 28 adede kadar harici kesmeyi destekleyen iç içe kesme denetleyicisi ile donatılmıştır.
  • Zamanlayıcılar: Gelişmiş kontrol zamanlayıcıları, genel amaçlı zamanlayıcılar ve otomatik uyanma zamanlayıcıları içerir.
  • İletişim Arayüzleri: I2C, IrDA, LIN bus, SPI, UART/USART gibi çeşitli iletişim protokollerini destekler.
  • Çalışma Gerilimi: 2,95 ila 5,5 V, farklı güç ortamları için esneklik sağlar.
  • Sıcaklık Aralığı: -40°C ila 85°C arasında çalışma sıcaklığı aralığı, geniş bir yelpazede çevre koşulları için uygun hale getirir.

Pin dizilişi:

STM8S903K3 SDIP32 pinout
STM8S903K3 SDIP32 pinout

Blok Şeması:

STM8S903K3 block diagram
STM8S903K3 block diagram

Uygulama Örnekleri:

Yüksek performansı ve düşük maliyeti sayesinde STM8S903K3, çeşitli alanlarda yaygın olarak kullanılmaktadır. Örneğin, elektrikli araç kontrolör tasarımlarında, sensörsüz fırçasız DC motorları çalıştırmak için ana kontrol yongası görevi görür; böylece motor maliyetlerini düşürür ve kontrolörün kararlılığını artırır.

STM8S903K3'ü STVD ve STVP ile programlama

Bu örnekte, ST Visual Develop ve ST Visual Programmer'ı kullanarak, ortam yapılandırmasından proje oluşturmaya, derlemeden test etmeye kadar STM8S903K3 UART programlama kılavuzunu ele alacağız.

Gerekli Araçlar

Donanım:

  • STM8S903K3 Mikrodenetleyici
  • ST-Link Hata Ayıklayıcı/Programlayıcı
  • Hedef Kart (İsteğe Bağlı)
  • UART Seri İletişim Arayüzü (İsteğe Bağlı)

Yazılım:

  • ST Visual Develop (STVD) (yazma, derleme ve hata ayıklama için IDE aracı)
  • ST Visual Programmer (STVP) (programlama aracı)
  • ST-Link USB Sürücüsü
  •  STM8 Cosmic Derleyici Araç Zinciri (projeyi derlemek ve HEX dosyasını oluşturmak için)
  • Terminal Emülatörü Yazılımı (İsteğe bağlı)

Adım Adım Süreç

1. ST Visual Develop'da Yeni Çalışma Alanı Oluşturun

ST Visual'ı açın ve yeni bir çalışma alanı oluşturun. Bu alan, proje dosyalarınızı ve yapılandırmalarınızı barındıracak.

Create new workspace on ST Visual Develop
Create new workspace on ST Visual Develop

2. Yeni Çalışma Alanı ve Proje Oluştur

Çalışma alanında yeni bir proje oluşturun. Bu proje, kodunuzu yazıp derleyeceğiniz ana geliştirme ortamı olacaktır.

Create new workspace and project
Create new workspace and project

3. Çalışma Alanı Dosya Adı ve Konumunun Ayarlanması

Çalışma alanının kaydedileceği dosya adını ve konumu belirtin. Proje dosyalarını saklamak için bilgisayarınızda uygun bir dizin seçin.

Setting workspace filename and location
Setting workspace filename and location

4. Yeni Proje Araç Seti STM8 Cosmic

Proje için STM8 Cosmic araç setini seçin. Cosmic araç seti, STM8 mikrodenetleyicisi için kodu derlemek ve çalıştırılabilir dosyayı oluşturmak amacıyla kullanılır.

New project toolchain STM8 Cosmic
New project toolchain STM8 Cosmic
Install COSMIC STM8 4.4.3 and STM32 4.3.6 32K C Compilers
Install COSMIC STM8 4.4.3 and STM32 4.3.6 32K C Compilers

5. STM8S903K3 MCU'yu seçin

Proje ayarlarında, hedef cihaz olarak STM8S903K3 mikrodenetleyiciyi (MCU) seçin. Bu, projenin çalıştığınız donanıma göre doğru şekilde yapılandırılmasını sağlar.

Selected MCU STM8S903K3
Selected MCU STM8S903K3

6. main.c Dosyasına UART Kodu Ekleme

Projenizin main.c dosyasına, seri iletişimi etkinleştirmek için aşağıdaki UART kodunu ekleyin. Bu kod, UART ayarlarının yapılandırılmasının yanı sıra veri gönderme ve alma işlevlerini de içerir.

Adding uart code to the main.c file and add stm8s903k3.h file to the Include Files folder
Adding uart code to the main.c file and add stm8s903k3.h file to the Include Files folder
Kodun ayrıntıları aşağıdaki gibidir:
				
					#include "stm8s903k3.h"
#include "stdio.h"

#define _COSMIC_

/*
  Since different compilers (RAISONANCE, COSMIC, IAR) have slightly different parameter and return value conventions for putchar and getchar,
  we use macros to define them accordingly. These macros are automatically added by the compiler.
*/

#ifdef _RAISONANCE_
 #define PUTCHAR_PROTOTYPE int putchar (char c)
 #define GETCHAR_PROTOTYPE int getchar (void)
#elif defined (_COSMIC_)
 #define PUTCHAR_PROTOTYPE char putchar (char c)
 #define GETCHAR_PROTOTYPE char getchar (void)
#else /* _IAR_ */
 #define PUTCHAR_PROTOTYPE int putchar (int c)
 #define GETCHAR_PROTOTYPE int getchar (void)
#endif /* _RAISONANCE_ */

// Function to send a character to UART1
PUTCHAR_PROTOTYPE
{
    UART1_DR = c;              // Send a character 'c' to UART1 data register
    while (!(UART1_SR & 0x40)); // Wait for transmission to complete (TXE flag)
    return (c);
}

// Function to receive a character from UART1
GETCHAR_PROTOTYPE
{
    #ifdef _COSMIC_
      char c = 0;
    #else
      int c = 0;
    #endif
    // Wait for new data to be received (RXNE flag)
    while (!(UART1_SR & 0x20));  
    // Read received data
    c = UART1_DR;
    return (c);
}

// Clock initialization function
void CLK_Init(void)
{
    // Enable the internal high-speed oscillator (HSI)
    CLK_ICKR |= 0x01; 
    CLK_CKDIVR = 0x00; // No clock division (16MHz)
    while (!(CLK_ICKR & 0x02)); // Wait for HSI to be ready
    CLK_SWR = 0xE1; // Use HSI as the system clock source
}

// UART1 initialization function
void UART1_Init(void)
{
    UART1_CR3 = 0x00; // Disable LIN mode, one stop bit, no SCK
    UART1_CR2 = 0x00; // Disable TX interrupt, RX interrupt, and others
    UART1_CR3 = 0x00; // Disable interrupts, no break frames
    UART1_BRR2 = 0x02; // Set baud rate (9600)
    UART1_BRR1 = 0x68; // Set baud rate (9600)
    UART1_CR2 = 0x0C; // Enable TX and RX
}

// Simple delay function (not very accurate, could be improved with a timer)
void delay(unsigned int x)
{
    unsigned int i, j;
    for (i = x; i > 0; i--)
        for (j = 300; j > 0; j--);
}

void main()
{
    unsigned char c;
    CLK_Init();      // Initialize system clock
    UART1_Init();    // Initialize UART1

    while(1)
    {
        printf("\n\rPlease enter a key: ");
        while (!(UART1_SR & 0x20)); // Wait for data to be received (RXNE flag)
        c = UART1_DR;  // Read received character
        printf("\n\rYou entered: %c.", c);  // Send the received character back to the user
    }
}

				
			

main.c kodunu ekledikten sonra, projenin "Include Files" klasörüne stm8s903k3.h başlık dosyasını ekleyebiliriz. Bu dosya, STM8S903K3 MCU için gerekli tanımları ve yapılandırmaları içerir; böylece derleyici, cihaza özgü kayıtları ve işlevleri tanıyabilir.

7. Projeyi derleyin

Kod yazıldıktan sonra, projeyi derleyerek kaynak kodunu STM8S903K3'ün anlayabileceği makine koduna dönüştürün. Bu adımda hatalar kontrol edilecek ve bir çıktı dosyası (genellikle bir .hex dosyası) oluşturulacaktır.

Build the project by ST Visual Develop
Build the project by ST Visual Develop

8. Hata Ayıklama Hedefi: Swim ST-Link

Hedef MCU ile iletişim kurmak için ST-Link hata ayıklama cihazını seçerek hata ayıklama ortamını kurun. ST-Link, STM8 mikrodenetleyicisine kod yüklemek ve hata ayıklama yapmak için kullanılan USB tabanlı bir programlayıcı/hata ayıklama cihazıdır.

Debug Target Swim ST Link
Debug Target Swim ST-Link

9. Derleme Sonrası Aşamasında Proje Ayarlarını Düzenleme Komutları

Proje ayarlarında, derleme sonrası komutları düzenleyerek, çıktı dosyasının kopyalanması veya ek işlemlerin gerçekleştirilmesi gibi derleme sonrasında yapılması gereken gerekli adımları otomatikleştirin.

Project settings commands edit of Post Build
Project settings commands edit of Post-Build

10. Metin dosyasını kaydedin ve projeyi yeniden derleyin

Projeyi ve yapılandırma veya derleme komutları içeren tüm metin dosyalarını kaydedin. Kaydettikten sonra, tüm ayarların doğru şekilde uygulandığından ve çıktı dosyasının oluşturulduğundan emin olmak için projeyi yeniden derleyin.

Save text file and build the project again
Save text file and build the project again

11. ST Visual Programmer STM8 için STM8S903K3 ST-LINK'i yapılandırın

Programlama için ST-Link'i STM8S903K3 mikrodenetleyicisiyle kurun. Programlama ve hata ayıklama işlemlerini kolaylaştırmak için ST-Link hem bilgisayara hem de STM8S903K3'e bağlanmalıdır.

Configure STM8S903K3 ST LINK for ST Visual Programmer STM8
Configure STM8S903K3 ST-LINK for ST Visual Programmer STM8

12. ST Visual Programmer ile Programlama

ST Visual Programmer yazılımını kullanarak uart.HEX derleme işlemi tarafından oluşturulan dosyayı açın. Bu dosya, STM8S903K3 mikrodenetleyiciniz için derlenmiş kodu içerir. ST Visual Programmer'da uygun programlama seçeneklerini seçin ve oluşturulan .hex dosyayla programlayın.

Open the uart.HEX file in ST Visual Programmer and Program all tabs
Open the uart.HEX file in ST Visual Programmer and Program all tabs

Paylaş:

Scroll to Top

Instant Quote