ఈ సర్క్యూట్ స్కీమాటిక్ రేఖాచిత్రం ఒక FM రేడియో రిసీవర్ మాడ్యూల్ చుట్టూ నిర్మించబడింది RDA5807M కోర్ IC గా. ఇది ప్రధానంగా అమలు చేస్తుంది FM సిగ్నల్ రిసెప్షన్, ఆడియో అవుట్పుట్ మరియు ప్రాథమిక నియంత్రణ విధులు. క్రింద ఇవ్వబడిన విశ్లేషణ ఇలా విభజించబడింది కోర్ భాగాలు, ఫంక్షనల్ మాడ్యూల్స్ మరియు కీ డిజైన్ పారామితులు.

1. కోర్ కాంపోనెంట్ మరియు పిన్ విధులు
కోర్ IC: RDA5807M
మా RDA5807M అనేది FM ప్రసార స్వీకరణకు మద్దతు ఇచ్చే అత్యంత ఇంటిగ్రేటెడ్ FM రేడియో రిసీవర్ IC మరియు I2C / SDIO సీరియల్ నియంత్రణ. స్కీమాటిక్ ఆధారంగా, కీ పిన్లు మరియు వాటి కనెక్షన్లు క్రింద సంగ్రహించబడ్డాయి:
| పిన్ పేరు | ఫంక్షన్ | కనెక్ట్ చేయబడిన భాగం / నికర | వివరణ |
|---|---|---|---|
| రూట్ | కుడి-ఛానల్ ఆడియో అవుట్పుట్ | డైరెక్ట్ అవుట్పుట్ (అదనపు భాగాలు చూపబడలేదు) | కుడి-ఛానల్ అనలాగ్ ఆడియోను అందిస్తుంది |
| LOUT | ఎడమ-ఛానల్ ఆడియో అవుట్పుట్ | డైరెక్ట్ అవుట్పుట్ (అదనపు భాగాలు చూపబడలేదు) | ఎడమ-ఛానల్ అనలాగ్ ఆడియోను అందిస్తుంది |
| RCLK | క్లాక్ సిగ్నల్ పిన్ | స్పష్టమైన బాహ్య కనెక్షన్ లేదు (అంతర్గత సమకాలీకరణ కావచ్చు) | అంతర్గత గడియార సమకాలీకరణ |
| VDD | విద్యుత్ సరఫరా ఇన్పుట్ | 3V3 పవర్ నెట్ | 3.3V DC విద్యుత్ సరఫరా |
| GND | గ్రౌండ్ | గ్లోబల్ GND నెట్ | సాధారణ విద్యుత్ మరియు సిగ్నల్ గ్రౌండ్ |
| SDIO | సీరియల్ డేటా I/O | పిన్ 3 (నియంత్రణ సిగ్నల్) | ట్యూనింగ్, వాల్యూమ్ నియంత్రణ మొదలైన వాటి కోసం MCUతో కమ్యూనికేషన్. |
| ఎస్.సి.ఎల్.కె. | సీరియల్ గడియారం | పిన్ 2 (క్లాక్ సిగ్నల్) | SDIO కమ్యూనికేషన్ కోసం క్లాక్ సిగ్నల్ |
| FMIN | FM సిగ్నల్ ఇన్పుట్ | పిన్ 5 | యాంటెన్నా నుండి FM RF సిగ్నల్ అందుకుంటుంది |
| X1 | క్రిస్టల్ ఓసిలేటర్ ఇన్పుట్ | 32.768 kHz క్రిస్టల్ | స్థిరమైన ఫ్రీక్వెన్సీ ఆపరేషన్ కోసం రిఫరెన్స్ క్లాక్ను అందిస్తుంది |
2. ఫంక్షనల్ మాడ్యూల్ బ్రేక్డౌన్
2.1 పవర్ సప్లై మాడ్యూల్
- ఇన్పుట్ వోల్టేజ్: 3.3V DC (నియంత్రిత)
- వడపోత భాగాలు:
- సి8 (0.1µF), సి9 (0.1µF): VDD మరియు GND మధ్య హై-ఫ్రీక్వెన్సీ డీకప్లింగ్ కెపాసిటర్లు, విద్యుత్ శబ్దాన్ని అణిచివేస్తాయి.
- C10 (22µF): తక్కువ-ఫ్రీక్వెన్సీ ఫిల్టరింగ్ మరియు శక్తి నిల్వ కోసం బల్క్ ఎలక్ట్రోలైటిక్ కెపాసిటర్
- C26 (0.1µF): విద్యుత్ స్థిరత్వాన్ని మరింత మెరుగుపరచడానికి అదనపు డీకప్లింగ్
ఈ బహుళ-దశల వడపోత నిర్ధారిస్తుంది స్థిరమైన మరియు తక్కువ శబ్దం కలిగిన విద్యుత్ సరఫరా FM రిసీవర్ IC కి.
2.2 FM సిగ్నల్ రిసెప్షన్ మాడ్యూల్
- సిగ్నల్ ఇన్పుట్:
- మా FMIN పిన్ (పిన్ 5) బాహ్య FM యాంటెన్నాకు కనెక్ట్ అవుతుంది (యాంటెన్నా ఎలిమెంట్ స్కీమాటిక్లో చూపబడలేదు)
- FM ప్రసార సంకేతాలను అందుకుంటుంది 87-108 MHz బ్యాండ్
- క్రిస్టల్ ఆసిలేటర్ సర్క్యూట్:
- A 32.768 kHz క్రిస్టల్ (X1) ఖచ్చితమైన సూచన గడియారాన్ని అందిస్తుంది
- స్టేషన్ ఎంపిక సమయంలో ఖచ్చితమైన FM ట్యూనింగ్ను నిర్ధారిస్తుంది మరియు ఫ్రీక్వెన్సీ డ్రిఫ్ట్ను నిరోధిస్తుంది.
2.3 నియంత్రణ మరియు కమ్యూనికేషన్ మాడ్యూల్
- కమ్యూనికేషన్ ఇంటర్ఫేస్:
- SDIO (సీరియల్ డేటా) + SCLK (సీరియల్ క్లాక్)
- అనుకూలంగా I2C లేదా ఇలాంటి సీరియల్ కమ్యూనికేషన్ ప్రోటోకాల్లు
- బాహ్య MCU తో ఇంటర్ఫేస్ చేయడానికి ఉపయోగిస్తారు (ఉదా., మైక్రోకంట్రోలర్)
- పుల్-అప్ రెసిస్టర్లు:
- R6 (10kΩ) SDIO కోసం
- R7 (10kΩ) SCLK కోసం
- రెండూ కనెక్ట్ అయ్యాయి 3V3, స్థిరమైన లాజిక్ స్థాయిలు మరియు నమ్మకమైన కమ్యూనికేషన్ను నిర్ధారిస్తుంది
2.4 ఆడియో అవుట్పుట్ మాడ్యూల్
- ఆడియో అవుట్పుట్లు:
- మార్గం: కుడి-ఛానల్ అనలాగ్ ఆడియో
- LUT: ఎడమ-ఛానల్ అనలాగ్ ఆడియో
- ఈ అవుట్పుట్లు ఇలా ఉండవచ్చు:
- నేరుగా కనెక్ట్ చేయబడింది హెడ్ఫోన్స్
- సంబంధం కలిగిఉన్నది స్పీకర్లు (గమనిక: బాహ్య ఆడియో యాంప్లిఫైయర్ అధిక విద్యుత్ ఉత్పత్తికి అవసరం)
2.5 సహాయక వడపోత మరియు సరిపోలిక మాడ్యూల్
- ప్రేరకాలు:
- ఎల్1, ఎల్2 (100 ఎన్హెచ్): FM ఫ్రంట్ ఎండ్ వద్ద RF ఇంపెడెన్స్ మ్యాచింగ్ లేదా ఇన్పుట్ ఫిల్టరింగ్ కోసం ఉపయోగించబడే అవకాశం ఉంది.
- సిగ్నల్ ప్రతిబింబాన్ని తగ్గించడానికి మరియు రిసెప్షన్ సున్నితత్వాన్ని మెరుగుపరచడానికి సహాయపడుతుంది
- కెపాసిటర్లు:
- C13 (100 pF), C14 (24 pF): ఇండక్టర్లతో కలిసి పని చేసి, ఒక LC ఫిల్టర్ నెట్వర్క్
- అధిక-ఫ్రీక్వెన్సీ జోక్యాన్ని అణచివేసి, FM సిగ్నల్ను శుద్ధి చేయండి
- నిలుపుదల:
- బహుళ GND కనెక్షన్లు a ని సూచిస్తాయి ప్రపంచవ్యాప్త ఉమ్మడి రూపకల్పన
- శబ్దాన్ని తగ్గిస్తుంది మరియు మొత్తం సర్క్యూట్ స్థిరత్వాన్ని మెరుగుపరుస్తుంది
3. కీలక పారామితులు మరియు డిజైన్ లక్షణాలు
- ఆపరేటింగ్ వోల్టేజ్: 3.3V
- స్థాయి మార్పు లేకుండా ప్రధాన స్రవంతి MCU లతో పూర్తిగా అనుకూలంగా ఉంటుంది
- క్రిస్టల్ ఫ్రీక్వెన్సీ: 32.768 kHz
- స్థిరమైన సమయం కోసం పరిశ్రమ-ప్రామాణిక సూచన ఫ్రీక్వెన్సీ
- నియంత్రణ విధానం: SDIO + SCLK సీరియల్ ఇంటర్ఫేస్
- సరళీకృత రూటింగ్, రెండు నియంత్రణ లైన్లు మాత్రమే అవసరం.
- ఫిల్టరింగ్ డిజైన్:
- బహుళ పవర్ డీకప్లింగ్ కెపాసిటర్లు (0.1µF + 22µF)
- బలమైన శబ్ద రోగనిరోధక శక్తి కోసం RF ఫ్రంట్ ఎండ్లో LC ఫిల్టరింగ్
- ఆడియో అవుట్పుట్:
- డ్యూయల్-ఛానల్ అనలాగ్ ఆడియో (ROUT / LOUT)
- స్టీరియో FM ప్లేబ్యాక్కు మద్దతు ఇస్తుంది
4. అప్లికేషన్ దృశ్యాలు మరియు విస్తరణ సూచనలు
సాధారణ అనువర్తనాలు
- పోర్టబుల్ FM రేడియోలు
- FM రేడియో కార్యాచరణతో స్మార్ట్ స్పీకర్లు
- MCU-నియంత్రిత FM రిసీవర్ వ్యవస్థలు
విస్తరణ ఐచ్ఛికాలు
- ఒక ఉపయోగించండి బాహ్య టెలిస్కోపిక్ యాంటెన్నా లేదా PCB యాంటెన్నా రిసెప్షన్ సెన్సిటివిటీని మెరుగుపరచడానికి
- ఒక జోడించండి ఆడియో పవర్ యాంప్లిఫైయర్ (ఉదా., LM386) నుండి పెద్ద స్పీకర్లను నడపడానికి ROUT/LOUT వరకు
- MCU నియంత్రణ ద్వారా అధునాతన లక్షణాలను ప్రారంభించండి:
- ఆటోమేటిక్ స్టేషన్ స్కానింగ్
- ప్రీసెట్ ఛానెల్ నిల్వ
- డిజిటల్ వాల్యూమ్ నియంత్రణ
5. డిజైన్ నోట్స్ మరియు జాగ్రత్తలు
- శక్తి స్థిరత్వం:
- ఆడియో శబ్దం లేదా అస్థిర రిసెప్షన్ను నివారించడానికి 3.3V సరఫరాలో తక్కువ అలలు ఉండేలా చూసుకోండి.
- నిలుపుదల:
- దృఢమైన మరియు స్థిరమైన గ్రౌండ్ రిఫరెన్స్ను ఉపయోగించండి
- శబ్దాన్ని నివారించడానికి పవర్ గ్రౌండ్ మరియు ఆడియో గ్రౌండ్ మధ్య సంభావ్య తేడాలను నివారించండి.
- ఇంపెడెన్స్ సరిపోలిక:
- యాంటెన్నా కనెక్ట్ చేయబడింది FMIN ఇంపెడెన్స్-సరిపోలినదిగా ఉండాలి (సాధారణంగా 50Ω) సరైన స్వీకరణ కోసం
- కాంపోనెంట్ ఎంపిక:
- ఒక ఉపయోగించండి అధిక-ఖచ్చితత్వం 32.768 kHz క్రిస్టల్
- ప్రాధాన్యపరచు NP0 / C0G కెపాసిటర్లు అత్యుత్తమ స్థిరత్వం కారణంగా RF మరియు టైమింగ్-సంబంధిత భాగాల కోసం
రేడియో సర్క్యూట్ ప్రోగ్రామ్ కోడ్
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
//------------------------------------------------------------------------------




