İçindekiler:

Fonksiyon Oluşturucu: 12 Adım (Resimlerle)
Fonksiyon Oluşturucu: 12 Adım (Resimlerle)

Video: Fonksiyon Oluşturucu: 12 Adım (Resimlerle)

Video: Fonksiyon Oluşturucu: 12 Adım (Resimlerle)
Video: FONKSİYONLAR-6(SON) | PARCALI-MUTLAK DEĞER FONKSİYON | PDF | ÖĞRENME GARANTİLİ 2024, Kasım
Anonim
Fonksiyon üreticisi
Fonksiyon üreticisi
Fonksiyon üreticisi
Fonksiyon üreticisi

Bu talimat, Maxims'in Analog entegre devresi MAX038'e dayanan fonksiyon üretecinin tasarımını açıklar

İşlev üreteci, elektronik meraklıları için çok kullanışlı bir araçtır. Rezonans devrelerinin ayarlanması, ses ve video ekipmanlarının test edilmesi, analog filtrelerin tasarımı ve diğer birçok farklı amaç için gereklidir.

Bugün iki ana tip fonksiyon üreteci vardır; giderek daha sık kullanılan dijital, (DSP tabanlı, DDS…) ve kökenleri olan analog.

Her iki türün de avantajları ve dezavantajları vardır. Dijital üreteçler çok kararlı frekanslı sinyaller üretebilir, ancak çok saf sinüs sinyalleri üretmede sorunları vardır (analog için sorun olmayan bu). Ayrıca, DDS yaklaşımına dayalı temel olarak yayılmış fonksiyon üreteçleri, çok büyük frekans üretim aralığına sahip değildir.

Uzun zamandan beri, her iki tip (analog ve dijital) jeneratörün bazı avantajlarını bir şekilde birleştirebilecek kullanışlı bir fonksiyon üreteci tasarlamak istedim. Tasarımı Maxim çip MAX038'e dayandırmaya karar verdim*

* Açıklama - bu çip artık Maxim tarafından üretilmiyor ve satılmıyor. Eskimiş. Elektronik bileşenler için eBay, Aliexpress ve diğer sitelerde bulmak hala mümkündür.

Ayrıca başka analog fonksiyon üreteç yongaları da var (Exar'dan XR2206, Intersil'den icl8038), ancak

bir MAX038 mevcut ve ben onu kullandım. Fonksiyon üretecinin dijital özellikleri bir Atmega328 çipi tarafından gerçekleştirilmiştir. İşlevleri şunlardır:

  • frekans aralığı seçimini kontrol eder
  • sinyal tipini kontrol eder (sinüs, dikdörtgen, üçgen, testere dişi)
  • sinyalin genliğini ölçer
  • DC ofsetini ölçer
  • sinyalin frekansını ölçer
  • ses aralığındaki sinüs sinyalinin THD'sini ölçer (bunun hala uygulanması gerekir)
  • tüm bu bilgileri bir karakter 16x2 LCD ekranda görüntüler.

Adım 1: MAX038 Açıklama

MAX038 Açıklama
MAX038 Açıklama

MAX038 veri sayfasını ekledim. En önemli çip parametreleri burada görülebilir:

♦ 0.1Hz - 20MHz Çalışma Frekans Aralığı

♦ Üçgen, Testere Dişi, Sinüs, Kare ve Darbe Dalga Formları

♦ Bağımsız Frekans ve Görev Döngüsü Ayarlamaları

♦ 350 ila 1 Frekans Tarama Aralığı

♦ %15 - %85 Değişken Görev Döngüsü

♦ Düşük Empedanslı Çıkış Tamponu: 0.1Ω

♦ Düşük 200ppm/°C Sıcaklık Kayması

Bir diğer önemli gereklilik ise çift besleme (±5V) ihtiyacıdır. Çıkış genliği sabittir (0 V DC ofset ile ~ 2 VP-P).

Veri sayfasının 8. sayfasında çipin blok şeması görülebilir. Sayfa 11'de sinüs dalgası sinyali üretmek için kullanılabilecek en basit devre görülmektedir. Fonksiyon üretecinin tasarımında bu devre esas alınmıştır.

Adım 2: Devre …

Devre …
Devre …

Resimde, her bir.device değerinin düzgün bir şekilde okunabilmesini sağlamak için bu görüntüyü mümkün olan en yüksek çözünürlükte yaptığım fonksiyon üretecinin devresi sunulmaktadır. Şemalar oldukça karmaşık görünüyor ve daha iyi anlaşılması için ana kısımlarını ayrı ayrı açıklayacağım. Birçok okuyucu, devrenin fazla gereksiz olduğu konusunda beni suçlayabilir. Bu doğru. İlk başta iki MAX038 yongası içerdiğini görebilirsiniz. Bunun nedeni, PCB'nin hem SO hem de DIP paketini desteklemesidir. Fazlalık bazı işlevlerde de görülebilir -

1)LED'ler mevcut aktif frekans aralığını gösterir, ancak aynı zamanda LCD'de de görüntülenir;

2) LED'ler sinyal tipini belirtmek için de kullanılır, ancak LCD bu bilgiyi de gösterir.

Tasarım, kullanıcıya daha fazla esneklik sağlamak için bu şekilde yapılmıştır - arzu edildiğinde LCD'yi kullanamaz veya LED'lerin lehimlenmesini atlayabilir. Tasarım aşamalarında işlevsellik hatalarını ayıklayabilmek için onları lehimledim.

Çok fazla opamp kullandığım da fark edilebilir. Bazıları sorunsuz bir şekilde atlanabilir - özellikle arabellekler. Şu anda opamp'lar kendi başlarına büyük bir yedeklilik sunuyorlar - tek bir pakette 2, 4 hatta 8 ayrı amplifikatör bulabilirsiniz ve bu nispeten düşük bir fiyata. Neden onları kullanmayalım?

Yedekleme aynı zamanda filtreleme kapasitörleridir - kullanılan her analog çipin kendi kapasitör bankası vardır (her iki kaynak için tantal + seramik kapasitörler). Bazıları da atlanabilir.

Adım 3: Devre Açıklaması - Güç Kaynağı (1)

Devre Açıklaması - Güç Kaynağı (1)
Devre Açıklaması - Güç Kaynağı (1)

Dediğim gibi bu jeneratör çift besleme gerektiriyor. Pozitif voltaj, 7805 lineer voltaj regülatörü kullanılarak oluşturulur. Negatif arz, 7905 yongası tarafından üretilir. 2x6V transformatörün orta kademe noktası kartın ortak topraklamasına bağlanır. Üretilen güç kaynakları - hem pozitif hem de negatif, takozlarla analog ve dijital olarak ayrılır. İki LED, her bir kaynağın varlığını gösterir.

Adım 4: Devre Açıklaması - Frekans Aralığı Kontrolü (2)

Devre Açıklaması - Frekans Aralığı Kontrolü (2)
Devre Açıklaması - Frekans Aralığı Kontrolü (2)

Büyük frekans aralığını kapsamak için çoklu kapasitör bankası kullanılır. Kondansatörler farklı değerlere sahiptir ve farklı frekans alt aralıkları tanımlarlar. Çalışma sırasında bu kapasitörlerden sadece biri kullanılır - alt plakası MOS transistör anahtarı ile topraklanmıştır. Hangi kapasitör alt plakasının topraklanacağı Atmega328 tarafından demultiplexer çipi 74HC238 kullanılarak kontrol edilir. MOS anahtarları olarak BSS123 transistörlerini kullandım. Bu anahtarın temel gereksinimi, düşük Ron'a ve mümkün olan en düşük boşaltma kapasitansına sahip olmaktır. Kondansatör bankının dijital kontrolü ihmal edilebilir - PCB, mekanik döner anahtar için telleri lehimlemek için delikler içerir.

Adım 5: Devre Açıklaması - Frekans Ayarı (3)

Devre Açıklaması - Frekans Ayarı (3)
Devre Açıklaması - Frekans Ayarı (3)

Resimde frekans ve görev döngüsü kontrol devresi gösterilmektedir. Orada standart LM358 opamp'ı kullandım (bir pakette çift amplifikatör). Ayrıca çift 10K potansiyometre kullandım.

MAX038 yongası, normalde tüm ayarlar için referans olarak kullanılan 2.5V dahili voltaj referansı üretir.

Bu voltaj, IC8a'nın evirici girişinde uygulanır ve DADJ (görev döngüsü ayarı) için kullanılan negatif voltaj referansı üretir. Her iki voltaj da, orta kademenin tamponlandığı ve MAX038 çipinin DADJ pinine uygulanan DADJ potansiyometresinde uygulanır. JP5 atlama teli, toprağa bağlandığında DADJ işlevini devre dışı bırakmak için kullanılabilir. "Course" frekans kontrolü, MAX038 "IIN" pinindeki batık / kaynaklı akım değiştirilerek önceden oluşturulur. Bu akım, direnç R41 ve seyir frekansı kontrol potansiyometresinin orta kademesini tamponlayan opampın çıkış voltajı tarafından tanımlanır. Tüm bunlar, REF ve IIN MAX038 pinleri arasında tek bir potansiyometre (reostat bağlantısında) ile değiştirilebilir.

Adım 6: Devre Açıklaması - Genlik Kontrolü, SYNC Sinyal Üretimi… (4)

Devre Açıklaması - Genlik Kontrolü, SYNC Sinyal Üretimi… (4)
Devre Açıklaması - Genlik Kontrolü, SYNC Sinyal Üretimi… (4)
Devre Açıklaması - Genlik Kontrolü, SYNC Sinyal Üretimi… (4)
Devre Açıklaması - Genlik Kontrolü, SYNC Sinyal Üretimi… (4)
Devre Açıklaması - Genlik Kontrolü, SYNC Sinyal Üretimi… (4)
Devre Açıklaması - Genlik Kontrolü, SYNC Sinyal Üretimi… (4)
Devre Açıklaması - Genlik Kontrolü, SYNC Sinyal Üretimi… (4)
Devre Açıklaması - Genlik Kontrolü, SYNC Sinyal Üretimi… (4)

Veri sayfasında yazıldığı gibi, MAX038'in çıkış sinyali, DC voltajı toprak potansiyeline eşit olan ~1 V genliğe sahiptir.

Sinyal genliğini kontrol etme ve DC ofsetini kendim tanımlayabilme olanağına sahip olmak istedim. Ek özellik olarak, çıkış sinyaline paralel olarak CMOS seviyelerinde SYNC sinyaline sahip olmak istedim. Varsayılan olarak MAX038 yongası böyle bir sinyal üretir, ancak veri sayfasında bu özellik etkinleştirilirse (bunun anlamı - 5V'a bağlı DV+ pini), çıkış analog sinyalinde bazı tepe noktaları (gürültü) gözlemlenebileceğini okudum. mümkün olduğunca temiz ve bu nedenle SYNC sinyalini harici olarak oluşturdum. PCB, DV+ pininin ana kaynağa kolayca köprülenebileceği şekilde yapılır. SYNC pimi BNC konektörüne yönlendirilir - yalnızca 50 Ohm direnç lehimlenmelidir. Bu durumda, SENK sinyal oluşturma devresi atlanabilir. Burada da gördüğünüz gibi çift potansiyometre kullanıyorum ama paralel bağlı değiller. Bunun nedeni - genliği göreceli olarak ölçüyorum. Bir potansiyometrenin orta noktasındaki voltaj Atmega328 ADC tarafından algılanır ve bu değere göre sinyal genliği hesaplanır. Elbette bu yöntem çok kesin değildir (her zaman gerçekleşmeyen her iki potansiyometre bölümünün eşleşmesine dayanır), ancak uygulamalarım için yeterince hassastır. Bu devrede IC2A voltaj tamponu olarak çalışmaktadır. IC4A ayrıca. IC2B opamp toplama amplifikatörü olarak çalışır - ofset voltajının ve ayarlanmış genliğe sahip ana sinyalin toplamı olarak fonksiyonel jeneratörün çıkış sinyalini oluşturur. Voltaj bölücü R15. R17, DC ana sinyal ofsetini ölçmek için uygun voltaj sinyali üretir. Atmega328 ADC tarafından algılanır. IC4B opamp, karşılaştırıcı olarak çalışır - iki MOS transistörü (BSS123 ve BSS84) tarafından gerçekleştirilen SYNC nesil invertörü kontrol eder. U6 (THS4281 - Texas Instruments), MAX038 DC tarafından üretilen çıkış sinyalini 2,5 V ile kaydırır ve 1,5 kat yükseltir. Böylece üretilen sinyal AVR ADC tarafından algılanır ve FFT algoritması ile daha da işlenir. Bu bölümde 130 MHz bant genişliğine sahip (TI - LMH6619) yüksek kaliteli raydan raya opamplar kullandım.

SYNC sinyal üretiminin tam olarak nasıl çalıştığını anlamak için devrenin LTSpice simülasyonlarının bazı resimlerini ekliyorum. Üçüncü resimde: mavi sinyal ofset voltajıdır (IC2B'nin girişi). Yeşil olan, ayarlanmış genliğe sahip çıkış sinyalidir. Kırmızı olan, fonksiyonel jeneratörün çıkış sinyalidir, Cam göbeği eğrisi SYNC sinyalidir.

Adım 7: PCB Tasarımı

PCB Tasarımı
PCB Tasarımı

PCB tasarımı için "Kartal" kullandım. PCB'leri "PCBway" de sipariş ettim. Panoları üretmeleri sadece dört gün ve teslim etmeleri bir hafta sürdü. Kaliteleri yüksektir ve fiyatı son derece düşüktür. 10 PCB için sadece 13 USD ödedim!

Buna ek olarak, fiyat artışı olmadan farklı bir renk PCB sipariş edebilirim. Sarı olanları seçtim:-).

Gerber dosyalarını "PCBway" tasarım kurallarına göre ekliyorum.

Adım 8: Lehimleme

Image
Image
Lehimleme
Lehimleme
Lehimleme
Lehimleme

Önce güç kaynağı devre cihazlarını lehimledim..

Tedarik bloğunu test ettikten sonra, Atmega328 yongasını destek cihazlarıyla lehimledim: kuvars kristali, kapasitörler, filtreleme kapakları ve ISP konektörü. Gördüğünüz gibi AVR çipinin besleme hattında bir jumperım var. Çipi ISS üzerinden programladığımda bağlantısını kesiyorum. Bu amaçla USBtiny programlayıcı kullanıyorum.

Bir sonraki adım olarak, LED'ler frekans aralığını gösteren de-mux çipi 74HC238'i lehimledim. Atmega çipine çoğullamayı test eden küçük bir Arduino programı yükledim. (yukarıdaki bağlantının altındaki videoya bakın)

Adım 9: Lehimleme…

Lehimleme…
Lehimleme…
Lehimleme…
Lehimleme…
Lehimleme…
Lehimleme…

Bir sonraki adım olarak DC modunda (LM358) çalışan opampları ve frekans ve DADJ ayar potansiyometrelerini lehimledim ve tüm fonksiyonlarını kontrol ettim.

Ayrıca BSS123 anahtarlarını, frekans belirleme kapasitörlerini ve MAX039 yongasını lehimledim. Yerel çip sinyal çıkışındaki sinyali araştıran fonksiyonel jeneratörü test ettim. (1986'da üretilen eski Sovyetimi, hala çalışan osiloskopu çalışırken görebilirsiniz:-))

Adım 10: Daha Fazla Lehimleme…

Daha Lehimleme…
Daha Lehimleme…
Daha Lehimleme…
Daha Lehimleme…
Daha Lehimleme…
Daha Lehimleme…

Bundan sonra LCD ekran için soketi lehimledim ve "Merhaba dünya" taslağı ile test ettim.

Kalan diğer opampları, kapasitörleri, potansiyometreleri ve BNC konektörlerini lehimledim.

Adım 11: Yazılım

Image
Image
Yazılım
Yazılım

Atmega328 ürün yazılımının oluşturulması için Arduino IDE'yi kullandım.

Frekans ölçümü için "FreqCounter" kütüphanesini kullandım. Çizim dosyası ve kullanılan kitaplık indirilebilir. Şu anda kullanılan modu (sinüs, dikdörtgen, üçgen) temsil etmek için özel semboller oluşturdum.

Yukarıdaki resimde LCD'de gösterilen bilgiler görülebilir:

  • Frekans F=xxxxxxxx Hz cinsinden
  • Frekans aralığı Rx
  • mV cinsinden genlik A=xxxx
  • mV olarak ofset 0=xxxx
  • sinyal türü x

Fonksiyon üretecinin ön tarafında sol tarafta iki basma düğmesi vardır - bunlar frekans aralığını değiştirmek için kullanılır (adım yukarı - adım aşağı). Bunların sağında, modun kontrolü için sürgülü anahtar bulunur, ondan sonra soldan sağa, frekansın (kurs, ince, DADJ), genliğin ve ofsetin kontrolü için potansiyometreyi takip edin. Ofset ayar potansiyometresinin yakınına, sabit 2.5V DC ofset ile ayarlanmış olan arasında geçiş yapmak için kullanılan anahtar yerleştirilmiştir.

ZIP dosyasındaki "Generator.ino" kodunda küçük bir hata buldum - sinüs ve üçgen dalga biçimlerinin simgeleri değiştirildi. Buraya eklenen tek "Generator.ino" dosyasında hata düzeltilmiştir.

Adım 12: Yapılacak…

Image
Image

Son adım olarak, ek bir özellik uygulamak niyetindeyim - FFT kullanarak ses frekansı sinüs sinyalinin THD'sinin gerçek zamanlı ölçümü. Bu gereklidir, çünkü sinüs sinyalinin görev döngüsü %50'den farklı olabilir, bu dahili çip uyumsuzluklarından ve diğer nedenlerden kaynaklanabilir ve harmonik bozulmalar oluşturabilir. Görev döngüsü potansiyometre ile ayarlanabilir, ancak osiloskop veya spektrum analizöründeki sinyali gözlemlemeden şeklini hassas bir şekilde kırpmak mümkün değildir. THD'yi FFT algoritmasına göre hesaplamak sorunu çözebilir. THD hesaplamalarının sonucu LCD'de sağ üst boş alanda görüntülenecektir.

Videoda MAX038 sinüs sinyali tarafından üretilen spektrum görülebilir. Spektrum analizörü, Arduino UNO kartı + 2.4 TFT kalkanına dayanmaktadır. Spektrum analizörü, FFT'yi gerçek zamanlı olarak gerçekleştirmek için Anatoly Kuzmenko tarafından geliştirilen SpltRadex Arduino kütüphanesini kullanır.

Hala - bu kütüphaneyi kullanmaya veya Musiclabs tarafından oluşturulan FHT kütüphanesini kullanmaya karar vermedim.

FFT hesaplamaları sırasında uygun örnekleme penceresini hesaplamak ve ek pencereleme kullanımını askıya almak için frekans ölçer ölçümlerinden alınan bilgileri kullanmayı düşünüyorum. Bunun gerçekleşmesi için sadece biraz boş zaman bulmam gerekiyor. umarım en kısa zamanda sonuç alırım…

Önerilen: