Ìṣàyẹ̀wò Àwòrán Àwòrán Rédíò Dá lórí RDA5807M

À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ì.

Àwòrán àwòrán Rédíò FM RDA5807M

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ọ Pinniiṣẹ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
RCLKPIN ifihan agbara aagoKo si asopọ ita gbangba ti o han gbangba (o ṣee ṣe ki o jẹ amuṣiṣẹpọ inu)Ṣíṣepọ̀pọ̀ aago inú
VDDIpese agbara agbaraNẹ́ẹ̀tì agbára 3V3X ipese agbara 3.3V DC
GNDIlẹNẹ́ẹ̀tìwọ́ọ̀kì GND ÀgbáyéAgbara ti o wọpọ ati ilẹ ifihan agbara
SDIODáta ìtẹ̀léra I/OPínì 3 (ìfihàn ìṣàkóso)Ibaraẹnisọrọ pẹlu MCU fun atunṣe, iṣakoso iwọn didun, ati bẹbẹ lọ.
SCLKSerial aagoPin 2 (ìfihàn aago)Ifihan aago fun ibaraẹnisọrọ SDIO
FMINIfiwọle ifihan agbara FMPIN 5Gba ifihan agbara FM RF lati eriali
X1Crystal oscillator igbewọle32.768 kHz garaPese 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
//------------------------------------------------------------------------------

Fi ọrọìwòye

A kò ní fi àdírẹ́sì ìméèlì rẹ hàn. Àwọn pápá tí a nílò ni a fi àmì sí *