当前位置: 首页 > 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.gsyq.cn/news/52132.html

相关文章:

  • 2025年武汉喷码机厂家最新企业推荐榜,油墨喷码机/手持喷码机/日期喷码机/喷码机维修/聚焦服务品质与产品竞争力深度剖析
  • 2025年国货抗老面霜哪家值得入?淡纹紧致/敏感肌适用/高保湿抗初老,实力品牌推荐
  • 2025年智慧客房系统供应商口碑排行榜Top10权威发布
  • 2025年知识变现新蓝海:阿卡德平台——普通人逆袭的黄金赛道
  • 2025年抗老化污水池盖板实力厂家权威推荐榜单:玻璃钢格栅地沟盖板/化工污水池盖板/ 防滑玻璃钢盖板源头厂家精选
  • GPIO(下) - LI,Yi
  • 2025年小型氦气纯化系统制造厂权威推荐:氘气回收纯化系统/PSA制氮设备/电解水制氢设备源头厂家精选
  • SSS1700鑫创USB耳机芯片,支持24bit/96KHZ高采样USB音频芯片方案
  • 2025 年角度头厂家最新推荐榜:bt50 角度头、cnc 角度头、加长角度头优质企业综合测评权威指南
  • 小程序 表情包校验
  • jenkins新增节点
  • 详解set_output_delay的用法
  • 2025杭州最大留学中介公司是哪家
  • 每位工程师都会遇到的 10 个 Kubernetes 问题(及解决方法)【转】
  • 权重矩阵初始化
  • 2025杭州最大留学中介公司在哪里
  • 2025出国留学机构大全排名榜
  • 2025成都有哪些留学中介机构比较好
  • 说说Redis的集群方案?主从复制、哨兵、Cluster集群的区别和适用场景【转】
  • 热门十大跨境电商ERP盘点!做跨境电商的必备工具!
  • 2025年欧式门窗定制厂家权威推荐:别墅平开窗/手摇平开窗/智能窗源头厂家精选
  • 2025 最新支座厂家推荐!橡胶 / 桥梁 / 国标 / 滑板 / 固定 / 弹性 / 盆式 / 减震支座品牌榜单,深度解析优质厂家实力与产品特色
  • xinyoudui 兼职时间
  • SBD1DF20V1H-ASEMI可直接替代安世PMEG2010AEH
  • 2025成都最好的留学机构是哪家公司
  • 2025年悬浮门企业综合实力排行榜:专业选购指南与行业趋势分析
  • 2025年优质卧式蒸煮机公司权威推荐排行榜
  • 64位linux内存
  • 2025年塑料合金板材订做厂家综合评测:汽车外饰板/真空吸塑板/ABS吸塑板优质供应商精选
  • 2025年镀锌方管定做厂家权威推荐:镀锌钢管/国标H型钢/不锈钢板源头厂家精选