事情的起源是首先得感谢坛友 @cushion 给的大榴莲包裹。
大榴莲其中有的五菱车机,拆开后发现一枚数字收音机芯片
silicon labs(芯科)家的Si4730-D60芯片
这颗芯片支持AM(520–1710 kHz)和FM(64–108 MHz)。看到他想玩的主要原因就是这货外围极其简单;
天线部分没有复杂的滤波等等电路,天线过来,一颗电容就能进芯片;
型号加入芯片以后先过LNA(低噪放)和AGC(自动增益控制,用于控制低噪放的增益)放大信号,然后过AFC(自动频率控制)、VOC(压控振荡器)和混频器,滤波,接着就直接进ADC(将信号进行数字化)了,剩下的就是DSP(数字信号处理)的事情。处理后输出的信号接DAC和低通滤波器就可以输出广播音乐了~~当然这一堆都是在芯片内部一片集成实现的 ,实际使用起来就是单片机配置芯片的寄存器,然后听广播就行。这也是数字技术给带来的便利
而且据说数字收音机效果蛮好的,以前没玩过,就像玩玩看看。
原装车机板子上这这货外围相当简单
拉近了看型号4730D60
拆掉芯片分别跑线路
结果发现没啥线路
画原理图。这次的东西有点多,看着复杂
收音机芯片和音频输出部分的低通滤波还有耳放
左边是用74hc595驱动彩屏(因为stm8引脚不够用)
右边是耳机插座
画好PCB
考虑综合屏幕和锂电池占用的地方。设计的板子大小是42mm*36mm
因为东西紧凑,好多线都是没走通的。整个板子需要飞线12根,恐怖吧?
图上白色虚线就是没走通的线
打印出来看看效果不赖
感光
腐蚀。因为中间有事突然出去了一下,回来发现腐蚀过头了
大概断了7-8根线。再做一次又嫌麻烦。只好硬着头皮继续。这次要飞20+根线了
准备器材元件开工
左到右 耳机座 pos电池 96*96小彩屏 74hc595 si4730 stm8 开关按钮
什么的绿色板子上是在某论坛商家买电子垃圾的时候顺手带的几片的废板,整个耳放电路元件全部拆自这板
先焊单片机stm8和595
放大了图来看,一堆飞线。还好大部分都是从芯片肚子下面过,不怎么太影响美观
点亮屏幕,一次成功。有了继续做下去的动力。讲道理当时写好屏幕驱动程序下载前就在想。要是gg了,就去打PCB,不玩这破板了
还好这货蛮给面子的
焊接收音机和耳放部分电路
除了调试IIC费了点时间(硬件IIC弄了两个小时还是搞不定。一气之下换了软件IIC)
后面的部分也是一次成功。插上耳机就有清晰的广播了
调试状态的各种乱七八糟,飞线横行
开始折腾界面
这是开机界面
在开机界面,输出音量会渐渐增大
这是一开始的台频率显示界面
吧整个电路焊接完
剩下的东西主要是电源管理部分
图上正在测试 给怀孕的pos电池充电。成功吧电池给从怀孕充到漏液
还没洗板的样子
这张能看清芯片mark
为了看起来不空 界面上增加两条信息
SNR是信噪比
RSSI是接收的信号强度
完成装配,屏幕翻贴到背面
后来换了个电池,绿色那个线太硬,不贴板
然后用热熔胶简单加固个部分
现在显示的是低电量,电池变红(低于3.3V将强制关机)
正常电量
充电中
充电满不满主要还是得看背面的提示灯。毕竟没弄复杂的电量算法
充电电流设定40-50ma。LTC4054充电芯片 电流设定脚用20K
程序方面
前前后后写了一两个星期、
全寄存器实现,这次只有非常少量的汇编,99.9%都是C
写了一堆子功能
最佳优化编译后主程序大小5670+1952=7622=7.5K
差不多块吧8k空间占满了。主要是字库占用空间比较多,用了1.7k的样子
后期如果要加功能,就只能吧部分字库移动到EEPROM里面,最多还能腾出1K左右的空间
配置头文件负责配置整体的功能
刷屏部分用了部分汇编+硬件SPI来实现。目的是为了减小拉窗帘的效应
刷屏部分还有个更极端的方法是不等待spi的状态位,靠精确延时来实现最紧密的时序。不过这个方法虽然快但是不太稳定。
主要问题是stm8流水线不对齐取值延时的问题造成的,造成的结果就是一次编译能对,下一次加了一堆程序后,这段代码位置发送了变化,屏幕显示又不对了。所以最终没采用这个方法。
刷屏效果测试。spi速度均为8M;如果用保守方法实现,刷一个任意颜色全屏需要30+ms,如果用激进方法实现,只需要18-19ms。50hz多的刷新速度,应该是看不到拉窗帘了~~
按键操作方法:
上键负责调台(频率增加和音量增加),下键负责调台(频率减小和音量减小)
中间短按切换是调音量还是频率。
调台使用自动搜台方法,台频率调到头又会折头到另外一头
功耗与休眠:
首先来说,收音机芯片不省电(而且市面上常见几款的收音机芯片,工作电流也在16-28ma之间,所以都差不多)
自身工作功耗20ma
正常运行的时候(亮屏显示)
电流消耗32-36ma左右,随音量高低有不同
耗电大致推算分析(部分来自手册,未实际测量;部分实测)
si4730---------------------------------20ma
stm8(全速运行16m)-------------4ma
耳放静态功耗-------------------------2ma
屏幕背光-------------------------------2ma
屏幕、595、其他乱七八糟-----约1ma
放音-------------------------------约4-8ma
所以设定了屏幕亮5秒自动熄灭,同时mcu加入活跃停机状态,可以用按键唤醒按键唤醒后5s无操作再次休眠
休眠电流24-27ma。100mah的pos电池差不多能听4个小时
电量低于3.3V 关闭所有东西,同时mcu加入停机状态,可以通过插入充电唤醒
后期希望加入的功能:收藏电台频率。不过难度不小,程序空间相当紧张
谢谢观看
相关资料需至原帖中获取:
附件包括:程序源代码、pcb和原理图(使用Altium Designer14)、几段录音效果
百度云盘:提供pcb和原理图(使用Altium Designer14)、几段录音效果、切换台的小视频
注意:PCB仅供参考,如果要制作成品PCB,强烈建议重新画板。双面板走线肯定是不需要飞线的,而且能得到更好的布局规划
最后:不出套件、没有绘制成品pcb的计划
浏览更多精彩内容请登录数码之家网站
技术交流请联系原作者
作者:
本文来源:数码之家
标签: 芯片
②文章观点仅代表原作者本人不代表本站立场,并不完全代表本站赞同其观点和对其真实性负责。
③文章版权归原作者所有,部分转载文章仅为传播更多信息、受益服务用户之目的,如信息标记有误,请联系站长修正。
④本站一律禁止以任何方式发布或转载任何违法违规的相关信息,如发现本站上有涉嫌侵权/违规及任何不妥的内容,请第一时间反馈。发送邮件到 88667178@qq.com,经核实立即修正或删除。