芯片的使能引脚CS,在一直使能(一直置低电平)的情况下,就不能调音量了,但是芯片的音频输出都正常。
当在发送音量数据的时候,使用CS引脚(数据发送前置低电平CS,发送完毕,置高电平CS)后,输出的音量就特别小(输入音量已经调到很大了),将音量增益调到最大了还是特别的小(几乎听不到)。
不知道这种情况是咋回事啊?
void WR_PGA43311(uint8 *data, uint8 len)
{
uint8 i,n;
uint8 temp;
HAL_PGA4311_CS(0);
delay_us(10);
for (i = 0; i < len; i++)
{
temp = data[7-i];
for(n = 0; n < 8; n++)
{
HAL_PGA4311_SCLK(0);
HAL_PGA4311_SDI(temp & 0x80);
temp <<= 1;
delay_us(10);
HAL_PGA4311_SCLK(1);
delay_us(10);
}
}
HAL_PGA4311_CS(1); /* 注释掉此行,音量就不能控制了,调不了了。*/
/* 不注释此行,可以调音量,但是当输入音量很大的时候,增益调到最大,输出音量也特别的小*/
}
user151383853:
CS 信号会影响写入数据的有效. 那也只能适应它了
另外, SPI 通信有多种信号方式, 比较容易弄错, 是否也验证一下.