تحليل مخطط الدائرة الكهربائية للراديو بناءً على RDA5807M

هذا المخطط التخطيطي للدائرة هو وحدة استقبال راديو FM تم بناؤه حول RDA5807M باعتبارها الدائرة المتكاملة الأساسية. وهي تُنفذ بشكل رئيسي استقبال إشارة FM، وإخراج الصوت، ووظائف التحكم الأساسيةينقسم التحليل أدناه إلى المكونات الأساسية، والوحدات الوظيفية، ومعايير التصميم الرئيسية.

مخطط راديو FM RDA5807M

1. وظائف المكونات الأساسية ودبابيس التوصيل

الدائرة المتكاملة الأساسية: RDA5807M

استخدم RDA5807M هي دائرة متكاملة للغاية لاستقبال راديو FM تدعم استقبال بث FM و التحكم التسلسلي I2C / SDIOبناءً على المخطط، تم تلخيص الدبابيس الرئيسية وتوصيلاتها أدناه:

اسم الدبوسالوظيفةالمكون المتصل / الشبكةالوصف
هزيمةمخرج الصوت للقناة اليمنىمخرج مباشر (لا توجد مكونات إضافية معروضة)يوفر صوتًا تناظريًا للقناة اليمنى
لاوتمخرج الصوت للقناة اليسرىمخرج مباشر (لا توجد مكونات إضافية معروضة)يوفر صوتًا تناظريًا للقناة اليسرى
ار سي ال كيهدبوس إشارة الساعةلا يوجد اتصال خارجي صريح (على الأرجح مزامنة داخلية)مزامنة الساعة الداخلية
VDDمدخلات مصدر الطاقةشبكة طاقة 3 فولت 33.3V العاصمة امدادات الطاقة
GNDأرضشبكة Global GNDتأريض مشترك للطاقة والإشارة
SDIOإدخال/إخراج البيانات التسلسليةالدبوس 3 (إشارة التحكم)التواصل مع وحدة التحكم الدقيقة (MCU) لضبط الصوت والتحكم في مستوى الصوت وما إلى ذلك.
SCLKساعة تسلسليةالدبوس 2 (إشارة الساعة)إشارة الساعة لاتصال SDIO
فمينمدخل إشارة FMرقم 5يستقبل إشارة ترددات الراديو FM من الهوائي
X1مدخل مذبذب الكريستالبلورة بتردد 32.768 كيلوهرتزيوفر ساعة مرجعية لتشغيل التردد المستقر

2. تحليل الوحدات الوظيفية

وحدة تزويد الطاقة 2.1

  • المدخلات الجهد: 3.3 فولت تيار مستمر (منظم)
  • مكونات التصفية:
    • C8 (0.1µF)، C9 (0.1µF): مكثفات فصل عالية التردد بين VDD و GND، تعمل على كبح ضوضاء الطاقة
    • C10 (22µF): مكثف إلكتروليتي ضخم لترشيح الترددات المنخفضة وتخزين الطاقة
    • C26 (0.1µF): فصل إضافي لتحسين استقرار الطاقة

تضمن هذه العملية متعددة المراحل للتصفية ما يلي: توصيل طاقة مستقر ومنخفض الضوضاء إلى دائرة استقبال FM المتكاملة.


2.2 وحدة استقبال إشارة FM

  • إدخال إشارة:
    • استخدم دبوس FMIN (الدبوس 5) يتصل بهوائي FM خارجي (عنصر الهوائي غير موضح في الرسم التخطيطي)
    • يستقبل إشارات البث الإذاعي FM في 87 – 108 MHz فرقة
  • دائرة مذبذب الكريستال:
    • A بلورة بتردد 32.768 كيلوهرتز (X1) يوفر ساعة مرجعية دقيقة
    • يضمن ضبطًا دقيقًا لموجات FM ويمنع انحراف التردد أثناء اختيار المحطة

2.3 وحدة التحكم والاتصال

  • واجهة الاتصالات:
    • SDIO (البيانات التسلسلية) + SCLK (ساعة التسلسل)
    • متوافق مع بروتوكولات الاتصال التسلسلي I2C أو ما شابهها
    • يستخدم للتفاعل مع وحدة تحكم دقيقة خارجية (مثل وحدة تحكم دقيقة)
  • مقاومات السحب لأعلى:
    • R6 (10kΩ) لـ SDIO
    • R7 (10kΩ) لـ SCLK
    • كلاهما مرتبط بـ 3V3مما يضمن مستويات منطقية مستقرة واتصالاً موثوقاً به

2.4 وحدة إخراج الصوت

  • مخرجات الصوت:
    • هزيمة: الصوت التناظري للقناة اليمنى
    • لوت: الصوت التناظري للقناة اليسرى
  • يمكن أن تكون هذه المخرجات كالتالي:
    • متصل مباشرة بـ سماعات الرأس
    • متصلا مكبرات الصوت (ملاحظة: خارجي) الصوت مكبر للصوت (مطلوب لزيادة إنتاج الطاقة)

2.5 وحدة الترشيح والمطابقة المساعدة

  • المحاثات:
    • L1، L2 (100 نانو هنري): يُحتمل استخدامه لمطابقة معاوقة الترددات الراديوية أو ترشيح الإدخال في الواجهة الأمامية لـ FM
    • يساعد على تقليل انعكاس الإشارة وتحسين حساسية الاستقبال
  • المكثفات:
    • C13 (100 بيكوفاراد)، C14 (24 بيكوفاراد): العمل مع المحاثات لتشكيل شبكة مرشحات LC
    • كبح التداخل عالي التردد وتنقية إشارة FM
  • أسس:
    • تشير وصلات التأريض المتعددة إلى تصميم أرضيات مشتركة عالمية
    • يقلل الضوضاء ويحسن استقرار الدائرة بشكل عام

3. المعايير الرئيسية وميزات التصميم

  • جهد التشغيل: 3.3V
    • متوافق تمامًا مع وحدات التحكم الدقيقة الرئيسية دون الحاجة إلى تغيير مستوى الإشارة
  • تردد البلورة: 32.768 كيلو هرتز
    • تردد مرجعي قياسي في الصناعة لتوقيت مستقر
  • طريقة التحكم: واجهة تسلسلية SDIO + SCLK
    • تبسيط عملية التوجيه، لا يتطلب الأمر سوى خطي تحكم
  • تصميم الترشيح:
    • مكثفات فصل الطاقة المتعددة (0.1 ميكروفاراد + 22 ميكروفاراد)
    • ترشيح LC على الواجهة الأمامية للترددات الراديوية لمقاومة قوية للضوضاء
  • إخراج الصوت:
    • صوت تناظري ثنائي القناة (ROUT / LOUT)
    • يدعم تشغيل راديو FM ستيريو

4. سيناريوهات التطبيق واقتراحات التوسع

تطبيقات نموذجية

  • أجهزة راديو FM محمولة
  • مكبرات صوت ذكية مزودة بوظيفة راديو FM
  • أنظمة استقبال FM التي يتم التحكم فيها بواسطة وحدة التحكم الدقيقة

خيارات التوسع

  • استخدم هوائي تلسكوبي خارجي أو هوائي لوحة الدوائر المطبوعة لتحسين حساسية الاستقبال
  • إضافة السلطة مكبر الصوت (على سبيل المثال، LM386) إلى ROUT/LOUT لتشغيل مكبرات صوت أكبر
  • تفعيل الميزات المتقدمة عبر التحكم بواسطة وحدة التحكم الدقيقة (MCU):
    • المسح التلقائي للمحطات
    • تخزين القنوات المُسبقة
    • التحكم الرقمي في مستوى الصوت

5. ملاحظات واحتياطات التصميم

  • استقرار الطاقة:
    • تأكد من انخفاض تموج التيار على مصدر الطاقة 3.3 فولت لتجنب التشويش الصوتي أو عدم استقرار الاستقبال.
  • أسس:
    • استخدم مرجعًا أرضيًا ثابتًا ومتسقًا
    • تجنب الاختلافات المحتملة بين أرضي الطاقة وأرضي الصوت لمنع التشويش
  • مقاومة مطابقة:
    • الهوائي المتصل بـ فمين ينبغي أن تكون متطابقة المعاوقة (عادةً 50Ω) للحصول على أفضل استقبال
  • اختيار المكون:
    • إستخدم بلورة عالية الدقة بتردد 32.768 كيلوهرتز
    • تفضل مكثفات NP0 / C0G بالنسبة للمكونات المتعلقة بالترددات اللاسلكية والتوقيت، وذلك بفضل الاستقرار الفائق.

شفرة برنامج الدائرة اللاسلكية

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
//------------------------------------------------------------------------------

اترك تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول المشار إليها إلزامية *