1 带RDS的LW/MW/SW立体声FM-DSP收音机接收器V2.5-德赢Vwin官网 网
×

带RDS的LW/MW/SW立体声FM-DSP收音机接收器V2.5

消耗积分:3 | 格式:zip | 大小:0.06 MB | 2023-06-25

刘英

分享资料个

描述

无线电是最早的长距离电信媒体之一,因此它是一项非常古老的技术。见下图:

pYYBAGNQmaGAe08-AAD8hYsmOrE748.jpg
在 Aliexpress 上出售的修改版本
 

这里还有另一个收音机

pYYBAGNQmaSAcuRpAAL5VjylGIQ409.jpg
 

说明接线图(原理图):

Si473x 是一款采用 DSP(数字信号处理)技术的完整接收器,与 SDR(软件定义无线电)接收器中使用的技术相同。

poYBAGNQmaeAFDeGAACyq4XFyWU742.jpg
Si473x 内部
 

Arduino 通过 I2C 接口控制 Si473x IC 并与之“对话”,向其中写入数据并从中读取数据。图形界面由一块1.8英寸ST7735彩色TFT显示屏组成,通过SPI数据接口进行通信。在 Si473x IC 内部,射频信号通过 A/D 转换器数字化并由 DSP(数字信号处理器)处理,然后通过 D/A 转换器转换为音频并发送到输出端。

有两张电气图,一张用于 PL102BA-S V2 模块,另一张用于 Si4732-A10 分线 PCB。

poYBAGNQmauAG4jfAAedAoz0gng149.jpg
PL102BA-S V2 模块示意图
 
poYBAGNQmbGAP5IHAArv_MEte_4270.jpg
带有 Si4732-A10 分线 PCB 的原理图
 

天线输入电路(RF 前端)很简单,我没有使用 RF 前置放大器 (LNA) 或更复杂的 LPF/BPF 滤波器,即使如此也可以获得良好的无线电接收效果。

S1 开关用于选择短波 (SW) 或中波/长波 (MW/LW) 天线。当开关 S1 处于 MW 位置时,必须断开外部短波天线以获得更清晰的接收效果,因为在这种情况下铁氧体棒起到天线的作用。

D1 和 D2(BAV199 - 双二极管)可以用 2 x 1N4148 代替,甚至可以为了简化而省略,我没有在接收器上使用它们,但它可以防止静电放电 (ESD)。

arduino 由应用于 VIN 输入的 7.8V(2x18650 电池)供电。arduino 还提供 5V 稳定电压为 TFT 显示器供电,3.3V 稳定电压为 Si4732(或 PLB102)供电。

一直存疑的一点是Arduino 5V和Si473x芯片在逻辑电平上的区别,没有实际依据和测试的信息很多。

由于 Arduino 在 I2C 总线上有 5V 逻辑电平而 Si473x 使用 3.3V,如果需要,可以在 I2C SCL/SDA 总线和 RESET 线上使用一个 5V 到 3.3V 逻辑电平转换器双向,在 Arduino 和Si473x。

poYBAGNQmbOAdV0UAACCzdXyaSg901.jpg
典型的通用 5V 至 3.3V 逻辑电平转换器 - 双向
 

然而,我在我的项目中没有使用逻辑电平转换器,我确实使用了电阻器,并且在各种实践经验中(我已经做了 2 年多)我从来没有任何问题,我从来没有任何 Si4730/32/ 35 个设备损坏,甚至没有 I2C 通信问题,我从未注意到任何不稳定。实际上,有一个由 1k 电阻和连接到 3.3V 的上拉电阻组成的电阻分压器,因此 Si473x 引脚上的逻辑高电平永远不会超过 3.3V(测量值)。如果没有逻辑电平转换器,您将获得电路简化和 I2C 通信速度的增益。

陶瓷去耦电容 C3-C6 用于减少显示器和 SPI 数据总线产生的噪声辐射 (EMI)。

根据技术论文,Arduino 的 EEPROM 存储器可以重写多达 100、000 次而不会失败(尽管在实际测试中它在失败之前达到了超过 100 万次循环)。为了节省EEPROM的寿命,只有在按下PB2按钮(SAVE)时才会保存一次数据,所以内存会有很长的寿命,可以说在正常使用中绝对不会失效方法。

必须使用外部音频放大器来放大此收音机的声音,可以是“JBL”型放大器盒或任何其他具有线路输入的音频放大器。其他选择是自己组装,请参阅下面的完整 DIY LM386 音频放大器项目(原理图和 PCB),该项目在该项目上运行良好。此外,TDA2822(DIP-8 封装中的立体声放大器 IC)在这里也是一个不错的选择,因为它很容易找到/价格便宜并且可以提供非常好的声音。

用于控制 Si473x 的库:

在这个项目中,我使用了由Michael J. Kennedy 先生编写的高性能库 Si4735-I2C-R4 ,这是一部于 2012 年编写的出色的创新作品它是现有最好的 Si473x 库,非常稳定、快速、友好,并具有专业级的 RDS 解码器,比今天在 Internet 上找到的库(顺便说一下,它们基于 Kennedy 的工作)要好得多。我刚刚对其进行了一些更新,以包括一些命令和显示引脚的配置。

我设置的电路图片:

 
 
 
poYBAGNQmbaANqtIAAHvHQu9ovA041.jpg
 
1 / 4
 

此处使用的 DSP收音机芯片(IC)注意事项

1-此处使用的无线电模块是 PL102BA-S V2(它具有 IC Si4730-D60 QFN 封装)。只有带有 3060 标记的 Si4730-D60 IC 附带的模块才能接收短波波段和 FM 上的 RDS。请注意,制作为 NE928-10A V.01 的模块只能在 AM/FM(不是 SW 或 RDS)中工作。我通过 Aliexpress 订购了这个模块。下面是 PL102BA-S V2 模块的图片和引脚排列:

 
 
 
pYYBAGNQmbiAKdM5AAC9aFsxrP8167.jpg
 
1 / 5PL102BA-S V2 模块
 

2-最近我在 Aliexpress 上发现这个无线电模块可能适用于这个项目:Si4730 Si4731 Integrated High-quality FM / AM Radio Head Module

 
 
 
pYYBAGNQmbuAefTbAAArIBgWRd0853.png
 
1 / 4
 

3-Si4732-A10 IC:PLB102BA 模块变得很难找到,所以我决定设计一个 PCB 分线器以使用 Si4732-A10 IC (SOP16),它更容易在板上焊接,将接收短波波段和 FM 上的 RDS并且在 Aliexpress、Mouser 等网站上有售。此分线板可用于其他带有 Si473x 的无线电项目,包括互联网上提供的其他库。

这是您在 PCBWay 网站上订购此 PCB 分线(不含组件)的链接,甚至可以免费下载 Gerber / BOM 文件以在其他地方制造。

以下是:PCB 设计、原理图、引出线和 BOM。

 
 
 
pYYBAGNQmb2AQ7SUAADSXAm1268194.jpg
 
1 / 7
 

4-附加评论:有用户报告说 RDS 和 Shortwave 也可以使用 SSOP-24 封装(不是 QFN)的 Si4730-D60 和 Si4734-D60 芯片,这些设备的优势是更便宜,但是我没有有机会测试一下。还要记住,Si4735-D60 SSOP-24 可以用作 RDS/SW 肯定会起作用。

我为采用 SSOP-24 封装的 SI4730/34/35 设计了分线板适配器,单击此处下载 PCB 布局。

5-如果您不想使用分线板和/或使用其他 MCU(微控制器单元),下面是使用 SSOP-24 封装的 Si4730-D60 / Si4734-D60 / Si4735-D60 芯片的电路原理图, 以便您可以设计自己的印刷电路板。该电路需要具有 I2C(Arduino Uno、Nano、ESP32、STM32 等)的 MCU 才能工作。

pYYBAGNQmcGALLtEAASyIVNm6qo542.jpg
Si4735-D60 SSOP-24 无分线板
 

双转换接收器:

对于任何有兴趣使用 SI5351 和 SI4735(32) 制作双转换接收器的人,这是我构建的接收器块的框图,它工作得很好。使用 JCR 10kHz-225MHz VFO。混频器是流行的NE602 / SA612 IC。

poYBAGNN6eOAGEMLAAMyImlTcYI879.jpg
NE602/SA612、SI5351、SI4735双变频接收机(32)
 

开源版本:

单击此处下载开源项目,包括主要草图、库和接线图等。

****************************************************** ************************

专业版(带 SSB)- 2022 年 11 月更新(错误修复):

接收器规格:立体声 FM 64-108MHz,带 RDS、LW、MW、SW 频段,涵盖 150kHz 至 30MHz 和 AM/SSB 解调。显示 TFT 1.8” ST7735 彩色 128x160pix 和 Arduino Nano (Atmega328P)。

对于那些想尝试带 SSB 版本的人(仅限有经验的用户),我在这里提供带 SSB 的固件(.hex 格式)和许多改进(专业版,见下图)。在这里下载。

要在 Arduino UNO / Nano 上安装固件(.hex 格式),需要使用 Xloader 应用程序将“.hex”文件上传到 Arduino Uno/Nano,运行 Xloader.exe(在文件夹中),连接USB 电缆连接到 Arduino Nano。在 Xloader 中选择正确的 COM 端口,波特率 115200,选择设备微处理器 UNO(ATmega328),选择固件文件(.hex 在文件夹中)并点击 Xloader 中的上传。Arduino LED 将在此过程中点亮,Xloader 将在完成时提供建议。就这样,真的很快,大约需要 12 秒。

pYYBAGNQmcaAHNz-AAApCtxa99A690.jpg
加载程序
 

在专业版中,按钮具有不同的功能,如原理图所示:

 
 
 
poYBAGNQmcyAO4BLAAhHmyFrl5w473.jpg
 
1 / 2专业版原理图(带 SSB)
 

笔记:

- 该电路设计用于 6.5v 至 8.5v 电源(来自两个串联的 18650 电池),并且该电压施加到 Arduino Nano 的 VIN 引脚,在内部调节电压。Arduino 读取此电池电压以指示并在收音机关闭时使用此值将值保存到 EEPROM。如果您为 Arduino 提供低于此的电压,电路将无法正常工作。此外,此版本使用 Si473x I2C 地址 0x63,请确保在您的硬件上正确设置它。

- 请注意,市场上有许多带有变体/假冒 ATMEGA328P U-TH 微控制器的 Arduinos Nano,在这种情况下,它可能无法在该项目中使用。在这种情况下,您可以尝试更正文件“avrdude.config”上的签名编号(设备签名 = 0x1e 0x95 0x16),以便能够加载固件。要恢复此类 Arduino Nano 的引导加载程序,请使用 IDE 上的 Minicore 板并选择处理器变体 328PB。

poYBAGPlruuAUDUGAAHPMEOKKS8657.jpg
变体/伪造的 ATMEGA328P U-TH 微控制器 - 可能不适用于该项目
 

****************************************************** *******************

指示:

  • 在 Arduino IDE 上打开 scketch,安装位于“安装这些库”文件夹中的库,并为 Si4732 选择正确的 I2C 地址(0x11 或 0x63)。模块 PL102BA-S V2 使用地址 0x63。
  • 编译草图,然后将其加载到 Arduino Nano、Uno 或 Pro Mini。
  • 按照原理图连接 Arduino、显示器、PLB102 模块或 Si4732、旋转编码器、按钮等。
  • 无线电电路第一次上电,初始值必须加载到 EEPROM 存储器中,步骤如下:按住 PB2 按钮,打开 Arduino 电源,等待屏幕显示“DEFAULT”信息VALUES”,现在可以开始工作了。
  • 有 4 个按钮,每个按钮有 2 个功能:短按和长按(PB3 除外)。还有一个开关 SPDT (S1)。
  • 按下按钮 PB1:选择打开 AM 和 AM 波段浏览器上/下选择器:短按来自 FM 的 AM 启动,然后按上波段,长按下波段(14 个波段)。
  • 按下按钮 PB2:将当前频率、波段、颜色主题“保存”到 EEPROM 并更改调谐步长(1、5、9、10kHz):短按“保存”*,长按更改 Tstep。*即使关闭arduino电源并移除电源,信息仍会保存在arduino的EEPROM内存中,并在再次打开时检索。
  • 按下按钮 PB3:更改 AM(6、4、3、2.5、2、1.8、1kHz)和 FM(Aut、110、84、60、40kHz)的带宽 IF 滤波器。
  • 按下按钮 PB4:选择打开 FM、RDS 节目类型(电台 ID/广播文本/自动滚动广播文本)和颜色主题:短按 FM 启动来自 AM,然后 RDS 类型更改,长按将从蓝色切换颜色主题变黑,反之亦然。
  • 旋转旋转编码器调高或调低搜索电台的频率。
  • S1 开关用于选择短波 (SW) 或中波/长波 (MW/LW) 天线。当开关 S1 处于 MW 位置时,必须断开外部短波天线以获得更清晰的接收效果,因为在这种情况下铁氧体棒起到天线的作用。

关于要使用的天线:

  • 对于短波接收,使用“长线天线”,它由一根 7 米长的电缆组成,伸到屋外或屋内,距离地面至少 3 米的高度。也可以使用其他类型的天线,例如 MiniWhip 和 Magnetic Loop。对于那些想了解更多的人,可以在此处找到典型“长线天线”的理论和项目,在此处可以找到“ MiniWhip 天线”的理论和项目
  • 此处有一篇关于短波天线的有趣且实用的文章
  • 为了在 MW(中波)和 LW(长波)频段获得良好的接收效果,应使用 12cm x 1cm 的铁氧体棒状天线。对于 LW,铁氧体线圈的电感至少应为 1000uH(1mH),以改善该频段的接收效果。铁氧体棒越长,接收效果越好。
  • 对于 FM 波段,70 厘米的鞭子或电线就足够了。对于 DX 接收,可以使用商用外部 VHF/FM 天线。

改善无线电接收的一些技巧:

  • 始终用电池为电路供电。避免使用开关电源或 DC / DC 降压转换器为该收音机供电,因为这些电子电源与大约 150kHz 的振荡器一起工作,并且该电磁信号会干扰甚至破坏收音机接收。一些移动电源(电池模块)使用 DC/DC 降压转换器。
  • 远离或关闭靠近无线电接收器的电子灯,因为这些灯也会产生很大的干扰。最好使用采用 LED 技术的灯。同样,尝试将收音机接收器远离计算机和笔记本电脑或膝上型电脑,或在调谐和收听收音机时关闭这些设备。
  • 避免使用任何类型的 D 类音频放大器 (PWM),如 PAM8403 或 TPA3118 等,因为这些电路工作在高频下,会干扰 AM/SW 无线电接收并产生噪声。
  • 短波和中波接收高度依赖于无线电波的传播。有些时候接收效果更好,有些时候接收效果更差。通常在下午晚些时候和晚上,这是接收远处广播电台的最佳时间。

关于 Arduino 产生的数字噪声/干扰的最终考虑:

每个带有微控制器和 I2C/SPI 数据/时钟总线流量的数字电路都会产生一定程度的电磁噪声 (EMI),干扰和扰乱无线电接收,因为它具有传播到各种频率的谐波。

尝试减少此问题的一种方法是在面包板下方放置一块绝缘金属板(钢、铝或铜)并连接到电路的 GND(电池负极),或者将整个电路组装在正确连接的金属盒内到 GND 电路。

您还必须在 TFT 显示器和 Arduino 之间的连接中使用尽可能短的电线。您还应尽可能将 DSP 无线电芯片与 Arduino 保持距离,理想的做法是将 DSP 无线电芯片和 Arduino + 显示器放置在由接地金属板隔开的隔间内。

精心规划的印刷电路板 (PCB) 将数字部分与模拟 RF 部分分开并带有接地层,这将有助于降低噪声。

祝大家集会顺利!胡里奥·塞萨尔。

使用条款:

  • 这是我出于业余爱好而做的免费项目,不是专业项目。我组装供我使用的原型完美运行,但我不能保证您组装的东西一定能正常工作,因为这将取决于您的经验和知识、所用组件的质量/原创性、制造商的可变性和组装错误等因素。我决不对您在该组件中的费用或损坏负责。
  • 这是一个免费项目。本项目的作者保留随时更改、修改或更正硬件和/或软件的权利,恕不另行通知或对已组装的人员承担任何义务。
  • 不要指望这款接收器的性能与专业和商业接收器一样好或更好,这是一个业余家庭项目,旨在让个人满意地在家中设置并看到它在本活动提供的学习之外工作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"//www.hzfubeitong.com/m/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="https://m.elecfans.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'带RDS的LW/MW/SW立体声FM-DSP收音机接收器V2.5',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.hzfubeitong.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);