Analiza schematu radiowego na podstawie RDA5807M

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.

Schemat radia FM RDA5807M

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 pinuFunkcjonowaćPołączony komponent / siećOPIS
POGROMWyjście audio prawego kanałuWyjście bezpośrednie (bez dodatkowych komponentów)Zapewnia dźwięk analogowy w prawym kanale
PROSTAKWyjście audio kanału lewegoWyjście bezpośrednie (bez dodatkowych komponentów)Zapewnia analogowy dźwięk lewego kanału
RCLKPin sygnału zegaraBrak wyraźnego połączenia zewnętrznego (prawdopodobnie synchronizacja wewnętrzna)Wewnętrzna synchronizacja zegara
VDDWejście zasilaniaSieć zasilająca 3V3Zasilacz 3.3V DC
GNDZiemiaGlobalna sieć GNDWspólne zasilanie i masa sygnałowa
SDIOWejście/wyjście danych szeregowychPin 3 (sygnał sterujący)Komunikacja z MCU w celu dostrojenia, kontroli głośności itp.
SCLKZegar szeregowyPin 2 (sygnał zegara)Sygnał zegarowy do komunikacji SDIO
FMINWejście sygnału FMKołek 5Odbiera sygnał FM RF z anteny
X1Wejście oscylatora kwarcowegoKryształ 32.768 kHzZapewnia 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
//------------------------------------------------------------------------------

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *