এই সার্কিট স্কিম্যাটিক ডায়াগ্রামটি একটি এফএম রেডিও রিসিভার মডিউল চারপাশে নির্মিত RDA5807M মূল আইসি হিসেবে। এটি মূলত বাস্তবায়ন করে এফএম সিগন্যাল গ্রহণ, অডিও আউটপুট এবং মৌলিক নিয়ন্ত্রণ ফাংশননিচের বিশ্লেষণটি বিভক্ত: মূল উপাদান, কার্যকরী মডিউল এবং মূল নকশা পরামিতি.

১. মূল উপাদান এবং পিন ফাংশন
কোর আইসি: RDA5807M
সার্জারির RDA5807M একটি অত্যন্ত সমন্বিত FM রেডিও রিসিভার IC যা FM সম্প্রচার গ্রহণ সমর্থন করে এবং I2C / SDIO সিরিয়াল নিয়ন্ত্রণস্কিম্যাটিকের উপর ভিত্তি করে, কী পিন এবং তাদের সংযোগগুলি নীচে সংক্ষিপ্ত করা হয়েছে:
| পিন নাম | ক্রিয়া | সংযুক্ত উপাদান / নেট | বিবরণ |
|---|---|---|---|
| রাউট | ডান-চ্যানেল অডিও আউটপুট | সরাসরি আউটপুট (কোনও অতিরিক্ত উপাদান দেখানো হয়নি) | ডান-চ্যানেল অ্যানালগ অডিও প্রদান করে |
| LOUT | বাম-চ্যানেল অডিও আউটপুট | সরাসরি আউটপুট (কোনও অতিরিক্ত উপাদান দেখানো হয়নি) | বাম-চ্যানেল অ্যানালগ অডিও প্রদান করে |
| আরসিএলকে | ঘড়ির সিগন্যাল পিন | কোনও স্পষ্ট বাহ্যিক সংযোগ নেই (সম্ভবত অভ্যন্তরীণ সিঙ্ক) | অভ্যন্তরীণ ঘড়ি সিঙ্ক্রোনাইজেশন |
| Vdd | পাওয়ার সাপ্লাই ইনপুট | 3V3 পাওয়ার নেট | 3.3V ডিসি পাওয়ার সাপ্লাই |
| GND | স্থল | গ্লোবাল জিএনডি নেট | সাধারণ শক্তি এবং সংকেত স্থল |
| এসডিআইও | সিরিয়াল ডেটা ইনপুট/আউটপুট | পিন ৩ (নিয়ন্ত্রণ সংকেত) | টিউনিং, ভলিউম নিয়ন্ত্রণ ইত্যাদির জন্য MCU-এর সাথে যোগাযোগ। |
| এসসিএলকে | সিরিয়াল ঘড়ি | পিন ২ (ঘড়ির সংকেত) | SDIO যোগাযোগের জন্য ঘড়ির সংকেত |
| FMIN | এফএম সংকেত ইনপুট | পিন 5 | অ্যান্টেনা থেকে FM RF সিগন্যাল গ্রহণ করে |
| X1 | ক্রিস্টাল অসিলেটর ইনপুট | 32.768 kHz ক্রিস্টাল | স্থিতিশীল ফ্রিকোয়েন্সি অপারেশনের জন্য রেফারেন্স ঘড়ি প্রদান করে |
2. কার্যকরী মডিউল ভাঙ্গন
2.1 পাওয়ার সাপ্লাই মডিউল
- ইনপুট ভোল্টেজ: ২৪ ভোল্ট ডিসি (নিয়ন্ত্রিত)
- ফিল্টারিং উপাদান:
- C8 (0.1µF), C9 (0.1µF): VDD এবং GND এর মধ্যে উচ্চ-ফ্রিকোয়েন্সি ডিকাপলিং ক্যাপাসিটার, পাওয়ার শব্দ দমন করে
- C10 (22µF): কম-ফ্রিকোয়েন্সি ফিল্টারিং এবং শক্তি সঞ্চয়ের জন্য বাল্ক ইলেক্ট্রোলাইটিক ক্যাপাসিটর
- C26 (0.1µF): বিদ্যুৎ স্থিতিশীলতা আরও উন্নত করতে অতিরিক্ত ডিকাপলিং
এই বহু-পর্যায়ের ফিল্টারিং নিশ্চিত করে স্থিতিশীল এবং কম শব্দে বিদ্যুৎ সরবরাহ এফএম রিসিভার আইসি-তে।
২.২ এফএম সিগন্যাল রিসেপশন মডিউল
- সিগন্যাল ইনপুট:
- সার্জারির FMIN পিন (পিন ৫) একটি বহিরাগত FM অ্যান্টেনার সাথে সংযোগ স্থাপন করে (অ্যান্টেনার উপাদানটি স্কিম্যাটিকটিতে দেখানো হয়নি)
- এফএম সম্প্রচার সংকেত গ্রহণ করে 87-108 মেগাহার্টজ দল
- ক্রিস্টাল অসিলেটর সার্কিট:
- A ৩২.৭৬৮ kHz স্ফটিক (X১) একটি সঠিক রেফারেন্স ঘড়ি প্রদান করে
- স্টেশন নির্বাচনের সময় সুনির্দিষ্ট FM টিউনিং নিশ্চিত করে এবং ফ্রিকোয়েন্সি ড্রিফট প্রতিরোধ করে
২.৩ নিয়ন্ত্রণ এবং যোগাযোগ মডিউল
- যোগাযোগ ইন্টারফেস:
- SDIO (সিরিয়াল ডেটা) + SCLK (সিরিয়াল ক্লক)
- মানানসই I2C বা অনুরূপ সিরিয়াল যোগাযোগ প্রোটোকল
- একটি বহিরাগত MCU (যেমন, মাইক্রোকন্ট্রোলার) এর সাথে ইন্টারফেস করতে ব্যবহৃত হয়
- পুল-আপ প্রতিরোধক:
- R6 (১০kΩ) SDIO-এর জন্য
- R7 (১০kΩ) SCLK-এর জন্য
- উভয়ই এর সাথে সংযুক্ত 3V3, স্থিতিশীল যুক্তি স্তর এবং নির্ভরযোগ্য যোগাযোগ নিশ্চিত করা
২.৪ অডিও আউটপুট মডিউল
- অডিও আউটপুট:
- রুট: ডান-চ্যানেল অ্যানালগ অডিও
- লাউট: বাম-চ্যানেল অ্যানালগ অডিও
- এই আউটপুটগুলি হতে পারে:
- সরাসরি সংযুক্ত হেডফোন
- এর সাথে সংযুক্ত ভাষাভাষী (বিঃদ্রঃ: একটি বহিরাগত অডিও পরিবর্ধক উচ্চতর বিদ্যুৎ উৎপাদনের জন্য প্রয়োজন)
২.৫ অক্জিলিয়ারী ফিল্টারিং এবং ম্যাচিং মডিউল
- সূচক:
- L1, L2 (100 nH): FM ফ্রন্ট এন্ডে RF ইম্পিডেন্স ম্যাচিং বা ইনপুট ফিল্টারিংয়ের জন্য সম্ভবত ব্যবহৃত হয়
- সংকেত প্রতিফলন কমাতে এবং অভ্যর্থনা সংবেদনশীলতা উন্নত করতে সাহায্য করে
- ক্যাপাসিটারগুলি:
- C13 (100 pF), C14 (24 pF): একটি তৈরি করতে ইন্ডাক্টরগুলির সাথে কাজ করুন এলসি ফিল্টার নেটওয়ার্ক
- উচ্চ-ফ্রিকোয়েন্সি হস্তক্ষেপ দমন করুন এবং FM সংকেত বিশুদ্ধ করুন
- পটভূমি:
- একাধিক GND সংযোগ নির্দেশ করে a বিশ্বব্যাপী সাধারণ-ভূমি নকশা
- শব্দ কমায় এবং সামগ্রিক সার্কিট স্থিতিশীলতা উন্নত করে
3. মূল পরামিতি এবং নকশা বৈশিষ্ট্য
- অপারেটিং ভোল্টেজ: 3.3V
- স্তর পরিবর্তন ছাড়াই মূলধারার MCU গুলির সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ
- স্ফটিক ফ্রিকোয়েন্সি: 32.768 ২ kHz
- স্থিতিশীল সময়ের জন্য শিল্প-মান রেফারেন্স ফ্রিকোয়েন্সি
- নিয়ন্ত্রণ পদ্ধতি: SDIO + SCLK সিরিয়াল ইন্টারফেস
- সরলীকৃত রাউটিং, মাত্র দুটি নিয়ন্ত্রণ লাইন প্রয়োজন
- ফিল্টারিং ডিজাইন:
- একাধিক পাওয়ার ডিকাপলিং ক্যাপাসিটার (0.1µF + 22µF)
- শক্তিশালী শব্দ প্রতিরোধ ক্ষমতার জন্য RF ফ্রন্ট এন্ডে LC ফিল্টারিং
- অডিও আউটপুট:
- ডুয়াল-চ্যানেল অ্যানালগ অডিও (ROUT / LOUT)
- স্টেরিও এফএম প্লেব্যাক সমর্থন করে
৪. আবেদনের পরিস্থিতি এবং সম্প্রসারণের পরামর্শ
চিরাচরিত আবেদন
- পোর্টেবল এফএম রেডিও
- এফএম রেডিও কার্যকারিতা সহ স্মার্ট স্পিকার
- এমসিইউ-নিয়ন্ত্রিত এফএম রিসিভার সিস্টেম
বিস্তার অপশন
- একটি ব্যবহার করুন বাহ্যিক টেলিস্কোপিক অ্যান্টেনা বা পিসিবি অ্যান্টেনা অভ্যর্থনা সংবেদনশীলতা উন্নত করতে
- একটি যোগ করুন অডিও শক্তি পরিবর্ধক (যেমন, LM386) থেকে ROUT/LOUT পর্যন্ত বড় স্পিকার চালানোর জন্য
- MCU নিয়ন্ত্রণের মাধ্যমে উন্নত বৈশিষ্ট্যগুলি সক্ষম করুন:
- স্বয়ংক্রিয় স্টেশন স্ক্যানিং
- প্রিসেট চ্যানেল স্টোরেজ
- ডিজিটাল ভলিউম নিয়ন্ত্রণ
৫. নকশা নোট এবং সতর্কতা
- শক্তি স্থিতিশীলতা:
- অডিও শব্দ বা অস্থির অভ্যর্থনা এড়াতে 3.3V সরবরাহে কম তরঙ্গ নিশ্চিত করুন।
- পটভূমি:
- একটি দৃঢ় এবং সামঞ্জস্যপূর্ণ স্থল রেফারেন্স ব্যবহার করুন
- শব্দ প্রতিরোধ করতে পাওয়ার গ্রাউন্ড এবং অডিও গ্রাউন্ডের মধ্যে সম্ভাব্য পার্থক্য এড়িয়ে চলুন।
- প্রতিবন্ধকতা ম্যাচিং:
- অ্যান্টেনা সংযুক্ত FMIN প্রতিবন্ধকতা-মিলিত হওয়া উচিত (সাধারণত 50Ω) সর্বোত্তম গ্রহণের জন্য
- উপাদান নির্বাচন:
- ব্যবহার করা উচ্চ-নির্ভুলতা 32.768 kHz স্ফটিক
- পছন্দ NP0 / C0G ক্যাপাসিটার উচ্চতর স্থিতিশীলতার কারণে RF এবং সময়-সম্পর্কিত উপাদানগুলির জন্য
রেডিও সার্কিট প্রোগ্রাম কোড
RDA5807.H
/*
**==============================================================================
** RDA5807.H:
**
** Description:
**
**==============================================================================
*/
#ifndef __RDA5807__
#define __RDA5807__
//------------------------------------------------------------------------------
#ifdef RDA5807_GLOBALS
#define RDA5807_EXT
#else
#define RDA5807_EXT extern
#endif // RDA5807_GLOBALS
//------------------------------------------------------------------------------
//==============================================================================
void RDA5807Init(void);
//------------------------------------------------------------------------------
RDA5807_EXT uint16_t g_nRDA5807Channel;
//------------------------------------------------------------------------------
void RDA5807Setup(void);
void RDA5807I2CWrite(uint8_t * pucData, int nLength);
void RDA5807SetChannel(float freq);
//==============================================================================
// END OF THE FILE : RDA5807.H
//------------------------------------------------------------------------------
#endif // __RDA5807__
/*
**==============================================================================
** RDA5807.C:
**
**==============================================================================
*/
//------------------------------------------------------------------------------
#include "stm32f0xx_hal.h"
#include "stm32f0xxa.h"
#define RDA5807_GLOBALS 1 // Define the global variables
#include "RDA5807.H"
//------------------------------------------------------------------------------
#define RDA5807_BOOT_LENGTH 12
uint8_t RDA5807_boot_config[] = {
0xc1, 0x03, // Register 0x2
0x00, 0x00, // Register 0x3
0x0a, 0x00, // Register 0x4
0x88, 0x0f, // Register 0x5
0x00, 0x00, // Register 0x6
0x42, 0x02, // Register 0x7
};
//------------------------------------------------------------------------------
#define RDA5807_TUNE_CONFIG_LENGTH 4
uint8_t RDA5807_tune_config[] = {
0xc0, 0x01, // Register 2
0x00, 0x00, // Reigster 3
};
void RDA5807SetTuneConfig(uint16_t channel) {
RDA5807_tune_config[2] = (uint8_t)(channel >> 2);
RDA5807_tune_config[3] = (uint8_t)(((channel & 0x3) << 6) | 0x10);
}
//------------------------------------------------------------------------------
void RDA5807Init(void) {
/* Assumin band starts at 87.0MHz(per setting below)
* and channel spaceing of 100kHz(0.1Mhz)(per settings below)
* then channel can be derive as floowins:
* channel = (<desired freq in MHz> - 87.0) / 0.1
*
* which is ave as:
* <10x desired ferq in MHz> - 870
*/
g_nRDA5807Channel = 6;
RDA5807Setup();
}
//------------------------------------------------------------------------------
extern I2C_HandleTypeDef hi2c1;
void RDA5807I2CWrite(uint8_t * pucData, int nLength) {
HAL_I2C_Master_Transmit(&hi2c1, 0x20, pucData, nLength, 10);
}
//------------------------------------------------------------------------------
void RDA5807Setup(void) {
RDA5807I2CWrite(RDA5807_boot_config, RDA5807_BOOT_LENGTH);
RDA5807SetTuneConfig(g_nRDA5807Channel);
RDA5807I2CWrite(RDA5807_tune_config, RDA5807_TUNE_CONFIG_LENGTH);
}
void RDA5807SetChannel(float freq) {
g_nRDA5807Channel = (int)((freq - 87.0) * 10.0 + 0.5);
RDA5807SetTuneConfig(g_nRDA5807Channel);
RDA5807I2CWrite(RDA5807_tune_config, RDA5807_TUNE_CONFIG_LENGTH);
}
//==============================================================================
// END OF THE FILE : RDA5807.C
//------------------------------------------------------------------------------




