任何进行自己的汽车调整的人都知道了解发动机速度是多么重要。使用这款转速表,您可以测量发动机速度,无需任何连接或烦人的正时灯。 按如下方式校准设备...
制作便携式 PCM 播放器电路
接线图
2024年02月06日 17:51 184
admin
基本设计是根据上述背景确定的,其主要特点是:
音频格式:未压缩的 LPCM(RIFF WAVE 文件)
存储介质:MicroSD存储卡
显示屏:Grachics OLED
收音机:单芯片FM接收器
电源:嵌入式锂聚合物电池 框图 图 1. 框图
图 1显示了内置 LPCM 播放器的框图。该播放器的有趣功能是用软件驱动音频 DAC。为了实现这一点,采样数据必须以恒定的周期发送到DAC。一些微控制器具有片上IIS接口来输入/输出数字音频数据。然而,该项目中使用的 Atmel AVR 微控制器不具备如此有用的功能,因此必须使用通用 SPI 端口和定时器中断来驱动音频 DAC。
DAC 的模拟输出通过模拟量进行衰减,馈送到缓冲放大器并通过耳机插孔输出。衰减也可以在 DAC(数字衰减)之前完成,但会降低正常音量下的 SNR,因为无论信号电平如何,DAC 生成的噪声电平(热噪声和量化误差)都是恒定的。为了避免这个问题,DAC 采用满量程驱动,并通过 DAC 后衰减器调节音量。
使用锂聚合物电池供电。它是内置于机箱中的,无法轻易更换。当然,板上需要一个电池管理器。锂聚合物电池是一种敏感的化学设备,必须按照正确的设计使用,否则可能会导致冒烟、火灾或爆炸。
128 x 64 图形OLED模块用于显示曲目信息。与通用背光 LCD 模块相比,它非常薄,可以减少移动设备的厚度。然而,由于OLED是自发光器件,因此与反射式LCD模块相比,存在功耗较大的缺点。
照片 2. 主板图 2.电路图
主电路板
电路板分为主板和显示板两部分。照片2和图2显示了组装好的主板。
电池电压由两个 LDO 稳压器分配。数字电源提供给微控制器、存储卡和显示板。模拟电源提供给 DAC 和无线电接收器。两个域的电源分开的原因是为了使模拟电路免受存储卡产生的大噪声的影响。由于同样的原因,缓冲放大器也与模拟电源分离并直接连接到电池。数字电源由按钮开关打开并由微控制器保持。这称为“软件控制电源开关”。这是第一个构建的共同原理。模拟电源仅由微控制器控制。LiPo电池的充电控制由独立于微控制器的充电控制IC BQ2057C完成。
该项目使用 Atmel ATmega644P微控制器,内置 64K 字节闪存和 4K 字节 RAM。3.3V 时的最大时钟速率为 13.3MHz,但我没有合适的晶体,因此使用了 14.745MHz 晶体。这超出了规格 10%,但对于业余爱好使用来说是没有问题的。
大多数音频 DAC 都有一个 8 阶插值滤波器。除了 BCK/LRCK 之外,内置数字滤波器还需要 256、384 或 512fs 过采样时钟 (OCK),因此很难将此类 DAC 与通用串行接口一起使用。当可以生成 OCK 时,DAC 将不接受软件生成的数字音频信号,因为 BCK/LRCK/OCK 之间的相位关系不稳定。我选择的Rohm BU9480F音频 DAC 没有插值滤波器。
DAC 的模拟输出通过音量进行衰减,并通过运算放大器 (BurrBrown OPA2353 ) 进行缓冲。由于电源电压低于4伏,不能使用非RRO类型的普通运算放大器。当任何低压耳机放大器可用时,它比运算放大器更适合用于此目的。该项目还使用耳机线作为 FM 收音机接收器的天线,因此耳机插孔必须使用电感器进行 RF 浮置。 调频收音机接收器已被大大简化。该项目中使用的RDA5800C是集成在4x4mm QFN 封装中的完整 FM 接收器。起初我使用了NS953M FM接收模块,但灵敏度较差,后来我用RDA5800C替换它,并获得了良好的灵敏度。调谐器 IC 的模拟输出在启用时通过寄存器与 DAC 输出连接,在禁用时与 DAC 断开。 3. 显示板图 3.电路图
显示电路板
照片3和图3为显示板。它通过排针堆叠在主板上。板上有一个 OLED 显示模块、一个用于产生 OLED 驱动电压的 DC-DC 转换器、一个 LED 和一个光探测器 (CdS)。光探测器用于控制显示强度以保持最佳可见度,这是大多数移动设备上的常见功能。OLED模组由两块无盖玻璃板组成,厚度仅为1.7毫米。它安装在电路板上。
机壳
该项目使用Takachi PB-1塑料外壳 (75 x 50 x 20mm)。材质为透明聚苯乙烯,钻孔时容易破裂、碎裂,应小心操作。我在外壳内部涂上了导电涂料以形成电磁屏蔽。导电涂料有两种类型。一种是碳基(黑色),另一种是镍基(深灰色)。第二种似乎电阻更小,电磁屏蔽性能更好。聚苯乙烯外壳涂漆时,应分两遍或三遍进行,以免表面溶解。当然,展示窗必须被油漆遮盖。
控制按钮布置在外壳侧面,以防止意外操作。按钮开关有两种安装方法,如图4和图5所示。
软件
DAC 控制
软件 DAC 控制是该项目的主要特点。采样时钟(LRCK)由TC1 的PWM 功能产生。音频数据通过配置为 SPI 模式的 USART1 发送。当 LRCK 为低电平时,左侧样本被发送到 DAC,反之亦然。LRCK 的两个边沿上产生两个独立的中断,每个 ISR 从数据 FIFO 中读取音频数据,混合蜂鸣声(如果是声音)并将其发送到 USART1。这些后台进程在 48kHz 采样率下占用约 4MHz 的 CPU 功率。主进程的剩余处理能力约为11MHz。一些CPU寄存器是为后台进程保留的,因此必须在所有模块中声明它。
音频播放器
当按下“播放”按钮时,数字电源打开,微控制器开始工作。如果上次断电后卡尚未更换,则会从中断的曲目顶部开始播放。音频文件(曲目)存储在根目录下的子目录(专辑)中。专辑数量最多为 20 张,每张专辑的曲目数量最多为 99 首。专辑和曲目按文件/目录名称排序。如果专辑中存在播放列表(.m3u/.wpl 文件),则遵循列表顺序。
播放时按“播放”按钮可切换暂停/播放状态。NEXT 按钮跳转到下一首曲目,如果到达最后一首曲目,则返回到第一首曲目。按住NEXT按钮0.7秒,跳出专辑并进入下一张专辑。PREV 按钮可跳转到当前曲目的顶部,双击可跳转上一曲目。
在播放过程中,主进程必须从存储卡中读取音频数据并将其存储到音频FIFO中。长时间中断可能会导致 FIFO 欠载。任何其他进程,例如用户命令和显示控制,都会在 FIFO 已满时执行。
无线电接收器
PCM 播放器和 FM 收音机接收器这两种功能可通过长按 STOP 按钮进行切换。收音模式下,通过PREV/NEXT按钮调谐接收频率,有两种调谐模式。一种是预设模式,另一种是自由调谐模式。调音模式通过 PLAY 按钮切换。预设频道可通过存储卡上的设置文件进行更改。当它被更改时,它被读取并复制到 EEPROM 中。
PCM 播放器具有 128 x 64 点图形 OLED 模块。它还可以显示汉字字体。然而,汉字字体的数据量非常大,无法包含在程序代码中。汉字字体存储在存储卡中,该存储卡具有无限的空间用于存储字体数据。如果由于任何原因无法读取字体数据,则会显示白色块。
照片 4显示了显示屏上的布局。专辑名称(目录名称)显示在其LFN中。艺术家和标题是从 wav 文件中的 INFO 块中获取的。如果没有 INFO 块,则显示文件名。要使用在代码页 932 (SJIS) 中启用 LFN 的 FatFs,FatFs 模块本身至少需要 64K 字节程序存储器。我通过使用一些技巧减小代码转换表的大小解决了这个问题。
字体图像按比例间距绘制,可增加字符密度约20%。显示亮度由环境光控制。当处于口袋或包等黑暗地方时,OLED 显示屏会关闭以减少功耗,但在换轨或任何按钮上会亮起。
当播放器处于关闭状态时,微控制器在充电时通电,并且 LED 缓慢闪烁以指示正在充电。
音频格式:未压缩的 LPCM(RIFF WAVE 文件)
存储介质:MicroSD存储卡
显示屏:Grachics OLED
收音机:单芯片FM接收器
电源:嵌入式锂聚合物电池 框图 图 1. 框图
图 1显示了内置 LPCM 播放器的框图。该播放器的有趣功能是用软件驱动音频 DAC。为了实现这一点,采样数据必须以恒定的周期发送到DAC。一些微控制器具有片上IIS接口来输入/输出数字音频数据。然而,该项目中使用的 Atmel AVR 微控制器不具备如此有用的功能,因此必须使用通用 SPI 端口和定时器中断来驱动音频 DAC。
DAC 的模拟输出通过模拟量进行衰减,馈送到缓冲放大器并通过耳机插孔输出。衰减也可以在 DAC(数字衰减)之前完成,但会降低正常音量下的 SNR,因为无论信号电平如何,DAC 生成的噪声电平(热噪声和量化误差)都是恒定的。为了避免这个问题,DAC 采用满量程驱动,并通过 DAC 后衰减器调节音量。
使用锂聚合物电池供电。它是内置于机箱中的,无法轻易更换。当然,板上需要一个电池管理器。锂聚合物电池是一种敏感的化学设备,必须按照正确的设计使用,否则可能会导致冒烟、火灾或爆炸。
128 x 64 图形OLED模块用于显示曲目信息。与通用背光 LCD 模块相比,它非常薄,可以减少移动设备的厚度。然而,由于OLED是自发光器件,因此与反射式LCD模块相比,存在功耗较大的缺点。
照片 2. 主板图 2.电路图
主电路板
电路板分为主板和显示板两部分。照片2和图2显示了组装好的主板。
电池电压由两个 LDO 稳压器分配。数字电源提供给微控制器、存储卡和显示板。模拟电源提供给 DAC 和无线电接收器。两个域的电源分开的原因是为了使模拟电路免受存储卡产生的大噪声的影响。由于同样的原因,缓冲放大器也与模拟电源分离并直接连接到电池。数字电源由按钮开关打开并由微控制器保持。这称为“软件控制电源开关”。这是第一个构建的共同原理。模拟电源仅由微控制器控制。LiPo电池的充电控制由独立于微控制器的充电控制IC BQ2057C完成。
该项目使用 Atmel ATmega644P微控制器,内置 64K 字节闪存和 4K 字节 RAM。3.3V 时的最大时钟速率为 13.3MHz,但我没有合适的晶体,因此使用了 14.745MHz 晶体。这超出了规格 10%,但对于业余爱好使用来说是没有问题的。
大多数音频 DAC 都有一个 8 阶插值滤波器。除了 BCK/LRCK 之外,内置数字滤波器还需要 256、384 或 512fs 过采样时钟 (OCK),因此很难将此类 DAC 与通用串行接口一起使用。当可以生成 OCK 时,DAC 将不接受软件生成的数字音频信号,因为 BCK/LRCK/OCK 之间的相位关系不稳定。我选择的Rohm BU9480F音频 DAC 没有插值滤波器。
DAC 的模拟输出通过音量进行衰减,并通过运算放大器 (BurrBrown OPA2353 ) 进行缓冲。由于电源电压低于4伏,不能使用非RRO类型的普通运算放大器。当任何低压耳机放大器可用时,它比运算放大器更适合用于此目的。该项目还使用耳机线作为 FM 收音机接收器的天线,因此耳机插孔必须使用电感器进行 RF 浮置。 调频收音机接收器已被大大简化。该项目中使用的RDA5800C是集成在4x4mm QFN 封装中的完整 FM 接收器。起初我使用了NS953M FM接收模块,但灵敏度较差,后来我用RDA5800C替换它,并获得了良好的灵敏度。调谐器 IC 的模拟输出在启用时通过寄存器与 DAC 输出连接,在禁用时与 DAC 断开。 3. 显示板图 3.电路图
显示电路板
照片3和图3为显示板。它通过排针堆叠在主板上。板上有一个 OLED 显示模块、一个用于产生 OLED 驱动电压的 DC-DC 转换器、一个 LED 和一个光探测器 (CdS)。光探测器用于控制显示强度以保持最佳可见度,这是大多数移动设备上的常见功能。OLED模组由两块无盖玻璃板组成,厚度仅为1.7毫米。它安装在电路板上。
机壳
该项目使用Takachi PB-1塑料外壳 (75 x 50 x 20mm)。材质为透明聚苯乙烯,钻孔时容易破裂、碎裂,应小心操作。我在外壳内部涂上了导电涂料以形成电磁屏蔽。导电涂料有两种类型。一种是碳基(黑色),另一种是镍基(深灰色)。第二种似乎电阻更小,电磁屏蔽性能更好。聚苯乙烯外壳涂漆时,应分两遍或三遍进行,以免表面溶解。当然,展示窗必须被油漆遮盖。
控制按钮布置在外壳侧面,以防止意外操作。按钮开关有两种安装方法,如图4和图5所示。
软件
DAC 控制
软件 DAC 控制是该项目的主要特点。采样时钟(LRCK)由TC1 的PWM 功能产生。音频数据通过配置为 SPI 模式的 USART1 发送。当 LRCK 为低电平时,左侧样本被发送到 DAC,反之亦然。LRCK 的两个边沿上产生两个独立的中断,每个 ISR 从数据 FIFO 中读取音频数据,混合蜂鸣声(如果是声音)并将其发送到 USART1。这些后台进程在 48kHz 采样率下占用约 4MHz 的 CPU 功率。主进程的剩余处理能力约为11MHz。一些CPU寄存器是为后台进程保留的,因此必须在所有模块中声明它。
音频播放器
当按下“播放”按钮时,数字电源打开,微控制器开始工作。如果上次断电后卡尚未更换,则会从中断的曲目顶部开始播放。音频文件(曲目)存储在根目录下的子目录(专辑)中。专辑数量最多为 20 张,每张专辑的曲目数量最多为 99 首。专辑和曲目按文件/目录名称排序。如果专辑中存在播放列表(.m3u/.wpl 文件),则遵循列表顺序。
播放时按“播放”按钮可切换暂停/播放状态。NEXT 按钮跳转到下一首曲目,如果到达最后一首曲目,则返回到第一首曲目。按住NEXT按钮0.7秒,跳出专辑并进入下一张专辑。PREV 按钮可跳转到当前曲目的顶部,双击可跳转上一曲目。
在播放过程中,主进程必须从存储卡中读取音频数据并将其存储到音频FIFO中。长时间中断可能会导致 FIFO 欠载。任何其他进程,例如用户命令和显示控制,都会在 FIFO 已满时执行。
无线电接收器
PCM 播放器和 FM 收音机接收器这两种功能可通过长按 STOP 按钮进行切换。收音模式下,通过PREV/NEXT按钮调谐接收频率,有两种调谐模式。一种是预设模式,另一种是自由调谐模式。调音模式通过 PLAY 按钮切换。预设频道可通过存储卡上的设置文件进行更改。当它被更改时,它被读取并复制到 EEPROM 中。
PCM 播放器具有 128 x 64 点图形 OLED 模块。它还可以显示汉字字体。然而,汉字字体的数据量非常大,无法包含在程序代码中。汉字字体存储在存储卡中,该存储卡具有无限的空间用于存储字体数据。如果由于任何原因无法读取字体数据,则会显示白色块。
照片 4显示了显示屏上的布局。专辑名称(目录名称)显示在其LFN中。艺术家和标题是从 wav 文件中的 INFO 块中获取的。如果没有 INFO 块,则显示文件名。要使用在代码页 932 (SJIS) 中启用 LFN 的 FatFs,FatFs 模块本身至少需要 64K 字节程序存储器。我通过使用一些技巧减小代码转换表的大小解决了这个问题。
字体图像按比例间距绘制,可增加字符密度约20%。显示亮度由环境光控制。当处于口袋或包等黑暗地方时,OLED 显示屏会关闭以减少功耗,但在换轨或任何按钮上会亮起。
当播放器处于关闭状态时,微控制器在充电时通电,并且 LED 缓慢闪烁以指示正在充电。
相关文章
发表评论