O lenei Ata Fa'ata'ita'i o le matagaluega o se Vaega e talia ai leitio FM fausia faataamilo i le RDA5807M o le IC autu. E faʻatinoina tele Mauaina o faailoilo FM, fa'asalalauga leo, ma galuega fa'avae o le pulea. O le auiliiliga o loʻo i lalo ua vaevaeina i vaega autū, vaega fa'atino, ma fa'asologa autū o le mamanu.

1. Vaega Autū ma Galuega Faatino a le Pine
IC Autu: RDA5807M
le RDA5807M o se IC e maua ai leitio FM ua matuā tu'ufa'atasia e lagolagoina ai le mauaina o fa'asalalauga FM ma Pulea fa'asologa o le I2C / SDIO. E faʻavae i luga o le ata faʻatusa, o pine autu ma a latou fesoʻotaʻiga o loʻo aoteleina i lalo:
| Pin Igoa | galuega tauave | Vaega Feso'ota'i / Upega | faʻamatalaga |
|---|---|---|---|
| FA'AVAE | Fa'asalalauga leo i le itu taumatau | Fa'asalalauga tuusa'o (leai ni vaega fa'aopoopo o lo'o fa'aalia) | E tu'uina atu le leo analog i le itu taumatau |
| LOUT | Fa'asalalauga leo agavale | Fa'asalalauga tuusa'o (leai ni vaega fa'aopoopo o lo'o fa'aalia) | E tu'uina atu le leo analog i le itu tauagavale |
| RCLK | Pine faailoilo a le uati | Leai se feso'ota'iga tuusa'o mai fafo (atonu o le feso'ota'iga i totonu) | Feso'ota'iga i totonu o le uati |
| VDD | Tuuina atu o le eletise | Upega eletise 3V3 | 3.3V DC punaoa eletise |
| GND | eleʻele | Tupe maua mai le GND i le lalolagi atoa | Eleele eletise ma faailoilo masani |
| FALETUA | Fa'asologa o fa'amatalaga I/O | Pine 3 (fa'ailoilo pulea) | Fesootaiga ma le MCU mo le fa'atulagaina, puleaina o le leo, ma isi mea faapena. |
| SCLK | Uati fa'asologa | Pine 2 (fa'ailoilo o le uati) | Fa'ailo uati mo feso'ota'iga SDIO |
| FMIN | Fa'ailoga fa'ailoga FM | Pine 5 | Mauaina le faailoilo FM RF mai le antenna |
| X1 | Oscillator tioata | 32.768 kHz tioata | Tu'uina atu le uati fa'asino mo le fa'agaioiga mautu o le televave |
2. Fa'avasegaga o le Module Fa'atino
2.1 Power Supply Module
- Voltage Voltage: 3.3V DC (pulea)
- Filifiliga Vaega:
- C8 (0.1µF), C9 (0.1µF): O capacitors e fa'aeseese ai le tele o taimi i le va o le VDD ma le GND, e taofia ai le pisa o le eletise
- C10 (22µF): Kapasitora eletise tele mo le fa'amama maualalo ma le teuina o le malosi
- C26 (0.1µF): Fa'aopoopoga o le decoupling e fa'aleleia atili ai le mautu o le eletise
O lenei fa'amamāina e tele-vaega e fa'amautinoa ai tu'uina atu o le eletise mautu ma maualalo le pisa i le IC o le masini e talia ai le FM.
2.2 Vaega e Maua ai Fa'ailoilo FM
- Faʻailoga I totonu:
- le Pine FMIN (Pin 5) feso'ota'i atu i se antenna FM i fafo (e le'o fa'aalia le elemene antenna i le ata)
- Mauaina fa'ailoilo fa'asalalauga FM i totonu o le 87–108 MHz faʻailoga
- Matagaluega o le Crystal Oscillator:
- A 32.768 kHz tioata (X1) e maua ai se uati fa'asino sa'o
- Mautinoa le sa'o o le fa'atulagaina o le FM ma puipuia ai le fesuia'iga o le televave i le taimi e filifilia ai le nofoaga
2.3 Module o le Pulea ma Fesootaiga
- Ofisa o Fesootaiga:
- SDIO (Fa'amaumauga Fa'asolosolo) + SCLK (Uati Fa'asolosolo)
- talafeagai ma I2C po'o ni fa'asologa feso'ota'iga fa'asolosolo tutusa
- Fa'aaogaina e feso'ota'i ai ma se MCU i fafo (e pei o le microcontroller)
- Tete'e Fa'aoso i luga:
- R6 (10kΩ) mo le SDIO
- R7 (10kΩ) mo SCLK
- E fesoʻotaʻi uma i 3V3, fa'amautinoaina o tulaga mautu o le mafaufau ma feso'ota'iga fa'atuatuaina
2.4 Vaega o le Fa'asalalauga Leo
- Galuega Faʻalogo leo:
- AUALA: Leo fa'a-ala taumatau
- LOUT: Leo fa'a-ala agavale
- O nei taunuuga e mafai ona:
- Feso'ota'i sa'o i headphones
- Fesoʻotaʻi i failauga (fa'amatalaga: o se fa'asalalauga mai fafo fa'atele leo e manaʻomia mo le maualuga o le malosiaga e maua mai ai)
2.5 Vaega Fesoasoani mo le Fa'amamāina ma le Fa'afetauiina
- Inductors:
- L1, L2 (100 nH): E foliga mai e fa'aaogaina mo le fetaui lelei o le RF impedance po'o le fa'amama o le input i le pito i luma o le FM.
- Fesoasoani e fa'aitiitia ai le atagia mai o faailoilo ma fa'aleleia atili ai le maaleale o le mauaina o fa'ailo
- Pusa:
- C13 (100 pF), C14 (24 pF): Galulue fa'atasi ma inductors e fausia ai se LC faamama feso'ota'iga
- Taofiofia le fa'alavelave fa'atelevave ma fa'amamā le fa'ailo FM
- Faʻavaeina:
- O le tele o feso'ota'iga GND e fa'ailoa mai ai se mamanu o le lalolagi atoa
- Fa'aitiitia le pisa ma fa'aleleia atili le mautu o le matagaluega atoa
3. Fa'atulagaga Autū ma Vaega o le Fuafuaga
- Voltage Operating: 3.3V
- E fetaui lelei ma MCU masani e aunoa ma le suia o le tulaga
- Taimi masani o le Crystal: 32.768 kHz
- Fa'asinomaga masani fa'apisinisi mo le taimi mautu
- Pulea Faiga: Feso'ota'iga fa'asolosolo SDIO + SCLK
- Fa'afaigofieina o le fa'aogaina o auala, e na'o laina pulea e lua e mana'omia
- Fuafuaga Fa'amama:
- Tele o capacitors e fa'aesea ai le malosiaga (0.1µF + 22µF)
- Fa'amama LC i le pito i luma o le RF mo le puipuiga malosi mai le pisa
- Galuega Faatino leo:
- Leo fa'a-ala lua (ROUT / LOUT)
- Lagolagoina le ta'alo FM stereo
4. Tulaga o Talosaga ma Fautuaga mo le Faʻalauteleina
Talosaga masani
- Leitio FM feavea'i
- Sipika atamai ma le aoga o le leitio FM
- Faiga e talia ai le FM e pulea e le MCU
Faʻaopoopoga Filifiliga
- Faaaoga se antenna telescopic fafo po'o le antenna PCB e fa'aleleia atili ai le lagona o le taliaina
- Faʻaopopo se leo mea faʻamau leo (e pei o le LM386) i le ROUT/LOUT mo le fa'agaoioia o sipika tetele
- Fa'agaoioia foliga fa'apitoa e ala i le pulea o le MCU:
- Otometi le su'eina o nofoaga
- Teuina o alalaupapa ua uma ona setiina
- Faatonutonuina o numera numera
5. Fa'amatalaga ma Lapata'iga mo le Fuafuaga
- Malosiaga mautu:
- Ia mautinoa e maualalo le ripple i luga o le sapalai 3.3V e aloese ai mai le pisa o leo po'o le le mautu o le mauaina o le leo.
- Faʻavaeina:
- Faaaoga se faasinomaga mautu ma tutusa i le eleele
- 'Alo'ese mai eseesega e ono tula'i mai i le va o le eletise ma le leo e puipuia ai le pisa
- Fa'afetauiga fa'aletonu:
- O le antenna e fesoʻotaʻi i ai FMIN e tatau ona fetaui lelei ma le impedance (e masani lava 50Ω) mo le taliaina lelei
- Filifiliga Vaega:
- Faaaoga se tioata sa'o maualuga 32.768 kHz
- Fiafia Kapasitora NP0 / C0G mo RF ma vaega e fesoʻotaʻi ma le taimi ona o le mautu sili atu
Fa'ailoga o le polokalame matagaluega leitio
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
//------------------------------------------------------------------------------



