Αυτό το σχηματικό διάγραμμα κυκλώματος είναι ένα Μονάδα δέκτη ραδιοφώνου FM χτισμένο γύρω από το RDA5807M ως το βασικό ολοκληρωμένο κύκλωμα (IC). Υλοποιεί κυρίως Λήψη σήματος FM, έξοδος ήχου και βασικές λειτουργίες ελέγχουΗ παρακάτω ανάλυση χωρίζεται σε βασικά στοιχεία, λειτουργικές ενότητες και βασικές παράμετροι σχεδιασμού.

1. Βασικά Στοιχεία και Λειτουργίες Pin
Ολοκληρωμένο κύκλωμα πυρήνα: RDA5807M
The RDA5807M είναι ένα ολοκληρωμένο κύκλωμα δέκτη ραδιοφώνου FM με υψηλή ενσωμάτωση που υποστηρίζει λήψη ραδιοφωνικών εκπομπών FM και Σειριακός έλεγχος I2C / SDIOΜε βάση το σχηματικό διάγραμμα, οι ακίδες κλειδιού και οι συνδέσεις τους συνοψίζονται παρακάτω:
| Όνομα καρφιτσώματος | Λειτουργία | Συνδεδεμένο στοιχείο / δίκτυο | Περιγραφή |
|---|---|---|---|
| ΚΑΤΑΤΡΟΠΩΣΗ | Έξοδος ήχου δεξιού καναλιού | Άμεση έξοδος (δεν εμφανίζονται επιπλέον εξαρτήματα) | Παρέχει αναλογικό ήχο δεξιού καναλιού |
| ΑΓΡΟΙΚΟΣ | Έξοδος ήχου αριστερού καναλιού | Άμεση έξοδος (δεν εμφανίζονται επιπλέον εξαρτήματα) | Παρέχει αναλογικό ήχο αριστερού καναλιού |
| RCLK | Πείρος σήματος ρολογιού | Δεν υπάρχει ρητή εξωτερική σύνδεση (πιθανός εσωτερικός συγχρονισμός) | Εσωτερικός συγχρονισμός ρολογιού |
| VDD | Τροφοδοσία ρεύματος | Δίκτυο ισχύος 3V3 | Τροφοδοσία DC 3.3V |
| GND | Έδαφος | Παγκόσμιο δίκτυο GND | Κοινή τροφοδοσία και γείωση σήματος |
| SDIO | Σειριακή Είσοδος/Έξοδος Δεδομένων | Ακροδέκτης 3 (σήμα ελέγχου) | Επικοινωνία με την MCU για συντονισμό, έλεγχο έντασης ήχου κ.λπ. |
| SCLK | Σειριακό ρολόι | Ακροδέκτης 2 (σήμα ρολογιού) | Σήμα ρολογιού για επικοινωνία SDIO |
| FMIN | Είσοδος σήματος FM | Πιν. 5 | Λαμβάνει σήμα FM RF από την κεραία |
| X1 | Είσοδος κρυσταλλικού ταλαντωτή | Κρύσταλλο 32.768 kHz | Παρέχει ρολόι αναφοράς για σταθερή λειτουργία συχνότητας |
2. Ανάλυση λειτουργικής ενότητας
Μονάδα τροφοδοσίας 2.1
- Τάση εισόδου: 3.3V DC (ρυθμιζόμενη)
- Στοιχεία φιλτραρίσματος:
- C8 (0.1µF), C9 (0.1µF): Πυκνωτές αποσύνδεσης υψηλής συχνότητας μεταξύ VDD και GND, που καταστέλλουν τον θόρυβο ισχύος
- C10 (22µF): Ηλεκτρολυτικός πυκνωτής χύδην για φιλτράρισμα χαμηλής συχνότητας και αποθήκευση ενέργειας
- C26 (0.1µF): Πρόσθετη αποσύνδεση για περαιτέρω βελτίωση της σταθερότητας ισχύος
Αυτό το πολυβάθμιο φιλτράρισμα εξασφαλίζει σταθερή και χαμηλού θορύβου παροχή ισχύος στο ολοκληρωμένο κύκλωμα του δέκτη FM.
2.2 Μονάδα λήψης σήματος FM
- Είσοδος σήματος:
- The Ακροδέκτης 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 Μονάδα εξόδου ήχου
- Έξοδοι ήχου:
- ΗΤΤΑ: Αναλογικός ήχος δεξιού καναλιού
- ΑΓΡΟΙΚΟΣ: Αναλογικός ήχος αριστερού καναλιού
- Αυτές οι έξοδοι μπορούν να είναι:
- Συνδέθηκε απευθείας με ακουστικά
- Συνδεδεμένο με Ηχεία (σημείωση: ένας εξωτερικός ενισχυτή ήχου απαιτείται για υψηλότερη ισχύ εξόδου)
2.5 Βοηθητική Μονάδα Φιλτραρίσματος και Αντιστοίχισης
- Πηνία:
- L1, L2 (100 nH): Πιθανότατα χρησιμοποιείται για αντιστοίχιση σύνθετης αντίστασης RF ή φιλτράρισμα εισόδου στο μπροστινό άκρο των FM
- Βοηθά στη μείωση της αντανάκλασης του σήματος και στη βελτίωση της ευαισθησίας λήψης
- πυκνωτές:
- C13 (100 pF), C14 (24 pF): Εργαστείτε με επαγωγείς για να σχηματίσετε ένα Δίκτυο φίλτρων LC
- Καταστέλλει τις παρεμβολές υψηλής συχνότητας και καθαρίζει το σήμα FM
- Γείωση:
- Πολλαπλές συνδέσεις GND υποδεικνύουν ένα παγκόσμιος σχεδιασμός κοινού εδάφους
- Μειώνει τον θόρυβο και βελτιώνει τη συνολική σταθερότητα του κυκλώματος
3. Βασικές παράμετροι και χαρακτηριστικά σχεδιασμού
- Τάση λειτουργίας: 3.3V
- Πλήρως συμβατό με τα mainstream MCU χωρίς μετατόπιση επιπέδου
- Συχνότητα κρυστάλλου: 32.768 kHz
- Συχνότητα αναφοράς βιομηχανικού προτύπου για σταθερό χρονισμό
- Μέθοδος ελέγχου: Σειριακή διεπαφή SDIO + SCLK
- Απλοποιημένη δρομολόγηση, απαιτούνται μόνο δύο γραμμές ελέγχου
- Σχεδιασμός φιλτραρίσματος:
- Πολλαπλοί πυκνωτές αποσύνδεσης ισχύος (0.1µF + 22µF)
- Φιλτράρισμα LC στο μπροστινό μέρος RF για ισχυρή ανοσία στον θόρυβο
- Έξοδος ήχου:
- Αναλογικός ήχος διπλού καναλιού (ROUT / LOUT)
- Υποστηρίζει στερεοφωνική αναπαραγωγή FM
4. Σενάρια εφαρμογής και προτάσεις επέκτασης
τυπικές Εφαρμογές
- Φορητά ραδιόφωνα FM
- Έξυπνα ηχεία με λειτουργία ραδιοφώνου FM
- Συστήματα δέκτη FM ελεγχόμενα από MCU
Επιλογές επέκτασης
- Χρησιμοποιήστε ένα εξωτερική τηλεσκοπική κεραία ή κεραία PCB για βελτίωση της ευαισθησίας λήψης
- Προσθέστε ένα audio ενισχυτή (π.χ., 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
//------------------------------------------------------------------------------




