- 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,数码管再次亮了起来,这是为什么?