Аналіз радіоприймачів на основі RDA5807M

Ця принципова схема являє собою модуль FM-радіоприймача, побудований на базі RDA5807M як основної мікросхеми. Він в основному реалізує прийом FM-сигналу, аудіовихід та основні функції керування . Наведений нижче аналіз поділено на основні компоненти, функціональні модулі та ключові параметри проектування.

Схема FM-радіо RDA5807M

1. Функції основних компонентів та виводів

Основна мікросхема: RDA5807M

RDA5807M це високоінтегрована мікросхема FM-радіоприймача, яка підтримує прийом FM-мовлення та послідовне керування I2C / SDIO . Згідно зі схемою, ключові контакти та їх з'єднання наведено нижче:

Закріпити ім'яфункціяПідключений компонент / мережаОпис
МАРШРУТАудіовихід правого каналуПрямий вихід (додаткові компоненти не показані)Забезпечує аналоговий звук правого каналу
ХАМАудіовихід лівого каналуПрямий вихід (додаткові компоненти не показані)Забезпечує аналоговий звук лівого каналу
RCLKКонтакт сигналу годинникаНемає явного зовнішнього підключення (ймовірно, внутрішня синхронізація)Внутрішня синхронізація годинника
VDDВхід живленняМережа живлення 3V3Блок живлення постійного струму 3.3V
GNDЗемляГлобальна мережа GNDЗагальне живлення та заземлення сигналу
SDIOПослідовний ввід/вивід данихКонтакт 3 (керуючий сигнал)Зв'язок з мікроконтролером для налаштування, регулювання гучності тощо.
SCLKПослідовний годинникВивід 2 (сигнал тактової частоти)Тактовий сигнал для зв'язку SDIO
FMINВхід FM-сигналуШпилька 5Приймає FM-радіосигнал від антени
X1Вхід кристалічного генератора32.768 кГц кристалЗабезпечує опорний тактовий сигнал для стабільної роботи на частоті

2. Розподіл функціональних модулів

2.1 Модуль живлення

  • Вхідна напруга: 3.3 В постійного струму (регульований)
  • Компоненти фільтрації:
    • C8 (0.1 мкФ), C9 (0.1 мкФ): Високочастотні розв'язувальні конденсатори між VDD та GND, що пригнічують шум живлення
    • C10 (22 мкФ): Об'ємний електролітичний конденсатор для низькочастотної фільтрації та накопичення енергії
    • C26 (0.1 мкФ): Додаткова розв'язка для подальшого покращення стабільності живлення

Ця багатоступенева фільтрація забезпечує стабільну та низькошумну подачу живлення на мікросхему FM-приймача.


2.2 Модуль прийому FM-сигналу

  • Вхід сигналу:
    • Команда Вивід FMIN (Вивід 5) підключається до зовнішньої FM-антени (елемент антени не показаний на схемі)
    • Приймає сигнали FM-мовлення в 87-108 МГц band
  • Схема кристалічного генератора:
    • A 32.768 кГц кварцовий резонатор (X1) забезпечує точний опорний годинник
    • Забезпечує точне налаштування FM та запобігає дрейфу частоти під час вибору станції

2.3 Модуль керування та зв'язку

  • Інтерфейс зв'язку:
    • SDIO (послідовні дані) + SCLK (Послідовний тактовий сигнал)
    • Сумісний з I2C або аналогічні протоколи послідовного зв'язку
    • Використовується для взаємодії із зовнішнім мікроконтролером (наприклад, мікроконтролером)
  • Підтягувальні резистори:
    • R6 (10 кОм) для SDIO
    • R7 (10 кОм) для SCLK
    • Обидва пов'язані з 3V3, забезпечуючи стабільні логічні рівні та надійний зв'язок

2.4 Модуль аудіовиходу

  • Аудіо виходи:
    • РОЗГІР: Аналоговий аудіо правий канал
    • ЛЮТ: Аналоговий аудіо лівого каналу
  • Ці виходи можуть бути:
    • Підключено безпосередньо до навушники
    • Пов'язаний з спікерів (примітка: зовнішній підсилювач потрібно для більшої вихідної потужності)

2.5 Допоміжний модуль фільтрації та узгодження

  • Котушки індуктивності:
    • L1, L2 (100 нГн): Ймовірно, використовується для узгодження імпедансу радіочастотних сигналів або вхідної фільтрації на вході FM
    • Допомагає зменшити відбиття сигналу та покращити чутливість прийому
  • конденсатори:
    • C13 (100 пФ), C14 (24 пФ): Працюйте з індукторами для формування Мережа LC-фільтрів
    • Придушення високочастотних перешкод та очищення FM-сигналу
  • Заземлення:
    • Кілька з'єднань GND вказують на глобальний дизайн спільної основи
    • Зменшує шум і покращує загальну стабільність схеми

3. Ключові параметри та особливості конструкції

  • Робоча напруга: 3.3V
    • Повна сумісність з основними мікроконтролерами без зсуву рівнів
  • Частота кристала: 32.768 кГц
    • Стандартна для промислового використання опорна частота для стабільного синхронізації
  • Спосіб керування: Послідовний інтерфейс SDIO + SCLK
    • Спрощена трасування, потрібні лише дві лінії керування
  • Дизайн фільтрації:
    • Кілька конденсаторів розв'язки живлення (0.1 мкФ + 22 мкФ)
    • LC-фільтрація на радіочастотному вході для високої завадостійкості
  • Аудіо вихід:
    • Двоканальний аналоговий аудіо (ROUT / LOUT)
    • Підтримує стереовідтворення FM-радіо

4. Сценарії застосування та пропозиції щодо розширення

Типові області застосування

  • Портативні FM-радіоприймачі
  • Розумні колонки з функцією FM-радіо
  • Системи FM-приймачів, керовані мікроконтролером

Параметри розширення

  • Використовуйте a зовнішня телескопічна антена або антена для друкованої плати для покращення чутливості прийому
  • Додайте підсилювач потужності (наприклад, LM386) до ROUT/LOUT для керування більшими динаміками
  • Увімкнення розширених функцій через керування мікроконтролером:
    • Автоматичне сканування станцій
    • Зберігання попередньо налаштованих каналів
    • Цифрове регулювання гучності

5. Примітки та запобіжні заходи щодо проектування

  • Стабільність живлення:
    • Забезпечте низький рівень пульсацій на напрузі живлення 3.3 В, щоб уникнути шуму аудіо або нестабільного прийому
  • Заземлення:
    • Використовуйте надійний та послідовний орієнтир на землю
    • Уникайте різниці потенціалів між заземленням живлення та аудіо заземленням, щоб запобігти шуму
  • Відповідність імпедансу:
    • Антена, підключена до FMIN повинні бути узгоджені за імпедансом (зазвичай 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
//------------------------------------------------------------------------------

Залишити коментар

Ваша адреса електронної пошти не буде опублікована. Обов'язкові поля позначені *