STM32F030 Çip Geliştirme Kartı

STM32F030 Çipine Genel Bakış

STM32F030 yongası, STMicroelectronics tarafından üretilen düşük maliyetli, 32 bitlik bir ARM Cortex-M0 mikrodenetleyicidir. 32 KB’ye kadar Flash ve 4 KB SRAM belleğe sahiptir ve 48 MHz’e kadar hızlarda çalışabilir. Analog karşılaştırıcılar, zamanlayıcılar ile I2C ve SPI arabirimleri gibi çeşitli çevre birimlerini barındırır. STM32F030 ayrıca motor kontrol uygulamalarını destekler ve çok çeşitli entegre analog ve dijital çevre birimlerine sahiptir. Çipin küçük boyutu ve düşük güç tüketimi, onu tüketici elektroniğinden tıbbi ve endüstriyel sistemlere kadar çeşitli uygulamalarda kullanım için ideal hale getirir. Çipin fiyatı ve performansı, STM32F030'u maliyet bilincine sahip geliştiriciler için mükemmel bir seçim haline getirir. STM32Cube ve STM32CubeMX grafik yapılandırma aracı dahil olmak üzere çeşitli geliştirme araçlarını destekleyen STM32F030 ile çalışmaya başlamak ve yenilikçi uygulamalar geliştirmek çok kolaydır.

STM32F030 chip

Parametreler

– CPU: 32 bit RISC mimarisine sahip ARM
Cortex-M0 çekirdeği- Çalışma frekansı: 48 MHz'e
kadar- Program belleği: 32 KB Flash'a kadar- RAM
: 4 KB'ye kadar-
Saat kaynağı: Dahili 8 MHz veya harici 32
kHz- Saat çıkışı: 2 x 32 kHz-
Dijital G/Ç: 36 G/Ç pini'ne
kadar- Analog girişler: 8 adede kadar 12 bit ADC kanalı
– Zamanlayıcılar: 3 adede kadar 16 bit zamanlayıcı
– İletişim arayüzleri: 2 adede kadar I2C, 2 adede kadar USART, SPI, CAN

Sistem Mimarisi

STM32F030’un dahili sistem yapısı, basitçe 2 ana ve 4 bağımlı sisteme ayrılabilir. Buradaki ana ve bağımlı kavramları, Busmatrix’e göre tanımlanmıştır:

  • Ana Sistemler
  • Cortex-M0 çekirdeği AHB veriyolu
  • GP-DMA
  • Slave
  • Dahili SRAM
  • Dahili Flash
  • AHB2APB
  • AHB'den GPIO bağlantı noktalarına

2 ana ve 4 bağımlı arasındaki ilişki aşağıdaki şekilde daha ayrıntılı olarak gösterilmiş ve işaretlenmiştir:

STM32F030system architecture diagram

AHB2APB Köprüsü için, APB veriyoluna bağlı çevre birimlerini kullanmak istiyorsanız, önce çevre birimi saatini etkinleştirmek üzere RCC_AHBENR gibi bir kayıt çağrısı yapmanız gerekir; bu işlem çevre birimi sürücüsü tarafından gerçekleştirilir. Bu ayrıntılar genellikle ST sürücü API'sinde ele alınır.

Bellek Genel Bakış

STM32F030 programında veriler, kayıtlar ve G/Ç bağlantı noktaları 4 GB'lık adres alanına (32 bit makine) eşlenmiştir. STM32F030'un bellek haritası ürün broşüründe ayrıntılı olarak açıklanmıştır.

SRAM

STM32F030 SRAM'inin boyutu 8 KB'dir ve bu belleğe bayt, kelime ve yarım kelime birimleri halinde erişilebilir. Bu bölüm, derlenmiş ve bağlanmış kodun, verilerin ve çalışma zamanı sırasında program yığınının depolanması için kullanılır. Programın yürütülmesi sırasında bu SRAM'e sürekli olarak veri okunur veya yazılır.

Flash

STM32F030'un dahili flash belleği, bu amaçla tasarlandığından genellikle kullanım için yeterlidir. 64 KB kullanıcı flash belleği alanına sahiptir. Çip içindeki flash belleğe dahili flash veya ROM denir (ROM ile flash arasındaki fark, ROM'un kullanıcı tarafından silinemeyeceği ve çip üretimi sırasında sabitlendiği, flash belleğin ise herhangi bir zamanda silinip yeniden yazılabilmesidir).

STM32F030'un dahili flash belleği iki türe ayrılır:

  • 64 KB kullanıcı flash alanı: kullanıcının derleme ve bağlama işlemleriyle oluşturulan .bin kodunu indirmek için kullanılır.
  • Bilgi flash: seçenek baytlarını ve sistem belleğini içerir.

Seçenek baytları, IC'nin bazı işlevlerini yapılandırmak için kullanılabilir.
Sistem belleği, IC'nin belleğidir; bu bellek, IC üretimi sırasında sabitlenen, açık kaynaklı olmayan ve işleyişi yalnızca tahmin edilebilen bir kod segmenti içerir. Sistem belleğinin amacı, gömülü bir önyükleyici görevi görmektir. Genellikle hata ayıklama için kullanılmaz. Tipik kullanım şekli, bir hata ayıklayıcıyı bir SWD arabirimi aracılığıyla IC'ye bağlamak ve kodu kolayca indirmek ve hata ayıklamaktır. Ancak, ürünler için SWD arayüzü açıkta olmayabilir. Bu durumda, ürünün .bin kodu indirilebilir ve bir seri arayüz aracılığıyla IC'nin dahili sistem belleği önyükleyicisi üzerinden çalıştırılabilir; bu, ürün yazılımı güncellemeleri için tipik bir işlemdir. STM, sistem belleği önyükleyicisi için arayüz ve kullanım demosunu sağlayacaktır ve bunun nasıl kullanılacağını açıklayan birçok ilgili belge bulunmaktadır.

Önyükleme Yapılandırması

SWD üzerinden hata ayıklama "sistem programlama" olarak adlandırılırken, önyükleyici kullanılarak programların yüklenmesi ve başlatılması "uygulama programlama" olarak kabul edilir. STM, farklı uygulama senaryoları için üç adet yapılandırılabilir önyükleme moduna sahiptir.

  • Önyükleme modu yapılandırması:

İlk olarak, yüksek veya düşük seviyelere bağlanan bir önyükleme pini vardır. Yonga başlatıldığında, önyükleme pini seviyesini kontrol eder ve ilgili önyükleme moduna geçer. Ayrıca, nBOOT1, ilgili önyükleme modunu seçmek için seçenek baytında yapılandırılabilir.

  • Önyükleme modlarının sınıflandırılması:

Üç tür vardır: En yaygın olanı olan kullanıcı flash önyüklemesi; derleme ve bağlamadan sonra kodu indirin, sıfırlayın ve kendi flash kodunuzu çalıştırın. IC'nin dahili önyükleyicisini kullanarak önyükleme yapan sistem belleği önyüklemesi. SRAM önyüklemesi.

Saat Çerçevesi

STM32F030'un saat yapısı aşağıdaki gibidir; işte bunlara ilişkin bazı açıklamalar:

  • HSI: Yüksek hızlı dahili saat olarak adlandırılır ve bir RC osilatöründen oluşur.
  • HSE: Yüksek hızlı harici saat olarak adlandırılır; harici bir kuvars/seramik rezonatöre veya harici bir saat kaynağına bağlanabilir.
  • LSI: Düşük hızlı dahili saat olarak adlandırılır, bir RC osilatöründen oluşur, düşük bir frekansa sahiptir ve STM32F030'da 40 kHz'dir.
  • LSE: Düşük hızlı harici saat olarak adlandırılır, genellikle 32,768 kHz harici frekansa sahip bir kuvars kristali ile bağlanır.
  • PLL: Faz kilitli döngünün çarpan çıkışıdır.
  • HSI14 RC: saat kaynağı yalnızca ADC için kullanılabilir.
Clock tree of STM32F030

Özel olarak belirtilmeyen çevre birimleri genellikle PCLK kullanır. Aşağıda, ilgili kodlara göre AHB/APB ile etkinleştirilmesi gereken durumların kısa bir listesi yer almaktadır:

  • AHB'yi saat kaynağı olarak kullanın: GPIOA-F, TS, CRC, FLITF, SRAM, DMA1.
  • Saat kaynağı olarak APB1'i kullanın: TIM2, TIM3, TIM6, TIM14, WWDG, SPI2, USART2, I2C1, I2C2, PWR, DAC, CEC.
  • APB2'yi saat kaynağı olarak kullanın: SYSCFG, ADC1, TIM1, SPI1, USART1, TIM15, TIM16, TIM17, DBGMCU.

Sıfırlama İşlevi

Sıfırlama, MCU sisteminin başlatma sürecinin hayati bir parçasıdır. IC programı çalıştırmaya başladığında, sistemin güç verildikten sonraki ilk adım olan sıfırlama işlemiyle başlar.

Cortex-M0’un Sıfırlama Mekanizması

Cortex-M0'ın başlangıç dosyasında, vektör tablosunun en başında yer alan reset_handler işlevini her zaman göreceksiniz. Cortex-M0'ın adresi 0x0000 0004'tür ve Cortex-M0 çalışmaya başladığında PC değeri bu adrestir. Reset_handler'da, genellikle kullanıcının uyguladığı SystemInit işlevi çağrılır; bu işlev, sistemin doğru çalışması için gereken çeşitli bileşenlerin saatini ayarlar ve sistemin daha sonra normal şekilde çalışmasını kolaylaştırır. Ardından, kütüphanedeki __main girişi çağrılır; bu, C çalışma zamanı kütüphanesinin bazı ilk işlemlerini gerçekleştirmeli ve yığını ayarlamalıdır.

Sıfırlama Türleri

STM32F030 için üç ana sıfırlama türü vardır: Güç sıfırlama, Sistem sıfırlama ve RTC alanı sıfırlama.

Güç sıfırlama, IC'nin güç kaynağıyla ilgilidir. Bu sıfırlama, güç açma ve bekleme modundan uyanma ile tetiklenir ve sıfırlamadan sonra sistem başlatma işlemi başlar.

Sistem sıfırlaması, sistem tarafından tetiklenir. Yani, güç kaynağı normaldir, ancak sıfırlama düğmesine basılırsa, ilgili kayıt yazılım tarafından sıfırlanır veya Watchdog tetiklenirse, bu sıfırlama gerçekleşir. Bu sıfırlama gerçekleştiğinde, güç sıfırlamasından tek farkı, sıfırlama kaynağını belirtmek için kullanılan RCC_CSR kaydındaki ilgili bitin sıfırlanmayacak olmasıdır; diğer tüm kayıtlar ise güç açıldıktan hemen sonraki duruma sıfırlanacaktır.

RTC etki alanı sıfırlamasının tetikleyicisi de bir yazılım tetikleyicisidir. RCC_BDCR kaydındaki ilgili bite yazarak tetiklenir. Ancak, bu tür sıfırlama yalnızca RTC ve LSE kristalini vb. etkiler.

Sürekli İyileştirme Döngüsü

CRC (Döngüsel Artıklık Kontrolü), iletilen veya depolanan verilerin bütünlüğünü kontrol eden bir kontrol algoritmasıdır. Bu algoritma birçok alanda kullanılabileceğinden, STM32F030 bu algoritmayı IC içindeki bir CRC donanım hesaplama birimi ile uygulamaktadır. Bir uygulamanın CRC'yi kullanması gerektiğinde, donanım birimi yazılım tarafından kontrol edilerek gereksinimler karşılanabilir (elbette CRC yazılımda da uygulanabilir, ancak hızı kesinlikle donanım CRC'si kadar hızlı değildir).

CRC (Cyclic Redundancy Check) calculation unit

CRC işlemi yonga içinde gerçekleştirilir; bu nedenle sadece nasıl kullanılacağını bilmeniz yeterlidir ve kullanımı oldukça basittir. Hesaplanması gereken kaynak verileri Veri kaydı (giriş) alanına yazın, CRC hesaplama biriminin çalışmasını başlatın ve ardından hesaplanan sonuçları Veri kaydı (çıkış) alanından okuyun.

Aslında, STM32F030'un CRC Veri kaydının girişi ve çıkışı aynı kaydı kullanır, çünkü önce giriş yapılmalı ve ardından bir sonraki girişe geçmeden önce çıkış elde edilebilir. Bu işlemden, giriş ve çıkışın aynı anda kullanılmadığı görülebilir, bu nedenle bir kaydı doğrudan kullanarak iki işlevi çoklayabilirsiniz. Kayıt, farklı gereksinimleri karşılayabilecek şekilde 32 bit, 16 bit, 8 bit olarak çalıştırılabilir.

STM32F030 Geliştirme Kartı - STM32F0308 Discovery

Bu STM32F030 mikrodenetleyicinin geliştirilmesi, STM32’nin en son HAL kütüphanesine, STM32CubeMX tarafından oluşturulan başlatma koduna dayanmaktadır ve derleyicisi GCC’dir. Aşağıda devre şeması, PCB şeması ve monte edilmiş kartı yer almaktadır. STM32, Discovery serisi ve Nucleo serisi gibi birçok giriş seviyesi geliştirme kartı sunmaktadır. STM32F0308 Discovery, STM32F030 yongası ile donatılmış Discovery serisindeki kartlardan biridir.

STM32F030 Development Board
STM32F030 Development Board

Discovery serisi geliştirme kartlarının temel işlevleri ve özellikleri birbirine benzerdir, ancak bunlara eşlik eden yongaların özellikleri farklılık gösterebilir. STM32F0308 Discovery kartının özellikleri şunlardır:

Kullanışlı G/Ç bağlantı noktası genişletmesi: Bir PC'ye bağlanan tek bir USB kablosu ile geliştirme çalışmaları yürütülebilir. Geliştirme kartındaki STM32F030 yongasının G/Ç bağlantı noktaları genişletilmiştir; bu sayede DuPont kabloları kullanılarak farklı cihazlara kolayca bağlanılabilir.

Hata ayıklama arayüzü: Geliştirme kartı, ST'nin başka bir Cortex-M3 yongası kullanılarak uygulanan yerleşik bir SWD hata ayıklama arayüzü ile birlikte gelir (şu anda piyasada bulunan JLINK v9 sürümü de ST'nin Cortex-M3 yongasını kullanıyor olmalıdır). Bu SWD hata ayıklama arayüzü, bir atlama kablosu bağlantısı aracılığıyla ayrı olarak kullanılabilir; bu, stm32f0308-discovery'nin bağımsız bir SWD hata ayıklayıcı olarak kullanılabileceği anlamına gelir.

Esnek güç kaynağı: Geliştirme kartı USB ile çalışır, ancak harici cihazların kullanımı için 5V ve 3V güç kaynakları sağlayabilen bir voltaj dönüştürme devresine sahiptir (güç kaynağı akımının hala sınırlı olduğunu unutmayın). Genel olarak, küçük modüller ve arayüzler doğrudan bu karttan güç alabilir.

Kart düzeyinde çevre birimleri: Giriş seviyesi, düşük maliyetli bir geliştirme kartı olduğu için, kart üzerindeki çevre birimleri çok basittir ve iki düğme ile dört LED'den oluşur. İki düğmeden biri sıfırlama için kullanılır, diğeri ise kullanıcı tarafından programlanabilir bir düğmedir. Dört LED'den biri güç göstergesidir, biri SWD hata ayıklama durum göstergesidir ve kalan ikisi kontrol için programlanabilir. Dolayısıyla, gerçekte kontrol için programlanabilen yerleşik çevre birimleri sadece bir kullanıcı düğmesi ve iki kullanıcı LED'idir.

Performans

  • ST-LINK ile hata ayıklama için ayrılmış SWD arabirimi;
  • Yüksek bağlantı noktası sürücü kapasitesine sahip PA4 (DAC çıkışı) arabirimi;
  • Kolay hata ayıklama için iki hafif dokunmatik düğme ve 3 LED;
  • LCD1602 arayüzü ve yaygın TFT LCD ile uyumlu bir arayüz;
  • RTC yedek güç kaynağı olarak süper kapasitör kullanın;
  • Güç korumalı USB arayüzü;
  • Osiloskop veya multimetre için çoklu güç kaynağı test noktaları.

Şematik

STM32F030 development board Schematic
STM32F030 development board Schematic

PCB

pcb of STM32F030
pcb of STM32F030

Paylaş:

Scroll to Top

Instant Quote