Enable PSRAM, added 400ms external using external ram

This commit is contained in:
jorgenkraghjakobsen
2020-05-26 08:22:47 +02:00
Unverified
parent c300a285e0
commit bed9c09472
4 changed files with 165 additions and 120 deletions

View File

@@ -97,14 +97,19 @@ static void dsp_i2s_task_handler(void *arg)
muteCH[1] = 0;
muteCH[2] = 0;
muteCH[3] = 0;
uint32_t inBuffer,freeBuffer,wbuf,rbuf,rwdif ;
for (;;) {
cnt++;
audio = (uint8_t *)xRingbufferReceive(s_ringbuf_i2s, &chunk_size, (portTickType)portMAX_DELAY);
vRingbufferGetInfo(s_ringbuf_i2s, &freeBuffer, &rbuf, &wbuf, NULL, &inBuffer );
rwdif = (uint32_t)(wbuf-rbuf);
if (rwdif < 60000) { vTaskDelay(1); }
audio = (uint8_t *)xRingbufferReceiveUpTo(s_ringbuf_i2s, &chunk_size, (portTickType)portMAX_DELAY,960);
//audio = (uint8_t *)xRingbufferReceive(s_ringbuf_i2s, &chunk_size, (portTickType)portMAX_DELAY);
if (chunk_size !=0 ){
int16_t len = chunk_size/4;
if (cnt%200 == 0)
{ ESP_LOGI("I2S", "Chunk :%d",chunk_size);
{ ESP_LOGI("I2S", "Chunk :%d (%d/%d) %d ",chunk_size, inBuffer,freeBuffer,rwdif );
xRingbufferPrintInfo(s_ringbuf_i2s);
}
uint8_t *data_ptr = audio;
@@ -117,11 +122,11 @@ static void dsp_i2s_task_handler(void *arg)
*/
switch (dspFlow) {
case dspfStereo :
{ if (cnt%100==0)
{ ESP_LOGI("I2S", "In dspf Stero :%d",chunk_size);
{ // if (cnt%100==0)
// { ESP_LOGI("I2S", "In dspf Stero :%d",chunk_size);
//ws_server_send_bin_client(0,(char*)audio, 240);
//printf("%d %d \n",byteWritten, i2s_evt.size );
}
// }
for (uint16_t i=0; i<len; i++)
{ audio[i*4+0] = (muteCH[0] == 1)? 0 : audio[i*4+0];
audio[i*4+1] = (muteCH[0] == 1)? 0 : audio[i*4+1];
@@ -235,10 +240,20 @@ static void dsp_i2s_task_handler(void *arg)
}
}
#define BUFFER_SIZE 80*1024
#define BUFFER_TYPE RINGBUF_TYPE_BYTEBUF
void dsp_i2s_task_init(uint32_t sample_rate,bool slave)
{ setup_dsp_i2s(sample_rate,slave);
s_ringbuf_i2s = xRingbufferCreate(32*1024,RINGBUF_TYPE_BYTEBUF); // 8*1024
if (s_ringbuf_i2s == NULL) { return; }
StaticRingbuffer_t *buffer_struct = (StaticRingbuffer_t *)heap_caps_malloc(sizeof(StaticRingbuffer_t), MALLOC_CAP_SPIRAM);
printf("Buffer_struct ok\n");
uint8_t *buffer_storage = (uint8_t *)heap_caps_malloc(sizeof(uint8_t)*BUFFER_SIZE, MALLOC_CAP_SPIRAM);
printf("Buffer_stoarge ok\n");
s_ringbuf_i2s = xRingbufferCreateStatic(BUFFER_SIZE, BUFFER_TYPE, buffer_storage, buffer_struct);
printf("Ringbuf ok\n");
//s_ringbuf_i2s = xRingbufferCreate(32*1024,RINGBUF_TYPE_BYTEBUF); // 8*1024
if (s_ringbuf_i2s == NULL) { printf("nospace for ringbuffer\n"); return; }
printf("Ringbuffer ok\n");
xTaskCreate(dsp_i2s_task_handler, "DSP_I2S", 48*1024, NULL, 6, &s_dsp_i2s_task_handle);
}

View File

@@ -392,11 +392,11 @@ static void http_get_task(void *pvParameters)
ESP_LOGI(TAG, "Failed to deserialize time message\r\n");
return;
}
ESP_LOGI(TAG, "BaseTX : %d %d ", base_message.sent.sec , base_message.sent.usec);
ESP_LOGI(TAG, "BaseRX : %d %d ", base_message.received.sec , base_message.received.usec);
ESP_LOGI(TAG, "baseTX->RX : %d s ", (base_message.received.sec - base_message.sent.sec)/1000);
ESP_LOGI(TAG, "baseTX->RX : %d ms ", (base_message.received.usec - base_message.sent.usec)/1000);
ESP_LOGI(TAG, "Latency : %d.%d ", time_message.latency.sec, time_message.latency.usec/1000);
//ESP_LOGI(TAG, "BaseTX : %d %d ", base_message.sent.sec , base_message.sent.usec);
//ESP_LOGI(TAG, "BaseRX : %d %d ", base_message.received.sec , base_message.received.usec);
//ESP_LOGI(TAG, "baseTX->RX : %d s ", (base_message.received.sec - base_message.sent.sec)/1000);
//ESP_LOGI(TAG, "baseTX->RX : %d ms ", (base_message.received.usec - base_message.sent.usec)/1000);
//ESP_LOGI(TAG, "Latency : %d.%d ", time_message.latency.sec, time_message.latency.usec/1000);
// tv == server to client latency (s2c)
// time_message.latency == client to server latency(c2s)
// TODO the fact that I have to do this simple conversion means

156
sdkconfig
View File

@@ -2,6 +2,7 @@
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
#
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET="esp32"
CONFIG_IDF_TARGET_ESP32=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
@@ -10,8 +11,6 @@ CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
# SDK tool configuration
#
CONFIG_SDK_TOOLPREFIX="xtensa-esp32-elf-"
CONFIG_SDK_PYTHON="python"
CONFIG_SDK_MAKE_WARN_UNDEFINED_VARIABLES=y
# CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS is not set
# end of SDK tool configuration
@@ -25,19 +24,6 @@ CONFIG_APP_BUILD_BOOTLOADER=y
CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
# end of Build type
#
# Merus MA120x0 interface Configuration
#
CONFIG_MA120X0_NENABLE_PIN=13
CONFIG_MA120X0_NMUTE_PIN=12
CONFIG_MA120X0_ENABLE_PIN=5
CONFIG_MA120X0_NERR_PIN=34
CONFIG_MA120X0_NCLIP_PIN=35
CONFIG_MA120X0_SCL_PIN=32
CONFIG_MA120X0_SDA_PIN=33
CONFIG_MA120X0_I2C_ADDR=0x20
# end of Merus MA120x0 interface Configuration
#
# Application manager
#
@@ -81,29 +67,10 @@ CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
# CONFIG_SECURE_FLASH_ENC_ENABLED is not set
# end of Security features
#
# ESP32 audio I2S config
#
CONFIG_MASTER_I2S_BCK_PIN=25
CONFIG_MASTER_I2S_LRCK_PIN=26
CONFIG_MASTER_I2S_DATAOUT_PIN=27
CONFIG_SLAVE_I2S_BCK_PIN=26
CONFIG_SLAVE_I2S_LRCK_PIN=12
CONFIG_SLAVE_I2S_DATAOUT_PIN=5
# end of ESP32 audio I2S config
#
# Serial flasher config
#
CONFIG_ESPTOOLPY_PORT="/dev/ttyUSB3"
CONFIG_ESPTOOLPY_BAUD_115200B=y
# CONFIG_ESPTOOLPY_BAUD_230400B is not set
# CONFIG_ESPTOOLPY_BAUD_921600B is not set
# CONFIG_ESPTOOLPY_BAUD_2MB is not set
# CONFIG_ESPTOOLPY_BAUD_OTHER is not set
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
CONFIG_ESPTOOLPY_BAUD=115200
CONFIG_ESPTOOLPY_COMPRESSED=y
# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
@@ -150,6 +117,30 @@ CONFIG_PARTITION_TABLE_OFFSET=0x8000
# CONFIG_PARTITION_TABLE_MD5 is not set
# end of Partition Table
#
# Merus MA120x0 interface Configuration
#
CONFIG_MA120X0_NENABLE_PIN=13
CONFIG_MA120X0_NMUTE_PIN=12
CONFIG_MA120X0_ENABLE_PIN=5
CONFIG_MA120X0_NERR_PIN=34
CONFIG_MA120X0_NCLIP_PIN=35
CONFIG_MA120X0_SCL_PIN=32
CONFIG_MA120X0_SDA_PIN=33
CONFIG_MA120X0_I2C_ADDR=0x20
# end of Merus MA120x0 interface Configuration
#
# ESP32 audio I2S config
#
CONFIG_MASTER_I2S_BCK_PIN=25
CONFIG_MASTER_I2S_LRCK_PIN=26
CONFIG_MASTER_I2S_DATAOUT_PIN=27
CONFIG_SLAVE_I2S_BCK_PIN=26
CONFIG_SLAVE_I2S_LRCK_PIN=12
CONFIG_SLAVE_I2S_DATAOUT_PIN=5
# end of ESP32 audio I2S config
#
# Compiler options
#
@@ -270,7 +261,65 @@ CONFIG_ESP32_DPORT_WORKAROUND=y
# CONFIG_ESP32_DEFAULT_CPU_FREQ_160 is not set
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
# CONFIG_ESP32_SPIRAM_SUPPORT is not set
CONFIG_ESP32_SPIRAM_SUPPORT=y
#
# SPI RAM config
#
CONFIG_SPIRAM_TYPE_AUTO=y
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
CONFIG_SPIRAM_SIZE=-1
CONFIG_SPIRAM_SPEED_40M=y
CONFIG_SPIRAM=y
CONFIG_SPIRAM_BOOT_INIT=y
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
# CONFIG_SPIRAM_USE_MEMMAP is not set
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
CONFIG_SPIRAM_USE_MALLOC=y
CONFIG_SPIRAM_MEMTEST=y
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384
# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
CONFIG_SPIRAM_CACHE_WORKAROUND=y
#
# SPIRAM cache workaround debugging
#
CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_MEMW=y
# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_DUPLDST is not set
# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_NOPS is not set
# end of SPIRAM cache workaround debugging
CONFIG_SPIRAM_BANKSWITCH_ENABLE=y
CONFIG_SPIRAM_BANKSWITCH_RESERVE=8
# CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY is not set
#
# PSRAM clock and cs IO for ESP32-DOWD
#
CONFIG_D0WD_PSRAM_CLK_IO=17
CONFIG_D0WD_PSRAM_CS_IO=16
# end of PSRAM clock and cs IO for ESP32-DOWD
#
# PSRAM clock and cs IO for ESP32-D2WD
#
CONFIG_D2WD_PSRAM_CLK_IO=9
CONFIG_D2WD_PSRAM_CS_IO=10
# end of PSRAM clock and cs IO for ESP32-D2WD
#
# PSRAM clock and cs IO for ESP32-PICO
#
CONFIG_PICO_PSRAM_CS_IO=10
# end of PSRAM clock and cs IO for ESP32-PICO
CONFIG_SPIRAM_SPIWP_SD3_PIN=7
# CONFIG_SPIRAM_2T_MODE is not set
# end of SPI RAM config
# CONFIG_ESP32_TRAX is not set
CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0
# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set
@@ -317,23 +366,6 @@ CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5
# CONFIG_PM_ENABLE is not set
# end of Power Management
#
# Memory protection
#
CONFIG_ESP32S2_MEMPROT_FEATURE=y
CONFIG_ESP32S2_MEMPROT_FEATURE_LOCK=y
# end of Memory protection
#
# Cache config
#
# end of Cache config
CONFIG_ESP32S2_TRACEMEM_RESERVE_DRAM=0x0
CONFIG_ESP32S2_ULP_COPROC_RESERVE_MEM=0
CONFIG_ESP32S2_DEBUG_OCDAWARE=y
CONFIG_ESP32S2_BROWNOUT_DET=y
#
# ADC-Calibration
#
@@ -468,7 +500,6 @@ CONFIG_ESP_TIMER_IMPL_TG0_LAC=y
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
# CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER is not set
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
@@ -534,6 +565,7 @@ CONFIG_FATFS_LFN_NONE=y
CONFIG_FATFS_FS_LOCK=0
CONFIG_FATFS_TIMEOUT_MS=10000
CONFIG_FATFS_PER_FILE_CACHE=y
CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y
# end of FAT Filesystem support
#
@@ -736,6 +768,7 @@ CONFIG_LWIP_ESP_LWIP_ASSERT=y
# mbedTLS
#
CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
# CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC is not set
# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
@@ -975,6 +1008,18 @@ CONFIG_SPIFFS_USE_MTIME=y
# end of Debug Configuration
# end of SPIFFS Configuration
#
# TinyUSB
#
#
# Descriptor configuration
#
CONFIG_USB_DESC_CUSTOM_VID=0x1234
CONFIG_USB_DESC_CUSTOM_PID=0x5678
# end of Descriptor configuration
# end of TinyUSB
#
# Unity unit testing library
#
@@ -1037,8 +1082,6 @@ CONFIG_WPA_MBEDTLS_CRYPTO=y
# Deprecated options for backward compatibility
CONFIG_TOOLPREFIX="xtensa-esp32-elf-"
CONFIG_PYTHON="python"
CONFIG_MAKE_WARN_UNDEFINED_VARIABLES=y
# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
@@ -1081,7 +1124,8 @@ CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=0
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0
CONFIG_ADC2_DISABLE_DAC=y
# CONFIG_SPIRAM_SUPPORT is not set
CONFIG_SPIRAM_SUPPORT=y
# CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST is not set
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y

View File

@@ -2,6 +2,7 @@
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
#
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET="esp32"
CONFIG_IDF_TARGET_ESP32=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
@@ -10,8 +11,6 @@ CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
# SDK tool configuration
#
CONFIG_SDK_TOOLPREFIX="xtensa-esp32-elf-"
CONFIG_SDK_PYTHON="python"
CONFIG_SDK_MAKE_WARN_UNDEFINED_VARIABLES=y
# CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS is not set
# end of SDK tool configuration
@@ -25,19 +24,6 @@ CONFIG_APP_BUILD_BOOTLOADER=y
CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
# end of Build type
#
# Merus MA120x0 interface Configuration
#
CONFIG_MA120X0_NENABLE_PIN=13
CONFIG_MA120X0_NMUTE_PIN=12
CONFIG_MA120X0_ENABLE_PIN=5
CONFIG_MA120X0_NERR_PIN=34
CONFIG_MA120X0_NCLIP_PIN=35
CONFIG_MA120X0_SCL_PIN=32
CONFIG_MA120X0_SDA_PIN=33
CONFIG_MA120X0_I2C_ADDR=0x20
# end of Merus MA120x0 interface Configuration
#
# Application manager
#
@@ -81,29 +67,10 @@ CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
# CONFIG_SECURE_FLASH_ENC_ENABLED is not set
# end of Security features
#
# ESP32 audio I2S config
#
CONFIG_MASTER_I2S_BCK_PIN=25
CONFIG_MASTER_I2S_LRCK_PIN=26
CONFIG_MASTER_I2S_DATAOUT_PIN=27
CONFIG_SLAVE_I2S_BCK_PIN=26
CONFIG_SLAVE_I2S_LRCK_PIN=12
CONFIG_SLAVE_I2S_DATAOUT_PIN=5
# end of ESP32 audio I2S config
#
# Serial flasher config
#
CONFIG_ESPTOOLPY_PORT="/dev/ttyUSB0"
CONFIG_ESPTOOLPY_BAUD_115200B=y
# CONFIG_ESPTOOLPY_BAUD_230400B is not set
# CONFIG_ESPTOOLPY_BAUD_921600B is not set
# CONFIG_ESPTOOLPY_BAUD_2MB is not set
# CONFIG_ESPTOOLPY_BAUD_OTHER is not set
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
CONFIG_ESPTOOLPY_BAUD=115200
CONFIG_ESPTOOLPY_COMPRESSED=y
# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
@@ -150,6 +117,30 @@ CONFIG_PARTITION_TABLE_OFFSET=0x8000
# CONFIG_PARTITION_TABLE_MD5 is not set
# end of Partition Table
#
# Merus MA120x0 interface Configuration
#
CONFIG_MA120X0_NENABLE_PIN=13
CONFIG_MA120X0_NMUTE_PIN=12
CONFIG_MA120X0_ENABLE_PIN=5
CONFIG_MA120X0_NERR_PIN=34
CONFIG_MA120X0_NCLIP_PIN=35
CONFIG_MA120X0_SCL_PIN=32
CONFIG_MA120X0_SDA_PIN=33
CONFIG_MA120X0_I2C_ADDR=0x20
# end of Merus MA120x0 interface Configuration
#
# ESP32 audio I2S config
#
CONFIG_MASTER_I2S_BCK_PIN=25
CONFIG_MASTER_I2S_LRCK_PIN=26
CONFIG_MASTER_I2S_DATAOUT_PIN=27
CONFIG_SLAVE_I2S_BCK_PIN=26
CONFIG_SLAVE_I2S_LRCK_PIN=12
CONFIG_SLAVE_I2S_DATAOUT_PIN=5
# end of ESP32 audio I2S config
#
# Compiler options
#
@@ -317,23 +308,6 @@ CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5
# CONFIG_PM_ENABLE is not set
# end of Power Management
#
# Memory protection
#
CONFIG_ESP32S2_MEMPROT_FEATURE=y
CONFIG_ESP32S2_MEMPROT_FEATURE_LOCK=y
# end of Memory protection
#
# Cache config
#
# end of Cache config
CONFIG_ESP32S2_TRACEMEM_RESERVE_DRAM=0x0
CONFIG_ESP32S2_ULP_COPROC_RESERVE_MEM=0
CONFIG_ESP32S2_DEBUG_OCDAWARE=y
CONFIG_ESP32S2_BROWNOUT_DET=y
#
# ADC-Calibration
#
@@ -975,6 +949,18 @@ CONFIG_SPIFFS_USE_MTIME=y
# end of Debug Configuration
# end of SPIFFS Configuration
#
# TinyUSB
#
#
# Descriptor configuration
#
CONFIG_USB_DESC_CUSTOM_VID=0x1234
CONFIG_USB_DESC_CUSTOM_PID=0x5678
# end of Descriptor configuration
# end of TinyUSB
#
# Unity unit testing library
#