This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SRC4392:ESP32 SPI

Guru**** 2579465 points
Other Parts Discussed in Thread: SRC4392

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1027012/src4392-esp32-spi

部件号:SRC4392

大家好、

我正在开发基于 ADAU1466 + SRC4392的 DSP、由 ESP32通过 SPI 接口进行控制。

我的编程技能不是很好、所以我想知道是否有人愿意与我分享一张草图?

目前、我已经尝试过这种代码、但这似乎并不起作用;

#include "Arduino .h"
#include 
const SPISettings settingsA (1000000、MSBFIRST、SPI_MODE3);//存储 SPI 事务信息以设置

void setup (){
Serial.begin(115200);//初始化 USB 串行端口以调试
 SPI.begin();
pinMode (SPI_SRC、输出);
digitalWrite (SPI_SRC、HIGH);
}
void loop(){Initiate_src4392()
;
delay (5000);
}
void Initiate_src4392 (){
write_src4392 (0x7f,0x00);//对 PAGE 寄存器进行初始写入,选择 PAGE 0
write_src4392 (0x01,0x80);//软件复位
write_src4392 (0x7f,0x002)
;//对端口0x430242c023(0x242s/sr)n;0x0424000(0x24000)n;0x24000_000_00024000(0x24000_000(0x24000)n
//端口 B 格式 I2S、受控模式、静音输出(端口未使用)
WRITE_src4392 (0x06、0x01);//端口 B 时钟至 MCLK/256 (48K)
//WRITE_src4392 (0x08、0x31);//旁路多路复用器 RX1、AESMUX BYMUX、LDM4392
、0x08_MCDE、0x4392、0x08_MDIR、0x08_MDIR、0x08_TRD、0x43D、0x08_TRE、0x08_TRE、0x43D、0x08_TRE、0x43x 参考
//针对失锁的自动 DIR-MUTE
// WRITE_src4392 (0x0F、0x12);//寄存器0F、10和11;PLL1配置。 数据表中的值:P=1、J=8、D=0
//write_src4392 (0x10、0);//寄存器0F、 10和11;PLL1配置。 数据表中的值:P=1、J=8、D=0
//write_src4392 (0x11、0);//寄存器0F、 10和11;PLL1配置。 数据表中的值:P=1、J=8、D=0
WRITE_src4392 (0x16、0xF4);// CRC、 奇偶校验、有效性、bip 编码和方向解锁未屏蔽
//write_src4392 (0x18、0xAA);//中断模式以更改电平
// write_src4392 (0x19、0xAA);//中断模式以更改电平
write_src4392 (0x2D、0x42);//端口 B 作为输入、MCLK、禁用卷参考。
//write_src4392 (0x30、0x07);//设置左通道卷-3.5dB
write_src4392 (0x31、0x07);//设置右通道卷-3.5dB
write_src4392 (0x01、0x3f);//激活芯片,删除 RST,全部启用
。}
void write_src4392 (unsigned char address、unsigned char data){
Serial.print ("SRC4392ing");
Serial.print (address、hex);
Serial.print ("-");
Serial.println (data、 十六进制);
digitalWrite (SPI_SRC、低电平); //将 SPI 从器件选择线路置为有效(低电平有效)
SPI.beginTransaction(settingsA); //初始化 SPI
spi.transfer (address);
spi.transfer (data);
spi.endTransaction (); //释放 SPI 总线
digitalWrite (SPI_SRC、HIGH);//上拉从器件选择线路
} 


已物理检查硬件 rst 引脚是否为3.3V、我可以通过不同 CS 引脚上的同一 SPI 接口对 ADAU1466进行编程。