update eq from DS3
This commit is contained in:
@@ -45,7 +45,11 @@
|
||||
|
||||
/* Enable/Disable Mixing core(s) - Default is on */
|
||||
#ifndef MIXER
|
||||
#define MIXER (1)
|
||||
#define MIXER (0)
|
||||
#endif
|
||||
|
||||
#ifndef _XUA_BMAX_POWER
|
||||
#define _XUA_BMAX_POWER (50)
|
||||
#endif
|
||||
|
||||
/* Set the number of mixes to perform - Default is 0 i.e mixing disabled */
|
||||
@@ -177,7 +181,184 @@
|
||||
#endif
|
||||
|
||||
#define EXCLUDE_USB_AUDIO_MAIN (1)
|
||||
/*
|
||||
* New spispec for QF60 board
|
||||
* */
|
||||
|
||||
#define FL_QUADDEVICE_XT25F16F \
|
||||
{ \
|
||||
0, /* XT25F16F - Just specify 0 as flash_id */ \
|
||||
256, /* page size */ \
|
||||
8192, /* num pages */ \
|
||||
3, /* address size */ \
|
||||
4, /* log2 clock divider */ \
|
||||
0x9F, /* QSPI_RDID */ \
|
||||
0, /* id dummy bytes */ \
|
||||
3, /* id size in bytes */ \
|
||||
0x0B4015, /* device id */ \
|
||||
0x20, /* QSPI_SE */ \
|
||||
4096, /* Sector erase is always 4KB */ \
|
||||
0x06, /* QSPI_WREN */ \
|
||||
0x04, /* QSPI_WRDI */ \
|
||||
PROT_TYPE_SR, /* Protection via SR */ \
|
||||
{{0x0,0x00},{0,0}}, /* QSPI_SP, QSPI_SU */ \
|
||||
0x02, /* QSPI_PP */ \
|
||||
0xEB, /* QSPI_READ_FAST */ \
|
||||
1, /* 1 read dummy byte */ \
|
||||
SECTOR_LAYOUT_REGULAR, /* mad sectors */ \
|
||||
{4096,{0,{0}}}, /* regular sector sizes */ \
|
||||
0x05, /* QSPI_RDSR */ \
|
||||
0x01, /* QSPI_WRSR */ \
|
||||
0x01, /* QSPI_WIP_BIT_MASK */ \
|
||||
}
|
||||
|
||||
#define FL_QUADDEVICE_WINBOND_W25Q16JW \
|
||||
{ \
|
||||
0, /* W25Q16JW - Just specify 0 as flash_id */ \
|
||||
256, /* page size */ \
|
||||
8192, /* num pages */ \
|
||||
3, /* address size */ \
|
||||
4, /* log2 clock divider */ \
|
||||
0x9F, /* QSPI_RDID */ \
|
||||
0, /* id dummy bytes */ \
|
||||
3, /* id size in bytes */ \
|
||||
0xEF4015, /* device id */ \
|
||||
0x20, /* QSPI_SE */ \
|
||||
4096, /* Sector erase is always 4KB */ \
|
||||
0x06, /* QSPI_WREN */ \
|
||||
0x04, /* QSPI_WRDI */ \
|
||||
PROT_TYPE_SR, /* Protection via SR */ \
|
||||
{{0x3C,0x00},{0,0}}, /* QSPI_SP, QSPI_SU */ \
|
||||
0x02, /* QSPI_PP */ \
|
||||
0xEB, /* QSPI_READ_FAST */ \
|
||||
1, /* 1 read dummy byte */ \
|
||||
SECTOR_LAYOUT_REGULAR, /* mad sectors */ \
|
||||
{4096,{0,{0}}}, /* regular sector sizes */ \
|
||||
0x05, /* QSPI_RDSR */ \
|
||||
0x01, /* QSPI_WRSR */ \
|
||||
0x01, /* QSPI_WIP_BIT_MASK */ \
|
||||
}
|
||||
|
||||
#define FL_QUADDEVICE_UC25HQ16B \
|
||||
{ \
|
||||
0, /* W25Q16JW - Just specify 0 as flash_id */ \
|
||||
256, /* page size */ \
|
||||
8192, /* num pages */ \
|
||||
3, /* address size */ \
|
||||
4, /* log2 clock divider */ \
|
||||
0x9F, /* QSPI_RDID */ \
|
||||
0, /* id dummy bytes */ \
|
||||
3, /* id size in bytes */ \
|
||||
0xB36015, /* device id */ \
|
||||
0x20, /* QSPI_SE */ \
|
||||
4096, /* Sector erase is always 4KB */ \
|
||||
0x06, /* QSPI_WREN */ \
|
||||
0x04, /* QSPI_WRDI */ \
|
||||
PROT_TYPE_SR, /* Protection via SR */ \
|
||||
{{0x3C,0x00},{0,0}}, /* QSPI_SP, QSPI_SU */ \
|
||||
0x02, /* QSPI_PP */ \
|
||||
0xEB, /* QSPI_READ_FAST */ \
|
||||
1, /* 1 read dummy byte */ \
|
||||
SECTOR_LAYOUT_REGULAR, /* mad sectors */ \
|
||||
{4096,{0,{0}}}, /* regular sector sizes */ \
|
||||
0x05, /* QSPI_RDSR */ \
|
||||
0x01, /* QSPI_WRSR */ \
|
||||
0x01, /* QSPI_WIP_BIT_MASK */ \
|
||||
}
|
||||
|
||||
/*
|
||||
* New spispec for QF60 3V3 board
|
||||
* */
|
||||
|
||||
#define FL_QUADDEVICE_WINBOND_W25Q32JVxxxM \
|
||||
{ \
|
||||
0, /* W25Q32JV - Just specify 0 as flash_id */ \
|
||||
256, /* page size */ \
|
||||
16384, /* num pages */ \
|
||||
3, /* address size */ \
|
||||
4, /* log2 clock divider */ \
|
||||
0x9F, /* QSPI_RDID */ \
|
||||
0, /* id dummy bytes */ \
|
||||
3, /* id size in bytes */ \
|
||||
0xEF4016, /* device id */ \
|
||||
0x20, /* QSPI_SE */ \
|
||||
4096, /* Sector erase is always 4KB */ \
|
||||
0x06, /* QSPI_WREN */ \
|
||||
0x04, /* QSPI_WRDI */ \
|
||||
PROT_TYPE_SR, /* Protection via SR */ \
|
||||
{{0x3C,0x00},{0,0}}, /* QSPI_SP, QSPI_SU */ \
|
||||
0x02, /* QSPI_PP */ \
|
||||
0xEB, /* QSPI_READ_FAST */ \
|
||||
1, /* 1 read dummy byte */ \
|
||||
SECTOR_LAYOUT_REGULAR, /* mad sectors */ \
|
||||
{4096,{0,{0}}}, /* regular sector sizes */ \
|
||||
0x05, /* QSPI_RDSR */ \
|
||||
0x01, /* QSPI_WRSR */ \
|
||||
0x01, /* QSPI_WIP_BIT_MASK */ \
|
||||
}
|
||||
|
||||
/*
|
||||
* New spispec for xcore-AI explorer board
|
||||
* */
|
||||
#define FL_QUADDEVICE_MX25R3235 \
|
||||
{ \
|
||||
0, /* MX25R3235 - Just specify 0 as flash_id */ \
|
||||
256, /* page size */ \
|
||||
16384, /* num pages */ \
|
||||
3, /* address size */ \
|
||||
3, /* log2 clock divider */ \
|
||||
0x9F, /* QSPI_RDID */ \
|
||||
0, /* id dummy bytes */ \
|
||||
3, /* id size in bytes */ \
|
||||
0xC22816, /* device id */ \
|
||||
0x20, /* QSPI_SE */ \
|
||||
4096, /* Sector erase is always 4KB */ \
|
||||
0x06, /* QSPI_WREN */ \
|
||||
0x04, /* QSPI_WRDI */ \
|
||||
PROT_TYPE_SR, /* Protection via SR */ \
|
||||
{{0x3C,0x00},{0,0}}, /* QSPI_SP, QSPI_SU */ \
|
||||
0x02, /* QSPI_PP */ \
|
||||
0xEB, /* QSPI_READ_FAST */ \
|
||||
1, /* 1 read dummy byte */ \
|
||||
SECTOR_LAYOUT_REGULAR, /* mad sectors */ \
|
||||
{4096,{0,{0}}}, /* regular sector sizes */ \
|
||||
0x05, /* QSPI_RDSR */ \
|
||||
0x01, /* QSPI_WRSR */ \
|
||||
0x01, /* QSPI_WIP_BIT_MASK */ \
|
||||
}
|
||||
|
||||
#define FL_QUADDEVICE_MX25L160E \
|
||||
{ \
|
||||
0, /* MX25R3235 - Just specify 0 as flash_id */ \
|
||||
256, /* page size */ \
|
||||
8192, /* num pages */ \
|
||||
3, /* address size */ \
|
||||
3, /* log2 clock divider */ \
|
||||
0x9F, /* QSPI_RDID */ \
|
||||
0, /* id dummy bytes */ \
|
||||
3, /* id size in bytes */ \
|
||||
0xC22017, /* device id */ \
|
||||
0x20, /* QSPI_SE */ \
|
||||
4096, /* Sector erase is always 4KB */ \
|
||||
0x06, /* QSPI_WREN */ \
|
||||
0x04, /* QSPI_WRDI */ \
|
||||
PROT_TYPE_SR, /* Protection via SR */ \
|
||||
{{0x3C,0x00},{0,0}}, /* QSPI_SP, QSPI_SU */ \
|
||||
0x02, /* QSPI_PP */ \
|
||||
0xEB, /* QSPI_READ_FAST */ \
|
||||
1, /* 1 read dummy byte */ \
|
||||
SECTOR_LAYOUT_REGULAR, /* mad sectors */ \
|
||||
{4096,{0,{0}}}, /* regular sector sizes */ \
|
||||
0x05, /* QSPI_RDSR */ \
|
||||
0x01, /* QSPI_WRSR */ \
|
||||
0x01, /* QSPI_WIP_BIT_MASK */ \
|
||||
}
|
||||
|
||||
|
||||
// DFU_FLASH_DEVICE is a comma-separated list of flash spec structures
|
||||
// This define is used in lib_xua/lib_xua/src/dfu/flashlib_user.c
|
||||
#define DFU_FLASH_DEVICE FL_QUADDEVICE_XT25F16F, FL_QUADDEVICE_WINBOND_W25Q16JW, FL_QUADDEVICE_UC25HQ16B, FL_QUADDEVICE_WINBOND_W25Q32JVxxxM, FL_QUADDEVICE_MX25R3235, FL_QUADDEVICE_MX25L160E
|
||||
//:
|
||||
#include "user_main.h"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -46,7 +46,6 @@ audio_type g_new_audio_type, g_audio_type = 0;
|
||||
unsigned g_mute_enable = 0;
|
||||
unsigned g_mute_state = 0;
|
||||
unsigned g_mute_state_old = 1;
|
||||
unsigned g_samfreq;
|
||||
unsigned g_unmute_dac_state, g_unmute_time, g_format_time;
|
||||
unsigned g_volume_level = 60, g_saved_volume_level = 60;
|
||||
unsigned g_request_volume_set = 0;
|
||||
@@ -62,7 +61,7 @@ uint32_t get_reference_time();
|
||||
unsigned g_disable_i2c = 0;
|
||||
unsigned g_dac_mode = 10;
|
||||
unsigned g_new_dac_mode = 0;
|
||||
unsigned g_samFreq = DEFAULT_FREQ;
|
||||
unsigned g_samfreq = 48000;
|
||||
// 改动原因:添加DSD模式全局变量,用于HID命令读取采样率和格式信息(已去掉DAC采样分辨率)
|
||||
unsigned g_dsd_mode = 0; // DSD模式:0=PCM, >0=DSD
|
||||
unsigned g_gain_mode = 0; // 0: 低阻, 1: 高阻
|
||||
@@ -429,35 +428,42 @@ void AudioHwRemote2(chanend c, client interface i2c_master_if i2c)
|
||||
GET_SHARED_GLOBAL(force_request_mode_change, g_force_request_eq_mode_change);
|
||||
if (new_eq_mode != request_eq_mode)
|
||||
{
|
||||
// debug_printf("new eq mode != request eq mode\n");
|
||||
SET_SHARED_GLOBAL(g_new_eq_mode, request_eq_mode);
|
||||
}
|
||||
|
||||
if (force_request_mode_change == 1)
|
||||
{
|
||||
debug_printf("force request mode change\n");
|
||||
SET_SHARED_GLOBAL(g_force_eq_mode_change, 1);
|
||||
SET_SHARED_GLOBAL(g_force_request_eq_mode_change, 0);
|
||||
}
|
||||
break;
|
||||
#if 0
|
||||
|
||||
case eq_sync_timer when timerafter(eq_sync_time) :> void :
|
||||
eq_sync_time += EQ_SYNC_DELAY;
|
||||
|
||||
// 使用单参数存储系统保存脏参数(独立保存EQ参数)
|
||||
if (eq_save_dirty_params() == 0) {
|
||||
//debug_printf("Single EQ parameters synced to Flash successfully\n");
|
||||
} else {
|
||||
//debug_printf("Failed to sync single EQ parameters to Flash\n");
|
||||
}
|
||||
|
||||
// 独立保存脏的增益
|
||||
if (eq_save_dirty_gain() == 0) {
|
||||
// debug_printf("Gain synced to Flash successfully\n");
|
||||
} else {
|
||||
//debug_printf("Failed to sync gain to Flash\n");
|
||||
}
|
||||
|
||||
// 独立保存脏的模式名称
|
||||
if (eq_save_dirty_names() == 0) {
|
||||
// debug_printf("Mode names synced to Flash successfully\n");
|
||||
} else {
|
||||
//debug_printf("Failed to sync mode names to Flash\n");
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -699,6 +705,7 @@ void AudioHwInit()
|
||||
/* Configures the external audio hardware for the required sample frequency */
|
||||
void AudioHwConfig(unsigned samFreq, unsigned mClk, unsigned dsdMode, unsigned sampRes_DAC, unsigned sampRes_ADC)
|
||||
{
|
||||
g_samfreq = samFreq;
|
||||
{
|
||||
sw_pll_fixed_clock(mClk);
|
||||
}
|
||||
|
||||
@@ -202,9 +202,7 @@ void UserBufferManagement(unsigned sampsFromUsbToAudio[], unsigned sampsFromAudi
|
||||
#endif
|
||||
}
|
||||
#if EQ_EN
|
||||
if (!is_eq_disabled()) {
|
||||
buffer_exchange(uc_eq_data, sampsFromUsbToAudio);
|
||||
}
|
||||
#endif
|
||||
sampsFromAudioToUsb[0] = sampsFromUsbToAudio[0];
|
||||
sampsFromAudioToUsb[1] = sampsFromUsbToAudio[1];
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
int eq_flash_initialized = 0;
|
||||
extern unsigned int is_mode_changed(void);
|
||||
extern void change_eq_mode(unsigned sample_freq);
|
||||
extern unsigned int g_samfreq;
|
||||
extern void clear_eq_status(unsigned sample_freq, unsigned ch_no);
|
||||
extern unsigned int g_request_eq_mode;
|
||||
extern unsigned int g_eq_enable; // 改动原因:添加EQ使能开关外部声明,用于初始化时检查EQ状态
|
||||
@@ -132,7 +131,7 @@ void dsp_core0(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
sample_freq = g_samfreq;
|
||||
sample_freq = 48000;
|
||||
audio_in_samples[0] = read_from_ring_buffer(0);
|
||||
audio_in_samples[1] = read_from_ring_buffer(1);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "share_buffer.h"
|
||||
#define RING_BUFFER_SIZE 128
|
||||
#define RING_BUFFER_SIZE 512
|
||||
|
||||
typedef struct {
|
||||
int buffer[RING_BUFFER_SIZE];
|
||||
|
||||
Reference in New Issue
Block a user