Öne Çıkan Yayın

Yapay zeka gündemi..

      Bu yazıyı  1.02.2026 16:04  tarihinde doğrudan klavyem ile yazıyorum, belki biraz iç dökme mottosu yada kavramsal açıklayıcı veya siz ...

Alternatif Akım Sistemine Giriş: Birinci Bölüm

Elektrik enerjisinin üretimi, iletimi ve dağıtımı yaklaşık 100 yıldır alternatif akım (AC) sistemi ile yapılmaktadır. Nicola Tesla'nın hediyesi olan alternatif akım sisteminin temel tanımlarını bu yazımızda sizlerle paylaşıyoruz.


Kalkınmakta olan ülkemizde daha hızlı bir gelişme sağlanabilmesi için enerji ihtiyacının tam, zamanında ve ucuz karşılanması ve en önemlisi mevcut enerjinin verimli bir şekilde kullanılması büyük önem taşımaktadır. Artan elektrik enerjisi taleplerinin karşılanması için büyük yatırım maliyetlerine, ileri teknolojiye ve yetişmiş insan gücüne ihtiyaç vardır. 



Standartlara uygun olmayan malzemelerin kullanılmasından veya teknolojiden yeterince yararlanılmamasından kaynaklanan kayıpların bedeli tüketici tarafından ödendiği gibi, can ve mal güvenliği açısından da büyük tehlikeler meydana gelebilmektedir.

Elektrik enerjisi, ticari ve endüstriyel alanda en çok kullanılan üründür. Sürekli devrede olması gereken bir tüketim unsurudur. Depolanması, mevcut şartlar altında söz konusu değildir, bu nedenle elektrik enerjisi üretildiği anda tüketilmesi gereken bir enerji türüdür. Zamanında kullanım ve verimliliği sağlamak için elektrik enerjisinin çok iyi kontrol edilmesi, şartname ve standartlara göre üretim, iletim, dağıtım yapılması ve yüksek güvenilirlikte kullanım ve uygulama yapılması gerekmektedir.

Şebekelerde akım, yükün değerine bağlı olarak değiştiği için kontrol edilemez ancak gerilim kontrol edilebilir. Bu nedenle besleme geriliminin sağlaması gereken bir takım standartlar mevcuttur. Alternatif akım sistemi, belirli frekanslı (50 Hz) ve belirli bir genliğe sahip gerilimde çalışacak şekilde tasarlanmıştır. Sonuç olarak gerilimin genliğinde, frekansta oluşan değişiklik veya dalga şeklindeki bozulma bir güç kalitesi problemidir. Generatörler tarafından mükemmele yakın sinüs biçiminde gerilim üretilmesine rağmen şebeke empedanslarından geçen akım, gerilimde bozulmalara sebep olmaktadır. Örneğin;


Şebekede oluşan bir kısa devre sonunda gerilimin ani olarak düşmesi veya gerilimin tamamen kesilmesi,
Enerji iletim hattına yıldırımın düşmesi sonucu oluşacak aşırı gerilimin şebekede ani darbe gerilimleri meydana getirmesi, bunun sonucunda sistemdeki yalıtımın zorlanması veya delinmesi,
Bir harmonik kaynağından meydana gelen bozulmuş akımın, sistem empedansı ile gerilimi etkilemesi, bunun sonucunda diğer tüketicilerin bozuk gerilim ile beslenmeleridir.


Günümüzde tüm elektronik cihazlar, işlevlerini gerçekleştirebilmek için kararlı ve kaliteli bir enerji kaynağına ihtiyaç duyarlar. Elektronik ve bilgisayar teknolojisindeki son gelişmeler, enerji kalitesi problemini daha da önemli hale getirmektedir. Sadece bilgisayarlar değil, mikroişlemci ve mikrodenetleyici sistemleri ile kontrol edilen tüm elektronik cihazlar ve sistemler, kalitesiz enerjiden olumsuz etkilenir.

Son yıllarda bilgisayar yazılım ve donanım teknolojileri ile haberleşme teknolojilerinde yaşanan gelişmeler, üst düzey otomasyon sistemlerinin tasarımını mümkün kılmıştır. Geniş bir alana yayılmış olan enerji dağıtım sistemlerine adapte edilecek üst düzey otomasyon sistemleri ile hem elektrik dağıtım sistemlerinin işletilmesi ve kontrolü daha kolay ve kaliteli gerçekleştirilecek, hem de tüketicilere daha kaliteli ve güvenilir enerji vermek mümkün olacaktır. 


Tanımlar ve Terimler

Alternatif akım sistemi tanımaya başlamadan önce elektrik güç tesisleri ile ilgili tanımları ve terimleri bir arada sunmakta fayda vardır. Elektrik İç Tesisleri Yönetmeliği ve Elektrik Kuvvetli akım Tesisleri Yönetmeliğinden derlenen ve teknik literatürde en çok kullanılan kavramlar, aşağıda verilmiştir:

Adım gerilimi: Topraklama geriliminin, insanın 1 metre'lik adım açıklığı ile köprülenebilen bölümüdür.

Ağ (enterkonnekte) şebeke: Santrallerin birbiri ile bağlantısını sağlayan gözlü şebekedir.

Ağırlık açıklığı: Direğin iki yanındaki iletkenlerin yatay teğetli noktaları arasındaki yatay açıklıktır.

Akım devresi: Akım kaynağı ile tüketim aracı arasındaki kapalı akım yoludur.

Aktif bölümler: İşletme araçlarının normal işletme şartlarında gerilim altında bulunan iletkenleri ve iletken bölümleridir. Orta iletkenler de aktif bölümlere girer, fakat sıfır iletkenleri ve bunlara iletken olarak bağlı bölümler aktif bölüm sayılmaz.

Alçak gerilim: Etkin değeri 1000 volt ya da 1000 volt'un altında olan fazlar arası gerilimdir.

Ana indirici merkez: Gerek enterkonnekte şebekeden alınan enerjiyi, daha küçük seviyeli iletim şebekelerine, gerekse iletilerek dağıtım bölgesine taşınan enerjiyi seçilmiş dağıtım gerilimi seviyesine dönüştüren transformatör merkezleridir.

Ana kolon hattı: İşletmeye ait besleme noktasından (ana buat) tüketicinin ilk dağıtım noktasına (ana tablo, sayaç) kadar olan besleme hattıdır.

Anma değerleri: Anma gerilimi, anma akımı, anma gücü, anma frekansı gibi işletme araçları ile tesislerin boyutlandırılmasında temel alınan değerlerdir.

Anma kesiti (nominal kesit): İletkenlerin standartlarda belirtilen kesit değeridir.

Ara indirici merkez: İki veya daha fazla yüksek gerilim seviyesi kullanılan şebekelerde enerjiyi bir yüksek gerilim seviyesinden diğerine dönüştüren transformatör merkezleridir.

Aşırı akım koruma aygıtları: Elektrik akımını, öngörülen bir sınır değeri aşması durumunda kendiliğinden kesen aygıt ve düzenlerdir. Bunlar,


Eriyen telli sigortalar ile,
Aşırı akım koruma anahtarları (otomatik sigorta, motor koruma anahtarları gibi) olmak üzere iki bölüme ayrılır.

Aşırı gerilim: Genellikle kısa süreli olarak iletkenler arasında ya da iletkenlerle toprak arasında oluşan, işletme geriliminin izin verilen en büyük sürekli değerini aşan, fakat işletme frekansında olmayan bir gerilimdir.

Aşırı Gerilim: Genellikle kısa süreli olarak iletkenler arasında yada iletkenlerle toprak arasında meydana gelen, işletme geriliminin izin verilen en büyük sürekli değerini aşan, fakat işletme frekansında olmayan bir gerilimdir.

Başka şebekelerin etkisi ile oluşan aşırı gerilim: Başka şebekelerin, sözü edilen şebekeye etkisi sonucunda oluşan gerilimdir.

Dağıtım şebekesi: İletilerek tüketilecek bölgeye taşınmış olan enerjiyi, tüketiciye kadar götüren şebekedir.

Dağıtım transformatör merkezi: Yüksek gerilimli elektrik enerjisini alçak gerilimli elektrik enerjisine dönüştüren transformatör merkezleridir.

Demet iletkenler: Bir faz iletkeni yerine, iki ya da daha çok iletken kullanılan ve iletkenler arasında hat boyunca yaklaşık olarak aynı uzaklık bulunan düzendir.

Dış aşırı gerilim: Yıldırımlı havaların etkisiyle oluşan bir aşırı gerilimdir.

Direğin yararlı tepe kuvveti: Direğe gelen rüzgar yükü dışında, tepeye indirgenmiş öteki kuvvetlerin izin verilen yatay bileşenidir.

Direk açıklığı (menzil): İki komşu direk arasındaki yatay uzaklıktır.

Dokunma gerilimi: Topraklama geriliminin, insan tarafından köprülenebilen bölümüdür.

El ulaşma uzaklığı: Normal olarak girilip çıkılan yerlerde insan elinin, yardımcı bir araç kullanmadan her yönde ulaşabileceği uzaklıklardır. Bu uzaklıklar, basılan yüzeyden başlayarak yukarıya doğru 2,5 metre aşağıya ve yanlara doğru 1,25 metre varsayılır.

Elektrik işletme araçları: Tüm olarak ya da ayrı bölümler halinde elektrik enerjisinin kullanılmasını sağlayan araçlardır.

Elektrik işletme yerleri: Esas olarak elektrik tesislerinin işletilmesine ait yerler olup buraların yalnız ilgili işletme personeli girebilir. Örneğin bağlama tesisi bölümleri, kumanda yapıları ayrılmış bölümlerdeki dağıtım tesisleri, ayrılmış elektrik deney yerleri ve laboratuarlar, makineleri yalnızca yetkili personeli tarafından kullanılabilir) santral makine daireleri ve benzeri yerler bu gruba girer.

Elektrik kuvvetli akım tesisleri: İnsanlar, diğer canlılar ve eşyalar için bazı durumlarda (yaklaşma, dokunma vb.) tehlikeli olabilecek ve elektrik enerjisinin üretilmesini, özelliğinin değiştirilmesini, biriktirilmesini, iletilmesini, dağıtılmasını ve mekanik enerjiye, ışığa, kimyasal enerjiye vb. enerjilere dönüştürülerek kullanılmasını sağlayan tesislerdir.

Elektrik tüketim araçları: Elektrik enerjisini, elektriksel olmayan başka bir enerjiye çeviren yada haberleşmede kullanılan elektrik işletme araçlarıdır.

Elektrik zayıf akım tesisleri: Normal durumlarda, insanlar ve eşyalar için tehlikeli olan akımların meydana gelemediği tesislerdir.

En büyük çekme gerilmesi: -50C'da hesap için esas olan ek yükte ya da en küçük ortam sıcaklığında ek yüksüz yahut +50C'da rüzgar yükünde oluşan iletken gerilmelerinin en büyük yatay bileşenidir.

Enerji kabloları: Elektrik enerjisinin iletilmesi veya dağıtılması için kullanılan, gerektiğinde toprak altına da döşenebilen yalıtılmış iletkenlerdir.

Faz iletkeni: Akım kaynaklarını tüketicilere bağlayan fakat orta noktadan ya da yıldız noktasından çıkmayan iletkenlerdir.

Gerçek kesit: Örgülü iletkenlerin, yapım toleransları dikkate alınmaksızın, net kesit değerleridir.

Gövde Teması: Bir hata sonucunda bir elektrik işletme aracının gövdesi ile aktif bölümler arasında meydana gelen iletken bağlantıdır.

Gövde: İşletme araçların her an dokunulabilen, aktif bölüm olmayan fakat bir arıza durumunda gerilim altına girebilen iletken bölümleridir.

Hat Teması: Kısa devre olayının geçtiği akım devresi üzerinde faydalı bir direnç bulunursa, bu olaya hat teması adı verilir.

Hata akımı koruma bağlaması: Gerilim altında olmayan iletken tesis bölümleri üzerinde ya da topraktan anahtarın anma hata akımını aşan bir hata akımının geçmesi durumunda, bir hata akımı koruma anahtarının elektrik devresini kendiliğinden açtığı bir bağlantı biçimidir.

Hata akımı: Bir yalıtkanlık hatası sonucunda geçen akımdır. Hata akımı ya bir kısa devre akımıdır ya da toprak teması akımıdır.

Hata gerilimi koruma bağlaması: Gerilim altında olmayan iletken tesis bölümleri ile bir yardımcı topraklayıcı arasında yüksek bir dokunma gerilimini meydana gelmesi durumunda bir hata gerilim koruma anahtarının elektrik devresini kendiliğinden açtığı bir bağlantı biçimidir.

Hata Gerilimi: Aygıtların gövdeleri arasında ya da bu gövdelerle referans toprağı arasında hata durumunda meydana gelen gerilimdir.

Hava hattı çeşitleri:

i) Küçük aralıklı hatlar: Birbirini izleyen iki direk arasındaki açıklık, çıplak iletkenler için 50 metre'yi, yalıtılmış iletkenler için 60 metre'yi aşmayan hatlardır.

Not: Küçük aralıklı hatlarda 50 metre'den büyük açıklıklar: Küçük aralıklı hatlarda en büyük açıklık olan 50 metre'lik aralık ancak kaçınılmaz nedenlerle arttırılabilir. Küçük aralıklı hatlarda topografya durumu nedeniyle, 50 metre'den fazla bir açıklık gerekirse, bu bölüm büyük aralıklı hatlar gibi işlem görür.

ii) Büyük aralıklı hatlar: Birbirini izleyen iki direk arasındaki açıklık, çıplak iletkenler için 50 metre'yi, yalıtılmış iletkenler için 60 metre'yi aşan hatlardır.

Hava hattı: Kuvvetli akım iletimini sağlayan mesnet noktaları, direkler ve bunların temelleri, yer üstünde çekilmiş iletkenler, iletken donanımları, izolatörler, izolatör bağlantı elemanları ve topraklamalardan oluşan tesisin tümüdür.

İç aşırı gerilim: Toprak temasları, kısa devreler gibi istenilen ya da istenilmeyen bağlama olayları ya da rezonans etkileriyle oluşan bir aşırı gerilimdir.

İki taraftan beslenen kablo şebekeleri: Bir indirici merkezin bir başka indirici merkezde nihayetlenen ve çoğunlukla bir noktada açık işletilen kablo şebekeleridir.

İletim şebekesi: Yerel koşullar nedeniyle belli yerlerde üretilebilen ve ağ şebeke ile en üst düzeyde toplanan enerjiyi tüketicinin yakınına ileten kablo ve/veya hava hattı şebekeleridir.

İletken donanımı: İletkenle doğrudan doğruya temasta olan ve iletkenlerin bağlanması, gerilmesi ve taşınmasına yarayan parçalardır.

İletken kopma kuvveti: İletkenlerin hesapla bulunan teorik kopma değerinin %95'i ya da kataloglarda "kopma yükü" olarak belirtilen değerdir.

İletkenler: Gerilim altında olup olmamasına bağlı olmaksızın bir hava hattının mesnet noktaları arasındaki çıplak ya da yalıtılmış örgülü ya da tek tellerdir

300W Pioneer Amplifikatör Devresi

300w-pioneer-amplifikator-devresi
Pioneer 300W amplifikatör devresi +- 45v simetrik DC ile çalışıyor güç transistörlerinin tümü NPN2N3773, MJ15003, MJ11016 transistörleri kullanılabilir 4 ohm hoparlör ile 300 watt güç veriyor. Sürücü kartın şema, pcb çizimleri ve proteus isis simülasyonu var güç transistörleri soğutucu üzerinden sürücüye bağlanıyor..
anfi-devresi-guc-anfisi-pioneer-anfi-sema-300w-anfi
alternatif link: 300w-pioneer-amplifikator-devresi.rar alternatif link2

900w Class D Amplifikatör IR2110 IR2010

900w-class-d-amplifikator-ir2110-ir2010
Class D amplifikatörler özellikle bass sesler için kullanılıyor anahtarlamalı çalışma sayesinde çok küçük boyutlarda yüksek güç alınabiliyor devrede kullanılan bobinin değieri 22uh ie33 nüveye sarılabilir (diğer devrede 50uh). 900W Class D amplifikatör devresine ait 2 tasarım var neredeyse aynılar birisinde IR2110diğerinde IR2010 kullanılmış ikisininde şema ve PCB çizimleri var.
Bir ara class d anfilerle uğraşmam gerek işin için ie33 olunca malzemelerde piyasada bulununca ilgimi çekiyor ama bu kadar yüksek güçleri test etmek zor
class-d-anfi-900w-class-d-class-d-amplifier-schema-ir2110-ir2010
DİKKAT 900w Class D anfi devresi yüksek voltaj ile çalışmaktadır +90v -90v tolam 180v dc dikkatli olun kondansatör bağlantılarına dikkat edin + – kutupları ters bağlarsanız yüksek voltajda büyük patlamalar olabilir devreyi çalıştırmadan önce Sigortalı Elektrik Hattı,koruyucu gözlük kullanın
IR2110 IR2010 900w Class D şema, pcb dosyalar: 900w-class-d-amplifikator-ir2110-ir2010.rar alternatiflink2

PASS ZEN V5 Class A Amplifikatör

pass-zen-v5-class-a-amplifikator
Class A amplifikatörler ayrı bir dünya özellikle DIY aleminde bu iş için çok büyük paralar harcayanlar var ilk kural tüm malzemelerin en kalitesinden ve orjinal olması sonrası zaten geliyor class a anfilerdegenelde çıkış güçlri düşüktür ama gerçek güçleri verilir ayrıca sürekli tam güç çalışıyorlar Pass Zen V5 class a anfi devresi sade bir tasarıma sahip tüm detalar ölçim bilgileri vb. verilmiş PASS ZEN V5 güç kaynağında mosfet regülatör kullanılmış aslında regülesizde devre çalıştırılır ama regüleli besleme daha sağlıklıdır yüksek seslerde voltaj dümü olmaz bu arada güç kaynağıda brnzer bir çok class a anfi devresinde kullanılabilir
pass-zen-v5-class-a-amplifier-pass-zen-v5-circuit
Mosfetli simetrik regüle devresinde 120v giriş görünüyor trafoda 120v girişli devreyi yapacak olanlar 220v trafo kullanılmalı bu arada şebeke girişinde garip bir bağlantı var B3 köprü diyotu + ve – uçları kısa devre edilip toprak hattına bağlanmış AC girişlerinden birisi simetrik beslemenin 0 ucuna diğeri ise anfinin kasasına bağlanıyor gürültüyü en aza indirmek için sanırım ya da topraklama ile ilgili ama daha önce hiç görmedim gerçekten çok kaliteli detaylı bir tasarım
class-a-amplifier-power-supply-mosfet-irfp9240-irfp240

The Complementary Zen

by Nelson Pass, (c) 2003 Pass Laboratories The Zen Amp concept is an exploration of how well you can make a simple audio amplifier perform. It makes for an interesting illustration of design technique, since more complex circuits are inevitably composed of collections of simple circuits, and it is well recognized that the optimization of these simple sub circuits is usually the key to getting the most out of the larger circuit.
Kaynak: diyzone.net/article.php?sid=431 alternatif link: pass-zen-v5-class-a-amplifikator.rar alternatif link2

2X60W Class D Amplifikatör İlginç Bir Tasarım 220V Regüle

2x60w-class-d-amplifikator-ilginc-bir-tasarim-220v-regule
Class D amplifikatörler özellike bass seslerde yüksek güç için oldukca ucuz, boyut, ağırlık vb. bakımındn avantajlı olduğu için bir çok seslendirme projesinde kullanılıyor ses kalitesi yüksek değil… bu projede 2x60w class d amplifikatör devresini çalıştırmak için direkt 220v regüle edilmiş regüle güç katında moc3010 tirak sürücü optokuplör ve Q4015L5 15Amper triyak üzerine kurulu bir devre var ve 51v dc çıkış veriyor bu voltaj zenerler ile +-25.5v +-12 ve tek 12v olarak bölünüp class d amplifikatör çalıştırılıyor
220v direkt regüle edilerek kullanılması trafolu ya da smps beslemeye göre daha çok gürültü verebilir ama 2x60w oldukca yüksek bir güç amfi katı bir tarafa regüle katı tahminen 51v üzerinde 3 amper veriyordur farklı projelerde oldukca işe yarar bir ara denemek lazım
2X60 Watt class d amfi çizimleri;
2-60W-class-D-mon-220v-Q4015L5-moc3010- 2-60W-class-D-sch-220v-Q4015L5-moc3010 2-60W-class-D-suply-220v-Q4015L5-moc3010
DİKKAT Devre yüksek voltaj ile çalışmaktadır dikkatli olun kondansatör bağlantılarına dikkat edin + – kutupları ters bağlarsanız yüksek voltajda büyük patlamalar olabilir devreyi çalıştırmadan önce Sigortalı Elektrik Hattı,koruyucu gözlük kullanın

IRS2092 Class D Güç Amplifikatörü Referans Tasarımı 25W 500W

irs2092-class-d-guc-amplifikatoru-referans-tasarimi-25w-500w
500W class d anfi devresini International Rectifier firması IRS2092 entegresi için hazırlanmış pdf dosyasında çıkış bobini soğutucu vb. tüm detaylar, hesaplama, devre şeması ve pcb çizimleri verilmiş ek olarak gerber dosyalarıda var zaten bu referans tasarım üzerinden bir çok class d anfi devresi yapıldı
IRS2092 çıkışında kullanılan IRFI4019H-117P fet modül yerine benzer özelliklerde ayrı mosfetler kullanılabilir IRFI4024H-117P ile 25w 100w IRFI4212H-117P ile 60w 240w IRFI4019H-117P ile 125w 500w
IRS2092 25W-500W Class D Audio Power Amplifier Reference Design
Using the IRS2092 Protected Digital Audio Driver IRS2092 reference design is a two-channel Class D audio power amplifier that features output power scalability. The IRAUDAMP7D offers selectable half-bridge (stereo) and full-bridge (bridged) modes. This reference design demonstrates how to use the IRS2092 Class D audio driver IC, along with IR’s digital audio dual MOSFETs, such as IRFI4024H-117P, IRFI4019H-117P, IRFI4212H-117P and IRFI4020H-117P, on a single layer PCB. The design shows how to implement peripheral circuits on an optimum PCB layout using a single sided board.
irs2092-500w-class-d-audio-power-amplifier-irfi4024h-irfi4019h-irfi4212h
IRS2092 Class D 25W 500W dosyalar: irs2092-class-d-guc-amplifikatoru-referans-tasarimi-25w-500w.raralternatif link2

Mosfet Hifi Amplifikatör RAS100 ve RAS300 Yeni PCB Çizimleri

mosfet-hifi-amplifikator-ras100-ve-ras300-yeni-pcb-cizimleri
Tasarımı Nico Ras`a ait olan diyaudiotr.com sitesinde paylaşılan RAS100 (100w ve RAS300 300w mosfet güç amplifikatörlerine ait hazırladığım PCB çizimlerini paylaşıyorum PCB çizimleri proteus ares ile hazırlandı ek olarak ros300 çiziminde besleme devreside bulunuyor aynı devreyi ras100 içinde kullanabilirsiniz
RAS100 Yeni PCB Tasarımı;
100w-mosfet-amp-ras100-proteus-ares
RAS300 Yeni PCB Tasarımı;
300w-mosfet-amp-ras300-proteus-ares
ras100, ras300, mosfet hifi, güç amplifikatörü, Nico Ras
Not: ras100 ve ras300 yeni pcb çizimleri denenmemiştir dosya içinde bulunan orjinal şema ile karşılaştırıp devreyi yapınız
Orjinal ve yeni dosyalar: mosfet-hifi-amplifikator-ras100-ve-ras300-yeni-pcb-cizimleri.RAR alternatif link2alternatif link3

100W Hi Fi Amplifikatör Ras100 V2

ras100-versiyon-2
Daha önce “Mosfet Hifi Amplifikatör RAS100 ve RAS300 Yeni PCB Çizimleri” yazısında 100W MOSFET amplifikatör RAS-100 için tasarladığım PCB çizimini paylaşmıştım çizimi değiştirdiğim için V2 dedim aslında totalde fark yok ama kullanışlılık ve göze hoş gelmesi açısından çizimde farklar var ayrıca devreyi gerçekleştirme fırsatım oldu çalışmasında bir sıkıntı yok sorunsuz çalışmakta fırsat bulursam yazıya video ekleyeceğim… Dosyalara Ares 7.0 sürümünü de ekledim..
ras-100w-v2
ras100-pcb-ust
ras100-100w-hifi-mosfet-amplifier-v2-3 ras100-100w-hifi-mosfet-amplifier-v2-2 ras100-100w-hifi-mosfet-amplifier-v2-2 ras100-100w-hifi-mosfet-amplifier-v2
100W Mosfet Amplifikatör RAS100-V2 Tüm dosyalar: ras100-versiyon-2.rar alternatif link2, alternatif link3

100W Hi Fi Amplifikatör Ras100 V2

600w-class-d-amplifikator-ir2110
Class D anfi devreleri switch mode anahtarlamalı çalışma sayesinde çok daha az malzeme ile yüksek güç verebiliyor. 600w gibi yüksek bir güç 2 devrenin köprü bağlantısı ile sağlamış (4 ohm hoparlör ile 1000w) toplamda 4 adet FDP2532 mosfet kullanılıyor (yerine IRFP250 kullanılabilir) mosfetler IR2110 mosfet sürücü entegreleri ile kontrol ediliyor. Class D anfi devresinde kullanılan bobinler 30uh değerinde EI33 nüveye sarılabilir yazar 7 adet 0.4mm teli paralel bağlayıp 14 tur sardığını söylemiş
Anfinin aşırı akım çekmesine karşı NE555 timer entegresi üzerine kurulu koruma devreside var -65v besleme hattına seri bağlanan 0.05Ohm 4w direnç üzerindeki gerilim düşümüne göre IR2110 entegrelerini uyku moduna alıp kapatıyor. 600w Class D amplifikatör projesine ait pcb ve şema çizimleri var.
class-d-amplifier-circuit-class-d-anfi-class-d-amplifier-ir2110-1000w-600w
class-d-szuro-utan-tile
DİKKAT 600W Class D anfi devresi yüksek voltaj ile çalışmaktadır +65v -65 toplam 130v dikkatli olun kondansatör bağlantılarına dikkat edin + – kutupları ters bağlarsanız yüksek voltajda büyük patlamalar olabilir devreyi çalıştırmadan önce Sigortalı Elektrik Hattı,koruyucu gözlük kullanın
alternatif link: 600w-class-d-amplifikator-ir2110.RAR alternatif link2 alternatif link3

RMS 190W Darlington Oto Amplifikatör TIP142 TIP147 SG3525 Konvertör

rms-190w-darlington-oto-amplifikator-tip142-tip147-sg3525-konvertor
RMS 190W amfi devresinin çıkış katında TIP142 TIP147 darlington transistörler kullanılmış PCB baskı devre tasarıı çok iyi orjinal Oto amfiden farkı yok gibi .. Darlington amfinin beslemesi simetrik +-30v DC akü voltajını çevirmek için SG3525 kontrol entegresi izerine kurulu DCDC Konvertör devresi kullanılıyor bu bölüm ve amfi tek PCB üzerinde DCDC konvertör devresinde toroid nüve kullanılıyor nüve ve sargı bilgileri verilmiş.
Toroid nüve primer sargısı 3 parça 1.5mm tel paralel bağlanarak 2×4 tur sarılacak sekonder çıkış sargısı ise 1mm telden 2×22 tur
Toroid nüve bulunmazsa yerine ETD, EI tip nüveler kullanılabilir daha önce bu konu hakkında detaylı bir yazı paylaşmıştım; EI33 Trafo Kullanarak DC DC Konvertör 200W 2X30V SG3524 SG3525
190w-rms-darlington-transistor-amplifier-car-amp sg3525-dcdc-convertor-schematic-diagrams-car-amplifier-power-supply
toroid-nuve-primer-sargisi-sekonder-toroid-sg3525-car-amp-dcdc
oto-anfi-darlington-anfi-oto-amplifikator-sg3525-tip142-tip147-dcdc-konvertor

Atmega8

atmel-atmega8-mikrodenetleyicisi-ve-assembler
Hazırlayan: İbrahim KORANA – Atmel üretimi mikrodenetleyiciler hakkında Türkçe kaynak bulmak zor ATmega8 için çok detaylı bir yazı uygulamalar assembler komut bilgileri kullanım bilgileri tahminimce verilen bir çok bilgi diğer modeller içinde geçerlidir
Şekil 2.1.2 Atmega8 Microdenetleyici Blok Diyagramı
atmega8-microdenetleyici-blok-diyagrami
Şekil 2.1.3 Atmega8 Microdenetleyici Bacak Bağlantı Şeması (PDIP)
atmega8-microdenetleyici-bacak-baglanti-semasi-pdip
Şekil 2.1.4 Atmega8 Microdenetleyici Bacak Bağlantı Şeması (TQFP)
atmega8-microdenetleyici-bacak-baglanti-semasi-tqfp
Pin Anlamları
VCC Sistem besleme voltajı. 4.5v-5.5v
GND Sistem GND
Port B (PB0..PB7)
• Port B, programlanabilir pull-up dirençleri bulunan, 8 bit genişliğinde bir giriş-çıkış portudur. Porta byte olarak erişim yapılabileceği gibi bit olarak da erişim yapılabilir.
• Portun 6 ve 7. bitleri, Oscillator’ün internal RC seçilmesi durumunda port bitleri, aksi durumda oscillator giriş uçları olarak kullanılır.
Xtal1/Xtal2/Tosc1/Tosc2
SPI
• Oscillator’un internal RC seçilmesi durumunda portun 6 ve 7. bitleri ASSR registerinin durumuna göre Timer/counter2’nin asenkron giriş uçları olarak kullanılabilir. Port ve portun fonksiyonlarının kullanımı ilerideki konularda detaylı olarak anlatılacaktır
Port C (PC0..PC6)
PC7/Reset
Adc, Seri giriş-çıkış
• Port C, programlanabilir pull-up dirençleri bulunan 7 bit genişliğinde bir giriş-çıkış portudur. Porta byte veya bit erişimleri yapılabilir.
• Portun 7. biti RESDISBL yönlendirme biti ile anlam değiştirebilir. RESDISBL biti programlanmış ise pin girişçıkış pini, programlanmamış Port ve portun fonksiyonlarının kullanımı ilerideki konularda detaylı olarak anlatılacaktır.
Port D (PD0..PD7)
Usart, int,
Timer/counter,
Analog comparator
• Port D, programlanabilir pull-up dirençleri bulunan 8 bit genişliğinde bir giriş-çıkış portudur. Port byte veya bit erimleri ile kullanılabilir. Port fonksiyonlarının kullanımı ilerideki konularda detaylı olarak anlatılacaktır.
AVCC
Avcc analog digital çevirici için besleme voltaj girişidir. Bu voltaj girişi saglanmadan ADC fonksiyonu kullanılamaz. ADC fonksiyonunun kullanımı için Avcc ucu alçak geçiren bir filtre ile besleme voltajına bağlanmalıdır.
AREF
Analog-Digital çevirici için referans voltaj girişidir.
MCS-51 Microdenetleyici Ailesinin RAM yapısı ve Register’leri
Genel Amaçlı Registerler ve Stack : MCS-51 sisteminde register kavramı, diğer microdenetleyici sistemlerindeki genel amaçlı register kavramı ile aynıdır. Söz konusu sistemin mimari özelliklerinden biri bu registerlerle ilgilidir. MCS–51 sisteminde fiziksel olarak hiç bir register bulunmaz. Fakat MCS-51’ in assembler dilini başka işlemcilerin alışılmış olan assembler diline yaklaştırmak amacıyla MCS-51’in assembler dilinde R0 – R31 gibi 32 adet register ismi kullanılmaktadır.
Görünür ile gerçeklik arasında uyum her bir register ismi altında belli bir iç RAM hücresinin
kullanılması sayesinde sağlanır. Bu uyumu sağlamak için gereken işlemler derleyici
tarafından ve kullanıcıya şeffaf olarak gerçekleştirilir. Registerler iç ram’ın 00h -1Fh adresleri de yerleşir.
Buna göre söz konusu registerlerin ismini veya adreslerini kullanmanın hiçbir farkı yoktur. Örneğin R5. registerinin içeriğinin akümülatöre gönderilmesi gerekiyorsa o zaman MOV A, R5 veya MOV A, $05 yazılması yeterlidir. Sonuç olarak sistemde 32 register vardır. Bu registerler iç ram’ın 00h – 1Fh adreslerine yerleşmektedir. Aslında registerler ram hücrelerin kendileridir. Bu hücreler komut görüntüsüne uygun olarak registerler diye adlandırılmaktadırlar. Böyle aldatmacalar bilgisayar tekniğinde çok yaygın olarak kullanılmaktadır ve amacı kullanıcı alışkanlığı ile donanım gerçekliği arasındaki açıklığı mümkün olduğu kadar kapatmaktır.
Şekil 2.3.1.1 Registerlerin iç ram üzerindeki yerleşimi
registerlerin-ic-ram-yerlesimi
Microdenetleyiciler iç ram olarak 8 bit ile adreslenemeyecek kadar büyük iç ram veya
rom bulundurabilirler. Bu gibi durumlarda iç ram’a veya rom’a erişim için 16 bit registerler
gerekli olurlar. Bu ihtiyacı karşılayabilmek için X,Y,Z registerleri düzenlenmiştir. Bu
registerler R26 ile R31 registerleri üzerine yerleştirilmiş durumdadırlar ve genel olarak
Indirect adresleme için kullanılırlar.
Şekil 2.3.1.2 X,Y,Z registerlerinin ram üzerindeki yerleşimi
xyz-registerlerinin-ram
Stack, program içinde kullanılan geçici dataların saklanılması amacıyla kullanılan bir
alandır. Program içinde kullanılan local degişkenler, alt program çağırmalarında ve Interrupt
geçişlerinde geri dönüş adresleri ve parametreler stack alanı içinde tutulur. Stack LIFO (Last in First Out, Son giren ilk çıkar) metodu ile çalışır.
Registerler gibi stack’da ayrıca şema olarak mevcut değildir. Stack işlemleri SP (Stack
Pointer) registerin yardımı ile iç ram’ın belli bir alanında simule edilir.
MCS-51 core içerisinde gerçekleştirilmiş olan mantığa göre microdenetleyicinin her bir resetlemesinden sonra SP = 0h durumu oluşur. Bu durum stack alanı ile register alanlarının çakışmalarına neden olur. Herhangi bir karışıklığın önlenebilmesi için programların eğer stack kullanacaklarsa Stack Pointer’a stack olarak kullanacakları alanın başlangıç adresini yerleştirmeleri gereklidir. Stack teorik olarak 60h adresinden başlayarak FFh adresine kadar devam edebilir.
20h – 5Fh arasındaki iç ram alanı hayati önem taşımakta olan SFR (Special Functial
Register) için ayrılmıştır ve bu alanın başka amaçlar için kullanılması microdenetleyicinin
işinin bozulmasına sebep olabilir. Bu registerler sonraki bölümde açıklanacaktır.
Şekil 2.3.1.3 Genel iç ram yerleşimi
genel-ic-ram-yerlesimi
Özel Amaçlı Registerler
Bu registerler gurubunu sadece SFR’ ler (Spesial Function Registers) olarak adlandıracağız. Bu registerlerden her biri çok özel olan bir veya birkaç fonksiyonun gerçekleştirilmesine hizmet ederler. Her bir programda SFR’ lerin hepsinin kullanılması gerekmez. Yani herhangi bir programda yalnız o program için geçerli olan SFR alt gurubu kullanılır. Geride kalan SFR’ler hakkında düşünmeye gerek yoktur. Çünkü RESET sırasında bütün SFR’ ler etkisiz duruma getirilir. SFR’leri açıklarken onları hizmet amaçlarına göre aşağıdaki guruplara bölünmesi uygun olacaktır.
• Microdenetleyicinin mikroişlemci kısmının temel görevlerini sürdürebilmesi için gereken SFR’ler.
• Microdenetleyicinin içinde bulunan Timer/Counter’ları denetleyen SFR’ ler.
• Microdenetleyici içerisinde bulunan Usart’ı denetleyen SFR’ler,
• Microdenetleyici içerisinde bulunan interrupt devresi denetleyen SFR’ ler.
• Giriş / Çıkış portları olarak kullanılan SFR’ ler,
• Diğer SFR’ler
Özel Amaçlı Registerler başlığı altında sadece Microdenetleyicinin microişlemci kısmının temel görevlerini sürdürebilmesi için gereken SFR’lerden bahsedilecek, Timer/Counter, Usart, Interrupt ve diğer SFR’ler ayrı başlıklar halinde incelenecektir.
SREG (Status Register) : Bu register yapılan matematiksel işlemlerin ve microdenetleyicinin genel durumunu tutmak için kullanılır. Register bir bayt olarak veya 8 ayrı bit olarak adreslenebilir. Register iç ram’de 5Fh adresinde yer alır. SREG’in bit yapısı aşağıdaki gibidir.
bit-read-write-sreg-atmega8
I Global Interrupt Enable
T Bit Copy Storage
H Half Carry Flag
S Sign Bit
V Two’s complement overflow flag
N Negative Flag
Z Zero Flag
C Carry Flag
SREG Registerinin bit değerleri, yapılan işlemlere göre microdenetleyici tarafından oluşturulur. Fakat programlar tarafından istenildiği şekilde değiştirilebilir.
(I) Global Interrupt Enable : I biti, microdenetleyici içindeki iç ve dış interruptları genel olarak açmak ve kapatmak için kullanılır. Eğer bit set durumda ise microdenetleyici kurulmuş
interruptların çalışmasına imkan verecektir. Aksi durumda interruptlar kurulmuş olsa
bile interrupt aktif olmayacaktır. Eğer I biti set edilmişse interrupt oluştuğunda microdenetleyici bit değerini kendiliğinden resetler ve reti komutu ile tekrar set yapar. Bu yöntem ile microdenetleyicinin peşpeşe oluşan interruptlarla stack taşmasının önüne geçilmiş olur. I biti sei komutu ile set, cli komutu ile resetlenebilir.
(T) Bit Copy Storage : T biti, bit kopyalama işlemlerinde kaynak veya hedef olarak kullanılır. Bit BLD ve BST komutlarında geçici alan olarak kullanılır. BLD komutu T bitini
belirlenen registerin istenen bitine kopyalar.
rd-b-t
Örnek : BLD r16,4 T bitinin değerini r16 registerinin 4. bitine kopyalar.
BST Komutu belirlenen registerin belirlenen bitini T registerine kopyalar.
t-rd-b
Örnek : BST r16,2 R16 registerinin 2. bitini T bitine kopyalar.
(H) Half Carry Flag (Auxilary Carry) : Microdenetleyici matematiksel işlemlerin sonunda H flagını set veya reset yapar. Flag genel olarak matematiksel işlemlerde alıcı alanın alt nibble’ında bir taşma olursa set olur. Bu durum BCD matematiksel işlemlerin yapılabilmesini sağlar.
(S) Sign Bit : Microdenetleyicinin matematiksel işlemler sonunda etkilediği bir flagdır. Flag
daima N ve V flaglarının toplamını ifade eder.
(V) Two’s complement overflow flag : Flag iki tabanlı sayılarla yapılan matematiksel işlemlerde byte üzerindeki taşmayı kontrol etmek için kullanılır. Yapılan matematiksel işlemler sonunda microdenetleyici flagı set veya reset yapar.
(N) Negative Flag : İşaretli sayılarla işlem yaparken işlem sonucunun işareti hakkında bilgi verir. Flagın set olması işlem sonucunun negatif, aksi pozitif olduğunu belirtir.
(Z) Zero Flag : Bir matematiksel işlem sonunda sonuç 0 ise veya bir atama işleminde alıcı
alana aktarılan değer 0 ise flag set olur. Bu özellik karşılaştırma işlemlerinde oldukça
sık kullanılır.
(C) Carry Flag : Bu flag ALU vasıtası ile peşpeşe yapılan toplama ve çıkartma işlemlerinin
gerçekleştirilmesi ve başka amaçlar için kullanılabilen bir flagdır. Toplama işlemlerinde flag elde (carry), çıkartma işlemlerinde borç (barrow) flagı olarak kullanılır. Çıkartma işleminde barrow’un dikkat dışı bırakılması gerektiğinde işlemden önce C=0 yapılmalıdır. Toplama işlemleri için ise iki değişik komut; ADD ve ADDC komutları kullanıldığından söz konusu ön hazırlığa ihtiyaç yoktur.
SP Registeri (Stack Pointer) : Bu register stack göstergesi olarak kullanılır. 5Dh ve 5Eh adreslerine yerleştirilmiştir. Stack teorik olarak tüm ram üzerinde olabileceği için 16 bit’lik bir register olarak düzenlenmiştir. SP olarak 16 bit erişim sağlanabileceği gibi SPH (5Eh) ve SPL (5Dh) olarak 8 bitlik erişim de sağlanabilir.
MCUCR Registeri (MCU Control Register) MCUCR registeri genel olarak microdenetleyicinin güç kontrolü ve dış interruptların nasıl tetikleneceğini belirlemek için kullanılır. Registerin genel yapısı;
mcucr
SE SM0..SM2 bitleri ile belirlenen microdenetleyici güç uyuma modunun aktif edilmesini sağlayan bittir. Bitin set edilmesi durumunda SM0..SM2 ile belirlenen güç uyuma modunu aktif hale getirir.
SM0..SM2 Microdenetleyici güç uyuma modlarının seçimini sağlayan bitlerdir.
sleep-mode-select
Not 1 : Bu mod sadece external oscillator kullanıldığında geçerlidir.
Idle Sleep Mode : SM0, SM1 ve SM2 bitleri 0 yapıldığında microdenetleyici idle güç uyuma moduna geçer. Bu modda CPU ve flash dışındaki tüm birimler çalışır durumdadır. Mod aktif edildikten sonra herhangi bir dış interrup geldiğinde, herhangi bir iç timer owerflow olduğunda, USART’tan bir karakter alındığında microdenetleyici Idle moddan çıkar.
ADC Noise Reduction : SM0 1, SM1 ve SM2 bitleri 0 yapıldığında ADC gürültü bastırma moduna geçilir. Bu modda I/O, CPU ve flash kapatılır. Bu birimler dışındaki birimler çalışır durumdadır. ADC Noise Reduction güç uyuma modu yüksek çözünürlüklü ADC çevrimlerinde oluşabilecek parazitleri engellemek içindir. Bu nedenle mod adc okuma çevrimine girildiğinde kendiliğinden devreye girer.
Power-Down : MCUCR registeri içinde SM0,SM1,SM2 bitleri 010 yapılırsa microdenetleyici Power-Down güç uyuma moduna geçer. Bu modda externel interruptlar, Two wire serial Interface ve watchdog hariç her şey durdurulur. Power-Down modunda iken açık external interruptlardan birinin durum değiştirmesi moddan çıkmak için yeterlidir.
Power-Save : SM0, SM1 ve SM2 bitleri 011 yapıldığında microdenetleyici powersave
moduna girer. Power-save modu power down modu ile çok benzer şekilde çalışır. Modun Power-down modundan farkı, timer2 asenkron modda çalışıyorsa timer2’nin durdurulmamasıdır.
Standby : Bu mod, microdenetleyici external crystal/resonator ile çalışacak şekilde
düzenlenmişse geçerlidir. Standby, power-down modu ile aynı özelliklere sahiptir. Ancak
standby modundan çıkış için 6 clock gereklidir.
Microdenetleyiciye ait tüm güç uyuma modları özet olarak aşağıdaki gibi gösterilebilir.
active-clock-domains-and-wake-up-sources-in-the-different-sleep-modes
Active Clock Domains : Aktif clocklar
Wake-up Sources : Uyandırma Kaynakları
(1) Clock kaynağı olarak external crystal/resonator seçilmişse
(2) ASSR registerinde ASR biti set edilmişse
(3) INT0 ve INT1 seviye tetiklemeli olarak seçilmişse
ISCxx ISCxx bitleri INT0 ve INT1 external interruptlarının nasıl tetikleneceğini gösteren bitlerdir. ISC00 ve ISC01 interrupt 0, ISC01 ve ISC11 interrupt 1 için tetikleme şekli belirler. Interrupt 0 için tetikleme tipleri aşağıdaki gibidir.
isc01-isc00
Interrupt 1 için tetikleme tipleri aşağıdaki gibidir.
isc11-isc10
MCUCSR Registeri (MCU Control and Status Register)
MCUCSR registeri microdenetleyicinin hangi kaynaktan resetlendiğini program içinde tesbit etmek için kullanılır. Registerin yapısı :
mcucsr
Bit 4..7 : Registerdeki 4-7 arasındaki bitler yedek bitlerdir ve değerleri daima 0’dır.
Bit 3 : WDRF Watchdog Reset Flag Microdenetleyici Watchdog tarafından resetlenmişse flag set olur.
Bit 2 : BORF Brown-out Reset Flag Microdenetleyici internal Brown-out devresi tarafından resetlenmişse flag set olur.
Bit 1 : EXTRF External Reset Flag Microdenetleyici reset ucu ile resetlenmişse flag set olur.
Bit 0 : PORF Power-on Reset Flagm Microdenetleyiciye ilk kez enerji verildiğinde flag set olur.
MCUCSR Registeri microdenetleyici resetlendikten sonra program yolu ile sıfırlanmalıdır.
OSCCAL Registeri (Oscillator Calibration)
Register, microdenetleyici internal RC oscillator ile çalıştırıldığında, oscillator’ü ayarlamak için kullanılır. Internal RC ilk kez çalıştırıldığında oscillator 1 Mhz, OSCCAL registeri 0 olarak ayarlanmıştır. Oscillator frekansı, OSCCAL registerinin değeri değiştirilerek % cinsinden ayarlanabilir. Registere yazılacak 0 dışındaki değerler oscillator frekansının artmasına neden olur. Bu yöntemle yapılan frekans değişimleri flash ve eeprom erişimlerini direkt etkiler. Bu nedenle flash ve eeprom erişimlerinde frekans %10 dan fazla artırılmamalıdır. OSCCAL frekans değişimleri aşağıdaki tabloda gösterilmiştir.
internal-rc-oscillator-frequency-range
Farklı oscillator seçimlerinde OSCCAL register değerinin frekans üzerindeki etkisi :
calibrated-8mhz-4mhz-rc-oscillator-frequency-osccal-value
calibrated-2mhz-1mhz-rc-oscillator-frequency-osccal-value
SPMCR Registeri (Store Program Memory Control Register)
SPMCR registeri program hafızasının programlanması sırasında kullanılacak olan bitleri içerir. Microdenetleyici içinde çalışan bir program tarafından program hafızasının (Flash Rom) programlanması boot loader programlarının vazgeçilmez özelliğidir. Bu nedenle register içeriği boot loader başlığı altında detaylı olarak incelenecektir. Registerin genel yapısı
aşağıdaki gibidir.
spmcr
SFIOR Registeri (Spesial Function In/Out Register)
PSR10 : Timer/Counter0 ve Timer/Counter1 tarafından kullanılan prescaller’ın (bölücü) resetlenmesini sağlar. Resetleme bit set yapıldığında ve timer/counter yeniden start edildiğinde gerçekleşir. Bit okunduğunda her zaman 0 değerini verecektir.
PSR2 : Timer/Counter2 tarafından kullanılan prescaller’ın (bölücü) resetlenmesini sağlar. Resetleme bit set yapıldığında ve timer/counter yeniden start edildiğinde gerçekleşir. Bit okunduğunda her zaman 0 değerini verecektir.
PUD : I/O portlara ait açılmış tüm pull-up dirençlerin kapatılmasını sağlar.
ACME : Microdenetleyici içindeki ADC kapalı ve ACME biti set ise Analog comparator’un negatif girişi ADC multiplexer tarafından seçilir. ACME biti logic 0 ise Analog conparator’un negatif girişi AIN1 ucundadır. Bitin detaylı açıklaması Analog Comparator bölümünde detaylı olarak anlatılacaktır.
Özel Amaçlı registerlerin microdenetleyici fonksiyonları açısından anlatımına başlamadan önce Atmel Mcs-51 komut setinin, program yazımı ve verilen örneklerin anlaşılabilmesi açısından kısaca anlatımında yarar bulunmaktadır.
Genel Assembler Bilgileri
Her bir assembler komutu bir, iki, üç veya dört kısımdan oluşabilir. Komut kısımları bir birinden virgül (,) vasıtasıyla ayrılır. Her bir komutun birinci kısmı komutun görevini ifade eder. Mesela MOV – gönder, ADD – topla, ANL – lojik çarp, JMP – atla, XCH – değiştir vs. Komutun geriye kalan kısımlarını onun operandları (üzerinde işlem yapılacak olan bilgiler) oluşturur. Bu anlamda sıfır, bir, iki ve üç operandlı komutlar söz konusu olacaklardır. Komutta her hangi bir operand olarak veri (data), adres ve register ismi kullanılabilir. Komularda sabit veri olarak 2’ li, 16’ lı ve 10’ lu sayı sisteminde ifade edilmiş sayılar kullanılabilir. Verilmiş olan sayını 2’ li sistemde ifade edilmiş olduğunu bildirmek için sayının başına 0b eklenir. Aynı amaçla 16’ lı sayının başına 0x eklenir. Eğer sayının sonuna veya başına hiç bir işaret eklenmemiş ise o zaman söz konusu sayının 10’ lu sistemde verilmiş olduğu varsayılır.
Örneğin : ldi r16, 0b10001001 ldi r15, 0x0F ldi r14, 112
Herhangi bir microdenetleyici komut seti ile programlama için kullanılan assembler derleyici arasında sıkı bir bağ bulunmaktadır. Assembler derleyiciler program yazımını kolaylaştırmak amacıyla komut setine ek olarak microdenetleyici komut setinden farklı komutlar sunabilmektedirler. Bu nedenle, bundan sonra anlatılacaklar Atmel firmasının AVR Studio 4 yazılımı esas alınarak anlatılacaktır. Yazılım bir assembler compiler’ın yanı sıra bir microdenetleyici simülatörü, bir flash programlayıcı ve debugger içermektedir. (Yazılım http://www.atmel.com/dyn/resources/prod_documents/aStudio4b460.exe linkinden ücretsiz olarak alınabilir.)
DEVICE : Komut, assembler derleyiciye hangi microdenetleyici için kod üreteceği konusunda bilgi üretir. Komut ile kullanılabilecek microdenetleyici isimleri aşağıdaki tabloda verilmiştir.
atmel-klasik-tiny-mega-diger
Assembler Operatörleri
Assembler komut operandları içinde, operandlar üzerinde direkt işlem yapmak için kullanılan işaretlerdir. Bu işaretler :
oparatorler
Logical Not
Sembol: !
Açıklama: Operatörde kullanılan değer 0 ise 1, sıfır olmayan bir değer ise 0 döndürür.
Örnek : ldi r16,!0xf0 ;r16 registerine 0 değerini atar.
Bitwise Not
Sembol : ~
Açıklama : Operatörde kullanılan değerin tüm bit değerlerini tersine çevirir.
Örnek : ldi r16,~0xf0 ; r16 registerine 0x0f değerini atar.
Minus
Sembol : -
Açıklama : Operatör kendisinden sonra kullanılan değeri negatif yapar.
Örnek : ldi r16,-2 ; r16 registerine -2 (0xfe) değerini yükler.
Multiplication
Sembol : *
Açıklama : Bu operatör iki değerin çarpımını döndürür.
Örnek : ldi r30,label*2 ;r30 registerine label*2 değerini atar.
Division
Sembol : /
Açıklama : Bu operatör soldaki değerin sağdaki değere bölümünün tamsayı cinsinden
sonucunu döndürür.
Örnek : ldi r30,label/2 ;r30 registerine label/2 sonucunu yükler
Modulo (AVRASM2)
Sembol : %
Açıklama : Operatör soldaki değerin sağdaki değere bölümünden kalanı tamsayı olarak
döndürür.
Örnek : ldi r30,label%2 ;r30 registerine label%2 sonucunu yükler
Addition
Sembol : +
Açıklama : Operatör iki değerin toplamını döndürür.
Örnek : ldi r30,c1+c2 ;r30 registerine c1+c2 sonucunu yükler.
Subtraction
Sembol : -
Açıklama : Operatör soldaki ifade ile sağdaki ifadenin farkını döndürür.
Örnek : ldi r17,c1-c2 ;r17 registerine c1-c2 sonucunu yükler.
Shift left
Sembol : <<
Açıklama : Operatör kendisinden önce kullanılan değerin bitlerini sağında kullanılan sayı
kadar sola kaydırarak sonucu döndürür.
Örnek : ldi r17,1<<4 ;r17 registerine 1 in 4 kez sola kaydırılmış halini yükler.
Shift right
Sembol : >>
Açıklama : Operatör kendisinden önce kullanılan değerin bitlerini sağında kullanılan sayı kadar sağa kaydırarak sonucu döndürür
Örnek: ldi r17,c1>>c2 ;r17 registerine c1 değerini c2 kez sağa kaydırarak yükler
Less than
Sembol : <
Açıklama : Operatörün solundaki değer sağındaki değerden küçükse 1, aksi durumda 0
döndürür.
Örnek : ldi r18,bitmask*(c1
Less or equal
Sembol : <=
Açıklama : Operatörün solundaki değer sağındaki değerden küçük veya eşitse 1, aksi
durumda 0 döndürür.
Örnek : ldi r18,bitmask*(c1<=c2)+1 ;r18 registerine işlem sonucunu aktarır.
Greater than
Sembol : >
Açıklama : Operatörün solundaki değer sağındaki değerden büyükse 1, aksi durumda 0
döndürür.
Örnek : ldi r18,bitmask*(c1>c2)+1 ;r18 registerine işlem sonucunu aktarır.
Greater or equal
Sembol : >=
Açıklama : Operatörün solundaki değer sağındaki değerden büyükse veya eşitse 1, aksi
durumda 0 döndürür.
Örnek : ldi r18,bitmask*(c1>=c2)+1 ; r18 registerine işlem sonucunu aktarır.
Equal
Sembol : ==
Açıklama : Operatörün sonundaki değer ile sağındaki değer eşitse 1, aksi durumda 0
döndürür.
Örnek : ldi r18,bitmask*(c1==c2)+1 ; r18 registerine işlem sonucunu aktarır.
Not equal
Sembol : !=
Açıklama : Operatörün solundaki değer ile sağındaki değer eşit değilse 1, aksi durumda
0 döndürür.
Örnek : .SET flag=(c1!=c2) ;flag değişkenine 1 veya 0 değerini aktarır
Bitwise And
Sembol : &
Açıklama : Operatörün solundaki ve sağındaki değerlerin bitlerini karşılıklı olarak and
logical işlemine tabi tutar.
Örnek : ldi r18,0x0A & 0×02 ;r18 registerine 2 değerini atar.
Not : And işleminde işleme tabi tutulan iki bit 1 ise sonuç 1 aksi halde sonuç 0 olur.
Bitwise Xor
Sembol : ^
Açıklama : Operatörün solundaki ve sağındaki değerlerin bitlerini karşılıklı olarak xor
logical işlemine tabi tutar.
Örnek : ldi r18,0x0A ^ 0×02 ;r18 registerine 0×48 değerini atar.
Not : Xor işleminde işleme tabi tutulan iki bit 1 ise veya 0 ise sonuç 0 aksi durumda sonuç 1 olur.
Bitwise Or
Sembol : |
Açıklama : Operatörün solundaki ve sağındaki değerlerin bitlerini karşılıklı olarak or logical işlemine tabi tutar.
Örnek : ldi r18,0x0A | 0×02 ;r18 registerine 0x4A değerini atar.
Not : Or işleminde işleme tabi tutulan iki bitten herhangi birisi 1 ise sonuç 1 aksi durumda sonuç 0 olur.
Logical And
Sembol : &&
Açıklama : Operatörün her iki tarafındaki değerlerden bir tanesinin 0 olması durumunda
0, aksi durumda 1 döndürür.
Örnek : ldi r18,0x0A && 0×02 ;r18 registerine 1 değerini atar.
Logical Or
Sembol : ||
Açıklama : Operatörün her iki tarafındaki değerlerden her ikisinin de 0 olması
durumunda 0, aksi durumda 1 döndürür.
Örnek : ldi r18,0x0A || 0×02 ;r18 registerine 1 değerini atar.
Conditional operator (AVRASM2)
Sembol : ? :
Düzen : Logic? exp1 : exp2
Açıklama : Logic olarak verilen ifade doğru ise exp1 değerini aksi halde exp2 değerini
döndürür.
Örnek : ldi r18, 1 > 2? 10 : 20 ; r18 registerine 20 değerini atar.
Hazır Fonksiyonlar
Hazır fonksiyonlar avr studio 4 assembler içinde bulunan hazır fonksiyonlardır. Bu fonksiyonlar :
• LOW(exp) 16 bitlik exp ifadesinin düşük byte değerini döndürür
• HIGH(exp) 16 bitlik exp ifadesinin yüksek byte değerini döndürür
• BYTE2(exp) exp ifadesinin 2. byte değerini döndürür
• BYTE3(exp) exp ifadesinin 3. byte değerini döndürür
• BYTE4(exp) exp ifadesinin 4. byte değerini döndürür
• LWRD(exp) exp ifadesinin 1. ve 2. byte değerlerini döndürür.
• HWRD(exp) exp ifadesinin 1. ve 2. byte değerlerini döndürür.
• PAGE(exp) exp ifadesinin 16-21. bit değerlerini döndürür.
• EXP2(exp) exp ifadesinin karesini döndürür.
• LOG2(exp) exp ifadesinin logaritmasını tamsayı olarak döndürür.
Data transfer komutları genel olarak, herhangi bir hafıza adresine değer atamak veya herhangi bir hafıza adresindeki bir değeri başka bir hafıza adresine aktarmak için kullanılan komutlardır.
Dallanma Komutları
Dallanma komutlarının özetlemesine geçmeden önce dallanma komutlarında sıklıkla kullanılan dört kavramın açıklanması gerekmektedir.
• Long address
• Absolute address
• Relative address
• Indirect address
Long Address : Bu tür adres yalnız atama ve çağırma komutlarında kullanılır. Eğer komutun adres operandı olarak 16 bitlik bir sayı kullanılırsa bu kod uzun adres olarak adlandırılır. Birçok microdenetleyici için adres hattı 16 bittir. Bu nedenler 16 bitlik bir adres long address olarak adlandırılır.
Absolute Address : Bu tür adres de yalnız atlama ve çağırma komutlarında kullanılır. Eğer absolute adres kullanan bir komutun adres operandı olarak 11 bitlik bir ikili kod veya büyük rakamı 7’ yi aşmayan 16’ lı kod kullanırsa bu kod absolute adres olarak adlandırılır. Görüldüğü gibi bu tür adreslemede adres hattının 5 büyük bitinin durumu hakkında somut bilgi verilmiştir. Absolute adreslemenin şartlarına göre söz konusu bitlerin bir önceki adresleme sırasında oluşmuş olan durumu değişmez kalmalıdır. Yani A15 – A11 bitlerinin eski durumu ile A10 – A0 bitlerinin yeni durumu birleşerek 16 bitlik tam bir adres oluşturur. Absolute adreslemede adresin 5 büyük bitinin kullanılması adreslemenin söz konusu bitlerin belli bir durumunda gerçekleştirilmesi demektir.
Relative Address : Relative adresleme şartlı veya şartsız kısa atlamalar için kullanılır. Bu tür adreslemede adres kodunun uzunluğu 8 bittir. Long ve absolute adreslerden farklı olarak bu kod varılacak olan bellek hücresinin adresini değil bu hücrenin program sayacının (Program Counter) göstermekte olduğu hücrelerden uzaklığı belirtir. Atlamalar ileriye ve geriye doğru olabildiğinden dolayı uzaklıkları da artı ve eksi işareti olabilirler. Başka bir deyimle relative adres işaretli bir sayı olmak zorundadır. Relative adresleme yöntemi ile 128 baytlık geriye 127 baytlık ileriye doğru atlama yapılabilir. Relative adreslemede atamaların doğru gerçekleştirilmesi için söz konusu adreslerin değerleri değil onlar arasındaki fark önemlidir. Yani programın bellek içerisinde herhangi bir şekilde kaydırılması relative adreslere göre kurulmuş olan atamaları etkilenmez. Atlama ilişkileri tamamen relative adreslere göre kurulmuş olan bir program ram yerleşim değişimlerinden etkilenmez.
Indirect Address : Indirect adresleme okuma ve yazma işlerinde kullanılır. Bu adreslemede komutun adres operand kısmında okunacak veya yazılacak hafıza hücrenin adresinin bulunduğu register gösterilir. Adreslemede kullanılan registerler olarak R0 veya R1 genel registerlerin biri veya pointer registerleri (X,Y,Z) kullanılır. R0 ve R1 registerleri 1 baytlık olduğu için belleğin yalnız ilk 256 baytını adresleyebilir ve bunlardan dolayı çok özel durumlarda faydalı olabilir. Ancak pointer registerleri 16 bitlik olduğu için mevcut adres uzayının başından sonuna kadar adresleyebilir.
atmega-sink-akim-source-akim
Çıkış olarak belirlenen bir port pininden 20 mA (miliamper) akım çekilebilir. 20 mA’den daha fazla akım gerektiren uygulamalarda pin’in zarar görmemesi için yükün transistör ile sürülmesi gereklidir. Port pinleri üzerinden değişik yapılardaki yükleri sürerken dikkat edilmesi gereken diğer bir husus da sistem beslemesinden daha yüksek voltajlarda çalışan yüklerden gelebilecek voltaj sızıntılarının önlenmesidir. Bu tür voltaj sızıntılarının önlenmesi tıkama diyotu yolu ile gerçekleştirilir.
Digital Output Örnek :
atmega-dijital-output-ornek
#include "m8def.inc" .CSEG .ORG 0x000
;Osilator ayarlanıyor
ldi r16,0xFF out OSCCAL,r16
;stack pointer ayarlanıyor
ldi r16,high(RAMEND) out sph,r16 ldi r16,low(RAMEND) out spl,r16
;port C çıkış için ayarlanıyor
ldi r16,0xFF
out DDRD,r16
ldi r16,0x01
out PORTD,r16
DNN: rol r16 out PORTD,r16 rjmp DNN
Digital Input-Output Örnek:
atmega-dijital-input-output-ornek
#include "m8def.inc"
.CSEG .ORG 0x000
;Osilator ayarlanıyor
ldi r16,0xFF out OSCCAL,r16
;stack pointer ayarlanıyor
ldi r16,high(RAMEND) out sph,r16 ldi r16,low(RAMEND) out spl,r16
;port C çıkış için ayarlanıyor
ldi r16,0xFF
out DDRC,r16
ldi r16,0x01
out PORTC,r16
;port D giriş için ayarlanıyor
ldi r16,0x00
out DDRD,r16
ldi r16,0xFF
out PORTD,r16

clt ;T Flagı reset
ldi r16,0x01
DNN: sbic PORTD,2 ;2. bit reset ise (Tuşa basıldı) rjmp PRG0 rcall TBIT
PRG0: brts SAGA ;T flag set ise rjmp SOLA
SOLA: rol r16 out PORTC,r16 rjmp DNN
SAGA: ror r16 out PORTC,r16
rjmp DNN
TBIT: brts RESETLE set ;T flagını set et rjmp CIKIS
RESETLE: clt ;T flagını resetle CIKIS: sbis PORTD,2 ;2. bit set ise (Tuş Bırakıldı) rjmp CIKIS ret
Step Motor Sürme
atmega8-step-motor-surme
#include "m8def.inc" .CSEG
;Osilator ayarlanıyor
ldi r16,0xFF
out OSCCAL,r16
;stack pointer ayarlanıyor
ldi r16,high(RAMEND)
out sph,r16
ldi r16,low(RAMEND)
out spl,r16
;port C çıkış için ayarlanıyor
ldi r16,0xFF
out DDRC,r16
;C portunun tüm bitleri set ediliyor
ldi r16,0xFF out PORTC,r16 DNN:
;1. Adım
ldi r16,0x01
out PORTC,r16
rcall BEKLE
;2. Adım
rol r16
out PORTC,r16
rcall BEKLE
;3. Adım
rol r16
out PORTC,r16
rcall BEKLE
;4. Adım
rol r16
out PORTC,r16
rcall BEKLE
rjmp DNN
BEKLE:
ldi r17,0xFF
BEK0:
ldi r18,0xFF
BEK1: dec r18 cpi r18,0x00 brne BEK1 dec r17 cpi r17,0x00 brne BEK0 ret
7 Segment Display Sürme
atmega8-7segment-display-surme
#include "m8def.inc"
.CSEG .ORG 0x000
;Osilator ayarlanıyor
ldi r16,0xFF out OSCCAL,r16 ;stack pointer ayarlanıyor
ldi r16,high(RAMEND) out sph,r16 ldi r16,low(RAMEND) out spl,r16
;port C çıkış için ayarlanıyor ldi r16,0xFF out DDRC,r16
ldi r16,0x00
out PORTC,r16
;port D Çıkış için ayarlanıyor
ldi r16,0xFF out DDRD,r16 ldi r16,0x00 out PORTD,r16 ; ; ;
PRG: ;0 Yazdırılıyor
ldi r16,0b00111111 out PORTC,r16 sbi PORTD,0 call BEKLE
;1 Yazdırılıyor ldi r16,0b00000110 out PORTC,r16 sbi PORTD,0 call BEKLE rjmp PRG
BEKLE: ldi r17,0xFF BEK1:
dec r17
cpi r17,0x00
breq CIK
rjmp BEK1
CIK: ret
Microişlemci Nedir?
Microişlemci, program yolu ile aritmetiksel ve mantıksal işlemler yapabilme gücü olan, kendisine bağlı iç ve dış çevre birimleri yönetebilen ve bu birimler arasındaki ilişkileri düzenleyebilen bir entegredir. Bir microişlemci, yapabileceği matematiksel ve mantıksal işlemlerin, çevrebirim yönetim fonksiyonlarının dizayn sırasında belirlendiği bir entegredir. Bu nedenle her microişlemci bir diğerinden farklıdır. (8088, Pentium III, Pentium II, Sparc, Alpha vb.)
Microişlemciler genel amaçlar için dizayn edilmiş yapılardır. Bu nedenle temel işlevlerini yerine getirebilmek için dizayn edilen komut setleri oldukça fazladır. Örneğin intel microişlemci ailesinin ilk işlemcilerinden olan 8088’in 92 adet komutu bulunmaktadır. Microişlemcilerin komut setleri ve bu komut setlerinin nasıl işletildiği işlemcinin mimarisini belirler. Eğer komutların hafızada kapladığı alanlar farklı ise bu şekilde düzenlenmiş işlemciler CISC (Complex Instruction Set Computing) işlemciler adını alırlar. CISC mimari ile düzenlenmiş işlemcilerde, komutlar basitlik veya karmaşıklıklarına göre hafızada farklı uzunlukta yer kaplarlar.
Bu durum işlemcinin içinde komutların decode edilmesi ile ilgili oldukça karmaşık bir birimin varlığını zorunlu kılar. Ancak, complex komutlar programlarda kullanılması gereken komut sayısını azaltırlar. 1970 yılında ortaya çıkan CISC mimari ilerleyen yıllarda hafıza birimlerinin büyümesi ve ucuzlaması, kısıtları nedeniyle RISC mimarinin ortaya atılmasına öncülük etmiştir. 1974 yılında IBM, bir işlemcinin daha az komut sayısı ve basit komutlardan oluşan bir komut seti ile çalışabileceğini önererek RISC (Reduced Instruction Set Computing) mimariyi çıkarttı. Bu mimaride komut uzunlukları sabittir ve her komut basit bir işlemi yerine getirir. Bir risc cipi bu iki karakteristik özelliği sayesinde komutların yorumlamasını kolaylıkla ve hızla yapabilir. RISC mimarinin en önemli dezavantajı CISC programlara göre programlarının hafızada daha fazla yer kaplamasıdır.
Gerek RISC mimaride gerekse CISC mimaride dizayn edilmiş olsun bir microişlemci herhangi bir komutu işleyebilmek için bir komut döngüsünü yerine getirmek zorundadır. Komut döngüsünün nasıl düzenlendiği genel olarak işlemcinin performansını belirler. Birkomut döngüsü 3 ana başlıktan oluşur.
1. Fetch
2. Decode
3. Execute
1. Fetch : İşlenme sırası gelen komutun ram’den okunarak microişlemcinin içine alınması
2. Decode : Komutun nasıl işleneceğinin belirlenerek çözümlenmesi
3. Execute : Komutun çalıştırılması ve elde edilen sonuçların ilgili yerlere aktarılması
mikrodenetleyici-ic-yapisi
• Execution Unit (Core): Bu ünite komutları çalıştırır. Genel olarak matematiksel işlemlerin kontrolü ve mantıksal işlemleri gerçekleştirir. Execution Unit Artimetik hesaplamalar için ALU (Arithmetic and Logic Unit) denen aritmetik ve mantık ünitelerini kullanılır, ALU için işlemcilerin yapıtaşıdır denilebilir.
• Branch Predictor: Bu ünite, bir program çalışırken hangi komutun öncelikle çalışacağını belirleyerek Prefetch ve Decode ünitelerine hız kazandırır.
• Floating Point Unit: Bu ünite tamsayı olmayan floating point sayılarla yapılan matematiksel işlemlerin gerçekleştirilmesini sağlar.
• L1 Cache: Sistem belleğinden gelen veriler, bazı durumlarda CPU ‘nun hızına yetişmeyebilir. Bu problemi çözmek için CPU içinde, küçük bir miktar cache (tampon) bellek bulunur. Önemli kodlar ve veriler bellekten cache belleğe getirilir ve burada tutulur. İhtiyaç duyulduğunda işlemci bunlara dış bellekte bulunan verilerden çok daha hızlı ulaşabilir. İşlenecek makine kodlarının ve verilerin saklandığı cache bellekler ayrı düzenlenirler.
• BUS Interface: Çevrebirimlerden işlemciye veri – kod karışımını getirir, bunları ayırarak işlemcinin ilgili ünitelerine aktarılmasını ve işlem sonuçlarının dış ortama aktarılmasını sağlar. Bu arayüzün genişliği işlemcinin adresleyebileceği hafızayı belirler. Örneğin 32 bitlik hafıza genişliğine sahip bir işlemci 4 GB hafızayı adresleyebilir ve bu hafızadan aynı anda 32 bitlik veriyi transfer edebilir.
Microişlemcilerin genel amaçlı yapılar olmaları, komut setlerinin büyüklüğü, kullanıldığı sistemlerde ana eleman olmaları vb. nedenlerle çalışma hızları oldukça önemlidir. Bir işlemcideki bütün elemanlar saat vuruşlarıyla çalışır. Saat hızı bir işlemcinin saniyede ne kadar çevrim yapabileceğini belirler. 200 MHz saat hızı bir işlemci kendi içinde saniyede 200.000.000 çevrim yapabilir. Her çevrimde işlemcinin ne kadar işlem yapabileceği işlemcinin yapısına göre değişir. Genel olarak bir işlemcinin performansını;
İşlemcinin Mimarisi
Saat Hızı
L1/L2 Cache Miktarı
belirler. Ham işlemci performansını ifade etmek için MIPS (Million Instructions Per Second, saniyede işlenebilen komut sayısı) ve MFLOPS (Million Floating Point Operations Per Second, saniyede yapılabilen kayar nokta hesabı) birimleri kullanılır.
Microdenetleyici Nedir?
Bir mikroişlemcinin çevrebirimleri (ram, rom, bus controller vb.) olmaksızın genel amaçlı bir programı çalıştırarak bir problemi çözmesi beklenemez. Mikroişlemcilerin anlamlı bir şekilde çalışabilmesi için minimum input ve output ünitelerinin bulunduğu bir sistemin kurulması gereklidir. Bir mikroişlemci ve minimum input-output ünitelerinin tek bir entegre içinde toplandığı yapılara microdenetleyici adı verilir.
Microdenetleyicilerde, çoğunlukla risc mimariye sahip bir microişlemci, proğramların ve verilerin saklanabileceği 2K ile 512Kb arasında değişebilen flash rom, 64 byte ile 16Kb arasında değişebilen statik ram, 4 ile 64 arasında değişebilen I/O, kontrol edilebilen
timer/counter’lar, PWM, dışarıdan tetiklenebilen Interrupt kaynakları, Analog-digital çeviriciler, digital-analog çeviriciler bulunur. Bu özellikler microişlemci ile microdenetleyici
arasındaki en önemli farkı oluşturur.
Microdenetleyiciler genel amaçlı uygulamalardan çok özel amaçlı uygulamalar için düzenlenmiş yapılardır. Kullanabilecekleri iç kaynakları çeşitli olmasına rağmen bu kaynakların sınırlı olması nedeniyle daha çok özel amaçlı cihazların kontrolünde kullanılmaktadırlar. Günlük hayatta kullandığımız birçok cihazın kontrolü microdenetleyiciler tarafından gerçekleştirilmektedir. Cep telefonu, televizyon, radyo, alarm sistemleri, taşıtlar, hesap makineleri, giriş-çıkış kontrol sistemleri, kameralar, bilgisayar vb.
Kısıtlı miktarda olmakla birlikte yeterince hafıza birimlerine ve input – output uçlarına
sahip olmaları sayesinde tek başlarına (stand alone) çalışabildikleri gibi donanımı oluşturan
diğer elektronik devrelerle irtibat kurabilir, uygulamanın gerektirdiği fonksiyonları
gerçekleştirebilirler. Mikrodenetleyiciler çoğunlukla, yer aldıkları uygulama devresinin içine
gömülmüş, sadece oraya adanmış olarak kullanılırlar.
Bu özellikleri nedeniyle bilgisayarlardaki kullanıcı uygulama programlarını çalıştırma gibi esneklikleri olmamakla birlikte kontrol ağırlıklı uygulamalarda alternatifsiz seçenek olarak karşımıza çıkarlar. Onları böyle cazip kılan, çok düşük boyutlu olmaları (az yer kaplamaları), düşük güç tüketimleri, düşük maliyetlerine karşın yüksek performansa sahip olmaları gibi özellikleridir.
Microişlemci-Microdenetleyicinin Tarihsel Gelişimi
Microişlemcilerin gelişimi 1970 li yıllarda başlar. 1971 yılında İntel firması hesap makinelerinde kullanılmak üzere ilk microişlemcilerden sayılabilecek 4004 işlemcisini üretti. Bu işlemci 4 bit veri yoluna sahipti ve 640 byte adres uzayına sahipti. Bu işlemcinin rağbet görmesi üzerine daha genel amaçlı ve daha büyük hafıza birimlerini adresleyebilecek 8080 microişlemcisi üretildi. 1974 yılında üretilen bu işlemci 8 bit veri yoluna ve 64Kb adres uzayına sahipti. 8080 8 bit microişlemcilerde endüstri standardı olan bir entegredir. Intel 1976 yılında 8080 işlemcinin gelişmiş bir versiyonu olan 8085 işlemcisini piyasaya sürerek işlemci gelişimini sürdürdü.
Intel 8080 işlemcisini duyurduktan kısa bir süre sonra Motorola 6800 microişlemcisini üretti. Bu işlemci 8080 işlemci ile karşılaştırılabilir bir güce sahipti. Motorola 6800 işlemcisinin devamı olarak bu işlemci ile uyumlu 6809 işlemcisini üretti. Bu işlemci 16 bit veri yoluna sahipti.
6809 işlemcisinden sonra Motorola 68000 işlemci serisinin üretimine başladı. Bu işlemci iç yapısında 32 bit dış yapısında ise 16 bit veri yoluna sahip bir işlemcidir ve 6800 serisi işlemcileri desteklememektedir. 68000 serisi işlemciler 68008, 68010, 68012, 68020, 68030, 68040 ve Power PC ile günümüze kadar gelmiştir.
Intel firması 1978 yılında ilk 16 bit veri yoluna sahip microişlemcisi olan 8086’yı duyurdu. 8086 gerek iç veri yollarında gerekse dış veri yollarında 16 bit uzunluk kullanan bir
yapıya sahipti. Çevrebirimlerle uyum problemleri yaşanması üzerine intel 1979 yılında iç
yapısında 16 bit, dış veri yolunda 8 bit yapıya sahip 8088 işlemcisini duyurdu. Bu işlemciler
8080-8085 microişlemci serisi ile benzeşmesine rağmen bu seri ile tam uyumlu değildir.
8086 ve 8088 1981 yılında ilk üretilen IBM-PC lerin gelişiminin temelini oluşturmuştur. Bu
işlemciler geriye uyumluluk kaygıları ile gelişimini bugüne kadar sürdüren Intel x86 ailesinin
başlangıcı olmuştur.
Intel firması 1976 yılında 8080-8085 microişlemcilerinin devamı olarak bazı microişlemci çevre birimlerini içinde barındıran ve özel amaçlı uygulamalarda kullanılmak üzere 8048 ve 8051 microdenetleyicilerin üretimini gerçekleştirdi. Bu microdenetleyiciler üzerinde kullanılan yapı günümüzde de kullanılan birçok 8 bit microdenetleyicinin temelini oluşturan standardı sağlamıştır. 8048 ve 8051 ile başlayan microdenetleyici serisi farklı özelliklerle günümüze kadar gelmiştir. Intel firmasının PC lerin gelişimine temel oluşturan 8086-8088 serisinin 1Mb hafıza sınırlaması 80’li yıllarda birçok uygulama için ciddi problemler oluşturmaya başladı. Bu nedenle Intel 16Mb belleği adresleyebilen 80286 işlemcisini üretti. Bu işlemci 8088 işlemcisinin devamı olarak piyasaya sürüldü ve 8088 ile tam uyumlu olarak çalışabiliyordu. Intel firmasının bu işlemcisi IBM firmasının PC/AT makinelerinde kullanıldı.
1985 yılında Intel ilk 32 bit işlemcisi olan 80386 işlemcisini duyurdu. Bu işlemcinin 16 bit dış veri yoluna versiyonu 80386SX’in üretimini 1988 yılında gerçekleştirdi. 80386 işlemcinin devamı olarak piyasaya sürülen 80486, 80386 nın gelişmiş bir versiyonu görünümündedir.
80486 ile 80386 arasındaki en önemli fark 80486 içinde kayan noktalı sayılarla işlem yapabilecek bir FPU (Floatin-Point unit) bulunmasıdır. 80486 microişlemcinin ardından Intel, hızlarını, cache miktarlarını, işlem kapasitelerini artırarak x86 microişlemci serisini geliştirmeye devam etti. (Pentium I, Pentium pro, Pentium II, Pentium III, Pentium IV)
pentium-ii-pentium-iii-pentium-iv
Neden Intel Tabanlı Microdenetleyici ?
Günümüzde microdenetleyicilerin birçok çeşidi bulunmaktadır. Intel, Microchip, Motorola, National, Atmel firmalarının ürettiği microdenetleyiciler bunlar arasında sayılabilir. Microdenetleyici gerektiren herhangi bir uygulama geliştirirken seçilecek microdenetleyicinin
uygulamanın gereklerini karşılayıp karşılamadığı önemlidir. Bunun yanı sıra kullanılacak olan
derleyici, programlayıcı, simülatör, elektriksel özellikler, kaynak temini, seçenek çeşitliliği,
kolay elde edilebilirlik, fiyat, Komut seti vb. özellikler de microdenetleyici seçiminde önemli
etmenlerdir.
Atmel firmasının ürettiği Atmega serisi microcontrollerların yukarıda sayılan birçok
özellikte öne çıktığı görülmektedir. Firma 8 bit Intel MCS-51 core’a sahip microdenetleyicilerin yanı sıra 16/32 bit veri yoluna sahip microdenetleyiciler, otomotiv
temelli microdenetleyicileri de Intel MCS-51 core ile kullanıma sunmaktadır.
Microdenetleyicilerin aynı core’u kullanıyor olmaları, komut setlerinin de birbirini
desteklemesi anlamına gelmektedir. Bu nedenle herhangi bir microdenetleyici için yazılan
program özelliklerin aynı olması durumunda hiçbir değişikliğe ihtiyaç duymadan farklı bir
microdenetleyicide çalışabilmektedir. Atmel microdenetleyiciler elektriksel bozukluklardan
etkilenmeyi minimize edebilmek için Wath dog timer, Brown-out dedektör vb. özellikler
içermesi nedeniyle sanayi uygulamalarında oldukça yoğun kullanılmaktadır.
MCS-51 Microdenetleyici Ailesinin Mimari Özellikleri
MCS-51 Microdenetleyici Ailesinin Genel Mimari Yapısı : Sanayi Otomasyonu için günümüzde mevcut olan mikroişlemciler ve microdenetleyiciler arasında en uygunlardan birisi MCS-51 ailesinden olan microdenetleyicilerdir. Bu microdenetleyicilerin çekici tarafı, bu aileden olan her bir microdenetleyicinin çok küçük boy bir bilgisayar olması ile birlikte içermekte olduğu girişçıkış potlarının her birinin ve diğer önemli fonksiyon registerlerin (Special Function Registers SFR) büyük çoğunluğunun üzerinde bayt ve bit maniplasyonu yapmaya direkt imkan sağlamasıdır.
MCS-51 ailesinden olan microdenetleyici tabanlı kontrol kartına sanayi otomasyonuna
yönelik küçük boy bilgisayar özelliği kazandırmaya imkan sağlayan özellikler sadece bir çip
içerisinde yer alan aşağıdaki mimari özelliklerdir.
• 8/16/32 bit RISC merkezi işlem birimi (CPU),
• Dahili EEprom
• Dahili Flash Rom
• Harici veya dahili olarak seçilebilen osilatör,
• Bayt veya bit olarak düzenlenebilen, pull-up dirençleri aktif veya pasif yapılabilen Giriş / Çıkış portları,
• Static RAM bellek (İç Ram),
• Dış program/veri belleği (Bazı microdenetleyicilerde),
• 8/16 bit Zamanlayıcı/Sayaç/Pwm,
• İç ve dış kaynaklara hizmet edebilen, farklı vektörlere sahip kesme (Interrupt) sistemi,
• Seri Port,
• ISP Port,
• JTag Port,
• Security bitler aracılığı ile program ve verinin korunabilmesi,
• Watch dog timer, Brown-out dedektör,
• Analog-Digital çevirici (Adc)
• 20 MHZ kadar çalışma frekansı,
• Çalışma frekansına bağımlı (MIPS) çalışma performansı
MCS-51 risc core’a sahip, Atmel firmasının atmega8 microdenetleyicisi yukarıda sözü
edilen mimari yapının tümüne sahiptirler. Atmega8 microdenetleyicisinin özellikleri aşağıdaki
şekilde özetlenebilir.
• Geliştirilmiş RISC mimari
- 130 adet komut
- 32 genel amaçlı register
- Her clock’ta 1 komut çalıştırma
• 8Kb program tarafından da yazılabilen program belleği
• 512 Byte EEprom
• 1 Kb statik ram
• 2 adet 8 bit timer/counter
• 1 adet 16 bit timer/counter
• 3 adet PWM kanalı
• 6 kanal 10 bit ADC
• Byte temelli çift yönlü seri kanal
• Programlanabilir seri USART
• Master/Slave SPI seri kanal
• Programlanabilir Watchdog timer
• Chip içinde analog comparador
• Power on reset ve programlanabilen Brown-out dedektör
• Internal düzenlenebilir RC oscillator
• İç/Dış kaynaklı Interrupt sistemi
• 5 değişik uyuma modu
• 23 programlanabilir giriş-çıkış ucu
• 0-16 Mhz çalışma frekansı
• 4.5 – 5.5v çalışma voltajı
Şekil 2.1.1’ de MCS-51 core mimarisinin blok diyagramını, şekil 2.1.2’de Atmega8
microdenetleyicinin blok diyagramı, şekil 2.1.3’ de ise bu microdenetleyicinin bacak bağlantı
şeması gösterilmiştir.
Şekil 2.1.1 MCS-51 core mimarisinin blok diyagramı
mcs-51-core-mimarisinin-blok-diyagrami
yukarıda özetler verilmiştir tamamı atmel-atmega8-assembler.rar Emeği geçen Kişilere Teşekkürler