Àwòrán Schematic Circuit yìí jẹ́ módùùlù olugba rédíò FM tí a kọ́ yíká RDA5807M gẹ́gẹ́ bí mojuto IC. Ó ṣe pàtàkì láti lo ìgbàgba àmì FM, ìjáde ohùn, àti àwọn iṣẹ́ ìdarí ìpìlẹ̀ . A pín ìṣàyẹ̀wò tí ó wà ní ìsàlẹ̀ sí àwọn èròjà pàtàkì, àwọn módùùlù iṣẹ́, àti àwọn pàrámítà àpẹẹrẹ pàtàkì.

1. Àwọn Iṣẹ́ Pínì àti Pínì
Àkójọpọ̀ IC: RDA5807M
RDA5807M jẹ́ IC olugba redio FM ti a ṣepọ pupọ ti o ṣe atilẹyin gbigba igbohunsafefe FM ati iṣakoso tẹlentẹle I2C / SDIO . Da lori apẹrẹ naa, awọn pinni bọtini ati awọn asopọ wọn ni a ṣe akopọ ni isalẹ:
| Orukọ Pinni | iṣẹ | Apá Tí A Sopọ̀ Mọ́ / Nẹ́ẹ̀tì | Apejuwe |
|---|---|---|---|
| ROUT | Ìjáde ohùn ní ikanni ọ̀tún | Ìjáde taara (kò sí àwọn èròjà afikún tí a fihàn) | Pese ohun afọwọṣe ikanni ọtun |
| LOUT | Ìjáde ohùn sí ikanni òsì | Ìjáde taara (kò sí àwọn èròjà afikún tí a fihàn) | Pese ohun afọwọṣe ikanni osi |
| RCLK | PIN ifihan agbara aago | Ko si asopọ ita gbangba ti o han gbangba (o ṣee ṣe ki o jẹ amuṣiṣẹpọ inu) | Ṣíṣepọ̀pọ̀ aago inú |
| VDD | Ipese agbara agbara | Nẹ́ẹ̀tì agbára 3V3 | X ipese agbara 3.3V DC |
| GND | Ilẹ | Nẹ́ẹ̀tìwọ́ọ̀kì GND Àgbáyé | Agbara ti o wọpọ ati ilẹ ifihan agbara |
| SDIO | Dáta ìtẹ̀léra I/O | Pínì 3 (ìfihàn ìṣàkóso) | Ibaraẹnisọrọ pẹlu MCU fun atunṣe, iṣakoso iwọn didun, ati bẹbẹ lọ. |
| SCLK | Serial aago | Pin 2 (ìfihàn aago) | Ifihan aago fun ibaraẹnisọrọ SDIO |
| FMIN | Ifiwọle ifihan agbara FM | PIN 5 | Gba ifihan agbara FM RF lati eriali |
| X1 | Crystal oscillator igbewọle | 32.768 kHz gara | Pese aago itọkasi fun iṣiṣẹ igbohunsafẹfẹ iduroṣinṣin |
2. Ìtúpalẹ̀ Módù Iṣẹ́
2.1 Power Ipese Module
- Input Foliteji: 3.3V DC (ofin)
- Awọn ohun elo sisẹ:
- C8 (0.1µF), C9 (0.1µF): Àwọn capacitors ìyípadà ìgbàlódé gíga láàárín VDD àti GND, tí ó ń dín ariwo agbára kù
- C10 (22µF): Kapasito elekitirolitiki olopobobo fun sisẹ igbohunsafẹfẹ kekere ati ibi ipamọ agbara
- C26 (0.1µF): Afikun pipin asopọ lati mu iduroṣinṣin agbara dara si siwaju sii
Àlẹ̀mọ́ onípele púpọ̀ yìí ń mú kí agbára ìṣiṣẹ́ dúró ṣinṣin àti ariwo kékeré dé ọ̀dọ̀ olùgbà FM IC.
Módù Ìgbàwọlé Àmì 2.2 FM
- Input Signal:
- awọn Pinni FMIN (Pin 5) so pọ̀ mọ́ eriali FM ìta (ẹ̀yà eriali kò hàn nínú àwòrán náà)
- Gba awọn ifihan agbara igbohunsafefe FM ninu 87-108 MHz iye
- Ìrìn Àgbékalẹ̀ Oscillator Crystal:
- A Kírísítà 32.768 kHz (X1) pese aago itọkasi deede
- Ṣe idaniloju atunṣe FM deede ati idilọwọ gbigbe igbohunsafẹfẹ lakoko yiyan ibudo
2.3 Modulu Iṣakoso ati Ibaraẹnisọrọ
- Communication wiwo:
- SDIO (Dáta Ṣíṣàlẹ̀) + SCLK (Aago Serial)
- ni ibamu pẹlu I2C tabi awọn ilana ibaraẹnisọrọ ni tẹlentẹle ti o jọra
- A lo lati sopọ mọ MCU ita (fun apẹẹrẹ, microcontroller)
- Àwọn Resistor Fa-soke:
- R6 (10kΩ) fún SDIO
- R7 (10kΩ) fún SCLK
- Àwọn méjèèjì ni a ti sopọ mọ́ 3V3, ní ìdánilójú àwọn ipele ìṣiṣẹ́ tó dúró ṣinṣin àti ìbánisọ̀rọ̀ tó ṣeé gbẹ́kẹ̀lé
2.4 Modulu Ifihan Ohun
- Awọn abajade Audio:
- ÌLÀNÀ: Ohùn afọwọ́ṣe ojú-ọ̀nà ọ̀tún
- LOUT: Ohùn afọwọ́ṣe afọwọ́ṣe ti ikanni òsì
- Awọn abajade wọnyi le jẹ:
- Ti sopọ taara si olokun
- Ti sopọ si agbohunsoke (akiyesi: ohun ita gbangba ohun ampilifaya o nilo fun agbara ti o ga julọ)
2.5 Àlẹ̀mọ́ àti Módù Ìbáramu Olùrànlọ́wọ́
- Inductors:
- L1, L2 (100 nH): Ó ṣeé ṣe kí a lò ó fún ìbáramu impedance RF tàbí àlẹ̀mọ́ ìtẹ̀síwájú ní iwájú FM
- Ṣe iranlọwọ lati dinku ifihan agbara ati mu ifamọ gbigba pọ si
- Awọn agbara agbara:
- C13 (100 pF), C14 (24 pF): Ṣiṣẹ pẹlu awọn inductor lati ṣe agbekalẹ kan Nẹ́ẹ̀tìwọ́ọ̀kì àlẹ̀mọ́ LC
- Dín ìdènà ìgbohùngbà gíga kù kí o sì sọ àmì FM di mímọ́
- Grounding:
- Ọpọlọpọ awọn asopọ GND fihan apẹrẹ ilẹ gbogbogbo agbaye
- Din ariwo ku o si mu iduroṣinṣin gbogbogbo ti Circuit dara si
3. Awọn Paati Pataki ati Awọn Ẹya Apẹrẹ
- Isenkanjade iṣẹ: 3.3V
- Ni ibamu ni kikun pẹlu awọn MCU akọkọ laisi iyipada ipele
- Igbohunsafẹfẹ Kírísítà: 32.768 kHz
- Igbohunsafẹfẹ itọkasi boṣewa ile-iṣẹ fun akoko iduroṣinṣin
- Ọna Iṣakoso: SDIO + SCLK ni wiwo tẹlentẹle
- Ipa ọna ti o rọrun, awọn laini iṣakoso meji nikan ni o nilo
- Apẹrẹ Àlẹ̀mọ́:
- Àwọn kapasítọ̀ agbára púpọ̀ (0.1µF + 22µF)
- Àṣàlẹ̀ LC lórí iwájú RF fún ààbò ariwo tó lágbára
- Audio wu:
- Ohùn afọwọ́ṣe oníkanna méjì (ROUT / LOUT)
- Ṣe atilẹyin fun sitẹrio FM ṣiṣiṣẹsẹhin
4. Àwọn Ìṣẹ̀lẹ̀ Ìlò àti Àbá Ìfẹ̀síwájú
Awọn ohun elo ti o ṣe pataki
- Àwọn rédíò FM tó ṣeé gbé kiri
- Àwọn agbọ́rọ̀sọ ọlọ́gbọ́n pẹ̀lú iṣẹ́ rédíò FM
- Àwọn ètò olugba FM tí MCU ń ṣàkóso
Awọn aṣayan Ifihan
- Lo ohun Eriali telescopic ita tabi eriali PCB lati mu ifamọ gbigba dara si
- Fi ohun kun amplifier agbara ohun (fún àpẹẹrẹ, LM386) sí ROUT/LOUT fún wíwakọ̀ àwọn agbọ́hùnsọrí tó tóbi jù
- Mu awọn ẹya ilọsiwaju ṣiṣẹ nipasẹ iṣakoso MCU:
- Ṣiṣayẹwo ibudo aifọwọyi
- Ibi ipamọ ikanni ti a ti ṣeto tẹlẹ
- Iṣakoso iwọn didun oni-nọmba
5. Àwọn Àkíyèsí àti Àwọn Ìṣọ́ra fún Àwòrán
- Iduroṣinṣin Agbara:
- Rí i dájú pé ìró omi kékeré lórí ìpèsè 3.3V láti yẹra fún ariwo ohun tàbí gbígbà tí kò dúró ṣinṣin
- Grounding:
- Lo itọkasi ilẹ ti o lagbara ati ti o ni ibamu
- Yẹra fún àwọn ìyàtọ̀ tó lè wà láàárín ilẹ̀ agbára àti ilẹ̀ ohùn láti dènà ariwo
- Ibadọgba ikọlu:
- Eriali naa ti a so mọ FMIN yẹ ki o wa ni ibamu pẹlu impedance (nigbagbogbo) 50Ω) fún gbígbà tó dára jùlọ
- Aṣayan Ẹya:
- Lo a ìpéye gíga 32.768 kHz kirisita
- Fẹran Àwọn ẹ̀rọ ìdènà NP0 / C0G fun awọn paati RF ati ti o ni ibatan si akoko nitori iduroṣinṣin ti o ga julọ
Kóòdù ètò ètò rédíò
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
//------------------------------------------------------------------------------




