准音频算法工程师

  • 2024-09-05
  • 回复了主题帖: 普中科技F28335开发板中,使用aic23播放由代码生成的正弦波

    本帖最后由 准音频算法工程师 于 2024-9-6 10:26 编辑 11

  • 发表了主题帖: 普中科技F28335开发板中,使用aic23播放由代码生成的正弦波

    本帖最后由 准音频算法工程师 于 2024-9-6 10:54 编辑 假设一个f=1000Hz的正弦波sin(1000*2*pi*t),经过了48k采样率采样得到了以下数字量(正好一个周期)。     Int16 table[SIZE] = {         0x0000, 0x10b4, 0x2120, 0x30fb, 0x3fff, 0x4dea, 0x5a81, 0x658b,         0x6ed8, 0x763f, 0x7ba1, 0x7ee5, 0x7ffd, 0x7ee5, 0x7ba1, 0x76ef,         0x6ed8, 0x658b, 0x5a81, 0x4dea, 0x3fff, 0x30fb, 0x2120, 0x10b4,         0x0000, 0xef4c, 0xdee0, 0xcf06, 0xc002, 0xb216, 0xa57f, 0x9a75,         0x9128, 0x89c1, 0x845f, 0x811b, 0x8002, 0x811b, 0x845f, 0x89c1,         0x9128, 0x9a76, 0xa57f, 0xb216, 0xc002, 0xcf06, 0xdee0, 0xef4c     }; 48k采样率意味着一秒对应48k个点,一毫秒对应48个点。也就是说每个点的采样间隔是20.83纳秒。 于是波音代码如下: while(1)     {         for ( sample = 0 ; sample < 48 ; sample++ )         {             McbspaRegs.DXR1.all = table[sample];// 输出左声道数据             McbspaRegs.DXR2.all = table[sample];// 输出右声道数据             DELAY_US(20.83);         }     }

  • 2024-09-04
  • 回复了主题帖: 求 C5505 eZdsp原理图

    tagetage 发表于 2024-9-3 16:38 给TI发个邮件,要一下资料。 好滴谢谢

  • 2024-09-03
  • 发表了主题帖: 求 C5505 eZdsp原理图

    这个开发板在TI官网的网页都已经失效了,找了好久都没有找到。最近在看数字信号处理原理、实现及应用。里面使用到了这个开发板,希望能对着原理图来理解。谢谢大家了。

  • 回复了主题帖: 请问如何理解归一化数字频率F?

    聋门叨客 发表于 2024-9-3 08:50 没毛病啊,根据奈奎斯特,最低采样频率必须2倍f才能不失真。这里的F以2倍f为基准,所以fs=2f的时候,F=1。 ... 好的,我懂了,谢谢

  • 2024-09-02
  • 加入了学习《手把手教你学DSP视频教程 》,观看 手把手教你学DSP视频教程 1

  • 2024-08-31
  • 发表了主题帖: 请问如何理解归一化数字频率F?

    按照表格的说法:F为每采样周期数。可是我自己画一个简单的正弦作为例子看出来的F和按照书本公式算出来的F不一样,这是为什么?                  

  • 2024-08-25
  • 发表了主题帖: 如何查找TLV320AIC23 芯片的例程?

    我在官网找了好久都没找到,请大佬们给个链接 ps:使用的dsp芯片是TMS320F28335。

  • 回复了主题帖: 普中科技F28335开发板的TLV320AIC23 芯片初始化

    噢噢,我明白了。地址只有7位,是我输入16进制转2进制的高七位。原来如此,这下我能理解代码是什么意思了。

  • 回复了主题帖: 普中科技F28335开发板的TLV320AIC23 芯片初始化

    准音频算法工程师 发表于 2024-8-25 10:32 AIC23Write(0x02,0x1f);//右声道输入音量 右声道输入音量对应的地址不是0x01么? 噢噢,我明白了。地址只有7位,是我输入16进制转2进制的高七位。原来如此,这下我能理解代码是什么意思了,谢谢你

  • 回复了主题帖: 普中科技F28335开发板的TLV320AIC23 芯片初始化

    tagetage 发表于 2024-8-25 10:17  AIC23Write(0x00,0x1f);//左声道输入音量             &n ... 噢噢,我明白了。地址只有7位,是我输入16进制转2进制的高七位。原来如此,这下我能理解代码是什么意思了,谢谢你

  • 回复了主题帖: 普中科技F28335开发板的TLV320AIC23 芯片初始化

    tagetage 发表于 2024-8-25 10:17  AIC23Write(0x00,0x1f);//左声道输入音量             &n ... AIC23Write(0x02,0x1f);//右声道输入音量 右声道输入音量对应的地址不是0x01么?

  • 回复了主题帖: 普中科技F28335开发板的TLV320AIC23 芯片初始化

    tagetage 发表于 2024-8-25 10:24 你找找有没有官方的例程吧。。 我去官网找了,好像没有例程

  • 2024-08-24
  • 发表了主题帖: 普中科技F28335开发板的TLV320AIC23 芯片初始化

    本帖最后由 准音频算法工程师 于 2024-8-25 11:31 编辑 我不懂这段商家提供的代码: void main() { AIC23Write(0x00,0x00);     Delay(100);     AIC23Write(0x02,0x00);     Delay(100);     AIC23Write(0x04,0x7f);     Delay(100);     AIC23Write(0x06,0x7f);     Delay(100);     AIC23Write(0x08,0x14);     Delay(100);     AIC23Write(0x0A,0x00);     Delay(100);     AIC23Write(0x0C,0x00);     Delay(100);     AIC23Write(0x0E,0x43);     Delay(100);     AIC23Write(0x10,0x23);     Delay(100);     AIC23Write(0x12,0x01);     Delay(100);        //AIC23Init }   Uint16 AIC23Write(int Address,int Data) {    if (I2caRegs.I2CMDR.bit.STP == 1)    {       return I2C_STP_NOT_READY_ERROR;    }    // Setup slave address    I2caRegs.I2CSAR = 0x1A;    // Check if bus busy    if (I2caRegs.I2CSTR.bit.BB == 1)    {       return I2C_BUS_BUSY_ERROR;    }    // Setup number of bytes to send    // MsgBuffer + Address    I2caRegs.I2CCNT = 2;    I2caRegs.I2CDXR = Address;    I2caRegs.I2CDXR = Data;    // Send start as master transmitter    I2caRegs.I2CMDR.all = 0x6E20;    return I2C_SUCCESS; } 根据注释,应该就是TLV320AIC23 芯片的初始化代码,但是我不是很能理解其中的含义。对照芯片资料的寄存器映射,发现不能和代码一一对应。比如AIC23Write(0x0A,0x00); 0x0A对应的二进制是1010,并不能在寄存器映射中找到这样的地址。 噢噢,我明白了。地址只有7位,是我输入16进制转2进制的高七位。原来如此,这下代码能和寄存器地址一一对应了。    

  • 2024-08-20
  • 回复了主题帖: 普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?

    wangerxian 发表于 2024-8-20 09:08 硬件应该默认上电就给数码管供电了,单片机初始化还需要一些时间,所以你就算失能数码管,也会闪一下。 明白了,感谢你的回答

  • 2024-08-19
  • 回复了主题帖: 普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?

    tagetage 发表于 2024-8-19 19:51 硬件的问题,,软件改不了。 好的,谢谢你

  • 发表了主题帖: 普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?

    首先,我为了解决这个问题,烧写了如下的代码进FLASH: void main() { MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash(); SMG_Init(); } 数码管虽然熄灭了,但是我观察到是亮过之后再熄灭的。当我把SMG_Init();注释掉之后再次烧写进FLASH,数码管再次亮了起来,这是为什么?

最近访客

< 1/1 >

统计信息

已有1人来访过

  • 芯积分:55
  • 好友:--
  • 主题:6
  • 回复:10

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言