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

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




