audio - How do I play an MP3 file from Polaris NB IoT board to MP3Click with VS1053 decoding chip using Python? - Stack Overflow

I have a Polaris NB IoT board on which I have an SD card that contains an MP3 file. I am trying to play

I have a Polaris NB IoT board on which I have an SD card that contains an MP3 file. I am trying to play said file on an MP3Click using SPI communication. I am using Python to code my board. I am able to write to the MP3 Click using this function and can read the data I send from a similar function.

def write_register(register, value):
    
    high_byte = (value >> 8) & 0xFF
    
    spi.select()
    low_byte = value & 0xFF
    spi.write(bytearray([SCI_WRITE, register, high_byte, low_byte]))
    spi.unselect() 

However when I try to write my byte data from my MP3 file there is no sound being played. I am certain the MP3 file has data. I have a suspicion it is because the GPIO1 pin of my chip is not pulled low, making it act as a midi synthesizer as explained in .php?f=10&t=58 but from the datasheet .pdf I cannot figure out how I could do this with the exposure I have using the MP3Click...


DREQ_PIN = D0  # Data request pin
pinMode(DREQ_PIN,INPUT_PULLUP)
RESET_PIN = D1  # Reset pin

SCI_MODE = 0x00
SCI_STATUS = 0x01
SCI_WRITE = 0x02
SCI_READ = 0x03

SCI_WRAM = 0x06
SCI_WRAMADDR = 0x07
SCI_HDAT0 = 0x08
SCI_HDAT1 = 0x09
SCI_VOL = 0x0B

SM_STREAM = 0x200
SM_RESET = 0x2000

spiData = spi.Spi(D7, clock=1000000)
spi = spi.Spi(D2, clock=1000000)

def vs1053_init():
    """Initialize the VS1053 chip for MP3 playback"""
    pinMode(RESET_PIN, OUTPUT)
    digitalWrite(RESET_PIN, LOW)
    sleep(50)
    digitalWrite(RESET_PIN, HIGH)
    sleep(50)
    soft_reset_vs1053()
    
    while digitalRead(DREQ_PIN) == LOW:
        sleep(10)  # Wait until DREQ is high
    print("SCI_MODE: ", read_register(SCI_MODE))
    print("SCI_STATUS: ", read_register(SCI_STATUS))
    
    write_register(SCI_MODE, 0x2B2)  # Set the mode to MP3 decoder mode
    while digitalRead(DREQ_PIN) == LOW:
        sleep(10)  # Wait until DREQ is high
        
    write_register(SCI_VOL, 0x0000)
    print("VS1053 Initialized")
    sleep(100)
    print("SCI_MODE: ", read_register(SCI_MODE))
    print("SCI_STATUS: ", read_register(SCI_STATUS))

def send_mp3_data(register, data):
    while digitalRead(DREQ_PIN) == LOW:
        sleep(10)
    spiData.select()
    writeData = bytearray([register]) + data
    spiData.write(writeData)
    spiData.unselect()

def play_mp3(filename):
    mp3_file = os.open(filename, 'rb+')
    while True:
        # Wait for DREQ to go high
        while digitalRead(DREQ_PIN) == LOW:
            soft_reset_vs1053()
            sleep(10)
        
        data = mp3_file.read(32)
        if not data:
            print("EOF")
            break  # End of file
        # Send the data chunk to VS1053B
        send_mp3_data(SCI_WRITE,data)
    print("Playback finished")

I have tried plugging both a wired in ear headset into the headphone jack and an amplifier connected to a speaker. The in ear headset makes no noise at all while the speaker is constantly buzzing loudly, also while no data is being sent. I am unable to attach images but the layout of my board can be found at .4.0/official/board.zerynth.polaris_nbiot/docs/index.html. The MP3 Click is inserted into the micro bus of the board.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745621181a4636524.html

相关推荐

  • 精品网络时代:联通AS9929与10099的强强联合

    中国联通的网络架构犹如一座精心设计的立交桥系统,由AS4837、AS9929和AS10099三张骨干网共同构建。这三张网络各司其职又相互配合,形成了联通独具特色的网络服务体系。联通AS4837、AS9929和AS10099线路介绍一、线路组

    1小时前
    20
  • windows 配置 upx

    ​1、下载:2、解压:解压后​3、配置环境变量,右键我的电脑-——》属性——》高级属性:在Path中添加: D:ProgramFileupx-5.0.0-win644、验证cmd中输入:代码语言:txt复制upx --version

    1小时前
    20
  • 谷歌云第三方SSH工具登录与一键重装系统

    一,设置 root 密码 先选择从浏览器打开 ssh 连接服务器切换到 root 账号,输入代码:sudo -i设置 root 密码,输入代码&

    1小时前
    00
  • 流固耦合:基本概念、适用软件及 Abaqus 与 Powerflow 的协同仿真

    在工程和科学研究的诸多领域,流固耦合现象广泛存在且对系统性能有着关键影响。理解流固耦合的本质及其应用,对于优化设计、保障安全运行意义重大。同时,借助专业的流固耦合软件,能够更高效地对相关问题进行分析与模拟。接下来,让我们深入探究流固耦合的奥

    1小时前
    00
  • AI驱动的幼儿跌倒检测——视频安全系统的技术解析

    幼儿跌倒检测系统利用AI视频技术,结合人体姿态识别和实时报警功能,提供了一种智能化解决方案。本文将深入剖析其技术架构、模块实现与应用场景,探讨开源技术如何提升幼儿园安全管理。技术架构与实现项目背景幼儿在活动区域(如教室、操场)易发生跌倒,需

    1小时前
    00
  • MySQL 8.4 配置SSL组复制(八个步骤)

    环境这里有三台MySQL主机,分别是192.168.3.71,72,73,主机名分别对应71.3_mgr1,72.3_mgr2,73.3_mgr3,操作系统均为Oracle Linux 8.10 X64,MySQL版本均为MySQL 8.4

    1小时前
    00
  • MySQL8使用物理文件恢复MyISAM表测试

    我们现场测试一个场景,drop一张MyISAM表后,单独对这表进行物理恢复首先我们看一下secure_file_priv文件目录的位置代码语言:javascript代码运行次数:0运行复制mysql> show global vari

    1小时前
    00
  • Oracle linux 8 二进制安装 MySQL 8.4企业版

    使用命令ldd --version ldd 检查,确定MySQL 8二进制包版本代码语言:javascript代码运行次数:0运行复制[root@mysql8_3 ~]# ldd --version ldd安装libaio代码语言:java

    1小时前
    00
  • AI生态暗战升级,科技巨头铁幕下的终极博弈

    一场围绕AI与智能体的标准、协议及生态的暗战已然蓄势待发。在美剧《权力的游戏》中,不到终局,主角归属始终成谜。如今的AI行业,正上演着同样扣人心弦的戏码。这并非是传统意义上的军事或政治博弈,而是一场围绕AI与智能体的标准、协议及生态展开的暗

    1小时前
    00
  • 电脑密码在哪里设置win11,win11电脑开机密码怎么设置

    Win11系统由于许多设置和以前系统不一样了,所以很多用户们操作非常不习惯,有很多的小伙伴不知道win11系统怎么设置开机密码。给电脑设置密码,只有自己能打开进入系统桌面&a

    51分钟前
    00
  • 电脑开机会默认一件GHOST

    关于电脑开机会自己重装系统 前段时间电脑一开机就遇到会自己ghost的问题,而且一直再重复同样的操作,我点击restart的时候到开启页面又会自动ghost,而且此页面停留

    36分钟前
    00
  • Prometheus配置docker采集器

    Prometheus 配置 Docker 采集器Prometheus 是一个开源的监控系统和时间序列数据库,广泛用于容器化环境中。通过监控 Docker 容器,用户可以实时获取服务性能、资源使用情况等信息。本文将介绍如何为 Docker 容

    28分钟前
    00
  • 如何快速判断 Flutter 库是否需要适配鸿蒙?纯 Dart 库无需适配!

    在鸿蒙开发中,选择合适的 Flutter 库至关重要。纯 Dart 库因其跨平台特性,无需适配即可直接使用。但对于新手来说,如何判断一个库是否为纯 Dart 库呢?本文将为你提供清晰的判断方法和实用技巧。一、检查 pubspec.yaml

    20分钟前
    00
  • 3、win10重装系统后Mysql环境和数据的恢复

    因为电脑是机哥的原因,重装了好几次电脑,因为我习惯把软件都装在D盘。所以很多东西都还比较好恢复,在网上学会了怎么不卸载重装数据库,自己记录以备后面自己查

    19分钟前
    00
  • CUT&Tag 数据处理和分析教程(7)

    过滤某些项目可能需要对比对质量分数进行更严格的过滤。本文细讨论了bowtie如何分配质量分数,并举例说明。MAPQ(x) = -10 * log10log10(P(x is mapped wrongly)) = -10 * log10(p)

    17分钟前
    10
  • 推荐一个轻量级的监控平台并且支持移动端

    简介XUGOU 是基于Cloudflare构建的轻量化监控平台,专精于系统资源监控与可视化状态页面服务。该平台提供英文简体中文双语支持,满足全球化部署需求。面向开发者及中小团队,项目致力于提供高可用性的监控解决方案。核心功能与实现平台功能

    10分钟前
    00
  • module 'torch.

    踩坑Ascend, 安装 pytorch 2.5.1 和 pytorch_npu 2.5.1, import torch 报错.执行 python -c "import torch;import torch_npu;"时

    9分钟前
    10
  • 【Docker项目实战】使用Docker部署IT工具箱Team·IDE

    一、Team·IDE介绍1.1 Team·IDE简介Team IDE 是一款集成多种数据库(如 MySQL、Oracle、金仓、达梦、神通等)与分布式系统组件(如 Redis、Zookeeper、Kafka、Elasticsearch)管理

    7分钟前
    00
  • 重装系统只影响C盘吗?深入解析系统重装的全过程

    重装系统只影响C盘吗?深入解析系统重装的全过程 在计算机的日常使用中,重装系统是一个常见的操作,尤其是在系统出现故障、感染病毒或需要优化系统性能时。然而,许多用户对于重装系统的具体过程和影响存在误解,认为重装系统仅仅是对C盘进行清空和重置

    7分钟前
    00
  • maxwell遇到的一则问题

    结论和原因maxwell的元数据库里面没有存储全部的schema数据(就是少数据了),导致相关表的DDL校验失败。PS:我这里maxwell的作用只是采集库表修改情况的统计粗粒度指标,因为之前maxwell在运行报错的时候,直接修改了pos

    2分钟前
    00

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信