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

生成用于验证 TDM slot 配置的波形

Qidi Huang 2025.11.17


使用逻辑分析仪测量 TDM 的 BCLKFSYNCSDO引脚上的信号,可以验证 TDM slot 配置及输出是否正确。不过,我们不能使用常规正弦波进行测量,而是要使用一种特殊波形。在这种波形上:有信号的 slot 输出 0xAA;无信号的 slot 输出 0x00。两种 slot 交替,即可在逻辑分析仪上分辨出 slot 个数和宽度。

这种波形正常人也用不上,所以一般需要工程师自己生成。
以下代码可以生成一段 30秒、单声道、16位、48000赫兹 的测试波形:

#include <stdio.h>
#include <stdint.h>
#include <string.h>#pragma pack(push, 1)   // Ensure no padding in WAV header structstypedef struct {char     chunkID[4];      // "RIFF"uint32_t chunkSize;char     format[4];       // "WAVE"
} RIFFHeader;typedef struct {char     subChunk1ID[4];  // "fmt "uint32_t subChunk1Size;   // 16 for PCMuint16_t audioFormat;     // 1 = PCMuint16_t numChannels;uint32_t sampleRate;uint32_t byteRate;uint16_t blockAlign;uint16_t bitsPerSample;
} FmtSubchunk;typedef struct {char     subChunk2ID[4];  // "data"uint32_t subChunk2Size;
} DataSubchunk;#pragma pack(pop)int main() {const char *filename = "tdmCalibration_1c_16b_48k_30s.wav";FILE *fp = fopen(filename, "wb");if (!fp) {perror("Failed to open output file");return 1;}// WAV parametersuint16_t numChannels = 1;uint32_t sampleRate = 48000;uint16_t bitsPerSample = 16;uint32_t durationSec = 30;uint32_t numSamples = sampleRate * durationSec;uint32_t dataSize = numSamples * numChannels * (bitsPerSample / 8);// Prepare WAV headerRIFFHeader riff = {{'R','I','F','F'},36 + dataSize,          // chunkSize = 4 + (8 + SubChunk1Size) + (8 + SubChunk2Size){'W','A','V','E'}};FmtSubchunk fmt = {{'f','m','t',' '},16,                      // PCM1,                       // audioFormat = 1 (PCM)numChannels,sampleRate,sampleRate * numChannels * (bitsPerSample / 8),(uint16_t)(numChannels * (bitsPerSample / 8)),bitsPerSample};DataSubchunk data = {{'d','a','t','a'},dataSize};// Write headersfwrite(&riff, sizeof(riff), 1, fp);fwrite(&fmt, sizeof(fmt), 1, fp);fwrite(&data, sizeof(data), 1, fp);// Create 0xAA-filled audio bufferuint8_t sampleBytes[2] = {0xAA, 0xAA};  // 16bit = 2bytesfor (uint32_t i = 0; i < numSamples; i++) {fwrite(sampleBytes, sizeof(sampleBytes), 1, fp);}fclose(fp);printf("WAV file generated: %s\n", filename);return 0;
}
http://www.jsqmd.com/news/42721/

相关文章:

  • 20251117noip模拟赛
  • Bootstrap在MySQL应用中有何优势
  • blob字段在oracle中如何进行索引
  • [Python刷题记录]-多数元素-技巧-简单
  • 2025年武汉喷码机厂家最新企业推荐榜,油墨喷码机/手持喷码机/日期喷码机/喷码机维修/聚焦服务品质与产品竞争力深度剖析
  • 2025年国货抗老面霜哪家值得入?淡纹紧致/敏感肌适用/高保湿抗初老,实力品牌推荐
  • 算法可视化平台 - 让算法学习变得直观生动
  • 2025年智慧客房系统供应商口碑排行榜Top10权威发布
  • 2025年智慧客房系统供应商口碑推荐榜单TOP10权威发布
  • 2025 最新推荐!清理工具权威榜单,甄选云端管理 + 深度优化 + 安全防护全能型应用云储存 / 谷歌云盘 /icloud 储存空间 /macOS/ 苹果笔记本清理推荐
  • 2025年浙江自助免费建站公司权威推荐榜单:智能建站模板/ai建站平台/ ai自助建站源头公司精选
  • 2025年苏州森系婚礼跟拍公司权威推荐:城市街拍婚纱照/海边婚纱照/教堂婚礼拍摄源头服务机构精选
  • 2025年知识变现新蓝海:阿卡德平台——普通人逆袭的黄金赛道
  • [Python刷题记录]-翻转二叉树-二叉树-简单
  • 2025年11月美胸护理品牌评测:五强口碑榜与性能对比报告
  • 2025年抗老化污水池盖板实力厂家权威推荐榜单:玻璃钢格栅地沟盖板/化工污水池盖板/ 防滑玻璃钢盖板源头厂家精选
  • GPIO(下) - LI,Yi
  • 2025年11月认证开创者机构评测榜:尚普咨询集团和华信人对比
  • 2025年小型氦气纯化系统制造厂权威推荐:氘气回收纯化系统/PSA制氮设备/电解水制氢设备源头厂家精选
  • MATLAB利用遗传算法(GA)搜索图像融合的最优参数
  • Exchange Argument
  • 2025 年角度头厂家最新推荐榜:bt50 角度头、cnc 角度头、加长角度头优质企业综合测评权威指南
  • 小程序 表情包校验
  • Linux服务器上安装配置GitLab
  • jenkins新增节点
  • vue项目实现Tab页面触底上拉切换下个Tab
  • 2025口碑水乳品牌TOP5:抗初老/保湿/修护款任你挑,构象亮感水乳凭抗初老实力出圈
  • 拼多多关键字搜索接口逆向:从 WebSocket 实时推送解析到商品数据结构化重建
  • 2025留学机构哪家好机构排名
  • arm linux gcc 编译