فهرست مطالب:

ژنراتور عملکرد: 12 مرحله (همراه با تصاویر)
ژنراتور عملکرد: 12 مرحله (همراه با تصاویر)

تصویری: ژنراتور عملکرد: 12 مرحله (همراه با تصاویر)

تصویری: ژنراتور عملکرد: 12 مرحله (همراه با تصاویر)
تصویری: ژنراتور سنکرون چگونه کار می کند 2024, جولای
Anonim
ژنراتور عملکرد
ژنراتور عملکرد
ژنراتور عملکرد
ژنراتور عملکرد

این دستورالعمل طراحی ژنراتور عملکرد را بر اساس مدار مجتمع Maxim's Analog MAX038 توصیف می کند

ژنراتور عملکرد برای ابزارهای عجیب و غریب الکترونیکی بسیار مفید است. برای تنظیم مدارهای رزونانس ، آزمایش تجهیزات صوتی و تصویری ، طراحی فیلترهای آنالوگ و بسیاری از اهداف مختلف دیگر مورد نیاز است.

امروزه دو نوع اصلی تولید کننده عملکرد وجود دارد. دیجیتال ، (مبتنی بر DSP ، DDS …) که بیشتر و بیشتر مورد استفاده قرار می گیرند و آنالوگ ، که منشاء آنها بوده است.

هر دو نوع مزایا و معایب خود را دارند. ژنراتورهای دیجیتالی می توانند سیگنال هایی با فرکانس بسیار پایدار تولید کنند ، اما با تولید سیگنال های سینوسی بسیار خالص (چیزی که برای آنالوگ مشکل ندارد) مشکل دارند. همچنین ژنراتورهای تابع عمدتا بر اساس روش DDS دامنه تولید فرکانس چندان زیادی ندارند.

از دیرباز می خواستم یک ژنراتور عملکرد مفید طراحی کنم ، که بتواند مزایای هر دو نوع ژنراتور (آنالوگ و دیجیتال) را به نحوی ترکیب کند. تصمیم گرفتم طراحی را بر اساس تراشه Maxim MAX038* انجام دهم

* توجه - این تراشه دیگر توسط Maxim تولید و فروخته نمی شود. منسوخ شده است. هنوز می توانید آن را در eBay ، Aliexpress و سایر سایتها برای قطعات الکترونیکی پیدا کنید.

تراشه های تولید کننده عملکرد آنالوگ دیگر نیز وجود دارد (XR2206 از Exar ، icl8038 از Intersil) ، اما من

یک MAX038 موجود است ، و من از آن استفاده کردم. ویژگی های دیجیتال تولید کننده عملکرد توسط یک تراشه Atmega328 انجام شد. توابع آن به شرح زیر است:

  • انتخاب محدوده فرکانس را کنترل می کند
  • نوع سیگنال را کنترل می کند (سینوسی ، مستطیلی ، مثلثی ، دندان اره ای)
  • دامنه سیگنال را اندازه گیری می کند
  • افست DC را اندازه گیری می کند
  • فرکانس سیگنال را اندازه گیری می کند
  • اندازه گیری THD سیگنال سینوسی در محدوده صوتی (این هنوز باید اجرا شود)
  • همه این اطلاعات را روی یک صفحه نمایش LCD 16x2 با کاراکتر نمایش می دهد.

مرحله 1: توضیحات MAX038

MAX038 توضیحات
MAX038 توضیحات

من برگه داده MAX038 را ضمیمه کرده ام. مهمترین پارامترهای تراشه را می توان مشاهده کرد:

♦ 0.1Hz تا 20MHz محدوده فرکانس کار

♦ شکل موج مثلث ، دندان اره ، سینوس ، مربع و نبض

♦ فرکانس مستقل و تنظیم چرخه وظیفه

محدوده رفت و برگشت فرکانس 350 تا 1 پوند

♦ 15 تا 85 درصد چرخه وظیفه متغیر

ff بافر خروجی با امپدانس پایین: 0.1Ω

♦ رانش دمای پایین 200ppm/° C

نیاز مهم دیگر نیاز به منبع تغذیه دوگانه (V 5V) است. دامنه خروجی ثابت است (~ 2 VP-P با 0 V DC آفست).

در صفحه 8 برگه داده بلوک دیاگرام تراشه دیده می شود. در صفحه 11 ساده ترین مدار ، که می تواند برای تولید سیگنال موج سینوسی استفاده شود ، مشاهده می شود. این مدار به عنوان مبنایی برای طراحی ژنراتور عملکرد در نظر گرفته شد.

مرحله 2: مدار…

مدار…
مدار…

در تصویر مدار تولید کننده عملکرد ارائه شده است که این تصویر را با بالاترین وضوح ممکن انجام دادم تا تضمین شود که هر مقدار.device به درستی خوانده می شود. طرحواره ها کاملاً پیچیده به نظر می رسند و برای درک بهتر ، بخشهای اصلی آن را جداگانه توضیح خواهم داد. بسیاری از خوانندگان می توانند مرا سرزنش کنند که مدار بیش از حد اضافی است. این درست است. در ابتدا می بینید که شامل دو تراشه MAX038 است. دلیل آن این است که PCB از هر دو نوع بسته SO و DIP پشتیبانی می کند. افزونگی را می توان در برخی توابع نیز مشاهده کرد -

1) LED ها محدوده فرکانس فعال فعلی را نشان می دهند ، اما روی LCD نیز نمایش داده می شود.

2) LED ها همچنین برای نشان دادن نوع سیگنال استفاده می شوند ، اما LCD این اطلاعات را نشان می دهد

طراحی به این صورت انجام می شود که به کاربر انعطاف پذیری بیشتری می دهد - در صورت تمایل او نمی تواند از LCD استفاده کند یا به سادگی می تواند لحیم کاری LED ها را حذف کند. من آنها را لحیم کرده ام تا بتوانم عملکرد را در مراحل طراحی اشکال زدایی کنم.

همچنین می توان توجه داشت که من از opamps زیادی استفاده می کنم. برخی از آنها را می توان بدون مشکل حذف کرد - مخصوصاً بافرها. در حال حاضر opamps به خودی خود افزونگی زیادی را ارائه می دهند - در یک بسته شما می توانید 2 ، 4 حتی 8 تقویت کننده جداگانه پیدا کنید ، و این با قیمت نسبتا پایین. چرا از آنها استفاده نکنیم؟

مازاد بر خازن های فیلتر نیز هستند - هر تراشه آنالوگ مورد استفاده دارای بانک خازنی مخصوص خود است (تانتالوم + خازن های سرامیکی برای هر دو منبع). برخی از آنها را نیز می توان حذف کرد.

مرحله 3: توضیح مدار - منبع تغذیه (1)

توضیح مدار - منبع تغذیه (1)
توضیح مدار - منبع تغذیه (1)

همانطور که گفتم این ژنراتور نیاز به منبع دوگانه دارد. ولتاژ مثبت با استفاده از تنظیم کننده ولتاژ خطی 7805 ایجاد می شود. عرضه منفی توسط تراشه 7905 ایجاد می شود. نقطه ضربه وسط ترانسفورماتور 2x6V به زمین مشترک برد متصل است. منبع تغذیه تولید شده - هر دو مثبت و منفی توسط چاک به آنالوگ و دیجیتال جدا می شوند. دو LED نشان دهنده وجود هر منبع است.

مرحله 4: توضیح مدار - کنترل محدوده فرکانس (2)

توضیح مدار - کنترل محدوده فرکانس (2)
توضیح مدار - کنترل محدوده فرکانس (2)

برای پوشش دادن محدوده فرکانسی بزرگ ، از یک بانک خازن چندگانه استفاده می شود. خازن ها مقادیر متفاوتی دارند و فرکانس های فرعی متفاوتی را تعریف می کنند. فقط یکی از این خازن ها در حین کار استفاده می شود - صفحه پایینی آن توسط سوئیچ ترانزیستور MOS متصل می شود. با استفاده از تراشه demultiplexer 74HC238 کدام صفحه خازن هایی که باید زمین شوند توسط Atmega328 کنترل می شود. به عنوان سوئیچ های MOS من از ترانزیستورهای BSS123 استفاده کردم. نیاز اصلی این سوئیچ داشتن Ron کم و کمترین ظرفیت تخلیه ممکن است. کنترل دیجیتالی بانک خازن را می توان حذف کرد - PCB حاوی سوراخ هایی برای لحیم کاری سیم ها برای سوئیچ دوار مکانیکی است.

مرحله 5: توضیح مدار - تنظیم فرکانس (3)

توضیح مدار - تنظیم فرکانس (3)
توضیح مدار - تنظیم فرکانس (3)

در تصویر گردش فرکانس و چرخه وظیفه کنترل نشان داده شده است. در آنجا از استاندارد opam LM358 (تقویت کننده دوگانه در یک بسته) استفاده کردم. من همچنین از پتانسیومترهای دوگانه 10K استفاده کردم.

تراشه MAX038 مرجع ولتاژ داخلی 2.5 ولت را تولید می کند که معمولاً به عنوان مرجع برای همه تنظیمات استفاده می شود.

این ولتاژ در ورودی معکوس IC8a اعمال می شود و مرجع منفی ولتاژ مورد استفاده برای DADJ (تنظیم چرخه وظیفه) را ایجاد می کند. هر دو ولتاژ در پتانسیومتر DADJ اعمال می شود ، که شیر میانی بافر شده و روی پین DADJ تراشه MAX038 اعمال می شود. JP5 Jumper را می توان برای غیرفعال کردن عملکرد DADJ ، هنگام اتصال به زمین استفاده کرد. کنترل فرکانس "Course" با تغییر جریان غرق شده / منبع شده در پین MAIN038 "IIN" آماده می شود. این جریان با مقاومت R41 و ولتاژ خروجی opamp که شیر وسط پتانسیومتر کنترل فرکانس دوره را بافر می کند ، تعریف می شود. همه این موارد را می توان با پتانسیومتر منفرد (در اتصال مجدد) بین پین REF و IIN MAX038 جایگزین کرد.

مرحله 6: توضیح مدار - کنترل دامنه ، تولید سیگنال SYNC … (4)

توضیح مدار - کنترل دامنه ، تولید سیگنال SYNC … (4)
توضیح مدار - کنترل دامنه ، تولید سیگنال SYNC … (4)
توضیح مدار - کنترل دامنه ، تولید سیگنال SYNC … (4)
توضیح مدار - کنترل دامنه ، تولید سیگنال SYNC … (4)
توضیح مدار - کنترل دامنه ، تولید سیگنال SYNC … (4)
توضیح مدار - کنترل دامنه ، تولید سیگنال SYNC … (4)
توضیح مدار - کنترل دامنه ، تولید سیگنال SYNC … (4)
توضیح مدار - کنترل دامنه ، تولید سیگنال SYNC … (4)

همانطور که در برگه داده نوشته شده است سیگنال خروجی pf MAX038 دارای دامنه ~ 1 ولت با ولتاژ DC برابر پتانسیل زمین است.

من می خواستم این امکان را داشته باشم که دامنه سیگنال را کنترل کنم و بتوانم DC را خودم تنظیم کنم. به عنوان یک ویژگی اضافی ، من می خواستم سیگنال SYNC با سطوح CMOS به موازات سیگنال خروجی داشته باشم. به طور پیش فرض تراشه MAX038 چنین سیگنالی را تولید می کند ، اما در برگه اطلاعات می خوانم که اگر این ویژگی فعال باشد (به چه معناست - پین DV+ متصل به 5V) ، برخی از قله ها (نویز) را می توان در سیگنال آنالوگ خروجی مشاهده کرد. من می خواستم تا آنجا که ممکن است تمیز است و به همین دلیل من سیگنال SYNC را از خارج تولید کردم. PCB به گونه ای انجام می شود که پین DV+ را می توان به راحتی به منبع اصلی متصل کرد. پین SYNC به کانکتور BNC هدایت می شود - فقط مقاومت 50 اهم باید لحیم شود. در این حالت ، مدارهای تولید سیگنال SYNC را می توان حذف کرد. در اینجا همانطور که می بینید من از پتانسیومترهای دوگانه نیز استفاده می کنم ، اما آنها به طور موازی به هم متصل نیستند. دلیل آن این است - من دامنه را به طور نسبی اندازه گیری می کنم. ولتاژ در نقطه وسط یک پتانسیومتر توسط Atmega328 ADC حس می شود و دامنه سیگنال بر اساس این مقدار محاسبه می شود. البته این روش چندان دقیق نیست (متکی بر مطابقت هر دو بخش پتانسیومتر است ، که همیشه اتفاق نمی افتد) ، اما برای برنامه های کاربردی من دقیق است. در این مدار IC2A به عنوان بافر ولتاژ کار می کند. IC4A نیز opamp IC2B به عنوان تقویت کننده جمع کننده عمل می کند - سیگنال خروجی ژنراتور عملکردی را به عنوان مجموع ولتاژ جابجایی و سیگنال اصلی با دامنه تنظیم شده ایجاد می کند. تقسیم ولتاژ R15. R17 سیگنال ولتاژ مناسب برای اندازه گیری افست سیگنال اصلی DC ایجاد می کند. با Atmega328 ADC احساس می شود. opamp IC4B به عنوان مقایسه کننده عمل می کند - اینورتر نسل SYNC را که توسط دو ترانزیستور MOS (BSS123 و BSS84) درک شده است کنترل می کند. U6 (THS4281 - Texas Instruments) سیگنال خروجی تولید شده توسط MAX038 DC را با 2.5 ولت تغییر می دهد و 1.5 بار آن را تقویت می کند. بنابراین سیگنال تولید شده توسط AVR ADC حس می شود و با الگوریتم FFT بیشتر پردازش می شود. در این قسمت از ریل با کیفیت بالا برای راه اندازی opamps با پهنای باند 130 مگاهرتز (TI - LMH6619) استفاده کردم.

برای درک آسان نحوه عملکرد دقیق سیگنال SYNC ، تصاویری از شبیه سازی LTSpice از مدار را اضافه می کنم. در تصویر سوم: سیگنال آبی ولتاژ جابجایی (ورودی IC2B) است. سبز رنگ سیگنال خروجی با دامنه تنظیم شده است. قرمز قرمز سیگنال خروجی ژنراتور عملکردی است ، منحنی فیروزه ای سیگنال SYNC است.

مرحله 7: طراحی PCB

طراحی PCB
طراحی PCB

من از "عقاب" برای طراحی PCB استفاده کردم. من مدار چاپی را در "PCBway" سفارش دادم. تولید آنها فقط چهار روز و تحویل آنها به یک هفته زمان برد. کیفیت آنها بالا است و قیمت بسیار پایین است. من فقط 10 دلار برای 10 PCB پرداخت کردم!

علاوه بر آن می توانم PCB های رنگی متفاوت بدون افزایش قیمت سفارش دهم. من زردها رو انتخاب کردم:-).

من فایلهای gerber را طبق قوانین طراحی "PCBway" ضمیمه می کنم.

مرحله 8: لحیم کاری

Image
Image
لحیم کاری
لحیم کاری
لحیم کاری
لحیم کاری

ابتدا دستگاههای مدار منبع تغذیه را لحیم کردم..

پس از آزمایش بلوک تغذیه ، تراشه Atmega328 را با دستگاه های پشتیبانی کننده آن لحیم کردم: کریستال کوارتز ، خازن ها ، درپوش های فیلتر و اتصال ISP. همانطور که می بینید من یک جهنده در خط تامین تراشه AVR دارم. وقتی تراشه را از طریق ISP برنامه ریزی می کنم ، آن را قطع می کنم. من برای این منظور از برنامه نویس USBtiny استفاده می کنم.

در مرحله بعد ، تراشه de-mux 74HC238 را که LED محدوده فرکانس را نشان می دهد ، لحیم کردم. من یک برنامه کوچک آردوینو را در تراشه Atmega بارگذاری کردم که در حال آزمایش مالتی پلکس بود. (فیلم زیر را در لینک بالا ببینید)

مرحله نهم: لحیم کاری…

لحیم کاری…
لحیم کاری…
لحیم کاری…
لحیم کاری…
لحیم کاری…
لحیم کاری…

در مرحله بعد ، opamps هایی را که در حالت DC (LM358) کار می کنند و پتانسیومترهای تنظیم فرکانس و DADJ را لحیم کردم و تمام عملکرد آنها را بررسی کردم.

بعلاوه من کلیدهای BSS123 ، خازن های تعیین فرکانس و تراشه MAX039 را لحیم کردم. من ژنراتور عملکردی را که سیگنال را در خروجی سیگنال تراشه بومی بررسی می کند ، آزمایش کردم. (می توانید شوروی قدیمی من ، تولید 1986 ، که هنوز در حال کار اسیلوسکوپ است را ببینید:-))

مرحله 10: لحیم کاری بیشتر…

لحیم کاری بیشتر…
لحیم کاری بیشتر…
لحیم کاری بیشتر…
لحیم کاری بیشتر…
لحیم کاری بیشتر…
لحیم کاری بیشتر…

پس از آن من سوکت صفحه نمایش LCD را لحیم کردم و آن را با طرح "Hello world" آزمایش کردم.

بقیه opamps ، خازن ها ، پتانسیومترها و اتصالات BNC را لحیم کردم.

مرحله 11: نرم افزار

Image
Image
نرم افزار
نرم افزار

برای ایجاد سیستم عامل Atmega328 از IDE Arduino استفاده کردم.

برای اندازه گیری فرکانس از کتابخانه "FreqCounter" استفاده کردم. فایل طرح و کتابخانه مورد استفاده برای بارگیری در دسترس است. من نمادهای خاصی برای نشان دادن حالت فعلی (سینوسی ، مستطیلی ، مثلث) ایجاد کرده ام.

در تصویر بالا اطلاعات نشان داده شده بر روی LCD قابل مشاهده است:

  • فرکانس F = xxxxxxxx در هرتز
  • محدوده فرکانس Rx
  • دامنه در mV A = xxxx
  • جابجایی در mV 0 = xxxx
  • نوع سیگنال x

ژنراتور عملکرد دارای دو دکمه فشاری در جلو در سمت چپ است - از آنها برای تغییر محدوده فرکانس استفاده می شود (گام به بالا - پله پایین). در سمت راست آنها سوئیچ کشویی برای کنترل حالت وجود دارد ، پس از آن از چپ به راست پتانسیومتر را برای کنترل فرکانس (البته ، خوب ، DADJ) ، دامنه و افست دنبال کنید. در نزدیکی پتانسیومتر تنظیم افست ، سوئیچ برای جابجایی بین افست ثابت 2.5 ولت DC و سوئیچ مورد استفاده قرار می گیرد.

من یک خطای کوچک در کد "Generator.ino" در فایل ZIP یافته ام - نمادهای فرم موج سینوسی و مثلثی عوض شده اند. در فایل تک "Generator.ino" که در اینجا ضمیمه شده است ، خطا اصلاح شده است.

مرحله 12: انجام شود…

Image
Image

به عنوان آخرین مرحله قصد دارم ویژگی اضافی - اندازه گیری THD سیگنال سینوسی فرکانس صوتی را در زمان واقعی با استفاده از FFT پیاده سازی کنم. این مورد ضروری است ، زیرا چرخه وظیفه سیگنال سینوسی ممکن است از 50 differ متفاوت باشد ، آنچه می تواند ناشی از عدم تطابق داخلی تراشه ها و دلایل دیگر باشد و باعث ایجاد اعوجاج هارمونیک شود. چرخه وظیفه را می توان با پتانسیومتر تنظیم کرد ، اما بدون رعایت سیگنال روی اسیلوسکوپ یا آنالیزور طیف ، اصلاح شکل آن غیرممکن است. محاسبه THD بر اساس الگوریتم FFT می تواند مشکل را حل کند. نتیجه محاسبات THD روی LCD در فضای خالی بالا سمت راست نمایش داده می شود.

در ویدئو طیف تولید شده توسط سیگنال سینوسی MAX038 دیده می شود. تجزیه و تحلیل طیف بر اساس برد Arduino UNO + 2.4 اینچ TFT است. تجزیه و تحلیل طیف از کتابخانه SpltRadex Arduino که توسط آناتولی کوزمنکو توسعه یافته است برای انجام FFT در زمان واقعی استفاده می کند.

من هنوز تصمیم نگرفتم - از این کتابخانه استفاده کنم یا از کتابخانه FHT ایجاد شده توسط Musiclabs استفاده کنم.

من قصد دارم از اطلاعات بدست آمده از اندازه گیری های فرکانس سنج برای محاسبه پنجره نمونه برداری مناسب و تعلیق استفاده از پنجره های اضافی در طول محاسبات FFT استفاده کنم. من فقط باید وقت آزاد پیدا کنم تا این اتفاق بیفتد. امیدوارم به زودی به نتیجه برسیم….

توصیه شده: