मायक्रोकंट्रोलरवर फंक्शन जनरेटर. PIC16F870 वर मल्टिफंक्शनल जनरेटर PIC कंट्रोलरवर पल्स जनरेटर

टीव्ही सिग्नल जनरेटर प्रोब pic12f629 मालिकेच्या मायक्रोकंट्रोलरच्या आधारे एकत्र केले जाते आणि त्याचे परिमाण, वर्तमान वापर, डिव्हाइसच्या निर्मितीची किंमत आणि टीव्ही तंत्रज्ञांची कार्यक्षमता या संदर्भात, ते न भरता येणारे आहे. पुरवठा व्होल्टेज 3 व्होल्ट, i.e. दोन एए बॅटरी. जनरेशन मोडमध्ये सध्याचा वापर 11 मिलीअँप आहे, स्लीप मोडमध्ये - फक्त 3 मायक्रोअँप.

टीव्ही सिग्नल जनरेटरचा योजनाबद्ध आकृती

पीसीबी रेखाचित्र


हे प्रोब पाच चित्रे निर्माण करू शकते, जे टीव्हीचे क्षैतिज आणि अनुलंब स्कॅन तपासण्यासाठी आणि दुरुस्त करण्यासाठी, अभिसरण आणि भौमितिक रास्टर विकृती समायोजित करण्यासाठी, रंग संतुलन आणि टीव्ही सर्किट्सद्वारे सिग्नलच्या पासचे निरीक्षण करण्यासाठी पुरेसे आहे. जेव्हा तुम्ही थोडक्यात बटण दाबता, तेव्हा ते जागे होते आणि त्यानंतरच्या क्लिकसह प्रथम चित्र तयार करण्यास सुरवात करते, चित्रे एका वर्तुळात बदलतात. तुम्ही बराच वेळ बटण दाबून ठेवल्यास, रिलीझ झाल्यावर जनरेटर स्लीप मोडमध्ये जातो. 5 मिनिटांपेक्षा जास्त वेळ चालू ठेवल्यास ते आपोआप स्लीप मोडमध्ये देखील जाते.


लेखाशी एक संग्रह जोडलेला आहे, ज्यामध्ये एक आकृती, एक प्रोब बोर्ड आणि दोन फर्मवेअर आहेत. व्हिडिओ दर्शवितो की माझ्या टीव्हीवरील चित्र किंचित गैर-रेखीय आहे - याचे कारण टीव्ही 12 वर्षे जुना आहे किंवा कदाचित व्हिडिओ इनपुटमध्ये काहीतरी चुकीचे आहे.

रेडिओ हौशी आणि सर्किट अभियंत्यांना कधीकधी काही डिजिटल उपकरणे कॉन्फिगर करावी लागतात, जसे की पल्स काउंटर, टॅकोमीटर, ऑसिलोस्कोप इ. किंवा ते कार्य करते का ते शोधा. जनरेटर वापरणे खूप सोयीचे आहे जे विविध फ्रिक्वेन्सीच्या आयताकृती डाळी तयार करते.

मी अशा जनरेटरसाठी एक प्रकल्प प्रस्तावित करू इच्छितो.

प्रथम पल्स जनरेटर सर्किट:

डिव्हाइस लोकप्रिय मायक्रोकंट्रोलरवर आधारित आहे ATmega8 Atmel कडून.

योजनेचे वर्णन. संपूर्ण सर्किट 5 V च्या व्होल्टेजने चालते. मायक्रोकंट्रोलर 8 मेगाहर्ट्झच्या वारंवारतेवर क्लॉक केले जाते, जे X1 क्वार्ट्जद्वारे स्थिर होते. टायमर/काउंटर क्रमांक 1 चा वापर डाळी तयार करण्यासाठी केला जातो. पिन PC3, PC4 आणि PC5 शी जोडलेल्या आकृतीमध्ये बटणांच्या स्वरूपात एन्कोडर दर्शविला आहे. दोन बाह्य बटणे रोटेशन दरम्यान एन्कोडरच्या स्विचिंगची जागा घेतात आणि मध्यभागी असलेले बटण एक एन्कोडर बटण आहे जे तुम्ही त्याचा अक्ष दाबल्यावर बंद होते. टाइमर 1 (OCR1A) च्या आउटपुटमधून 5 V च्या मोठेपणासह एन्कोडर वापरून वारंवारता सेटच्या आयताकृती डाळी काढल्या जातात. आउटपुट वारंवारता प्रदर्शित करण्यासाठी, मायक्रोकंट्रोलरच्या पोर्ट डीशी कनेक्ट केलेला 16-वर्णांचा सिंगल-लाइन LCD डिस्प्ले WH1601 वापरला जातो. HD44780 ड्रायव्हरवर आधारित डिस्प्ले देखील सामान्य आहे. रेझिस्टर R1 डिस्प्लेचा कॉन्ट्रास्ट समायोजित करतो. एमके आणि डिस्प्ले दरम्यान डेटा एक्सचेंज 4-वायर बस वापरून आयोजित केले जाते. MK च्या इन-सर्किट प्रोग्रामिंगसाठी कनेक्टर J1.

आता मायक्रोकंट्रोलरच्या प्रोग्रामबद्दल.

कार्यक्रम विकास वातावरणात लिहिलेला आहे CodeVisionAVR. या वातावरणात डिस्प्लेसह काम करण्यासाठी तयार लायब्ररी आहेत आणि MK सेट करणे स्पष्ट आणि सोपे आहे. मी रिलीझ होण्यापूर्वी आवृत्ती वापरली CodeVisionAVR आवृत्ती 3.12.वापरून कोड व्युत्पन्न करण्यात ते थोडे वेगळे आहे विझार्डा.पण मुळात सर्व काही समान आहे. खाली काम करण्याच्या उदाहरणाचा वापर करून सर्वकाही वर्णन केले आहे CodeVisionAVR आवृत्ती 3.12.या वातावरणाचा अभ्यास करण्यासाठी इंटरनेट दुव्यांनी भरलेले आहे, उदाहरणार्थ: एकात्मिक विकास वातावरण शिकणे CodeVisionAVR.

चला CVAVR लाँच करूया. नवीन प्रकल्प तयार करा ( नवीन प्रकल्प). प्रोग्राम तुम्हाला प्रोजेक्ट क्रिएशन विझार्ड वापरण्यास सूचित करेल.

आम्ही सहमत आहोत. नंतर कंट्रोलर फॅमिली निवडा.

I/O पोर्ट कॉन्फिगर करत आहे. तुम्हाला पोर्ट B (PB1) चा बिट 1 आउटपुट बनवणे आवश्यक आहे - व्युत्पन्न वारंवारता त्यातून घेतली जाते. आम्ही आत्तासाठी डी पोर्ट सोडतो. आणि पिन सेट करा ज्यावरून एन्कोडर स्थिती वाचली जाईल (PC3, PC4, PC5) इनपुटवर ( डेटा दिशा: मध्ये) आणि अंतर्गत वीज पुरवठा चालू करा ( पुलअप/आउटपुट मूल्य- अर्थ पी).

टॅबवर जा टाइमर/काउंटर. येथे तुम्हाला 2 टायमर कॉन्फिगर करण्याची आवश्यकता आहे: टाइमर0आणि टाइमर १, उर्वरित टायमर अक्षम ठेवा ( घड्याळ मूल्य: थांबविले).

वारंवारता सेट करत आहे टाइमर0 125 kHz वेळोवेळी एन्कोडर स्थितीचे मतदान करण्यासाठी हा टाइमर आवश्यक आहे. प्रत्येक वेळी टाइमर वरच्या मूल्यापर्यंत पोचल्यावर मतदान होईल. कारण द टाइमर0 8-बिट, नंतर त्याचे वरचे मूल्य 255 आहे. आणि कंट्रोलरने एन्कोडरचे मतदान करण्यासाठी मुख्य प्रोग्रामच्या अंमलबजावणीमध्ये व्यत्यय आणण्यासाठी, तुम्हाला ओव्हरफ्लो इंटरप्ट सक्षम करणे आवश्यक आहे. टाइमर0 (ओव्हरफ्लो व्यत्यय).

ते सेट करत आहे टाइमर १. तुम्हाला एक मोड निवडण्याची आवश्यकता आहे ( मोड) CTC (तुलना वर टाइमर साफ करा- जुळत असल्यास रीसेट करा). या मोडमध्ये, टाइमर आउटपुट लॉगवर स्विच होईल. 0 मतमोजणी नोंदवहीतील सामुग्री होताच TCNT1केस जुळते OCR1A. रजिस्टरमधील मूल्य बदलून OCR1Aआपण आउटपुट डाळींची वारंवारता बदलू. सर्किट टाइमर 1 चे आउटपुट A वापरते. त्यासाठी तुम्हाला मूल्य निवडणे आवश्यक आहे तुलना जुळणी वर टॉगल करा(सामना असल्यास दुसऱ्या राज्यात स्विच करा). सर्वसाधारणपणे, चित्र पहा:

पुढील पायरी म्हणजे डिस्प्ले कनेक्ट करणे. IN CodeVisionAVR MK च्या कोणत्या पोर्टशी डिस्प्ले कनेक्ट केला जाईल हे दर्शविणे पुरेसे आहे. पोर्ट डी निवडा.

आता तुम्हाला प्रोग्राम कोड व्युत्पन्न करणे आवश्यक आहे. क्लिक करा प्रोग्राम -> व्युत्पन्न करा, जतन करा आणि बाहेर पडा

आता तुम्हाला सेटिंग्जमध्ये जावे लागेल प्रकल्प -> कॉन्फिगर कराआणि MK प्रकार आणि त्याची घड्याळ वारंवारता योग्यरित्या सेट केली आहे का ते तपासा:

CVAVR साठी तयार प्रकल्प

(316.0 KiB, 670 हिट)

एमके फर्मवेअर फ्लॅश करण्यासाठी तुम्हाला एक्स्टेंशनसह फाइलची आवश्यकता आहे .हेक्स. पूर्ण झालेल्या प्रकल्पात ही फाइल आहे Gen_mega8.hex. ते फोल्डरमध्ये स्थित आहे रिलीज/Exe/.

जर तुम्हाला सुरवातीपासून प्रोग्राम लिहायचा असेल, तर प्रोजेक्टमध्ये कोणत्या कमांड्सची आवश्यकता आहे यावर टिप्पण्या आहेत. किंवा तुम्ही फाइलमधून तयार झालेला कोड पेस्ट करू शकता gen_mega8.cआणि, ते बदलून, ते तयार केलेल्या डिव्हाइसवर कसे प्रतिबिंबित होते ते पहा. MK फर्मवेअर फाइल व्युत्पन्न करण्यासाठी, तुम्हाला बटण दाबावे लागेल प्रकल्प तयार करा.विस्तारासह फाइल .हेक्सफोल्डरमध्ये तयार केले जाईल रिलीज/Exe/.
कंट्रोलरचे फ्यूज बिट्स आकृतीनुसार बाह्य 8 मेगाहर्ट्झ क्वार्ट्ज रेझोनेटरसह कार्य करण्यासाठी प्रोग्राम केलेले आहेत:

आता पल्स जनरेटर नियंत्रित करण्याबद्दल.

पॉवर लागू केल्यानंतर, डिस्प्ले आणि एन्कोडर सुरू केले जातात (एनकोडर कनेक्ट केलेले पिन कॉन्फिगर केले जातात). पुढे, एक बार डिस्प्लेवर चालतो (एक पर्यायी "युक्ती", ती प्रशिक्षण प्रदर्शन आउटपुटसाठी बनविली गेली होती) आणि "जनरेटर बंद" शिलालेख प्रदर्शित केला जातो. 2 सेकंदांनंतर डिस्प्ले साफ होतो. एन्कोडर नॉब फिरवल्यानंतर आऊटपुट फ्रिक्वेन्सी दिसून येते आणि हर्ट्झच्या युनिट्सनुसार बदलते. जेव्हा तुम्ही एन्कोडर बटण दाबून सुमारे 0.5 सेकंद धरून ठेवता, तेव्हा स्क्रीनवर “बटण सोडा” हा संदेश प्रदर्शित होतो. यानंतर, एन्कोडर नॉब फिरवून, वारंवारता दहापट हर्ट्झमध्ये बदलते. शेकडो (हजारो) हर्ट्झने वारंवारता बदलण्यासाठी, तुम्हाला पुन्हा एन्कोडर बटण दाबावे लागेल (2 वेळा). मग हर्ट्झच्या युनिट्समध्ये सर्वकाही पुन्हा सुरू होते.

जनरेटरची लोड क्षमता वाढवण्यासाठी, एमके आउटपुट ट्रान्झिस्टरद्वारे चालू केले जाऊ शकते.

आउटपुट वारंवारतेच्या अचूकतेबद्दल.

आउटपुट वारंवारता मूल्ये ऑसिलोस्कोपने तपासली गेली. कमी फ्रिक्वेन्सीमध्ये, अंदाजे 200Hz पर्यंत, मूल्ये ऑसिलोस्कोपवर मोजल्या गेलेल्या मूल्यांशी जुळतात, नंतर वारंवारता जितकी जास्त असेल तितकी त्रुटी (हे तुलना नोंदणीमध्ये लिहिलेल्या पूर्णांक नसलेल्या संख्येमुळे आहे). तुम्ही तुलना रजिस्टरमध्ये ॲरेमधून स्थिरांक एंटर केल्यास अचूकता वाढू शकते (मला उच्च फ्रिक्वेन्सीची गरज नव्हती आणि मी ॲरेमध्ये संख्या मोजण्यात आणि प्रविष्ट करण्यात खूप आळशी आहे)). उच्च फ्रिक्वेन्सीवर, अचूकता वाढवण्यासाठी, तुम्हाला वेगळी टाइमर वारंवारता घ्यावी लागेल.

मी अलीकडेच एक अतिशय सोयीस्कर आणि कॉम्पॅक्ट मल्टीमीटर खरेदी केला आहे जो वारंवारता मोजण्यासाठी वापरला जाऊ शकतो (9.999 MHz पर्यंत). येथे आहे व्हिडिओ पुनरावलोकन . आणि तुम्ही ऑर्डर करू शकता हा दुवा .

मायक्रोकंट्रोलरला एका विशेष प्रोग्रामरने फ्लॅश केले जाऊ शकते किंवा आपण स्वतः एक साधा प्रोग्रामर बनवू शकता. उदाहरणार्थ, मी प्रोग्रामर यशस्वीरित्या वापरतो USBasp. आपण या प्रोग्रामरबद्दल येथे वाचू शकता

लेखाचा पहिला भाग ATmega16 मायक्रोकंट्रोलरवरील DDS जनरेटर (थेट डिजिटल वेव्हफॉर्म संश्लेषणासह जनरेटर) च्या सर्किट डिझाइन, रचना आणि डिझाइनची चर्चा करतो. विविध आकार आणि फ्रिक्वेन्सीचे सिग्नल संश्लेषित करण्याव्यतिरिक्त, डिव्हाइस आउटपुट सिग्नलचे मोठेपणा आणि ऑफसेट समायोजित करण्याची क्षमता प्रदान करते.

डिव्हाइसची मुख्य वैशिष्ट्ये:

  • साधे सर्किट डिझाइन, प्रवेशयोग्य घटक;
  • एकतर्फी मुद्रित सर्किट बोर्ड;
  • मुख्य वीज पुरवठा;
  • 1 MHz ते 8 MHz पर्यंत समर्पित वारंवारता आउटपुट;
  • समायोज्य मोठेपणा आणि ऑफसेटसह डीडीएस आउटपुट;
  • डीडीएस आउटपुट वेव्हफॉर्म: साइन वेव्ह, स्क्वेअर वेव्ह, सॉटूथ, त्रिकोणी, ईसीजी, आवाज;
  • वर्तमान पॅरामीटर्स प्रदर्शित करण्यासाठी दोन-लाइन एलसीडी डिस्प्ले वापरला जातो;
  • पाच-बटण कीबोर्ड;
  • वारंवारता ट्यूनिंग चरण: 1, 10, 10, 1000, 10000 Hz;
  • चालू केल्यावर शेवटचे कॉन्फिगरेशन पुनर्संचयित करा;
  • ऑफसेट समायोजन: -5 V ... +5 V;
  • मोठेपणा समायोजन: 0 ... 10 V;
  • वारंवारता समायोजन: 0 ... 65534 Hz.

डिव्हाइसचा आधार, किंवा त्याऐवजी मायक्रोकंट्रोलरचे ऑपरेटिंग अल्गोरिदम, जेस्पर हॅन्सन डीडीएस जनरेटरच्या विकासातून घेतले गेले. WinAVR-GCC कंपायलरसाठी प्रस्तावित अल्गोरिदम थोडेसे पुन्हा तयार केले गेले आहे आणि रुपांतरित केले आहे.

सिग्नल जनरेटरमध्ये दोन आउटपुट आहेत: एक DDS सिग्नल आउटपुट आणि उच्च-फ्रिक्वेंसी (1 - 8 MHz) स्क्वेअर वेव्ह आउटपुट, ज्याचा वापर चुकीच्या फ्यूज बिट सेटिंग्जसह मायक्रोकंट्रोलरला "पुनरुज्जीवन" करण्यासाठी किंवा इतर हेतूंसाठी केला जाऊ शकतो.

उच्च-फ्रिक्वेंसी सिग्नल थेट मायक्रोकंट्रोलरमधून, पिन OC1A (PD5) वरून येतो. डीडीएस सिग्नल मायक्रोकंट्रोलरद्वारे प्रतिरोधकांची साखळी R2R (डीएसी) वापरून व्युत्पन्न केला जातो, कमी-पॉवर ऑपरेशनल ॲम्प्लिफायर LM358N च्या वापरामुळे ऑफसेट आणि मोठेपणा समायोजन शक्य आहे.

डीडीएस जनरेटरचा ब्लॉक आकृती

तुम्ही बघू शकता की, डिव्हाइसला पॉवर करण्यासाठी तीन व्होल्टेज आवश्यक आहेत: +5 V, +12 V, -12 V. व्होल्टेज +12 V आणि -12 V चा वापर ऑपरेशनल ॲम्प्लिफायरवरील डिव्हाइसच्या ॲनालॉग भागासाठी केला जातो. ऑफसेट आणि मोठेपणा.

वीज पुरवठ्याचे सर्किट डायग्राम खालील आकृतीमध्ये दर्शविले आहे.

वीज पुरवठा व्होल्टेज स्टॅबिलायझर LM7812, LM7805, LM7912 (ऋण व्होल्टेज स्टॅबिलायझर -12 V) वापरतो.

जनरेटरसाठी वीज पुरवठ्याचे स्वरूप

एटीएक्स फॉर्म फॅक्टरचा संगणक वीज पुरवठा वापरणे शक्य आहे हे करण्यासाठी, आपल्याला आकृतीनुसार ॲडॉप्टर सोल्डर करणे आवश्यक आहे:

डिव्हाइसचे योजनाबद्ध आकृती

डिव्हाइस एकत्र करण्यासाठी आपल्याला याची आवश्यकता असेल:

  • मायक्रोकंट्रोलर ATmega16;
  • क्वार्ट्ज रेझोनेटर 16 मेगाहर्ट्झ;
  • HD44780 कंट्रोलरवर आधारित मानक दोन-लाइन एलसीडी निर्देशक;
  • प्रतिरोधकांच्या साखळीच्या स्वरूपात बनविलेले R2R DAC;
  • ड्युअल ऑपरेशनल ॲम्प्लीफायर LM358;
  • दोन पोटेंशियोमीटर;
  • पाच बटणे;
  • अनेक कनेक्टर आणि सॉकेट्स.

पीसीबी रेखाचित्र

वापरलेले घटक, मायक्रोकंट्रोलर आणि कनेक्टर्सचा अपवाद वगळता, पृष्ठभाग माउंट (SMD) पॅकेजमध्ये आहेत.

डिव्हाइस गृहनिर्माण मध्ये आरोहित

चाचणी

डाउनलोड

सर्किट डायग्राम आणि मुद्रित सर्किट बोर्ड (ईगल फॉरमॅट) -
प्रोटीयस वातावरणात सिम्युलेशनसाठी प्रकल्प -

  • ढीग करण्याचा प्रयत्न कोणी केला?
  • फंक्शनल जनरेटर थ्रेड पहा, पोस्ट 4 पासून या डिझाइनची चर्चा आहे आणि QED आणि कुको वापरकर्त्यांनी हे जनरेटर एकत्र केले आहे. आणि ते प्रोटीयसमध्ये तपासले गेले - ते कार्य करते.
  • जनरेटरच्या पहिल्या (http://www..html?di=69926) आवृत्तीमध्ये वापरल्या जाणाऱ्या वीज पुरवठ्यासाठीच्या घटकांची यादी कोणी मला सांगू शकेल का. विशेषतः, लेखकाने वापरलेले ट्रान्सफॉर्मर आणि रेक्टिफायरचे कोणते मॉडेल मला स्वारस्य आहे. किंवा किमान पूर्ण analogues. विनंतीवरून हे स्पष्ट होते की मी विद्युत अभियांत्रिकीमध्ये प्रबळ नाही, परंतु मला वाटते की मी या विषयात न पडता ते एकत्र करू शकतो. फक्त जबरदस्ती majeure. कॅपेसिटर आणि 3 स्टॅबिलायझर्ससह सर्व काही स्पष्ट आहे. वास्तविक हा आकृतीबंध जोडलेला आहे.
  • 15 V (व्हेरिएबल) च्या आउटपुट व्होल्टेजसह दोन दुय्यम विंडिंग असलेले कोणतेही लो-पॉवर ट्रान्सफॉर्मर. विशेषतः, लेखकाने TS6/47 ट्रान्सफॉर्मर (2x15 V/2x0.25 A) वापरलेला कोणताही कमी-पॉवर डायोड ब्रिज देखील करेल. लेखातील फोटो ट्रान्सफॉर्मर आणि डायोड ब्रिज दोन्ही दर्शवितो.
  • परंतु कृपया मला सांगा की ट्रान्सफॉर्मरचे दुय्यम आउटपुट आणि रेक्टिफायरमध्ये कोणत्या प्रकारचे कनेक्शन असावे, लेखकाचे पॉवर सप्लाय सर्किट लक्षात घेऊन?: गोंधळलेले: ठीक आहे, म्हणजे, जर ट्रान्सफॉर्मरचे आउटपुट 15V असेल (मला वाटते मला हे सापडले - TPS-7.2 (2x15V)सिम (7.2W) 15Vx2_7.2W_sim (0.24A)x2 - 160.00 रुबल), तर त्यासाठी कोणता रेक्टिफायर आहे? आणि ट्रान्सफॉर्मरच्या आउटपुटवर 12V असल्यास?
  • मला प्रश्न नीट समजला नाही, खरे सांगायचे तर... तुम्ही सूचित केलेला ट्रान्सफॉर्मर योग्य आहे असे दिसते... ब्रिज ठीक आहे, मला वाटते की तो योग्य असेल उदाहरणार्थ DB106
  • Vadzz, टीप साठी खूप धन्यवाद. जर DB106 योग्य असेल तर W08, ज्यात समान पॅरामीटर्स आहेत, योग्य असतील. हे खरं आहे? फक्त, तुम्हाला विकत घेण्याची संधी (इच्छा) आहे. आणि मी अद्याप लेखकाच्या आकृतीमध्ये कॅपेसिटरची मूल्ये शोधू शकलो नाही, कृपया मला सांगा. ते सर्व nF (nanofarad-nF) मध्ये आहेत का?
  • W08 अगदी योग्य आहे. कॅपेसिटर पॉवर सप्लाय सर्किटमध्ये आहेत की जनरेटर सर्किटमध्ये आहेत? जर वीज पुरवठा असेल, तर सर्व कॅपेसिटर मायक्रोफारॅड्समध्ये आहेत (2000 µF, 100 µF, 0.1 µF). जनरेटर सर्किटमध्ये, माझ्या मते, 18 पिकोफरॅड्सच्या क्वार्ट्ज हार्नेसमध्ये फक्त दोन कंडेन्सर आहेत.
  • Vadzz, अविरत धन्यवाद. असे दिसते की सर्व प्रश्न सुटले आहेत. जनरेटरचा सर्किट डायग्राम थोडासा सोपा आहे असे दिसते (तेथे एक ईगल फाइल आहे). मी ते प्रत्यक्षात आणीन. सर्व काही ठीक असल्यास, मी वीज पुरवठ्यासाठी मुद्रित सर्किट बोर्ड (ईगल स्वरूप) पोस्ट करण्याचा प्रयत्न करेन.
  • प्रत्येक गोष्ट तुमच्यासाठी निश्चितपणे कार्य करेल... मुद्रित सर्किट बोर्डचे रेखाचित्र पोस्ट करा, ते नक्कीच एखाद्यासाठी उपयुक्त ठरेल...
  • मी ते सोल्डर केले आणि वापरत आहे. खरे सांगायचे तर, वाटेत अनेक समस्या उद्भवल्या: 1) दोष - जनरेटर चालू असताना वारंवारता समायोजित करणे अशक्य आहे. त्या. जर तुम्हाला फ्रिक्वेन्सी बदलायची असेल, तर आधी सिग्नल जनरेशन बंद करा, नंतर फ्रिक्वेन्सी समायोजित करा, मग सिग्नल जनरेशन पुन्हा चालू करा. जेव्हा आपल्याला वारंवारतेतील सहज बदलासाठी समायोजित केलेल्या डिव्हाइसच्या प्रतिक्रियेचे परीक्षण करण्याची आवश्यकता असते तेव्हा हे सहसा गैरसोयीचे असते. उदाहरणार्थ, स्टेपरचा वेग नियंत्रित करण्यासाठी, आपल्याला फक्त वारंवारता सहजतेने समायोजित करण्याची आवश्यकता आहे. २) दोष - EEPROM दोनदा क्रॅश झाला. लेखकाने EEPROM मध्ये सेट मोड संचयित करण्याची तरतूद केली आहे, परंतु हे अजिबात आवश्यक नाही. काहीही लक्षात न ठेवणे आणि ते अजिबात न वापरणे चांगले होईल. किंवा, शेवटचा उपाय म्हणून, EEPROM खराब झाल्यास, ते FLASH वरून "डीफॉल्ट" सेटिंग्ज लोड करते. पण ते अधिक विश्वासार्ह असेल. एकूणच, बाकीच्या कामात मी आनंदी आहे. ज्यांना AVR साठी लेखन कार्यक्रम समजतात त्यांना आम्ही या दोन कमतरता सुधारण्यास सांगतो.
  • फ्लायवरील फ्रिक्वेंसी ऍडजस्टमेंटबाबत, तुम्हाला बहुधा डीएमए वापरण्याची आवश्यकता आहे, जे अशा मायक्रोकंट्रोलरमध्ये उपलब्ध नाही. कदाचित मी चुकीचे आहे... मला जनरेटरचा सोर्स कोड पाहण्याची गरज आहे... "EEPROM फ्लाईज" साठी - अर्थातच कारण शोधणे मनोरंजक असेल, परंतु मला वाटते की दोनदा हे सूचक नाही .
  • ad9850(51) साठी तयार जनरेटर येथे आहेत: http://radiokit.tiu.ru/product_list/group_802113
  • AD9850 वरील रेडीमेड जनरेटर चांगली उपकरणे आहेत, परंतु जेव्हा तुम्ही ते स्वतः एकत्र करता आणि सेट करता तेव्हा ही दुसरी बाब आहे...
  • EEPROM मधील डेटा नष्ट झाल्यामुळे जनरेटरची संपूर्ण अकार्यक्षमता होते. सर्वात अयोग्य क्षणी एक अतिशय अप्रिय समस्या. मी सहसा जनरेटर केसमध्ये एक अतिरिक्त प्रोग्राम केलेला कंट्रोलर ठेवतो. परंतु हा परिस्थितीतून बाहेर पडण्याचा मार्ग नाही. EEPROM नष्ट झाल्यास एकूण कार्यक्षमतेवर परिणाम होणार नाही, फक्त वर्तमान डेटा जतन करण्याची तरतूद का करू नये? फ्लॅशमधून डेटा गमावल्यास, आम्ही डीफॉल्ट सेटिंग्ज लोड करतो. प्रोग्रामच्या कार्यप्रदर्शनाशी संबंधित इतर सर्व काही फ्लॅशमध्ये संग्रहित केले आहे. हे अशा प्रकारे अधिक विश्वासार्हपणे कार्य करेल. मी AVR वर इतर जनरेटर प्रकल्पांसह लिंक्सची सूची पोस्ट करण्याचा सल्ला देतो.
  • येथे अनेक लोकांनी हा जनरेटर एकत्र केला (त्यांच्या शब्दांत, अर्थातच), त्यांनी याबद्दल काहीही सांगितले नाही, त्यांना अशी समस्या आहे की नाही ...
  • मला सांगा, या जनरेटरमध्ये फक्त वारंवारता किंवा कर्तव्य चक्र बदलणे शक्य आहे का?
  • जनरेटरची वैशिष्ट्ये सूचित करतात की आपण वारंवारता बदलू शकता, दुर्दैवाने मर्यादा बदलण्याची कोणतीही शक्यता नाही...
  • मित्रांनो, मला RESET जंपर बद्दल सांगा - ते कधी चालू करायचे आणि कधी काढायचे..... धन्यवाद
  • जम्परची सामान्य स्थिती खुली आहे आणि हे बहुधा जम्पर नाही, परंतु अचानक काहीतरी घडल्यास आपण एमके रीसेट करू शकता असे बटण जोडण्यासाठी कनेक्टर आहे.
प्रस्तावित उपकरण हे आयताकृती पल्स जनरेटर आहे जे संगणकावरून सीरियल पोर्टद्वारे नियंत्रित केले जाते. हे एका विशिष्ट समस्येचे अक्षरशः एका दिवसात निराकरण करण्यासाठी केले गेले होते आणि त्यात त्रुटी किंवा कमतरता असू शकतात, मी याची हमी देऊ शकत नाही की आपण ते विकून खूप पैसे कमवाल. परंतु सर्व मूलभूत कार्ये तपासली गेली आहेत.
जनरेटरद्वारे उत्पादित कमाल वारंवारता 13 kHz पेक्षा किंचित जास्त आहे, किमान 0.01 Hz पेक्षा कमी आहे (4 MHz च्या क्वार्ट्ज ऑसिलेटर वारंवारतेसाठी).

योजना.

योजना अगदी सोपी आहे. हे PIC16C63A मायक्रोकंट्रोलरच्या आधारे एकत्र केले जाते, सिग्नल त्याच्या दोन पिनमधून घेतले जाते, त्यांची स्थिती नेहमीच वेगळी असते. लोडशिवाय, एक स्तर पुरवठा व्होल्टेजपेक्षा 0.1 व्होल्टपेक्षा कमी आहे, शून्य पातळी देखील खूप कमी आहे. पिन 30 mA पर्यंतच्या प्रवाहांसाठी डिझाइन केल्या आहेत. MAX232 चिप RS232 इंटरफेस स्तरांना TTL स्तरांमध्ये रूपांतरित करण्यासाठी वापरली जाते. डिव्हाइसला उर्जा देण्यासाठी आपल्याला 5 व्होल्ट वीज पुरवठा आवश्यक आहे, तो आकृतीमध्ये दर्शविला नाही.

कार्यक्रम.

मायक्रोकंट्रोलरद्वारे उत्पादित सिग्नलचे पॅरामीटर्स सेट करण्यासाठी, आपण एक विशेष प्रोग्राम वापरणे आवश्यक आहे. प्रोग्राम विंडोज ओएससाठी लिहिलेला आहे त्याच्या विंडोचे दृश्य खाली आहे.

नियंत्रणे आउटपुट सिग्नलची वारंवारता, सकारात्मक आणि नकारात्मक अर्ध-चक्रांच्या लांबीचे गुणोत्तर सेट करण्यासाठी डिझाइन केलेले आहेत. जारी केलेल्या डाळींची संख्या मर्यादित करणे शक्य आहे (1...2 23 -1). मायक्रोकंट्रोलरमधील प्रोग्राम कोणतीही वारंवारता आउटपुट करण्यास परवानगी देत ​​नाही, "पाठवा" बटण दाबल्यानंतर, सर्वात जवळचे संभाव्य वारंवारता मूल्य मोजले जाईल आणि ते कीबोर्डवरून प्रविष्ट केलेल्या वारंवारता फील्डमध्ये लिहिले जाईल. फील्ड "कालावधी 1" आणि "कालावधी 0" मध्ये अनियंत्रित युनिट्समधील सिग्नलचा कालावधी असतो ज्यासह प्रोग्राम PIC मध्ये कार्य करतो, हे शून्यापेक्षा मोठे आणि 2 24 पेक्षा कमी पूर्णांक आहेत. वापरलेल्या क्वार्ट्ज रेझोनेटरची सीरियल पोर्ट नंबर आणि वारंवारता निवडण्यासाठी सेटिंग्ज प्रदान केल्या आहेत.

स्रोत: svv.on.ufanet.ru


ही आकृती देखील अनेकदा पाहिली जाते:

मापन जनरेटर, ज्यामध्ये कीबोर्ड वापरून आवश्यक वारंवारता मूल्य सेट केले जाते, ते मासिकाच्या वाचकांसाठी ओळखले जातात (उदाहरणार्थ, पिस्केव ए चा लेख पहा. “रेडिओ” मधील “फ्रिक्वेंसी मीटर-जनरेटर-घड्याळ”, 2002, क्र. 7, पृ. 31, 32). नियमानुसार, ही उपकरणे मायक्रोकंट्रोलरवर बनविली जातात, व्युत्पन्न फ्रिक्वेन्सीची श्रेणी अनेक मेगाहर्ट्झपर्यंत मर्यादित आहे आणि अचूक वारंवारता मूल्य प्राप्त करणे अशक्य आहे. लेखात वर्णन केलेल्या जनरेटरमध्ये मायक्रोकंट्रोलर देखील आहे, परंतु ते केवळ एक विशेष मायक्रोक्रिकेट नियंत्रित करण्यासाठी वापरले जाते - AD9850 वारंवारता सिंथेसायझर. या मायक्रोसर्किटच्या वापरामुळे व्युत्पन्न फ्रिक्वेन्सीची श्रेणी हर्ट्झच्या अपूर्णांकांपासून 60 मेगाहर्ट्झपर्यंत वाढवणे शक्य झाले, ज्यामध्ये 1 हर्ट्झच्या अचूकतेसह कोणतेही वारंवारता मूल्य प्राप्त करणे शक्य आहे.

हे SB1-SB16 कीबोर्डचे मतदान करते, HG1 LCD इंडिकेटरवर माहिती प्रदर्शित करते, वारंवारता कोड मूल्याची गणना करते आणि सीरियल इंटरफेसद्वारे DD2 सिंथेसायझरमध्ये प्रसारित करते. ध्वनी उत्सर्जक HA1 कीबोर्ड बटणे दाबण्याची पुष्टी करण्यासाठी कार्य करते. मानक कनेक्शनमध्ये AD9850 (DD2) चिप वापरली जाते. फिल्टर Z1 त्याच्या DAC च्या आउटपुटवर चालू आहे. फिल्टरनंतर, XW2 सॉकेटला आणि DD2 चिप (पिन 16) च्या तुलनाकर्त्याच्या इनपुटला साइनसॉइडल सिग्नल पुरवला जातो. नंतरच्या आउटपुटमधून, सॉकेट XW1 ला एक आयताकृती सिग्नल पुरविला जातो. G1 क्वार्ट्ज ऑसिलेटर DDS साठी घड्याळ जनरेटर म्हणून वापरला जातो. ट्रिमर रेझिस्टर R7 HG1 इंडिकेटरवरील प्रतिमेचा कॉन्ट्रास्ट समायोजित करतो.
मायक्रोकंट्रोलर रीसेट केल्यानंतर, HG1 LCD इंडिकेटर 4-बिट बस एक्सचेंज मोडसाठी कॉन्फिगर केले आहे, जे रेकॉर्डिंग माहितीसाठी आवश्यक इनपुट/आउटपुट लाइनची संख्या कमी करण्यासाठी आवश्यक आहे.



SB1-SB16 बटणे असलेला कीबोर्ड वापरून जनरेटर नियंत्रित केला जातो. सर्व पोर्ट बी इनपुट लाईन्स रेझिस्टरद्वारे वीज पुरवठ्याशी जोडलेल्या असल्याने, पॉवर लाइनवर पोर्ट्स RB4 - RB7 खेचण्यासाठी बाह्य प्रतिरोधकांची आवश्यकता नाही. रेझिस्टर R3-R6 मायक्रोकंट्रोलर आउटपुटचे ओव्हरलोडपासून संरक्षण करतात जेव्हा एकाच वेळी अनेक बटणे चुकून दाबली जातात.
आवश्यक वारंवारता कीबोर्डवरून सेट केली जाते. हे करण्यासाठी, संबंधित संख्या असलेल्या बटणावर क्लिक करा, इच्छित मूल्य प्रविष्ट करा (हर्ट्झमध्ये) आणि "*" बटण दाबा. वारंवारता जास्तीत जास्त परवानगीपेक्षा जास्त नसल्यास, "ओके" संदेश थोड्या काळासाठी निर्देशकावर दिसून येतो आणि जनरेटर ऑपरेटिंग मोडमध्ये जातो आणि जरओलांडली - "त्रुटी" संदेश. या प्रकरणात, तुम्हाला "C" ("रीसेट") बटण दाबावे लागेल आणि योग्य मूल्य पुन्हा-एंटर करावे लागेल. वारंवारता इनपुट प्रक्रियेदरम्यान त्रुटी असल्यास ते असेच करतात. हे बटण दोनदा दाबल्याने डिव्हाइस आधी सेट केलेल्या वारंवारता मूल्यासह ऑपरेटिंग मोडमध्ये ठेवते.
ऑपरेटिंग मोडमध्ये, तारकाचे चिन्ह निर्देशकाच्या अगदी उजव्या भागात चमकते. जर वर्तमान वारंवारता मूल्य बाह्य नियंत्रण युनिटमधून (उदाहरणार्थ, संगणकावरून) प्रविष्ट केले असेल, तर निर्देशकावर प्रदर्शित केलेल्या वारंवारतेवर परत येण्यासाठी, फक्त "*" बटण दाबा.
"U" (वर - वर) आणि "D" (डाउन - डाउन) बटणे तुम्हाला जनरेटरची आऊटपुट वारंवारता क्रमशः एकाने वाढवून किंवा कमी करून टप्प्याटप्प्याने बदलण्याची परवानगी देतात. "L" (डावीकडे - डावीकडे) आणि "R" (उजवीकडे - उजवीकडे) बटणे वापरून कर्सर हलवून आवश्यक दशांश स्थान निवडले जाते.
जेव्हा तुम्ही "*" बटण दाबता, तेव्हा फ्रिक्वेंसी व्हॅल्यू आणि कर्सरची स्थिती मायक्रोकंट्रोलरच्या नॉन-व्होलॅटाइल मेमरीमध्ये सेव्ह केली जाते, जेणेकरून पुढच्या वेळी पॉवर चालू झाल्यावर, व्यत्यय आलेला ऑपरेटिंग मोड आपोआप रिस्टोअर होईल. मायक्रोकंट्रोलरची संगणकीय क्षमता मर्यादित असल्याने, आउटपुट वारंवारता सुमारे 1 हर्ट्झच्या अचूकतेसह सेट केली जाते, जी बहुतेक प्रकरणांसाठी पुरेशी असते. सिंथेसायझरची क्षमता पूर्णपणे ओळखण्यासाठी, ते पीसी वापरून नियंत्रित केले जाऊ शकते. हे करण्यासाठी, जनरेटर एक युनिट जोडून सुधारित करणे आवश्यक आहे, ज्याचा आकृती अंजीर मध्ये दर्शविला आहे. 3. पीसी (किंवा इतर नियंत्रण उपकरण) आउटलेटशी जोडलेले आहे
XS1. जेव्हा ॲड्रेस इनपुट A वर लॉजिक पातळी कमी असते, तेव्हा DD3 चिपचे मल्टीप्लेक्सर सिंथेसायझर कंट्रोल इनपुटला मायक्रोकंट्रोलर DD1 शी जोडतात आणि जेव्हा लॉजिक लेव्हल जास्त असते तेव्हा बाह्य उपकरणाशी जोडतात. XS1 सॉकेटच्या "सक्षम करा" संपर्काद्वारे नियंत्रण सिग्नल पुरवले जातात. रेझिस्टर R19 DD3 च्या ॲड्रेस इनपुटवर कमी लॉजिक लेव्हल पुरवतो जेव्हा कंट्रोल डिव्हाईस कनेक्ट केलेले नसते.
जनरेटर एकत्र केले जाते आणि ब्रेडबोर्डवर चाचणी केली जाते. तुम्ही DD2 चिपसाठी SSOP हाऊसिंगसाठी बोर्ड खरेदी करू शकत नसल्यास, संबंधित पॅडशी पिन जोडण्यासाठी 0.2 मिमी व्यासासह टिनबंद वायरचे छोटे (10-15 मिमी लांब) तुकडे वापरू शकता. पिन 1,2,5,10,19, 24, 26, 27, 28 एका लांब सेगमेंटसह सामान्य वायरशी जोडलेले आहेत.
एलसीडी इंडिकेटर HG1 - 1TM1601 (बिल्ट-इन कंट्रोलरसह 16-वर्ण सिंगल-लाइन). HA1 हे अंगभूत जनरेटर असलेले कोणतेही पायझोइलेक्ट्रिक ध्वनी उत्सर्जक आहे, जे 5 V च्या व्होल्टेजसाठी डिझाइन केलेले आहे. घड्याळ जनरेटर (G1) म्हणून, तुम्ही 125 मेगाहर्ट्झ पर्यंतच्या फ्रिक्वेन्सीसह क्वार्ट्ज ऑसिलेटरचे मायक्रोअसेंबली वापरू शकता; क्वार्ट्ज स्थिरीकरणासह आणि वेगळ्या घटकांवर समान युनिट वापरण्यासाठी.
मायक्रोकंट्रोलरचा नियंत्रण कार्यक्रम घड्याळ जनरेटरच्या वारंवारतेवर अवलंबून असतो.
मायक्रोकंट्रोलर प्रोग्रामिंग करताना, खालील बिट मूल्ये कॉन्फिगरेशन शब्दात सेट केली जातात: जनरेटर प्रकार (OSC) - RC. वॉचडॉग टाइमर (WDT) - अक्षम, पॉवर-ऑन विलंब (PWRTE) - सक्षम.