RDA5807 FM收音机模块

您所在的位置:网站首页 华为收音机app怎么调频 RDA5807 FM收音机模块

RDA5807 FM收音机模块

2024-07-11 01:26| 来源: 网络整理| 查看: 265

一. 简介

  这是一个购自于淘宝网店的RDA5807调频接收模块,价格只有3块钱人民币。’

  RDA5807是一颗调频广播单芯片接收调谐芯片。只需要外部非常少的元器件,便可以组成一个完整的调频广播接收机。这款芯片工作电压范围2.7~3.3V。

  这个模块最早是在2018年3月份购买,一直没有能够进行实验。最早是为了能够用于智能车竞赛现场无线信标检测使用的模块。

RDA5807收音芯片: 在百度文库中的说明连接PDF地址: https://wenku.baidu.com/view/8913ec07a31614791711cc7931b765ce05087a12.html

  RDA5807 参考设计电路图如下。这是在RDA5807数据手册中给出的参考设计原理图。

二. 制作转接模块

  为了便于制作测试转接口,能够在面包板上进行实验。测试该模块的基本尺寸参数。

  如下是制作接口转接板,这样可以通过间距100mil(2.54mm)的排针放置在面包实验板上,方便使用单片机接口模块完成接口控制。

  针对芯片模块,转接板从左到右的定义分别是:

管脚 符号 定义 1 VDD 3.3V 2 NULL 3 NULL 4 SCLK I2C SCLK 5 SDIO I2C SDIO 6 GND GND 7 LOUT 左声道音频输出 8 ROUT 右声道音频输出 9 NULL 10 FMIN FMRF输入

  上述表格定义也是购置的RDA5807模块小板外部引脚的定义。

3.3V稳压芯片电路模块……

三、建立实验平台 1.搭建系统

在面包板上,分别加上3.3V电源模块;RDA5807模块,STM32F030单片机模块。将它们按照功能连接起来。

通过3.3V模块将面板板上的5V电源转换成3.3V,提供给3RDA5807; F030模块本身带有AS11173.3V模块,可以直接连接面包板上的5V电源; 将F030的I2C总线的SCL, SDA 分别连接到RDA5807MdeSCLK,SDIO;

2. 实验软件

  1. STM32F030实验电路板硬件

  AltiumDesign\Test\2020\GenretCntF103\SPIF030K8

  2. STM32F030软件

  软件所在的目录:   D:\zhuoqing\window\ARM\IAR\STM32\Application\Test\2020\GeneralFSPIF030   该软件是一个通用软件测试平台。其中包括有多个项目所遗留下来的代码片段。

3. RDA5807 I2C总线 总线协议:

  RDA5807 I2C总线地址: 001000b + R/W bit。

  在RDA5807读写过程中,只需要使用I2C起始位,然后跟着读和写,然后在通过结束位停止即可。不需要输入读和写的寄存器的地址。因为在RDA5807芯片在读写过程中有着固定的起始地址:

  写寄存器起始地址:开始于0x2   读寄存器起始地址:开始于0xA.

RDA5807 各个寄存器定义

  下面是网络CircuitDigest上别人给出的使用Arduino搭建的基于RDA5807的调频收音机。 使用Arduino搭建的FM收音机实验模型

4. 软件编程

  由于在网络上给出的RDA5807 的数据手册实在太多的信息,但并没有给出具体的读写过程。下面的参考代码是从CircuitDigest网站中看到的相关的参考代码:

(1) RDA5807寄存器初始化参数 uint8_t boot_config[] = { /* register 0x02 */ 0b11000001, 0b00000011, /* register 0x03 */ 0b00000000, 0b00000000, /* register 0x04 */ 0b00001010, 0b00000000, /* register 0x05 */ 0b10001000, 0b00001111, /* register 0x06 */ 0b00000000, 0b00000000, /* register 0x07 */ 0b01000010, 0b00000010, }; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (2) 设置接收频道

  通过修改寄存器前四个数值便可以修改接收的频道。   通过下面代码来修改接收频道。接收频道使用一个uint16来表示。

uint8_t tune_config[] = { /* register 0x02 */ 0b11000000, 0b00000001, /* register 0x03 */ (channel >> 2), ((channel & 0b11) 2); tune_config[3] = ((channel & 0b11) 2); RDA5807_tune_config[3] = (uint8_t)(((channel & 0x3)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3