当前位置: 首页 > news >正文

自制便携收音机

--- markdown说明
title: 便携收音机
date: 2022/10/7 02:51:25
cover: true
mathjax: false
summary: 收音机,功放,触摸屏。
categories: Project
tags:

  • 小项目
  • 嵌入式

补档声明

由于我的博客服务器和备案到期,所以选择转移到博客园平台来进行保存和记录。以后也有可能会在上面不定期更新一些技术类博客。

成品照片

写在前面

这个的项目算是我个人的一个从小就有的小想法,拜托,自己做出个能听各种广播的收音机超酷的好不好,特别是当它只有巴掌大小。得益于现在电子集成技术的发展,个人DIY一个小收音机不再是什么难事,于是找了段时间做出了这个作品。最后实现出的效果也很不错,能搜到十几个台,音质也非常不错,能听音乐广播电台。在这过程中认识了一位志同道合的朋友,在项目启动和完成的过程中给了我很多鼓励和灵感。在此特别感谢Lancen

初步构思

  • 既然是收音机,就需要能接收并解调FM或AM广播信号,市面上有很多成熟的解决方案(不会真有人用分立元件搭吧 ,手动狗头)
  • 初步设想是选用集成式收音机芯片,如SI4735或者RDA5820之类的。它们一般是SPI协议控制,所以需要相应的STM32主控来控制
  • 收音机的天线选用拉杆天线,SMA接口,方便板载。信号增益能力也不错。
  • 当然也还需要一个功放芯片和喇叭,将解调后的声音信号输出。
  • 还需要几个按钮来换台或者调节音量,以及一块屏幕显示当前的频道和音量。
  • 最后是必不可少的电池供电和电源管理

收音机系统框图

选型与设计

这一节我会从系统的每个部件的所要满足的条件出发,环环相扣,完成每一个器件的选型。

收音机芯片SI4735

当年市面上有很多集成收音机芯片,现在随着网络收音机和移动多媒体的流行,实体收音机逐渐式微。
不过也留下了一些诸如SI47XX,GS1299,RDA5820,CXA1691之类的经久不衰的芯片。
收音机芯片的参数主要看的是搜台能力(能否尽可能多的搜到台),灵敏度(决定信号质量),波段(不同的国家和地图使用的波段不同),种类(AM,FM,SW)
我这里使用的是SI4735,支持的波段很多,收音质量好,快速搜台,FM双声道播放,自动增益控制等(其实还能收SSB,但是需要一些特殊的方法)

SI4735简介

应用电路图

主控STM32G431
这个没啥好说的,手头上有啥用啥,其实用G431有些浪费,主频170MHz,ADC和DAC齐全,在这里可以用L051或者G070,更低功耗,也能满足它的要求,毕竟只是个SPI通信和按键的处理。
G431商品页

功放芯片TC8002D
只需要驱动个小喇叭,对音质和功率没什么需求,所以不需要太好的功放芯片。
所以选用了国产的TC8002D,是对TI的LM3471的复刻,电路图简单,只需要很少的外围器件就能工作。
运放商品页
功放电路图,控制R20/R15的比值,就能控制音量的大小,比值越大的话音量越大。
A=2*(R20/R15),一般选择输入阻抗R15为20K,通过控制R20的大小来控制音量
运放应用电路

拉杆天线
一般的拉杆天线就好,控制好长度,接头为SMA头,便于于板子连接
拉杆天线页面

其他

按键:为了追求稍微好一点的手感,我使用了硅胶按键。
硅胶按键
触摸屏:屏幕驱动ST7735(内置),触摸功能需要加上XTP2046
触摸屏
锂电池充电:TP4056,经典方案,具体参考我之前的博客

控制板PCB

原理图绘制

原理图参考网上的资料,主要是SI4735以及触摸屏的外围电路,照着Datasheet画就行了,其他的都非常简单
整体原理图

PCB绘制

注意信号通路,如SMA天线到芯片这一段要尽量短,以及芯片输出的解调信号到功放的这一段要做好保护。
晶振要靠近管脚且大致等长。有些一看就是大电流的的线路要加粗,比如功放的输出。
去耦电容靠近芯片脚。
2D预览

3D预览

焊接与组装

第一次尝试下SMT订单,让嘉立创帮忙贴好阻容。免去了自己焊接那么多电阻电容,只需要焊接一些比较贵的芯片和接插件。安装也很简单,只需要焊接上SMA座,然后把拉杆天线接上去。以及焊好电池、喇叭就好

致命问题:

这个板子我画了两版,第一版好好的,一次焊接,下载成功。第二版加上了触摸屏和优化了一些布局,但是不知道为什么,第二版就是无法直接在Keil里下载,即使在Debug显示了芯片序号。点击下载后显示的错误是Could stop Cortex-M device。我调试了很久,把芯片吹了又焊,很长时间都找不出原因(感谢Lancen一直在旁边看着这一切迷惑操作)。我在调试的时候灵机一动,按住了单片机的Reset,再点击下载,竟然直接就下载成功了。
后来思考了一下,可能是Reset管脚与GND管脚短接了或者boot0未正常接地,前者是很有可能因为用热风枪对着复位按键附近吹了过久造成了击穿。后者可能是因为出厂时禁用了Sys-Debug,于是无法通过STLink下载。而按下Reset相当于拉高了boot0连接到的GND电压,使得boot0拉高,进入了从内部存储器启动的模式,此时就可以通过STlink下载。

代码编写

  • SI4735的驱动没啥好讲的,都是通过SPI驱动的

SI4735驱动.zip

打包好的工程文件

PortableRadio.zip

一些照片

初版PCB

初版成品

第二版PCB

http://www.jsqmd.com/news/393011/

相关文章:

  • 简单做个双轮平衡车
  • AI Agent的因果推理能力构建
  • RabbitMQ消息持久化:保障大数据处理不丢数据的秘诀
  • ZeroClaw性能逆天!或是OpenClaw最佳替代
  • 【毕业设计】SpringBoot+Vue+MySQL 社团服务系统平台源码+数据库+论文+部署文档
  • Qwen-Ranker Pro开发入门:Python API调用全指南
  • 基于SpringBoot+Vue的无人超市管理系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • 3D Face HRN惊艳效果:单张侧脸图重建出完整3D人脸并支持360°旋转查看
  • 春联生成模型在Linux环境下的部署与性能优化
  • Qwen3-ForcedAligner-0.6B实现语音文本精准对齐:基于人工智能的实战教程
  • Lychee-rerank-mm跨平台开发:Windows与Linux部署对比
  • GLM-4-9B-Chat-1M微调教程:基于PEFT的长文本领域适配
  • Doris与Flink集成:构建实时大数据处理流水线
  • BiliRoamingX深度探究:突破视频播放限制的开源解决方案
  • FLUX.1文生图模型部署教程:从零开始到生成第一张图
  • 万象熔炉 | Anything XL参数详解:FP16精度对生成速度与画质权衡
  • 必知要点!提示工程架构师的AI提示设计数据驱动方法
  • 快速部署Qwen3-ForcedAligner:搭建个人语音处理平台
  • 零基础入门:手把手教你使用Meixiong Niannian画图引擎生成高清图像
  • 自然语言生成在AI原生应用中的未来发展趋势
  • Qwen3-ASR-1.7B流式推理指南:低延迟实时语音处理
  • EcomGPT-7B在电商推荐系统中的应用:CNN算法优化实战
  • 遥感图像拼接中的自动旋转配准算法
  • FaceRecon-3D与OpenCV结合的实时AR应用开发
  • 使用VMware虚拟化环境部署InstructPix2Pix集群
  • ofa_image-caption从部署到运维:Prometheus+Grafana监控GPU推理指标
  • GTE模型在Win11环境下的部署与性能测试
  • Nano-Banana模型压缩:量化与剪枝技术实战
  • 自制NFC小卡片
  • 图片旋转判断在在线教育平台的应用