This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430F5359:音频硬件中的喀哒声和噼啪声

Guru**** 2553450 points
Other Parts Discussed in Thread: LM4951A

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/763591/ccs-msp430f5359-click-and-pop-sound-in-audio-hardware

器件型号:MSP430F5359
主题中讨论的其他器件:LM4951A

工具/软件:Code Composer Studio

您好!  

我正在使用音频 PWM 进行语音输出。 为此、我压缩了声音信号并将其存储在闪存中。 存储的语音没有任何喀哒声和噼啪声、但硬件会在音频中产生喀哒声和噼啪声。 我在 具有低通滤波器的声音电路中使用 LM4951A、如下所示。 Rf=20欧姆。 我该怎么做才能去除硬件中的喀哒声和噼啪声?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kary、
    如果我正确理解您的设置说明、您将使用其中一个16位计时器生成 PWM 信号、以将存储的音频数据转换为音频功率放大器的输入信号。
    如果是这种情况、发出咔嗒声和噼啪声的一个可能原因可能是更新了计时器 PWM/CCR 寄存器值。 PWM 与主动 PWM 期间的 CCR 更新相比不安全。 比较逻辑可能会在更新时触发、因为它会持续比较 CCRx 内容与计时器值。 由于写入过程具有特定的延迟、并且并非所有位都能立即无延迟地立即转换、因此比较结果可能错误、这当然会导致生成的 PWM 信号出现错误。
    与写入 CCRx 相比、安全更新序列更复杂。 您需要等待、例如溢出、切换到模式0来冻结 PWM 状态、其中 OUT 位定义 PWM 状态、更新 CCRx、并且仅在 CCRx 比较时重新激活 PWM 之后。

    此致、
    Peter
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    下面是我的反激式计时器 B 配置: 


    /*设置 Timer0_A 以进行回放*/ //使用 SMCLK 作为 Timer0_A 源,启用溢出中断 TBCTL = TBSSEL_2 + TBIE; //设置输出分辨率(8位。 为加载 TBCCR1添加10个余量计数 TBCCR0 = 255; TBCCR4 = 255 >> 1; //默认输出~Vcc/2 //在 EQU1上复位 OUT1、在 EQU0上置1。 当 TBR 计数至0时载入 TBCCR1。 TBCCTL4 = OUTMOD_7 + CLLD_1; //在增模式中启动 Timer_B (计数到 TBCCR0) TBCTL |= MC0; //在 DMA 回放期间激活 LPM,在完成时唤醒 _bis_SR_register (LPM0_bits + GIE); //启用中断,进入 LPM0 __no_operation(); //关闭 MSP430模块 TBCTL = 0; //禁用 Timer_B PWM 生成

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我使用 DAC12时、仍然有噗声和嘀哒声。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kary、
    我不确定我是否正确理解您的回复。
    1、定时器相关代码的代码片段:这是否意味着、即使您只是将定时器 PWM 配置为一个稳定值、您仍然可以听到咔嗒声和噼啪声?
    如果是这种情况、我们需要进一步深入研究 PWM 信号。 必须有可闻效应的原因、这意味着您必须能够使用示波器在 PWM 信号中检测到它。 如果您在 PWM 信号中发现这些错误、则应尝试找出这些错误的来源。 PWM 自动生成。 只要定时器的设置没有改变并且定时器的时钟源稳定、PWM 就不应该发生改变。 因此、还要检查时钟源。
    在您的代码示例中、您还将启用计时器中断。 目的是什么? 对于 PWM 生成、不需要中断。
    2.您在以下帖子中指出、即使使用 DAC、您也会听到喀哒声和噼啪声。 如果在使用稳定的 DAC 设置时确实出现这种情况、 那么、您的代码会出现问题、就像 DAC 一样、即使 DAC 更新的时钟会偏离、只要 DAC 输出电平的设置相同、信号中就不应有噪声。

    但我建议一个问题一个一个、一个不能同时打开多个施工区。 因此、请按照上面的建议对基于计时器的 PWM 执行检查、并告诉我您的发现。 非常感谢。

    此致
    Peter
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kary、
    您能告诉我您这边的状态吗? 您是否仍然需要有关此方面的支持、或者您是否能够解决此问题?

    此致
    Peter