Ten schemat obwodu jest Moduł odbiornika radiowego FM zbudowany wokół RDA5807M jako rdzeń układu scalonego. Implementuje głównie Odbiór sygnału FM, wyjście audio i podstawowe funkcje sterowaniaPoniższa analiza jest podzielona na główne komponenty, moduły funkcjonalne i kluczowe parametry projektu.

1. Komponent główny i funkcje pinów
Rdzeń układu scalonego: RDA5807M
RDA5807M jest wysoce zintegrowanym układem scalonym odbiornika radiowego FM, który obsługuje odbiór transmisji FM i Sterowanie szeregowe I2C/SDIONa podstawie schematu poniżej podsumowano najważniejsze piny i ich połączenia:
| Nazwa pinu | Funkcjonować | Połączony komponent / sieć | OPIS |
|---|---|---|---|
| POGROM | Wyjście audio prawego kanału | Wyjście bezpośrednie (bez dodatkowych komponentów) | Zapewnia dźwięk analogowy w prawym kanale |
| PROSTAK | Wyjście audio kanału lewego | Wyjście bezpośrednie (bez dodatkowych komponentów) | Zapewnia analogowy dźwięk lewego kanału |
| RCLK | Pin sygnału zegara | Brak wyraźnego połączenia zewnętrznego (prawdopodobnie synchronizacja wewnętrzna) | Wewnętrzna synchronizacja zegara |
| VDD | Wejście zasilania | Sieć zasilająca 3V3 | Zasilacz 3.3V DC |
| GND | Ziemia | Globalna sieć GND | Wspólne zasilanie i masa sygnałowa |
| SDIO | Wejście/wyjście danych szeregowych | Pin 3 (sygnał sterujący) | Komunikacja z MCU w celu dostrojenia, kontroli głośności itp. |
| SCLK | Zegar szeregowy | Pin 2 (sygnał zegara) | Sygnał zegarowy do komunikacji SDIO |
| FMIN | Wejście sygnału FM | Kołek 5 | Odbiera sygnał FM RF z anteny |
| X1 | Wejście oscylatora kwarcowego | Kryształ 32.768 kHz | Zapewnia zegar referencyjny do stabilnej pracy częstotliwości |
2. Podział modułu funkcjonalnego
2.1 Moduł zasilania
- Napięcie wejściowe: 3.3 V DC (regulowane)
- Komponenty filtrujące:
- C8 (0.1µF), C9 (0.1µF): Kondensatory odsprzęgające wysokiej częstotliwości pomiędzy VDD i GND, tłumiące szumy zasilania
- C10 (22µF): Kondensator elektrolityczny masowy do filtrowania niskiej częstotliwości i magazynowania energii
- C26 (0.1µF): Dodatkowe odsprzęganie w celu dalszej poprawy stabilności zasilania
Wieloetapowe filtrowanie zapewnia stabilne i ciche dostarczanie mocy do układu scalonego odbiornika FM.
Moduł odbioru sygnału 2.2 FM
- Wejście sygnału:
- Pin FMIN (pin 5) łączy się z zewnętrzną anteną FM (element anteny nie jest pokazany na schemacie)
- Odbiera sygnały nadawane w paśmie FM 87-108 MHz pasmo
- Obwód oscylatora kwarcowego:
- A Kryształ 32.768 kHz (X1) zapewnia dokładny zegar referencyjny
- Zapewnia precyzyjne dostrojenie FM i zapobiega przesunięciom częstotliwości podczas wyboru stacji
2.3 Moduł sterowania i komunikacji
- Interfejs komunikacyjny:
- SDIO (dane szeregowe) + SCLK (zegar szeregowy)
- kompatybilny z I2C lub podobne protokoły komunikacji szeregowej
- Służy do komunikacji z zewnętrznym mikrokontrolerem (np. mikrokontrolerem)
- Rezystory podciągające:
- R6 (10 kΩ) dla SDIO
- R7 (10 kΩ) dla SCLK
- Obydwa są połączone 3V3zapewniając stabilne poziomy logiczne i niezawodną komunikację
2.4 Moduł wyjścia audio
- Wyjścia audio:
- POGROM: Dźwięk analogowy prawego kanału
- PROSTAK: Dźwięk analogowy kanału lewego
- Wyniki te mogą być następujące:
- Połączony bezpośrednio z słuchawki
- Połączony z Głośniki (uwaga: zewnętrzny wzmacniacz audio (jest wymagany do uzyskania większej mocy wyjściowej)
2.5 Moduł filtrowania i dopasowywania pomocniczego
- Cewki:
- L1, L2 (100 nH): Prawdopodobnie używany do dopasowania impedancji RF lub filtrowania wejściowego na przednim końcu FM
- Pomaga zmniejszyć odbicie sygnału i poprawić czułość odbioru
- Kondensatory:
- C13 (100 pF), C14 (24 pF): Współpracuj z cewkami indukcyjnymi, aby utworzyć Sieć filtrów LC
- Tłumi zakłócenia o wysokiej częstotliwości i oczyszcza sygnał FM
- Grunt:
- Wielokrotne połączenia GND wskazują globalny projekt wspólny
- Zmniejsza hałas i poprawia ogólną stabilność obwodu
3. Kluczowe parametry i cechy konstrukcyjne
- Napięcie pracy: 3.3V
- Pełna kompatybilność z popularnymi mikrokontrolerami bez konieczności zmiany poziomu
- Częstotliwość kryształu: 32.768 kHz
- Standardowa w branży częstotliwość odniesienia zapewniająca stabilność taktowania
- Metoda kontroli: Interfejs szeregowy SDIO + SCLK
- Uproszczone trasowanie, wymagane tylko dwie linie sterujące
- Projekt filtrowania:
- Wiele kondensatorów odsprzęgających moc (0.1 µF + 22 µF)
- Filtr LC na przednim końcu RF zapewniający dużą odporność na zakłócenia
- Wyjście audio:
- Dwukanałowy dźwięk analogowy (ROUT / LOUT)
- Obsługuje odtwarzanie stereo FM
4. Scenariusze zastosowań i sugestie rozbudowy
Typowe zastosowania
- Przenośne radia FM
- Inteligentne głośniki z funkcją radia FM
- Systemy odbiorników FM sterowane mikrokontrolerem (MCU)
Opcje rozbudowy
- Użyj zewnętrzna antena teleskopowa lub antena PCB aby poprawić czułość odbioru
- Dodaj Wzmacniacz audio (np. LM386) do ROUT/LOUT w celu sterowania większymi głośnikami
- Włącz zaawansowane funkcje za pomocą sterowania MCU:
- Automatyczne skanowanie stacji
- Pamięć wstępnie ustawionych kanałów
- Cyfrowa regulacja głośności
5. Uwagi i środki ostrożności dotyczące projektu
- Stabilność mocy:
- Zadbaj o niskie tętnienia w zasilaniu 3.3 V, aby uniknąć zakłóceń dźwięku lub niestabilnego odbioru.
- Grunt:
- Użyj solidnego i spójnego punktu odniesienia na podłożu
- Unikaj różnic potencjałów między masą zasilania a masą audio, aby zapobiec powstawaniu zakłóceń
- Dopasowania impedancji:
- Antena podłączona do FMIN powinny być dopasowane pod względem impedancji (zwykle 50Ω) dla optymalnego odbioru
- Wybór komponentów:
- Użyj kryształ o wysokiej dokładności 32.768 kHz
- Woleć Kondensatory NP0 / C0G dla komponentów RF i związanych z czasem ze względu na lepszą stabilność
Kod programu obwodu radiowego
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
//------------------------------------------------------------------------------




