ATAKAN CESİM
tarafından hazırlanmıştır.
Bu uygulama notunun amacı , temel seviyede gömülü sistem
bilgisi olan arkadaşlara mikrodenetleyici tabanlı bir devrenin
tasarım aşamalarını anlatmak (devre tasarımı , pcb için protatip
oluşturulması v.b ) , tasarım sırasında gerekli minimum donanım
gereksinimlerinden bahsetmek , okul projelerinde kafalara
takılan sorulara cevaplar vermek ve sıfırdan başlayacak
arkadaşlara yardımcı olmaktır.
MİKRODENETLEYİCİ TABANLI DEVRE TASARIM UYGULAMASI
Elektronik ile ilgili bölümlerde okuyan arkadaşlar ya da elektroniğe ilgisi olan
arkadaşlar elbette mikrodenetleyiciler ile ilgili uygulamalar geliştirmiş ve bilgiler edinmiştir.
Ülkemizde de bu işe gönül vermiş kimi arkadaşlarımız meslek olarak kimi arkadaşlarımız da
hobi olarak mikrodenetleyiceler ile uğraşmıştır.
Günümüz itibariyle üreticiler tarafından farklı farklı özellikte , haberleşme
protokollerini destekleyen , kapasite, hız ve mimaride mikrodenetleyiciler piyasaya
sunulmuştur. Bu dökümanda anlatılan uygulama , STMicroelectronics firmasının üretmiş
olduğu STM8 ailesine ait olan 8 bit STM8S105C6T6 mikrodenetliyicisi tabanlıdır. Sistemin
çalışması için temel seviyede gerekli olan donanım tasarımı yapılmıştır.
Bu uygulama notunun amacı , temel seviyede gömülü sistem bilgisi olan arkadaşlara
mikrodenetleyici tabanlı bir devrenin tasarım aşamalarını anlatmak (devre tasarımı , pcb için
protatip oluşturulması v.b ) , tasarım sırasında gerekli minimum donanım gereksinimlerinden
bahsetmek , okul projelerinde kafalara takılan sorulara cevaplar vermek ve sıfırdan
başlayacak arkadaşlara yardımcı olmaktır.
İÇİNDEKİLER
DONANIM TASARIMI ______________________________________________________ 3
EAGLE ile PCB DİZAYNI _______________________________________________________ 5
POWER SUPPLY KISMI _______________________________________________________ 6
KUPLAJ KONDANSATÖRLERİ _________________________________________________ 7
CLOCK SOURCE ______________________________________________________________ 8
RESET SOURCE ve SWIM PROGRAMMING VE DEBUGGIN TOOL ________________ 9
DİJİTAL GİRİŞ ve ÇIKIŞLAR __________________________________________________ 10
MİKRODENETLEYİCİ KISMI _________________________________________________ 11
HABERLEŞME PORTLARI ____________________________________________________ 11
EAGLE ŞEMATİK DİZAYN DOSYASI __________________________________________ 12
EAGLE BOARD DİZAYN DOSYASI ____________________________________________ 13
DONANIM TASARIMI
STM8S ailesine ait bir mikrodenetleyici kullanarak uygulama geliştirmek istiyorsak ,
uygulama için tasarlanan protatip üzerinde en azından aşağıdaki 4 kısma yer vermeliyiz.




Power supply
Clock source
Reset source
Debuggin tool support , single wire interface module (SWIM)
Uygulamada seçilen STM8S105C6T6 fiyat , hız ve kapasite olarak temel ihtiyaçları
karşılayacak seviyededir. İnternette yapılan araştırmalarda genel olarak Texas Instrument
MSP430 ailesi ve Microchip PIC16Fxx ailesine ait Türkçe kaynaklara ulaşılmaktadır.
Bahsedilen mikrdenetleyicilere bir alternatif olması açısından STM8S ailesi tercih edilmiştir.
Seçilen mikrodenetleyiciye ait özellikler üreticinin web sayfasından alınarak aşağıda
verilmiştir. Daha ayrıntılı bilgi için (registerlar v.b) ürün datasheet’i ayrıntılı bir şekilde
incelenmelidir.
STM8S105C6T6 mikrodenetleyicisine ait özellikler
The STM8S105xx access line 8-bit microcontrollers offer from 16 to 32 Kbytes Flash
program memory, plus integrated true data EEPROM. They are referred to as mediumdensity devices in the STM8S microcontroller family reference manual (RM0016).
All devices of the STM8S105xx access line provide the following benefits: reduced system
cost, performance and robustness, short development cylces, and product longevity.
The system cost is reduced thanks to an integrated true data EEPROM for up to 300
kwrite/erase cycles and a high system integration level with internal clock oscillators,
watchdog and brown-out reset.
Device performance is ensured by a 16 MHz CPU clock frequency and enhanced
characteristics which include robust I/O, independent watchdogs (with a separate clock
source), and a clock security system.
Short development cycles are guaranteed due to application scalability across a common
family product architecture with compatible pinout, memory map and and modular
peripherals. Full documentation is offered with a wide choice of development tools
Product longevity is ensured in the STM8S family thanks to their advanced core which is
made in a state-of-the art technology for applications with 2.95 V to 5.5 V operating supply.









Core 16 MHz advanced STM8 core with Harvard architecture and 3-stage pipeline
Extended instruction set
Memories Medium-density Flash/EEPROM: Program memory up to 32 Kbytes Flash;
data retention 20 years at 55 °C after 10 kcycles Data memory up to 1Kbytes true data
EEPROM; endurance 300 kcycles RAM: Up to 2 Kbytes
Clock, reset and supply management 2.95 to 5.5 V operating voltage Flexible clock
control, 4 master clock sources: Low power crystal resonator oscillator External
clock input Internal,user-trimmable 16 MHz RC Internal low power 128 kHz RC
Clock security system with clock monitor Power management: Low power modes
(wait, active-halt, halt) Switch-off peripheral clocks individually Permanently
active,low consumption power-on and power-down reset
Interrupt management Nested interrupt controller with 32 interrupts Up to 37 external
interrupts on 6 vectors
Timers 2x16-bit general purpose timer, with 2+3 CAPCOM channels (IC, OC or
PWM) Advanced control timer: 16-bit, 4 CAPCOM channels, 3 complementary
outputs, dead-time insertion and flexible synchronization 8-bit basic timer with 8-bit
prescaler Auto wakeup timer Window watchdog, independent watchdog timers
Communications interfaces UART with clock output for synchronous operation,
Smartcard, IrDA, LIN master mode SPI interface up to 8 Mbit/s I2C interface up to
400 Kbit/s
Analog to digital converter (ADC) 10-bit, ±1 LSB ADC with up to 10 multiplexed
channels, scan mode and analog watchdog
I/OsUp to 38 I/Os on a 48-pin package including 16 high sink outputs Highly robust
I/O design, immune against current injection
Development support Embedded single wire interface module (SWIM) for fast on-chip
programming and non intrusive debugging
Mikrodenetleyici seçimi yapıldıktan sonra , vendor tarafından sağlanan referans
kaynaklar , protatip tasarımlar , datasheet ve forumlar içerisinde iyi bir şekilde araştırma
yapılmalı ve bilgi toplanmalıdır. Gözden kaçan bir bağlantı ya da komponent için tasarımda
revizyon yapmak yeniden gerber oluşturmak, protatip için pcb ürettirmek v.b işlemler bizi
geciktirecektir. Bu yüzden tasarımdan önce bir ön çalışma ile tüm kaynaklar iyice
araştırılmalı , çıktılar ve gerekli notlar alınmalıdır.
Gerekli ön çalışma ve kullanacağımız elektronik komponentlerin listesi yapıldıktan
sonra tasarım aşamasında ihtiyacımızı karşılayabilecek bir PCB Dizayn Tool’u seçilmelidir.
Bu uygulamamız temel seviyede ve Cadsoft EAGLE Light Edition sürümü ücretsiz olarak
kullanılabilir ve bizim için yeterlidir. Ücretsiz sürümde genel olarak aşağıda listelenen
sınırlandırmalar vardır.
 Kullanılabilir board alanı 100x80 mm ile sınırlı .
 2 sinyal layer’i ile sınırlandırılmış (Top , Bottom).
 Schematic editörde sadece bir tane çalışma sayfası ( sheet ) açılabilir.
Eagle bilgisayarımıza kurulduktan sonra ilk açılışta ücretsiz sürümü kullanmank için Run as
freeware butonu seçilmelidir.
EAGLE ile PCB DİZAYNI
Dizayn yapılırken , kullanacağımız komponentlerin kütüphanelerine ihtiyacımız
olacaktır. Kütüphanesi olmayan komponentler için data sheetleri kullanarak footprintlerini
çizip kendi kütüphanemize ekleyebiliriz. Genel itibari ile çoğu pasif komponent (direnç
,kondansatör) ve elektronik projelerinde çoklukla kullanılan, örneğin 1n4001 diyot için her
kılıf kütüphanelerde mevcuttur.
Daha önce EAGLE kullanılmamış ise google’da “EAGLE tips and tricks” v.b keywordleri
aratarak EAGLE kullanımını anlatan dökümanlardan faydalanalım. Örneğin aşağıda belirtilen
linklerde güzel bilgiler mevcut.
https://www.sparkfun.com/tutorials/108
https://www.sparkfun.com/tutorials/109
https://www.sparkfun.com/tutorials/110
Dizayn aşaması sırası ile ;




Gerekli komponentlerin schematic tasarıma eklenmesi
Komponentler için değer ve isimlerin verilmesi
Pin isimlerinin verilmesi
Eklenen komponentler arası bağlantıların yapılması
İşlemlerinden oluşur. Dizaynın sade olması için EAGLE’in route aracını kullanmaktan
kaçınıp , mümkün olduğunca label aracını kullanarak bağlantıları yapalım. Bu şekilde dizaynı
modüler hale getirmiş oluruz. Devrenin Power kısmı , denetleyici kısmı , haberleşme portları
, analog girişler – çıkışlar , dijital girişler – çıkışlar hepsini modüler yapmaya dikkat edelim.
POWER SUPPLY KISMI
Mikrodenetleyiciler TTL 3.3 - 5 Volt lojik seviyelerinde çalışmaktadır. STM8S ailesi
için “2.95 V to 5.5 V operating supply”.
Power supply dizaynı söz konusu olduğunda en önemli etken devrenin regüle edilmiş
bir kaynak ile beslenmesidir. Ayrıca ters polarizasyon durumlarında devremizin zarar
görmesini engellemek için diyot kullanılması faydalıdır.
Şekilden de görüldüğü gibi devremiz LM317 ile regüle edilmiş ve 1N4001 diyot ile
ters polarizasyona karşı önlem alınmıştır. Devrenin sağlıklı bir şekilde beslendiğini
gözlemlemek için bir adet Power Led’i besleme kısmına eklenmiştir. LM317 için direnç
değerleri hesaplanmış , besleme sırasında filtreleme için kapasiteler kullanılmıştır. Yine
dikkat edilir ise VDD label aracı ile belirtilmiş.
Power supply kısmı
KUPLAJ KONDANSATÖRLERİ
Dizayn sırasında mikro denetleyiciye olabildiğince yakın şekilde konumlandırılması
gereken kuplaj kondansatörleri aşağıda gösterilmiştir.




C1 ve C5 - VDD
C2 - VDDA
C3 - VDDIO_1
C4 - VDDIO_2
Yukarda verilen sıra ile kuplaj kondansatörleri besleme kaynaklarına olabildiğince
yakın olacak şekilde yerleştirilmelidir , bu sayade sağlık bir filtreleme yapılabilir.
Denetleyicinin tüm power supply pinleri (VDD , VDDA ,VDDIO_1 , VDDIO_2 )
100nF kuplaj kondansatörleri ile filtrelenmelidir.
Kuplaj kondansatörleri mikrodenetleyicinin besleme kaynaklarına olabildiğince yakın
şekilde yerleştirilmelidir
Daha iyi bir filtreleme için ek olarak 1uF’lık bir kondansatör 100nF ile paralel olarak
VDD pinine bağlanmalıdır. Yukarda belirtilidği gibi toplamda 4 adet 100nF ve 1 adet 1uF
kuplaj kondansatörü yalıtım için kullanılmalıdır.
Kuplaj kondansatörleri
STM8S105C6T6 denetleyicisinin kendi 1.8 Volt iç regülatörünün stabilizasyonu
için denetleyicinin 6.cı pinine ( Vcap pini ) en fazla 1uF olacak şekilde bir adet kuplaj
kondansatörü bağlanmalıdır. 480nF tercih edilebilir. KESİNLİKLE YAPILMASI
GEREKMEKTEDİR.
CLOCK SOURCE
STM8S ailesine ait denetleyiceler, core ve peripheral clock kaynağı için dahili ve
harici clock kullanma ve ayrıca bir tane output clock imkanı sağlamaktadır.
Sistem clock dağıtımı
Dahili RC osilatörü , dahili kapasitör ve dahili dirence sahiptir. STM8S ailesine ait
denetleyiceler için iki çeşit dahili clock’a sahiptir.


High speed internal clock ( HSI ) - 16 mHz
Low speed internal clock ( LSI ) - 128 kHz
Reset işleminden sonra , CPU dahili HSI’ın 8 de biri hız ile başlatılır. Yani clock
konfigurasyonu yapmaz isek 2 mHz ile çalıştırılır.
STM8S ailesi için harici osilatör veya harici kristal kullanılabilir. Harici osilatör
kullanmayacak isek denetleyicinin OSCIN ve OSCOUT pinleri genel amaçlı I/O olarak
kullanılabilir.
Harici clock kaynağı
Clock kaynağı olarak denetleyicinin kendi dahili osilatörünü kullanacağımız için
dizaynımıza clock kaynağı eklemek zorunda değiliz. Fakat harici osilatör kullanmak isteyen
arkadaşlar aşağıdaki şekildeki gibi 20pF kondansatörler ve 24 mHz kristal kullanarak harici
osilatör kullanabilirler.
20pF kondansatörler ve 24 Mhz kristal kullanarak harici osilatör
RESET SOURCE ve SWIM PROGRAMMING VE DEBUGGIN TOOL
Mikrodenetleyicinin NRST pini sisteme harici reset oluşturmak için kullanılır ve
program counter’ın reset vektörüne gitmesi sağlanır. Dizaynda bulunması gereken örnek reset
yapısı aşağıda gösterilmiştir. Programlama ve debug sırasında SWIM protocolü NRST pini
üzerinden harici bir reset oluşturarak sistemi resetler bu yüzden harici reset butonumuz ile
SWIM debuggin tool’muzun reset kaynağı NRST pin girişine bağlanmalıdır.
In-circuit programlama ve in-circuit debug modu single wire hardware tarafından
gerçekleştirilir ve bu donanım ultra hızla memory programlar. Swim bağlantı pinler 4 pinden
oluşur ve aşağıda belirtilmiştir.
Swim bağlantı pinleri
Örnek reset şeması ve Swim Programming Debugging Tool
DİJİTAL GİRİŞ ve ÇIKIŞLAR
Genel amaçlı I/O’lar dijital giriş ve çıkış olarak kullanılır. Bu uygulamada minimum
gereksinimleri yerine getirmek amaçlanmıştır. Uygulamamızda aşağıda gösterildiği gibi dijital
giriş olarak 2 adet push button ve çıkış olarak 2 adet led olmak üzere 4 adet I/O kullanılmıştır.
PA3,PA4,PA5 ve PA6 I/O’ları kullanılmıştır. Şematikten dikkat edilirse bu I/O’lar tek tek
isimlendirilmiştir. ( LED1,LED2,BTN1,BTN2) .
Dijital giriş ve çıkışlar
MİKRODENETLEYİCİ KISMI
Yukarda tek tek açıklanan dizaynlar label aracı kullanılarak şematik üzerinde
mikrodenetleyicimize bağlanmıştır. Örnek olarak Reset Source ve Swim programming ve
debuggin arayüzü başlığındaki dizaynda bulunan SWIM ile belirtilen bağlantı , denetleyici
üzerinde SWIM ile belirtilen pine sanal olarak bağlandığı bildirilmiştir. Board dosyasında pcb
tasarlanırken route aracı kullanılarak bu bağlantılar birleştirilecektir.
Denetleyici kısmı
HABERLEŞME PORTLARI
MAX232 level shifter ve RS232 header’ı kullanılarak UART arayüzü ve dallas
electronics firmasına ait olan DS1621 sensörü için gerekli I2C arayüzü tasarlanmıştır.
UART ve I2C protokolleri
EAGLE ŞEMATİK DİZAYN DOSYASI
Şematik dizayn dosyamız
Bitmiş şematik dosyamız yukarıda gösterilmiştir. Boş kalan I/O’lar pin headerlar
sayesinde kullanılacaktır. Şematik ve board dosyalarımız tek tek açılmayacaktır , projeye sağ
tıklayıp open project ile açıldığında ikisi birden açılmalıdır . Kapatırken close project ile
kapatılıp kaydedilecektir
Eagle Proje açma/kapama
EAGLE BOARD DİZAYN DOSYASI
Şematik tasarımımız tamamlandıktan sonra pcb dizayn kısmına geçiyoruz. EAGLE
Schematic dosyası üzerinde menülerin altında bulunan Board butonu yardımı ile dosyamızı
oluşturuyoruz. Kayıt sırasında şematik ve board dosyalarının isimlerinin aynı olmasına dikkat
edilmelidir. Bir komponent şematik dosyasına eklendiğinde aynı komponentin footprinti
otomatik olarak board dosyasına eklenmelidir. Aşağıda şematik dosyada gösterilen örnekte,
bağlantılar ve komponentler aynı anda sağ taraftaki board dosyasına eklenir.
Tasarım sırasında her iki dosya açık olmalıdır
Board butonu
Yukarda gösterildiği gibi şematik ile çalışırken board dosyasına geçmek için kırmızı
daire ile gösterilmiş board butonuna tıklanır. Aynı şekilde board dizayn dosyasında iken aynı
buton tıklanarak şematik dosyaya geçilebilir.
Dikkat edersek şematik dosyasına eklediğimiz her komponent için footprintler
otomatik olarak board dosyasına eklenmiştir ve şematik dosyasında route ve label araçları ile
yapıtığımız her bağlantı board dosyasında gösterilmiştir. Bu aşamada board dosyamızda EMC
uygunluğunu göz önüne alarak komponentlerin yerleşimini, gerekli bağlantıları board dosyası
üzerinde yaparız. Pcb tasarımı kişiden kişiye farklılık gösterirken , EMC uygunluğu için bazı
kurallara uymamız gerekir. Google üzerinde “EMC Design Considerations v.b ” keywordleri
kullanarak arama yapıp genel bilgileri incelemekte fayda var.
Son aşamada EAGLE Cam Processor aracını kullanarak gerekli gerber dosyalarını
oluşturup , pcb üreticisine göndermemiz gerekiyor.
Gerber oluşturmak için aşağıdaki adımları izleyebiliriz:
Eagle board dosyamız üzerinde CAM Processor aracını açalım.
File -> Open for Job
Açılan pencerede 2 katlı pcb (top-bottom) için gerb274x.cam seçelim.
Açılan pencerede gerekli öğeler seçili gelmiştir.Burada değişiklik yapmaya gerek yoktur.
Her layer’da Dimension’a tıklayarak aktif edelim. (board outline’nı belirten parametre)
Son olarak Process Job butonuna tıklayarak işlemi tamamlayalım.
7. CAM Processor gerber dosyalarını projemizin olduğu klasörün içerisine oluşturur.
8. Oluşturulan gerber dosyalarını bir rar dosyası içinde üreticiye göndeririz.
1.
2.
3.
4.
5.
6.
Gerber Dosyaları
Uzantı
Katman
GTO Top Silkscreen (text)
GTS
Top Soldermask (the 'green' stuff)
GTL
Top Copper (conducting layer)
GBL
Bottom Copper
GBS
Bottom Soldermask
GBO
Bottom Silkscreen
TXT
Routing and Drill (the holes and slots)
Gerber dosyaları uzantı ve tanımları
Gerber dosyalarını üretmek için aşağıdaki linkten yardım alınabilir.
http://dangerousprototypes.com/docs/Get_your_PCBs_made
Pcb’leri yaptırmak için boyut , kalite ve süreye göre üreticilerden fiyat teklifi alıp
uygun olana yaptırılır. Bu uygulama seedstudio firmasına yaptırıldı ve toplamda 18 gün
sonunda elimize geçti , aşağıda gösterilmiştir. Seedstudio için gerekli link aşağıda verilmiştir.
http://www.seeedstudio.com/service/index.php?r=site/pcbService
Top Layer
Bottom Layer
Download

Mikrokontrollor Tabanlı Devre Tasarımı