From 14a74c8e4bf0eca1a103c70df1f8b34632b13301 Mon Sep 17 00:00:00 2001 From: wangmengyang Date: Wed, 16 Nov 2016 21:58:04 +0800 Subject: [PATCH] component/bt: add esp_audio module --- components/esp_audio/Kconfig | 24 + components/esp_audio/README | 21 + components/esp_audio/component.mk | 29 ++ components/esp_audio/include/EspAudio.h | 136 +++++ components/esp_audio/include/EspAudioCom.h | 69 +++ .../esp_audio/include/EspAudioRecorder.h | 70 +++ components/esp_audio/include/audio_log.h | 63 +++ components/esp_audio/include/dlna.h | 36 ++ components/esp_audio/include/driver/dma.h | 127 +++++ .../esp_audio/include/driver/gpio_sig_map.h | 428 +++++++++++++++ components/esp_audio/include/driver/i2c.h | 166 ++++++ .../esp_audio/include/driver/i2c_soft.h | 193 +++++++ .../esp_audio/include/driver/i2c_struct.h | 419 +++++++++++++++ components/esp_audio/include/driver/i2s.h | 431 +++++++++++++++ .../esp_audio/include/driver/ledc_pwm.h | 281 ++++++++++ .../include/driver/ledc_pwm_struct.h | 309 +++++++++++ components/esp_audio/include/driver/pcnt.h | 243 +++++++++ .../esp_audio/include/driver/rmt_ctrl.h | 256 +++++++++ components/esp_audio/include/driver/spi.h | 493 ++++++++++++++++++ .../esp_audio/include/driver/touch_pad.h | 105 ++++ components/esp_audio/include/esp_timer.h | 101 ++++ components/esp_audio/lib/libEspAudio.a | Bin 0 -> 113494 bytes components/esp_audio/lib/libMediaHal.a | Bin 0 -> 384768 bytes components/esp_audio/lib/libMisc.a | Bin 0 -> 24864 bytes components/esp_audio/lib/libdlna.a | Bin 0 -> 510936 bytes 25 files changed, 4000 insertions(+) create mode 100644 components/esp_audio/Kconfig create mode 100644 components/esp_audio/README create mode 100644 components/esp_audio/component.mk create mode 100644 components/esp_audio/include/EspAudio.h create mode 100644 components/esp_audio/include/EspAudioCom.h create mode 100644 components/esp_audio/include/EspAudioRecorder.h create mode 100644 components/esp_audio/include/audio_log.h create mode 100644 components/esp_audio/include/dlna.h create mode 100644 components/esp_audio/include/driver/dma.h create mode 100644 components/esp_audio/include/driver/gpio_sig_map.h create mode 100644 components/esp_audio/include/driver/i2c.h create mode 100644 components/esp_audio/include/driver/i2c_soft.h create mode 100644 components/esp_audio/include/driver/i2c_struct.h create mode 100644 components/esp_audio/include/driver/i2s.h create mode 100644 components/esp_audio/include/driver/ledc_pwm.h create mode 100644 components/esp_audio/include/driver/ledc_pwm_struct.h create mode 100644 components/esp_audio/include/driver/pcnt.h create mode 100644 components/esp_audio/include/driver/rmt_ctrl.h create mode 100644 components/esp_audio/include/driver/spi.h create mode 100644 components/esp_audio/include/driver/touch_pad.h create mode 100644 components/esp_audio/include/esp_timer.h create mode 100644 components/esp_audio/lib/libEspAudio.a create mode 100644 components/esp_audio/lib/libMediaHal.a create mode 100644 components/esp_audio/lib/libMisc.a create mode 100644 components/esp_audio/lib/libdlna.a diff --git a/components/esp_audio/Kconfig b/components/esp_audio/Kconfig new file mode 100644 index 000000000..cfaa7f2c9 --- /dev/null +++ b/components/esp_audio/Kconfig @@ -0,0 +1,24 @@ +menu "EspAudio" + +config AUDIO_LOG_ERROR_EN + bool "Enable Audio error message" + default y + help + Disable it will redurce error information and run faster +config AUDIO_LOG_WARN_EN + bool "Enable Audio warning message" + default y + help + Disable it will redurce warning information and run faster +config AUDIO_LOG_INFO_EN + bool "Enable Audio normal message" + default y + help + Disable it will redurce normal information and run faster +config AUDIO_LOG_DEBUG_EN + bool "Enable Audio debug message" + default n + help + Disable it will redurce debug information and run faster + +endmenu diff --git a/components/esp_audio/README b/components/esp_audio/README new file mode 100644 index 000000000..f87390ece --- /dev/null +++ b/components/esp_audio/README @@ -0,0 +1,21 @@ +Date:2016-11-14 +更新内容: +1.Recorder 支持PCM,实现录音回放的demo, 16k,16bit; +2.fix 播放破音bug; +3.优化按键Key为中断方式; +4. API修改:EspAudioPlayerDataWrite->EspAudioPlayerStreamWrite +5. API新增:EspAudioPlayerStreamCfg(uint32_t rate, uint32_t channel,uint32_t bitLen) + + +Date:2016-11-04 +新增功能: +1.Airpaly +2.DLNA + +Date:2016-10-14 + +Espressif Audio Player Library 0.5.1 +支持功能: +1. URL播放音乐和播控 +2. 音频支持MP3、AAC、FLAC、WAV + diff --git a/components/esp_audio/component.mk b/components/esp_audio/component.mk new file mode 100644 index 000000000..f232add3d --- /dev/null +++ b/components/esp_audio/component.mk @@ -0,0 +1,29 @@ +# +# Component Makefile +# +# This Makefile should, at the very least, just include $(IDF_PATH)/make/component_common.mk. By default, +# this will take the sources in this directory, compile them and link them into +# lib(subdirectory_name).a in the build directory. This behaviour is entirely configurable, +# please read the esp-idf build system document if you need to do this. +# +LIBS := esp_audio + +COMPONENT_ADD_INCLUDEDIRS := include include/driver + +COMPONENT_ADD_LDFLAGS := \ + $(abspath lib/libEspAudio.a) \ + $(abspath lib/libMisc.a) \ + $(abspath lib/libMediaHal.a) \ + $(abspath lib/libdlna.a) \ + +include $(IDF_PATH)/make/component_common.mk + + +# this is a hack to make sure the app is re-linked if the binary +# libraries change or are updated. If they change, the main esp32 +# library will be rebuild by AR andthis will trigger a re-linking of +# the entire app. +# +# It would be better for components to be able to expose any of these +# non-standard dependencies via get_variable, but this will do for now. +$(COMPONENT_LIBRARY): $(ALL_LIB_FILES) diff --git a/components/esp_audio/include/EspAudio.h b/components/esp_audio/include/EspAudio.h new file mode 100644 index 000000000..b72e07144 --- /dev/null +++ b/components/esp_audio/include/EspAudio.h @@ -0,0 +1,136 @@ +// Copyright 2010-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef ESP_AUDIO +#define ESP_AUDIO +#include "esp_types.h" +#include "EspAudioCom.h" + + + +/* + * Maximum size of the URI, including null character. + */ +#define MAX_URI_SIZE 1024 + +/* + * Defines various states that the ESP player can be. + */ +enum EspAudioState +{ + AUDIOSTATE_UNINITIALIZED = 0, /* player is not initialized */ + AUDIOSTATE_IDLE, /* player is idle */ + AUDIOSTATE_STOPPED, /* player is stopled */ + AUDIOSTATE_TRANSIT, /* player is busy in a transition */ + AUDIOSTATE_PLAYING, /* player is currently playing */ + AUDIOSTATE_PAUSED, /* player is in the paused state for playback */ + AUDIOSTATE_ENDED, /* player finished decoding player, without user request. */ + AUDIOSTATE_ERROR, /* player was given a URI that could not be played */ + + AUDIOSTATE_UNKNOWN /* unknown playstate */ +}; + + +typedef enum +{ + InputSrcType_NetSpec = 0, ///< Specify audio file from internet. + InputSrcType_NetLiving = 1, ///< Living audio stream from internet,e.g.m3u8 + InputSrcType_LocalFile = 2, ///< Local file which store in the SD card + InputSrcType_Stream = 3, ///< Only audio stream,e.g.PCM + InputSrcType_Max +} InputSrcType; + + +typedef enum +{ + EspAudioErr_NoErr =0, ///< No error + EspAudioErr_InvalidPara, ///< Invalid parameters + EspAudioErr_NoMem, ///< Malloc failed + EspAudioErr_HardwareErr, ///< Hardware error + EspAudioErr_OutOfRange, ///< length of URI is too long. + EspAudioErr_NotSupport, ///< Not support the + +} EspAudioErr; + + +/* + * Initializes the ESP player library. + */ +void EspAudio_Init(void); + +/* + * Cleans up the ESP player library. + */ +void EspAudio_UnInit(void); + +/* + * Play, stop, pause the streaming and output of player + * EspAudio_Init must be called before these methods work. + */ +int EspAudio_SetupStream(const char* URI, InputSrcType UriType); +/* + * Call this method to transition to playing state. + * + * Returns nonzero if an error occurred. + */ +int EspAudio_Play(void); + +/* + * Call this method to stop playing ESP player. + * + * Returns nonzero if an error occurred. + */ +int EspAudio_Stop(void); + +/* + * Call this method to pause the playing ESP player. + * + * Returns nonzero if an error occurred. + */ +int EspAudio_Pause(void); + +/* + * Returns the playstate of the ESP player library. + * Returns MEDIA_UNKNOWN if the stream could not be found. + */ +enum EspAudioState EspAudio_GetPlayState(void); + +/* + * Get the player volume level . Volume level is from 0 to 100. + * Returns a negative value if the stream could not be found or the value is unknown. + */ +int EspAudio_GetVolume(int *level); + +/* + * Set the player volume level . Volume level is from 0 to 100. + * Returns a negative value if the stream could not be found or the value is unknown. + */ +int EspAudio_SetVolume(int level); + +/* + * Call this method to configrate stream information. + * + * Returns nonzero if an error occurred. + */ +EspAudioErr EspAudioPlayerStreamCfg(uint32_t rate, uint32_t channel,uint32_t bitLen); + +/* + * Call this method to flush stream data to driver. + * + * Returns nonzero if an error occurred. + */ +EspAudioErr EspAudioPlayerStreamWrite(uint8_t *inData, uint32_t inSize); + + +#endif diff --git a/components/esp_audio/include/EspAudioCom.h b/components/esp_audio/include/EspAudioCom.h new file mode 100644 index 000000000..5cec99b3b --- /dev/null +++ b/components/esp_audio/include/EspAudioCom.h @@ -0,0 +1,69 @@ +// Copyright 2010-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _ESPAUDIOCOM_H +#define _ESPAUDIOCOM_H + +#include +#include +#include +#include "audio_log.h" +#include "EspAudioCom.h" + +#define ESP_AUDIO_RELEASE_MAJOR (0000) +#define ESP_AUDIO_RELEASE_MINOR (51) +#define ESP_AUDIO_RELEASE_VER "0.51" + + +typedef struct +{ + uint32_t type; + char str[256]; +} UrlInfo; + + +typedef enum { + StreamType_Opus, + StreamType_Pcm, // it will be support + StreamType_Max, +} StreamType; + + +typedef enum { + StreamSampleRate_8k = 8000, + StreamSampleRate_16k = 16000, // This is support + StreamSampleRate_22K = 22050, + StreamSampleRate_32K = 32000, + StreamSampleRate_44k = 44100, + StreamSampleRate_48k = 48000, + StreamSampleRate_Max, +} StreamSampleRate; + + +typedef enum { + StreamBitLen_8BIT = 8, + StreamBitLen_16BIT = 16, + StreamBitLen_24BIT = 24, + StreamBitLen_32BIT = 32, + StreamBitLen_Max, +} StreamBitLen; + + +typedef enum { + StreamChannel_One, // it will be support + StreamChannel_Two, + StreamChannel_Max, +} StreamChannel; + +#endif /* _ESPAUDIOCOM_H */ \ No newline at end of file diff --git a/components/esp_audio/include/EspAudioRecorder.h b/components/esp_audio/include/EspAudioRecorder.h new file mode 100644 index 000000000..f1a31747c --- /dev/null +++ b/components/esp_audio/include/EspAudioRecorder.h @@ -0,0 +1,70 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __ESPAUDIORECORDER_H__ +#define __ESPAUDIORECORDER_H__ +#include "esp_types.h" +#include "EspAudio.h" + + +//Type Definitions +typedef void (*Callback_RecordData)(void *recBuf, uint32_t *recLen); + +typedef enum { + RecorderState_Unknown = 0, + RecorderState_Init, + RecorderState_Stoped, + RecorderState_Recording, + RecorderState_Paused, +} RecorderState; + +typedef enum { + EncodeType_Opus = 1, + EncodeType_Pcm, // it will be support + EncodeType_Max, +} EncodeType; + + +typedef enum { + RecorderSampleRate_8k = 8000, // it will be support + RecorderSampleRate_16k = 16000, + RecorderSampleRate_Max, +} RecorderSampleRate; + + +typedef enum { + RecorderChannel_One = 1, // it will be support + RecorderChannel_Two, + RecorderChannel_Max, +} RecorderChannel; + + +typedef struct { + RecorderSampleRate rate; + RecorderChannel channel; + EncodeType encodeType; + Callback_RecordData func; +} RecorderAttr; + + +EspAudioErr EspAudioRecorderStart(RecorderAttr *recorderAttr); +EspAudioErr EspAudioRecorderStop(void); +EspAudioErr EspAudioRecorderPause(void); +EspAudioErr EspAudioRecorderResume(void); +EspAudioErr EspAudioRecorderStateGet(RecorderState *state); +EspAudioErr EspAudioRecorderInit(void); +EspAudioErr EspAudioRecorderUninit(void); + + +#endif //__ESPAUDIORECORDER_H__ diff --git a/components/esp_audio/include/audio_log.h b/components/esp_audio/include/audio_log.h new file mode 100644 index 000000000..0d3f48966 --- /dev/null +++ b/components/esp_audio/include/audio_log.h @@ -0,0 +1,63 @@ +// Copyright 2010-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __AUDIO_LOG_H__ +#define __AUDIO_LOG_H__ +#include "esp_types.h" +#include "sdkconfig.h" + +//***************************************************************************** +// +// Make sure all of the definitions in this header have a C binding. +// +//***************************************************************************** + +#ifdef __cplusplus +extern "C" +{ +#endif + +void __log(const char *level, const char * func, uint32_t line, const char * restrict format, ...); + +#ifdef CONFIG_AUDIO_LOG_INFO_EN +#define LOGI(format, ...) __log("I", __func__, __LINE__, format, ##__VA_ARGS__); +#else +#define LOGI(format, ...) +#endif + +#ifdef CONFIG_AUDIO_LOG_DEBUG_EN +#define LOGD(format, ...) __log("D", __func__, __LINE__, format, ##__VA_ARGS__); +#else +#define LOGD(format, ...) +#endif + +#ifdef CONFIG_AUDIO_LOG_WARN_EN +#define LOGW(format, ...) __log("W", __func__, __LINE__, format, ##__VA_ARGS__); +#else +#define LOGW(format, ...) +#endif + +#ifdef CONFIG_AUDIO_LOG_ERROR_EN +#define LOGE(format, ...) __log("E", __func__, __LINE__, format, ##__VA_ARGS__); +#else +#define LOGE(format, ...) +#endif + + + +#ifdef __cplusplus +} +#endif + +#endif // __AUDIO_LOG_H__ diff --git a/components/esp_audio/include/dlna.h b/components/esp_audio/include/dlna.h new file mode 100644 index 000000000..f8d5b98d0 --- /dev/null +++ b/components/esp_audio/include/dlna.h @@ -0,0 +1,36 @@ +#ifndef _DNLA_H_ +#define _DNLA_H_ +typedef enum { + DLNA_INIT, + DLNA_START, + DLNA_STOP, + DLNA_MEDIA_PLAYING, + DLNA_MEDIA_PAUSED, + DLNA_MEDIA_ERROR, + DLNA_MEDIA_STOPPED, + DLNA_MEDIA_ENDED, + DLNA_UNINIT +} EspDlnaState; + + +typedef void (*dnlaStateCallback)(EspDlnaState state); + +typedef enum { + ESPDLNA_ERROR = -1, + ESPDLNA_OK = 0 +} EspDlnaErr; + +typedef struct { + char FriendlyName[128]; + char UDN[64]; + char SerialNumber[64]; + int NotifyCycleSeconds; + unsigned short PortNum; +} EspDlnaAttr; + +void dlna_task(void *pvParameters); +EspDlnaErr EspDlnaInit(EspDlnaAttr *attr, dnlaStateCallback cb); +EspDlnaErr EspDlnaUnInit(void); +EspDlnaErr EspDlnaStart(void); +EspDlnaErr EspDlnaStop(void); +#endif diff --git a/components/esp_audio/include/driver/dma.h b/components/esp_audio/include/driver/dma.h new file mode 100644 index 000000000..dd7552e2c --- /dev/null +++ b/components/esp_audio/include/driver/dma.h @@ -0,0 +1,127 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_DMA_H_ +#define _DRIVER_DMA_H__ +#include + +#include "esp_err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \defgroup Driver_APIs Driver APIs + * @brief Driver APIs + */ + +/** @addtogroup Driver_APIs + * @{ + */ + +/** + * @brief DMA queue description. + */ +typedef struct { + uint32_t block_size: 12; + uint32_t data_length: 12; + uint32_t unused: 5; + uint32_t sub_sof: 1; + uint32_t eof: 1; + uint32_t owner: 1; + uint32_t buf_ptr; + uint32_t next_link_ptr; +} dma_queue_t; + +/** + * @brief DMA element description + */ +typedef struct { + uint32_t *buffer_addr; + dma_queue_t *first_queue; + dma_queue_t *last_queue; + dma_queue_t backup_queue; +} dma_element_t; + +/** + * @brief DMA ping-pong buffer object description + */ +typedef struct { + dma_element_t *ping; + dma_element_t *pong; + uint32_t len; + uint32_t queue_cnt; +} ping_pong_buf_t; + + +/** + * @brief Create a ping-pong buffer object used by DMA. + * + * @param [in] bufLen + * Set the buffer length. + * -------------------- + * | ping | Pong | + * -------------------- + * | bufLen | bufLen | + * -------------------- + * + * @return uint32*, NULL:indicates parameter error, others indicates ping-pong buffer address. + */ +ping_pong_buf_t* dma_buf_create(uint32_t bufLen); + +/** + * @brief Reset the dma buffer length. + * + * @param [in] obj + * Pointer to a struct ping_pong_buf_t that indicates the object length to be reset to bufLen. + * + * @return uint32*, ESP_FAIL:indicates parameter error, ESP_OK :indicates success. + */ +esp_err_t dma_buf_len_reset(ping_pong_buf_t *obj); + +/** + * @brief Set the buffer length before the start. + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t. + * @param [in] len + * Set the transmit length . + * + * @return uint32*, ESP_FAIL:indicates parameter error, ESP_OK: indicates success. + */ +esp_err_t dma_buf_len_set(ping_pong_buf_t *obj, dma_element_t *element, uint32_t len); + +/** + * @brief Destroy the ping-pong buffer instance. + * + * @param [in] obj + * Pointer to a struct ping_pong_buf_t that indicates the object to be destroy. + * + * @return NULL + */ +void dma_buf_destroy(ping_pong_buf_t *obj); + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif // __DMA_H__ diff --git a/components/esp_audio/include/driver/gpio_sig_map.h b/components/esp_audio/include/driver/gpio_sig_map.h new file mode 100644 index 000000000..65f138404 --- /dev/null +++ b/components/esp_audio/include/driver/gpio_sig_map.h @@ -0,0 +1,428 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_GPIO_SIG_MAP_H_ +#define _DRIVER_GPIO_SIG_MAP_H_ + +#define SPICLK_IN_IDX 0 +#define SPICLK_OUT_IDX 0 +#define SPIQ_IN_IDX 1 +#define SPIQ_OUT_IDX 1 +#define SPID_IN_IDX 2 +#define SPID_OUT_IDX 2 +#define SPIHD_IN_IDX 3 +#define SPIHD_OUT_IDX 3 +#define SPIWP_IN_IDX 4 +#define SPIWP_OUT_IDX 4 +#define SPICS0_IN_IDX 5 +#define SPICS0_OUT_IDX 5 +#define SPICS1_IN_IDX 6 +#define SPICS1_OUT_IDX 6 +#define SPICS2_IN_IDX 7 +#define SPICS2_OUT_IDX 7 +#define HSPICLK_IN_IDX 8 +#define HSPICLK_OUT_IDX 8 +#define HSPIQ_IN_IDX 9 +#define HSPIQ_OUT_IDX 9 +#define HSPID_IN_IDX 10 +#define HSPID_OUT_IDX 10 +#define HSPICS0_IN_IDX 11 +#define HSPICS0_OUT_IDX 11 +#define HSPIHD_IN_IDX 12 +#define HSPIHD_OUT_IDX 12 +#define HSPIWP_IN_IDX 13 +#define HSPIWP_OUT_IDX 13 +#define U0RXD_IN_IDX 14 +#define U0TXD_OUT_IDX 14 +#define U0CTS_IN_IDX 15 +#define U0RTS_OUT_IDX 15 +#define U0DSR_IN_IDX 16 +#define U0DTR_OUT_IDX 16 +#define U1RXD_IN_IDX 17 +#define U1TXD_OUT_IDX 17 +#define U1CTS_IN_IDX 18 +#define U1RTS_OUT_IDX 18 +#define I2CM_SCL_O_IDX 19 +#define I2CM_SDA_I_IDX 20 +#define I2CM_SDA_O_IDX 20 +#define EXT_I2C_SCL_O_IDX 21 +#define EXT_I2C_SDA_O_IDX 22 +#define EXT_I2C_SDA_I_IDX 22 +#define I2S0O_BCK_IN_IDX 23 +#define I2S0O_BCK_OUT_IDX 23 +#define I2S1O_BCK_IN_IDX 24 +#define I2S1O_BCK_OUT_IDX 24 +#define I2S0O_WS_IN_IDX 25 +#define I2S0O_WS_OUT_IDX 25 +#define I2S1O_WS_IN_IDX 26 +#define I2S1O_WS_OUT_IDX 26 +#define I2S0I_BCK_IN_IDX 27 +#define I2S0I_BCK_OUT_IDX 27 +#define I2S0I_WS_IN_IDX 28 +#define I2S0I_WS_OUT_IDX 28 +#define I2CEXT0_SCL_IN_IDX 29 +#define I2CEXT0_SCL_OUT_IDX 29 +#define I2CEXT0_SDA_IN_IDX 30 +#define I2CEXT0_SDA_OUT_IDX 30 +#define PWM0_SYNC0_IN_IDX 31 +#define SDIO_TOHOST_INT_OUT_IDX 31 +#define PWM0_SYNC1_IN_IDX 32 +#define PWM0_OUT0A_IDX 32 +#define PWM0_SYNC2_IN_IDX 33 +#define PWM0_OUT0B_IDX 33 +#define PWM0_F0_IN_IDX 34 +#define PWM0_OUT1A_IDX 34 +#define PWM0_F1_IN_IDX 35 +#define PWM0_OUT1B_IDX 35 +#define PWM0_F2_IN_IDX 36 +#define PWM0_OUT2A_IDX 36 +#define GPIO_BT_ACTIVE_IDX 37 +#define PWM0_OUT2B_IDX 37 +#define GPIO_BT_PRIORITY_IDX 38 +#define PCNT_SIG_CH0_IN0_IDX 39 +#define PCNT_SIG_CH1_IN0_IDX 40 +#define GPIO_WLAN_ACTIVE_IDX 40 +#define PCNT_CTRL_CH0_IN0_IDX 41 +#define BB_DIAG0_IDX 41 +#define PCNT_CTRL_CH1_IN0_IDX 42 +#define BB_DIAG1_IDX 42 +#define PCNT_SIG_CH0_IN1_IDX 43 +#define BB_DIAG2_IDX 43 +#define PCNT_SIG_CH1_IN1_IDX 44 +#define BB_DIAG3_IDX 44 +#define PCNT_CTRL_CH0_IN1_IDX 45 +#define BB_DIAG4_IDX 45 +#define PCNT_CTRL_CH1_IN1_IDX 46 +#define BB_DIAG5_IDX 46 +#define PCNT_SIG_CH0_IN2_IDX 47 +#define BB_DIAG6_IDX 47 +#define PCNT_SIG_CH1_IN2_IDX 48 +#define BB_DIAG7_IDX 48 +#define PCNT_CTRL_CH0_IN2_IDX 49 +#define BB_DIAG8_IDX 49 +#define PCNT_CTRL_CH1_IN2_IDX 50 +#define BB_DIAG9_IDX 50 +#define PCNT_SIG_CH0_IN3_IDX 51 +#define BB_DIAG10_IDX 51 +#define PCNT_SIG_CH1_IN3_IDX 52 +#define BB_DIAG11_IDX 52 +#define PCNT_CTRL_CH0_IN3_IDX 53 +#define BB_DIAG12_IDX 53 +#define PCNT_CTRL_CH1_IN3_IDX 54 +#define BB_DIAG13_IDX 54 +#define PCNT_SIG_CH0_IN4_IDX 55 +#define BB_DIAG14_IDX 55 +#define PCNT_SIG_CH1_IN4_IDX 56 +#define BB_DIAG15_IDX 56 +#define PCNT_CTRL_CH0_IN4_IDX 57 +#define BB_DIAG16_IDX 57 +#define PCNT_CTRL_CH1_IN4_IDX 58 +#define BB_DIAG17_IDX 58 +#define BB_DIAG18_IDX 59 +#define BB_DIAG19_IDX 60 +#define HSPICS1_IN_IDX 61 +#define HSPICS1_OUT_IDX 61 +#define HSPICS2_IN_IDX 62 +#define HSPICS2_OUT_IDX 62 +#define VSPICLK_IN_IDX 63 +#define VSPICLK_OUT_MUX_IDX 63 +#define VSPIQ_IN_IDX 64 +#define VSPIQ_OUT_IDX 64 +#define VSPID_IN_IDX 65 +#define VSPID_OUT_IDX 65 +#define VSPIHD_IN_IDX 66 +#define VSPIHD_OUT_IDX 66 +#define VSPIWP_IN_IDX 67 +#define VSPIWP_OUT_IDX 67 +#define VSPICS0_IN_IDX 68 +#define VSPICS0_OUT_IDX 68 +#define VSPICS1_IN_IDX 69 +#define VSPICS1_OUT_IDX 69 +#define VSPICS2_IN_IDX 70 +#define VSPICS2_OUT_IDX 70 +#define PCNT_SIG_CH0_IN5_IDX 71 +#define LEDC_HS_SIG_OUT0_IDX 71 +#define PCNT_SIG_CH1_IN5_IDX 72 +#define LEDC_HS_SIG_OUT1_IDX 72 +#define PCNT_CTRL_CH0_IN5_IDX 73 +#define LEDC_HS_SIG_OUT2_IDX 73 +#define PCNT_CTRL_CH1_IN5_IDX 74 +#define LEDC_HS_SIG_OUT3_IDX 74 +#define PCNT_SIG_CH0_IN6_IDX 75 +#define LEDC_HS_SIG_OUT4_IDX 75 +#define PCNT_SIG_CH1_IN6_IDX 76 +#define LEDC_HS_SIG_OUT5_IDX 76 +#define PCNT_CTRL_CH0_IN6_IDX 77 +#define LEDC_HS_SIG_OUT6_IDX 77 +#define PCNT_CTRL_CH1_IN6_IDX 78 +#define LEDC_HS_SIG_OUT7_IDX 78 +#define PCNT_SIG_CH0_IN7_IDX 79 +#define LEDC_LS_SIG_OUT0_IDX 79 +#define PCNT_SIG_CH1_IN7_IDX 80 +#define LEDC_LS_SIG_OUT1_IDX 80 +#define PCNT_CTRL_CH0_IN7_IDX 81 +#define LEDC_LS_SIG_OUT2_IDX 81 +#define PCNT_CTRL_CH1_IN7_IDX 82 +#define LEDC_LS_SIG_OUT3_IDX 82 +#define RMT_SIG_IN0_IDX 83 +#define LEDC_LS_SIG_OUT4_IDX 83 +#define RMT_SIG_IN1_IDX 84 +#define LEDC_LS_SIG_OUT5_IDX 84 +#define RMT_SIG_IN2_IDX 85 +#define LEDC_LS_SIG_OUT6_IDX 85 +#define RMT_SIG_IN3_IDX 86 +#define LEDC_LS_SIG_OUT7_IDX 86 +#define RMT_SIG_IN4_IDX 87 +#define RMT_SIG_OUT0_IDX 87 +#define RMT_SIG_IN5_IDX 88 +#define RMT_SIG_OUT1_IDX 88 +#define RMT_SIG_IN6_IDX 89 +#define RMT_SIG_OUT2_IDX 89 +#define RMT_SIG_IN7_IDX 90 +#define RMT_SIG_OUT3_IDX 90 +#define RMT_SIG_OUT4_IDX 91 +#define RMT_SIG_OUT5_IDX 92 +#define EXT_ADC_START_IDX 93 +#define RMT_SIG_OUT6_IDX 93 +#define CAN_RX_IDX 94 +#define RMT_SIG_OUT7_IDX 94 +#define I2CEXT1_SCL_IN_IDX 95 +#define I2CEXT1_SCL_OUT_IDX 95 +#define I2CEXT1_SDA_IN_IDX 96 +#define I2CEXT1_SDA_OUT_IDX 96 +#define HOST_CARD_DETECT_N_1_IDX 97 +#define HOST_CCMD_OD_PULLUP_EN_N_IDX 97 +#define HOST_CARD_DETECT_N_2_IDX 98 +#define HOST_RST_N_1_IDX 98 +#define HOST_CARD_WRITE_PRT_1_IDX 99 +#define HOST_RST_N_2_IDX 99 +#define HOST_CARD_WRITE_PRT_2_IDX 100 +#define GPIO_SD0_OUT_IDX 100 +#define HOST_CARD_INT_N_1_IDX 101 +#define GPIO_SD1_OUT_IDX 101 +#define HOST_CARD_INT_N_2_IDX 102 +#define GPIO_SD2_OUT_IDX 102 +#define PWM1_SYNC0_IN_IDX 103 +#define GPIO_SD3_OUT_IDX 103 +#define PWM1_SYNC1_IN_IDX 104 +#define GPIO_SD4_OUT_IDX 104 +#define PWM1_SYNC2_IN_IDX 105 +#define GPIO_SD5_OUT_IDX 105 +#define PWM1_F0_IN_IDX 106 +#define GPIO_SD6_OUT_IDX 106 +#define PWM1_F1_IN_IDX 107 +#define GPIO_SD7_OUT_IDX 107 +#define PWM1_F2_IN_IDX 108 +#define PWM1_OUT0A_IDX 108 +#define PWM0_CAP0_IN_IDX 109 +#define PWM1_OUT0B_IDX 109 +#define PWM0_CAP1_IN_IDX 110 +#define PWM1_OUT1A_IDX 110 +#define PWM0_CAP2_IN_IDX 111 +#define PWM1_OUT1B_IDX 111 +#define PWM1_CAP0_IN_IDX 112 +#define PWM1_OUT2A_IDX 112 +#define PWM1_CAP1_IN_IDX 113 +#define PWM1_OUT2B_IDX 113 +#define PWM1_CAP2_IN_IDX 114 +#define PWM2_OUT1H_IDX 114 +#define PWM2_FLTA_IDX 115 +#define PWM2_OUT1L_IDX 115 +#define PWM2_FLTB_IDX 116 +#define PWM2_OUT2H_IDX 116 +#define PWM2_CAP1_IN_IDX 117 +#define PWM2_OUT2L_IDX 117 +#define PWM2_CAP2_IN_IDX 118 +#define PWM2_OUT3H_IDX 118 +#define PWM2_CAP3_IN_IDX 119 +#define PWM2_OUT3L_IDX 119 +#define PWM3_FLTA_IDX 120 +#define PWM2_OUT4H_IDX 120 +#define PWM3_FLTB_IDX 121 +#define PWM2_OUT4L_IDX 121 +#define PWM3_CAP1_IN_IDX 122 +#define PWM3_CAP2_IN_IDX 123 +#define CAN_TX_IDX 123 +#define PWM3_CAP3_IN_IDX 124 +#define CAN_BUS_OFF_ON_IDX 124 +#define ATCK_IN_IDX 125 +#define CAN_CLKOUT_IDX 125 +#define ATMS_IN_IDX 126 +#define ATDI_IN_IDX 127 +#define ATDO_OUT_IDX 127 +#define SPID4_IN_IDX 128 +#define SPID4_OUT_IDX 128 +#define SPID5_IN_IDX 129 +#define SPID5_OUT_IDX 129 +#define SPID6_IN_IDX 130 +#define SPID6_OUT_IDX 130 +#define SPID7_IN_IDX 131 +#define SPID7_OUT_IDX 131 +#define HSPID4_IN_IDX 132 +#define HSPID4_OUT_IDX 132 +#define HSPID5_IN_IDX 133 +#define HSPID5_OUT_IDX 133 +#define HSPID6_IN_IDX 134 +#define HSPID6_OUT_IDX 134 +#define HSPID7_IN_IDX 135 +#define HSPID7_OUT_IDX 135 +#define VSPID4_IN_IDX 136 +#define VSPID4_OUT_IDX 136 +#define VSPID5_IN_IDX 137 +#define VSPID5_OUT_IDX 137 +#define VSPID6_IN_IDX 138 +#define VSPID6_OUT_IDX 138 +#define VSPID7_IN_IDX 139 +#define VSPID7_OUT_IDX 139 +#define I2S0I_DATA_IN0_IDX 140 +#define I2S0O_DATA_OUT0_IDX 140 +#define I2S0I_DATA_IN1_IDX 141 +#define I2S0O_DATA_OUT1_IDX 141 +#define I2S0I_DATA_IN2_IDX 142 +#define I2S0O_DATA_OUT2_IDX 142 +#define I2S0I_DATA_IN3_IDX 143 +#define I2S0O_DATA_OUT3_IDX 143 +#define I2S0I_DATA_IN4_IDX 144 +#define I2S0O_DATA_OUT4_IDX 144 +#define I2S0I_DATA_IN5_IDX 145 +#define I2S0O_DATA_OUT5_IDX 145 +#define I2S0I_DATA_IN6_IDX 146 +#define I2S0O_DATA_OUT6_IDX 146 +#define I2S0I_DATA_IN7_IDX 147 +#define I2S0O_DATA_OUT7_IDX 147 +#define I2S0I_DATA_IN8_IDX 148 +#define I2S0O_DATA_OUT8_IDX 148 +#define I2S0I_DATA_IN9_IDX 149 +#define I2S0O_DATA_OUT9_IDX 149 +#define I2S0I_DATA_IN10_IDX 150 +#define I2S0O_DATA_OUT10_IDX 150 +#define I2S0I_DATA_IN11_IDX 151 +#define I2S0O_DATA_OUT11_IDX 151 +#define I2S0I_DATA_IN12_IDX 152 +#define I2S0O_DATA_OUT12_IDX 152 +#define I2S0I_DATA_IN13_IDX 153 +#define I2S0O_DATA_OUT13_IDX 153 +#define I2S0I_DATA_IN14_IDX 154 +#define I2S0O_DATA_OUT14_IDX 154 +#define I2S0I_DATA_IN15_IDX 155 +#define I2S0O_DATA_OUT15_IDX 155 +#define ATRST_IN_IDX 156 +#define I2S0O_DATA_OUT16_IDX 156 +#define I2S0O_DATA_OUT17_IDX 157 +#define I2S0O_DATA_OUT18_IDX 158 +#define I2S0O_DATA_OUT19_IDX 159 +#define I2S0O_DATA_OUT20_IDX 160 +#define I2S0O_DATA_OUT21_IDX 161 +#define I2S0O_DATA_OUT22_IDX 162 +#define I2S0O_DATA_OUT23_IDX 163 +#define I2S1I_BCK_IN_IDX 164 +#define I2S1I_BCK_OUT_IDX 164 +#define I2S1I_WS_IN_IDX 165 +#define I2S1I_WS_OUT_IDX 165 +#define I2S1I_DATA_IN0_IDX 166 +#define I2S1O_DATA_OUT0_IDX 166 +#define I2S1I_DATA_IN1_IDX 167 +#define I2S1O_DATA_OUT1_IDX 167 +#define I2S1I_DATA_IN2_IDX 168 +#define I2S1O_DATA_OUT2_IDX 168 +#define I2S1I_DATA_IN3_IDX 169 +#define I2S1O_DATA_OUT3_IDX 169 +#define I2S1I_DATA_IN4_IDX 170 +#define I2S1O_DATA_OUT4_IDX 170 +#define I2S1I_DATA_IN5_IDX 171 +#define I2S1O_DATA_OUT5_IDX 171 +#define I2S1I_DATA_IN6_IDX 172 +#define I2S1O_DATA_OUT6_IDX 172 +#define I2S1I_DATA_IN7_IDX 173 +#define I2S1O_DATA_OUT7_IDX 173 +#define I2S1I_DATA_IN8_IDX 174 +#define I2S1O_DATA_OUT8_IDX 174 +#define I2S1I_DATA_IN9_IDX 175 +#define I2S1O_DATA_OUT9_IDX 175 +#define I2S1I_DATA_IN10_IDX 176 +#define I2S1O_DATA_OUT10_IDX 176 +#define I2S1I_DATA_IN11_IDX 177 +#define I2S1O_DATA_OUT11_IDX 177 +#define I2S1I_DATA_IN12_IDX 178 +#define I2S1O_DATA_OUT12_IDX 178 +#define I2S1I_DATA_IN13_IDX 179 +#define I2S1O_DATA_OUT13_IDX 179 +#define I2S1I_DATA_IN14_IDX 180 +#define I2S1O_DATA_OUT14_IDX 180 +#define I2S1I_DATA_IN15_IDX 181 +#define I2S1O_DATA_OUT15_IDX 181 +#define I2S1O_DATA_OUT16_IDX 182 +#define I2S1O_DATA_OUT17_IDX 183 +#define I2S1O_DATA_OUT18_IDX 184 +#define I2S1O_DATA_OUT19_IDX 185 +#define I2S1O_DATA_OUT20_IDX 186 +#define I2S1O_DATA_OUT21_IDX 187 +#define I2S1O_DATA_OUT22_IDX 188 +#define I2S1O_DATA_OUT23_IDX 189 +#define I2S0I_H_SYNC_IDX 190 +#define PWM3_OUT1H_IDX 190 +#define I2S0I_V_SYNC_IDX 191 +#define PWM3_OUT1L_IDX 191 +#define I2S0I_H_ENABLE_IDX 192 +#define PWM3_OUT2H_IDX 192 +#define I2S1I_H_SYNC_IDX 193 +#define PWM3_OUT2L_IDX 193 +#define I2S1I_V_SYNC_IDX 194 +#define PWM3_OUT3H_IDX 194 +#define I2S1I_H_ENABLE_IDX 195 +#define PWM3_OUT3L_IDX 195 +#define PWM3_OUT4H_IDX 196 +#define PWM3_OUT4L_IDX 197 +#define U2RXD_IN_IDX 198 +#define U2TXD_OUT_IDX 198 +#define U2CTS_IN_IDX 199 +#define U2RTS_OUT_IDX 199 +#define EMAC_MDC_I_IDX 200 +#define EMAC_MDC_O_IDX 200 +#define EMAC_MDI_I_IDX 201 +#define EMAC_MDO_O_IDX 201 +#define EMAC_CRS_I_IDX 202 +#define EMAC_CRS_O_IDX 202 +#define EMAC_COL_I_IDX 203 +#define EMAC_COL_O_IDX 203 +#define PCMFSYNC_IN_IDX 204 +#define BT_AUDIO0_IRQ_IDX 204 +#define PCMCLK_IN_IDX 205 +#define BT_AUDIO1_IRQ_IDX 205 +#define PCMDIN_IDX 206 +#define BT_AUDIO2_IRQ_IDX 206 +#define BLE_AUDIO0_IRQ_IDX 207 +#define BLE_AUDIO1_IRQ_IDX 208 +#define BLE_AUDIO2_IRQ_IDX 209 +#define PCMFSYNC_OUT_IDX 210 +#define PCMCLK_OUT_IDX 211 +#define PCMDOUT_IDX 212 +#define BLE_AUDIO_SYNC0_P_IDX 213 +#define BLE_AUDIO_SYNC1_P_IDX 214 +#define BLE_AUDIO_SYNC2_P_IDX 215 +#define ANT_SEL0_IDX 216 +#define ANT_SEL1_IDX 217 +#define ANT_SEL2_IDX 218 +#define ANT_SEL3_IDX 219 +#define ANT_SEL4_IDX 220 +#define ANT_SEL5_IDX 221 +#define ANT_SEL6_IDX 222 +#define ANT_SEL7_IDX 223 +#define SIG_IN_FUNC224_IDX 224 +#define SIG_IN_FUNC225_IDX 225 +#define SIG_IN_FUNC226_IDX 226 +#define SIG_IN_FUNC227_IDX 227 +#define SIG_IN_FUNC228_IDX 228 + +#endif /* _DRIVER_GPIO_SIG_MAP_H_ */ diff --git a/components/esp_audio/include/driver/i2c.h b/components/esp_audio/include/driver/i2c.h new file mode 100644 index 000000000..a3106a8b9 --- /dev/null +++ b/components/esp_audio/include/driver/i2c.h @@ -0,0 +1,166 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#ifndef _DRIVER_I2C_H_ +#define _DRIVER_I2C_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "esp_types.h" +#include "soc/i2c_reg.h" +#include "soc/soc.h" +#include "soc/dport_reg.h" + +#define I2C_DEV(i) ((i2c_dev_t *)(REG_I2C_BASE(i))) +#define I2C_APB_CLK_FREQ APB_CLK_FREQ +#define I2C_COMD_REG(i2c_no, cmd_no) (I2C_COMD0_REG(i2c_no)+ (cmd_no)*4 ) +#define I2C_COMMAND_DONE (BIT(31)) +#define I2C_COMMAND_DONE_M (BIT(31)) +#define I2C_COMMAND_DONE_V 0x1 +#define I2C_COMMAND_DONE_S 31 +#define I2C_COMMAND_OP_CODE 0x7 +#define I2C_COMMAND_OP_CODE_M ((I2C_COMMAND_OP_CODE_V)<<(I2C_COMMAND_OP_CODE_S)) +#define I2C_COMMAND_OP_CODE_V 0x7 +#define I2C_COMMAND_OP_CODE_S 11 +#define I2C_COMMAND_ACK_VALUE (BIT(10)) +#define I2C_COMMAND_ACK_VALUE_M (BIT(10)) +#define I2C_COMMAND_ACK_VALUE_V 0x1 +#define I2C_COMMAND_ACK_VALUE_S 10 +#define I2C_COMMAND_ACK_EXP (BIT(9)) +#define I2C_COMMAND_ACK_EXP_M (BIT(9)) +#define I2C_COMMAND_ACK_EXP_V 0x1 +#define I2C_COMMAND_ACK_EXP_S 9 +#define I2C_COMMAND_ACK_EN (BIT(8)) +#define I2C_COMMAND_ACK_EN_M (BIT(8)) +#define I2C_COMMAND_ACK_EN_V 0x1 +#define I2C_COMMAND_ACK_EN_S 8 +#define I2C_COMMAND_BYTE_NUM 0xff +#define I2C_COMMAND_BYTE_NUM_M 0xff +#define I2C_COMMAND_BYTE_NUM_V 0xff +#define I2C_COMMAND_BYTE_NUM_S 0 + +typedef enum{ + I2C_SLAVE_MODE = 0, + I2C_MASTER_MODE, +}enum_i2c_mode_t; + +typedef enum{ + I2C_CMD_RESTART = 0, + I2C_CMD_WRITE, + I2C_CMD_READ, + I2C_CMD_STOP, + I2C_CMD_END +}enum_cmd_opcode_t; + +typedef enum{ + I2C0 = 0, // 0x3ff53000 + I2C1 , // 0x3ff67000 + I2C_MAX +} enum_i2c_port_t; + +typedef struct{ + enum_i2c_mode_t mode; + uint8_t addr_10bit_en; + uint16_t slave_addr; + uint32_t clk_speed; +}i2c_config_t; + +typedef struct{ + uint8_t byte_num; + uint8_t ack_en; + uint8_t ack_exp; + uint8_t ack_val; + enum_cmd_opcode_t op_code; +}i2c_cmd_def_t; + + +/** + * @brief Reset I2C tx fifo, flush the data in tx fifo. + * + * @param enum_i2c_port_t i2c_no : I2C port num (I2C0 or I2C1) + * + * @return null + */ +void i2c_reset_tx_fifo(enum_i2c_port_t i2c_no ); + +/** + * @brief Fill the tx fifo with the given data bytes + * + * @param enum_i2c_port_t i2c_no : I2C port num (I2C0 or I2C1) + * @param uint8_t *data : pointer to the data buffer + * @param uint8_t len : data length of the data + * + * @return null + */ +void i2c_tx_fifo_push(enum_i2c_port_t i2c_no,uint8_t *data , uint8_t len); + +/** + * @brief Reset I2C rx fifo, flush the data in rx fifo. + * + * @param enum_i2c_port_t i2c_no : I2C port num (I2C0 or I2C1) + * + * @return null + */ +void i2c_reset_rx_fifo(enum_i2c_port_t i2c_no); + +/** + * @brief Fill the tx fifo with the given data bytes + * + * @param enum_i2c_port_t i2c_no : I2C port num (I2C0 or I2C1) + * @param uint8_t cmd_idx : i2c command index(at most 16 commands one time) + * @param i2c_cmd_def_t* cmd : command definition. + * + * @return null + */ +void i2c_config_cmd(enum_i2c_port_t i2c_no,uint8_t cmd_idx, i2c_cmd_def_t* cmd); + +/** + * @brief Start sending data to i2c bus.The data is defined in the command registers.Stop when there is a "STOP" command + * + * @param enum_i2c_port_t i2c_no : I2C port num (I2C0 or I2C1) + * + * @return null + */ +void i2c_start(enum_i2c_port_t i2c_no); + +/** + * @brief Set and initialize i2c params + * + * @param enum_i2c_port_t i2c_no : I2C port num (I2C0 or I2C1) + * @param i2c_config_t* i2c_conf : i2c setting param struct + * + * @return null + */ +void i2c_init( enum_i2c_port_t i2c_no, i2c_config_t* i2c_conf); + +/** + * @brief Set and initialize i2c interruption handler + * + * @param uint8_t cpu_num : CPU number (PRO_CPU_NUM or APP_CPU_NUM) + * @param enum_i2c_port_t i2c_no : I2C port num (I2C0 or I2C1) + * @param uint8_t i2c_intr_num : i2c interrupt number, set this value according to interrupt cpu using table, Please see the core-isa.h + * @param void (* fn)(void* ) : i2c interrupt handler + * @param void * arg : param pointer of i2c interrupt handler + * + * @return null + */ +void i2c_intr_register(uint8_t cpu_num,enum_i2c_port_t i2c_no,uint8_t i2c_intr_num,void (* fn)(void* ),void * arg); + + +#ifdef __cplusplus +} +#endif + +#endif /*_DRIVER_I2C_H_*/ diff --git a/components/esp_audio/include/driver/i2c_soft.h b/components/esp_audio/include/driver/i2c_soft.h new file mode 100644 index 000000000..a0b34bb13 --- /dev/null +++ b/components/esp_audio/include/driver/i2c_soft.h @@ -0,0 +1,193 @@ +#ifndef __I2C_MASTER_H__ +#define __I2C_MASTER_H__ + +#include +#include "driver/gpio.h" +#include "esp_types.h" +#include "rom/ets_sys.h" + +#if 0 +#define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_MTMS_U +#define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_MTDO_U +#define I2C_MASTER_SDA_GPIO 14 +#define I2C_MASTER_SCL_GPIO 15 +#define I2C_MASTER_SDA_FUNC FUNC_MTMS_GPIO14 +#define I2C_MASTER_SCL_FUNC FUNC_MTDO_GPIO15 +#endif + +#if 0 +#define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO26_U +#define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_GPIO27_U +#define I2C_MASTER_SDA_GPIO 26 +#define I2C_MASTER_SDA_PIN GPIO_Pin_26 + +#define I2C_MASTER_SCL_PIN GPIO_Pin_27 +#define I2C_MASTER_SCL_GPIO 27 +#define I2C_MASTER_SDA_FUNC FUNC_GPIO26_GPIO26 +#define I2C_MASTER_SCL_FUNC FUNC_GPIO27_GPIO27 +#endif + +#if 1 + +#define I2C_MASTER_SDA_GPIO 21 +#define I2C_MASTER_SDA_PIN GPIO_SEL_21 + +#define I2C_MASTER_SCL_PIN GPIO_SEL_19 +#define I2C_MASTER_SCL_GPIO 19 +#endif + +#if 0 +#define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO23_U +#define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_GPIO5_U +#define I2C_MASTER_SDA_GPIO 23 +#define I2C_MASTER_SDA_PIN GPIO_Pin_23 + +#define I2C_MASTER_SCL_PIN GPIO_Pin_5 +#define I2C_MASTER_SCL_GPIO 5 +#define I2C_MASTER_SDA_FUNC FUNC_GPIO23_GPIO23 +#define I2C_MASTER_SCL_FUNC FUNC_GPIO5_GPIO5 +#endif + +#define I2C_MASTER_SDA_HIGH_SCL_HIGH() \ + gpio_set_level(I2C_MASTER_SDA_GPIO,1);\ + gpio_set_level(I2C_MASTER_SCL_GPIO,1); + +#define I2C_MASTER_SDA_HIGH_SCL_LOW() \ + gpio_set_level(I2C_MASTER_SDA_GPIO,1);\ + gpio_set_level(I2C_MASTER_SCL_GPIO,0); + +#define I2C_MASTER_SDA_LOW_SCL_HIGH() \ + gpio_set_level(I2C_MASTER_SDA_GPIO,0);\ + gpio_set_level(I2C_MASTER_SCL_GPIO,1); + +#define I2C_MASTER_SDA_LOW_SCL_LOW() \ + gpio_set_level(I2C_MASTER_SDA_GPIO,0);\ + gpio_set_level(I2C_MASTER_SCL_GPIO,0); + +/** \defgroup Driver_APIs Driver APIs + * @brief Driver APIs + */ + +/** @addtogroup Driver_APIs + * @{ + */ + +/** \defgroup I2C_Driver_APIs I2C_MASTER Driver APIs + * @brief UART driver APIs + */ + +/** @addtogroup I2C_MASTER_Driver_APIs + * @{ + */ + +/** + * @brief i2c_master_gpio_init,config SDA and SCL gpio to open-drain output mode. + * + * @param null + * + * @return null + */ +void i2c_master_gpio_init(void); + +/** + * @brief i2c_master_gpio_init,config SDA and SCL gpio to open-drain output mode. + * + * @param initilize I2C bus to enable i2c operations. + * + * @return null + */ +void i2c_master_init(void); + +#define i2c_master_wait ets_delay_us + + +/** + * @brief i2c_master_gpio_init,config SDA and SCL gpio to open-drain output mode. + * + * @param set i2c to stop sending state. + * + * @return null + */ +void i2c_master_stop(void); + +/** + * @brief i2c_master_gpio_init,config SDA and SCL gpio to open-drain output mode. + * + * @param set i2c to start sending state. + * + * @return null + */ +void i2c_master_start(void); + +/** + * @brief i2c_master_gpio_init,config SDA and SCL gpio to open-drain output mode. + * + * @param set ack to i2c bus as level value. + * + * @return null + */ +void i2c_master_setAck(uint8_t level); + +/** + * @brief confirm if peer send ack. + * + * @param null + * + * @return null + */ +uint8_t i2c_master_getAck(void); + +/** + * @brief read Byte from i2c bus. + * + * @param null + * + * @return the byte which read from i2c bus. + */ +uint8_t i2c_master_readByte(void); + +/** + * @brief write wrdata value(one byte) into i2c. + * + * @param uint8_t wrdata:write value + * + * @return null + */ +void i2c_master_writeByte(uint8_t wrdata); + +/** + * @brief i2c_master_checkAck. + * + * @param null + * + * @return the result of check ack + */ +bool i2c_master_checkAck(void); + +/** + * @brief i2c master send Ack. + * + * @param null + * + * @return null + */ +void i2c_master_send_ack(void); + +/** + * @brief i2c master send Nack. + * + * @param null + * + * @return null + */ +void i2c_master_send_nack(void); + +/** + * @} + */ + +/** + * @} + */ + +#endif diff --git a/components/esp_audio/include/driver/i2c_struct.h b/components/esp_audio/include/driver/i2c_struct.h new file mode 100644 index 000000000..71711b2c1 --- /dev/null +++ b/components/esp_audio/include/driver/i2c_struct.h @@ -0,0 +1,419 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_II2C_STRUCT_H_ +#define _DRIVER_II2C_STRUCT_H_ + + +typedef struct I2C_DEV{ + union { + struct { + unsigned int scl_low_period: 14; + unsigned int reserved14: 18; + } fld; + uint32_t val; + } SCL_LOW_PERIOD; + union { + struct { + unsigned int sda_force_out: 1; + unsigned int scl_force_out: 1; + unsigned int sample_scl_level: 1; + unsigned int reserved3: 1; + unsigned int ms_mode: 1; + unsigned int trans_start: 1; + unsigned int tx_lsb_first: 1; + unsigned int rx_lsb_first: 1; + unsigned int clk_en: 1; + unsigned int reserved9: 23; + } fld; + uint32_t val; + } CTR; + union { + struct { + unsigned int ack_rec: 1; + unsigned int slave_rw: 1; + unsigned int time_out: 1; + unsigned int arb_lost: 1; + unsigned int bus_busy: 1; + unsigned int slave_addressed: 1; + unsigned int byte_trans: 1; + unsigned int reserved7: 1; + unsigned int rxfifo_cnt: 6; + unsigned int reserved14: 4; + unsigned int txfifo_cnt: 6; + unsigned int scl_main_state_last: 3; + unsigned int reserved27: 1; + unsigned int scl_state_last: 3; + unsigned int reserved31: 1; + } fld; + uint32_t val; + } SR; + union { + struct { + unsigned int time_out_reg: 20; + unsigned int reserved20: 12; + } fld; + uint32_t val; + } TO; + union { + struct { + unsigned int slave_addr: 15; + unsigned int reserved15: 16; + unsigned int addr_10bit_en: 1; + } fld; + uint32_t val; + } SLAVE_ADDR; + union { + struct { + unsigned int rxfifo_start_addr: 5; + unsigned int rxfifo_end_addr: 5; + unsigned int txfifo_start_addr: 5; + unsigned int txfifo_end_addr: 5; + unsigned int reserved20: 12; + } fld; + uint32_t val; + } RXFIFO_ST; + union { + struct { + unsigned int rxfifo_full_thrhd: 5; + unsigned int txfifo_empty_thrhd: 5; + unsigned int nonfifo_en: 1; + unsigned int fifo_addr_cfg_en: 1; + unsigned int rx_fifo_rst: 1; + unsigned int tx_fifo_rst: 1; + unsigned int nonfifo_rx_thres: 6; + unsigned int nonfifo_tx_thres: 6; + unsigned int reserved26: 6; + } fld; + uint32_t val; + } I2C_FIFO_CONF; + union { + struct { + unsigned int fifo_data: 8; + unsigned int reserved8: 24; + } fld; + uint32_t val; + } I2C_DATA; + union { + struct { + unsigned int rxfifo_full_int_raw: 1; + unsigned int txfifo_empty_int_raw: 1; + unsigned int rxfifo_ovf_int_raw: 1; + unsigned int end_detect_int_raw: 1; + unsigned int slave_tran_comp_int_raw: 1; + unsigned int arbitration_lost_int_raw: 1; + unsigned int master_tran_comp_int_raw: 1; + unsigned int trans_complete_int_raw: 1; + unsigned int time_out_int_raw: 1; + unsigned int trans_start_int_raw: 1; + unsigned int ack_err_int_raw: 1; + unsigned int rx_rec_full_int_raw: 1; + unsigned int tx_send_empty_int_raw: 1; + unsigned int reserved13: 19; + } fld; + uint32_t val; + } I2C_INT_RAW; + union { + struct { + unsigned int rxfifo_full_int_clr: 1; + unsigned int txfifo_empty_int_clr: 1; + unsigned int rxfifo_ovf_int_clr: 1; + unsigned int end_detect_int_clr: 1; + unsigned int slave_tran_comp_int_clr: 1; + unsigned int arbitration_lost_int_clr: 1; + unsigned int master_tran_comp_int_clr: 1; + unsigned int trans_complete_int_clr: 1; + unsigned int time_out_int_clr: 1; + unsigned int trans_start_int_clr: 1; + unsigned int ack_err_int_clr: 1; + unsigned int rx_rec_full_int_clr: 1; + unsigned int tx_send_empty_int_clr: 1; + unsigned int reserved13: 19; + } fld; + uint32_t val; + } I2C_INT_CLR; + union { + struct { + unsigned int rxfifo_full_int_ena: 1; + unsigned int txfifo_empty_int_ena: 1; + unsigned int rxfifo_ovf_int_ena: 1; + unsigned int end_detect_int_ena: 1; + unsigned int slave_tran_comp_int_ena: 1; + unsigned int arbitration_lost_int_ena: 1; + unsigned int master_tran_comp_int_ena: 1; + unsigned int trans_complete_int_ena: 1; + unsigned int time_out_int_ena: 1; + unsigned int trans_start_int_ena: 1; + unsigned int ack_err_int_ena: 1; + unsigned int rx_rec_full_int_ena: 1; + unsigned int tx_send_empty_int_ena: 1; + unsigned int reserved13: 19; + } fld; + uint32_t val; + } I2C_INT_ENA; + union { + struct { + unsigned int rxfifo_full_int_st: 1; + unsigned int txfifo_empty_int_st: 1; + unsigned int rxfifo_ovf_int_st: 1; + unsigned int end_detect_int_st: 1; + unsigned int slave_tran_comp_int_st: 1; + unsigned int arbitration_lost_int_st: 1; + unsigned int master_tran_comp_int_st: 1; + unsigned int trans_complete_int_st: 1; + unsigned int time_out_int_st: 1; + unsigned int trans_start_int_st: 1; + unsigned int ack_err_int_st: 1; + unsigned int rx_rec_full_int_st: 1; + unsigned int tx_send_empty_int_st: 1; + unsigned int reserved13: 19; + } fld; + uint32_t val; + } I2C_INT_STATUS; + union { + struct { + unsigned int sda_hold_time: 10; + unsigned int reserved10: 22; + } fld; + uint32_t val; + } SDA_HOLD; + union { + struct { + unsigned int sda_sample_time: 10; + unsigned int reserved10: 22; + } fld; + uint32_t val; + } SDA_SAMPLE; + union { + struct { + unsigned int scl_high_period: 14; + unsigned int reserved14: 18; + } fld; + uint32_t val; + } SCL_HIGH_PERIOD; + uint32_t reserved_3c; + union { + struct { + unsigned int scl_start_hold_time: 10; + unsigned int reserved10: 22; + } fld; + uint32_t val; + } SCL_START_HOLD; + union { + struct { + unsigned int scl_rstart_setup_time: 10; + unsigned int reserved10: 22; + } fld; + uint32_t val; + } SCL_RSTART_SETUP; + union { + struct { + unsigned int scl_stop_hold_time: 14; + unsigned int reserved14: 18; + } fld; + uint32_t val; + } SCL_STOP_HOLD; + union { + struct { + unsigned int scl_stop_setup_time: 10; + unsigned int reserved10: 22; + } fld; + uint32_t val; + } SCL_STOP_SETUP; + union { + struct { + unsigned int scl_filter_thres: 3; + unsigned int scl_filter_en: 1; + unsigned int reserved4: 28; + } fld; + uint32_t val; + } SCL_FILTER_CFG; + union { + struct { + unsigned int sda_filter_thres: 3; + unsigned int sda_filter_en: 1; + unsigned int reserved4: 28; + } fld; + uint32_t val; + } SDA_FILTER_CFG; + union { + struct { + //unsigned int command: 14; + unsigned int command_byte_num: 8; + unsigned int command_ack_en: 1; + unsigned int command_ack_exp: 1; + unsigned int command_ack_val: 1; + unsigned int command_op_code: 3; + unsigned int reserved14: 17; + unsigned int command_done: 1; + } fld; + uint32_t val; + } I2C_COMD[16]; +#if 0 + union { + struct { + unsigned int command1: 14; + unsigned int reserved14: 17; + unsigned int command1_done: 1; + } fld; + uint32_t val; + } I2C_COMD1; + union { + struct { + unsigned int command2: 14; + unsigned int reserved14: 17; + unsigned int command2_done: 1; + } fld; + uint32_t val; + } I2C_COMD2; + union { + struct { + unsigned int command3: 14; + unsigned int reserved14: 17; + unsigned int command3_done: 1; + } fld; + uint32_t val; + } I2C_COMD3; + union { + struct { + unsigned int command4: 14; + unsigned int reserved14: 17; + unsigned int command4_done: 1; + } fld; + uint32_t val; + } I2C_COMD4; + union { + struct { + unsigned int command5: 14; + unsigned int reserved14: 17; + unsigned int command5_done: 1; + } fld; + uint32_t val; + } I2C_COMD5; + union { + struct { + unsigned int command6: 14; + unsigned int reserved14: 17; + unsigned int command6_done: 1; + } fld; + uint32_t val; + } I2C_COMD6; + union { + struct { + unsigned int command7: 14; + unsigned int reserved14: 17; + unsigned int command7_done: 1; + } fld; + uint32_t val; + } I2C_COMD7; + union { + struct { + unsigned int command8: 14; + unsigned int reserved14: 17; + unsigned int command8_done: 1; + } fld; + uint32_t val; + } I2C_COMD8; + union { + struct { + unsigned int command9: 14; + unsigned int reserved14: 17; + unsigned int command9_done: 1; + } fld; + uint32_t val; + } I2C_COMD9; + union { + struct { + unsigned int command10: 14; + unsigned int reserved14: 17; + unsigned int command10_done: 1; + } fld; + uint32_t val; + } I2C_COMD10; + union { + struct { + unsigned int command11: 14; + unsigned int reserved14: 17; + unsigned int command11_done: 1; + } fld; + uint32_t val; + } I2C_COMD11; + union { + struct { + unsigned int command12: 14; + unsigned int reserved14: 17; + unsigned int command12_done: 1; + } fld; + uint32_t val; + } I2C_COMD12; + union { + struct { + unsigned int command13: 14; + unsigned int reserved14: 17; + unsigned int command13_done: 1; + } fld; + uint32_t val; + } I2C_COMD13; + union { + struct { + unsigned int command14: 14; + unsigned int reserved14: 17; + unsigned int command14_done: 1; + } fld; + uint32_t val; + } I2C_COMD14; + union { + struct { + unsigned int command15: 14; + unsigned int reserved14: 17; + unsigned int command15_done: 1; + } fld; + uint32_t val; + } I2C_COMD15; +#endif + uint32_t reserved_98; + uint32_t reserved_9c; + uint32_t reserved_a0; + uint32_t reserved_a4; + uint32_t reserved_a8; + uint32_t reserved_ac; + uint32_t reserved_b0; + uint32_t reserved_b4; + uint32_t reserved_b8; + uint32_t reserved_bc; + uint32_t reserved_c0; + uint32_t reserved_c4; + uint32_t reserved_c8; + uint32_t reserved_cc; + uint32_t reserved_d0; + uint32_t reserved_d4; + uint32_t reserved_d8; + uint32_t reserved_dc; + uint32_t reserved_e0; + uint32_t reserved_e4; + uint32_t reserved_e8; + uint32_t reserved_ec; + uint32_t reserved_f0; + uint32_t reserved_f4; + //struct { + // uint32_t val; + //}I2C_DATE; + uint32_t reserved_fc; + //struct { + // uint32_t val; + //}I2C_FIFO_START_ADDR; +}I2C_TypeDef; + + +#endif diff --git a/components/esp_audio/include/driver/i2s.h b/components/esp_audio/include/driver/i2s.h new file mode 100644 index 000000000..f74fdc73e --- /dev/null +++ b/components/esp_audio/include/driver/i2s.h @@ -0,0 +1,431 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +#ifndef _DRIVER_I2S_H_ +#define _DRIVER_I2S_H_ +#include "soc/dport_reg.h" +#include "soc/i2s_reg.h" +#include +#include "dma.h" +#include "soc/soc.h" +#include "esp_err.h" + +#define ETS_I2S0_INUM 17 +#define ETS_I2S1_INUM 17 + +#define ESP_I2S1_INTR_ATTACH(func, arg) \ + xt_set_interrupt_handler(ETS_I2S1_INUM, (func), (void *)(arg)) + + +//***************************************************************************** +// +// Make sure all of the definitions in this header have a C binding. +// +//***************************************************************************** + +#ifdef __cplusplus +extern "C" { +#endif + +/** \defgroup Driver_APIs Driver APIs + * @brief Driver APIs + */ + +/** @addtogroup Driver_APIs + * @{ + */ + +/** \defgroup I2S_Driver_APIs I2S Driver APIs + * @brief I2S driver APIs + */ + +/** @addtogroup I2S_Driver_APIs + * @{ + */ + +// ena:1 enable audio pll; +// 0 disable audio pll; +// freq = (xtal * (sdm2 + 4))/((o_div+2)*2) +// xtal is 40M/26M +// (xtal * (sdm2 + 4)):240 ~ 600MHz +// o_div : 0 ~ 31 +void rtc_plla_ena(uint8_t ena, uint32_t sdm2, uint32_t o_div); + + +/** + * @brief Two I2S module.I2S0 has support pdm. + * + */ +typedef enum { + I2S_NUM_I2S0 = 0x0, + I2S_NUM_I2S1 = 0x1, + I2S_NUM_MAX = I2S_NUM_I2S1, +} i2s_num_t; + +/** + * @brief I2S module working mode. + * + */ +typedef enum { + I2S_MODE_MASTER_TX = 1, + I2S_MODE_MASTER_RX = 2, + I2S_MODE_SLAVE_TX = 3, + I2S_MODE_SLAVE_RX = 4, +} i2s_mode_t; + +/** + * @brief I2S bit width per sample. + * + */ +typedef enum { + I2S_BITS_PER_SAMPLE_8BIT = 8, + I2S_BITS_PER_SAMPLE_16BIT = 16, + I2S_BITS_PER_SAMPLE_24BIT = 24, + I2S_BITS_PER_SAMPLE_32BIT = 32, +} i2s_sample_bits_t; + +/** + * @brief I2S audio data formats. + * + */ +typedef enum { + I2S_STD_FORMAT_I2S, + I2S_STD_FORMAT_MSB, + I2S_STD_FORMAT_LSB, + I2S_STD_FORMAT_PCM_SHORT, + I2S_STD_FORMAT_PCM_LONG, +} i2s_std_format_t; + +/** + * @brief I2S data port interface type + */ +typedef enum { + I2S_IFACE_TYPE_DMA, + I2S_IFACE_TYPE_CPU, +} i2s_interface_t; + + +/** + * @brief I2S channel format type + */ +typedef enum { + I2S_CHANNEL_FMT_RIGHT_LEFT, + I2S_CHANNEL_FMT_ALL_RIGHT, + I2S_CHANNEL_FMT_ALL_LEFT, + I2S_CHANNEL_FMT_ONLY_RIGHT, + I2S_CHANNEL_FMT_ONLY_LEFT, +} i2s_channel_fmt_t; + +/** + * @brief I2S audio sample rate per second, measured in Hz. + * + */ +typedef enum { + I2S_SAMPLE_RATE_96K = 96000, + I2S_SAMPLE_RATE_48K = 48000, + I2S_SAMPLE_RATE_44K = 44100, + I2S_SAMPLE_RATE_32K = 32000, + I2S_SAMPLE_RATE_22K = 22050, + I2S_SAMPLE_RATE_16K = 16000, + I2S_SAMPLE_RATE_11K = 11025, + I2S_SAMPLE_RATE_8K = 8000, +} i2s_sample_rate_t; + +/** + * @brief PDM sample rate ratio, measured in Hz. + * + */ +typedef enum { + PDM_SAMPLE_RATE_RATIO_64, + PDM_SAMPLE_RATE_RATIO_128, +} pdm_sample_rate_ratio_t; + +/** + * @brief PDM PCM convter enable/disable. + * + */ +typedef enum { + PDM_PCM_CONV_ENABLE, + PDM_PCM_CONV_DISABLE, +} pdm_pcm_conv_t; + +/** + * @brief I2s module work type. + * + */ +typedef enum { + I2S_MODULE_WORK_TYPE_I2S, + I2S_MODULE_WORK_TYPE_PDM, +} i2s_module_work_type_t; + + +// @brief I2S interrupt source defined. +typedef enum { + I2S_INT_SRC_ONE_BUF_SEND_DONE = I2S_OUT_EOF_INT_ENA, //BIT(12) One package buffer has been sent. + I2S_INT_SRC_ONE_BUF_RECV_DONE = I2S_IN_SUC_EOF_INT_ENA, //BIT(9) Received one package buffer + + I2S_INT_SRC_TX_EMPTY = I2S_TX_REMPTY_INT_ENA, //BIT(5) Tx buffer is empty + I2S_INT_SRC_RX_FULL = I2S_RX_WFULL_INT_ENA, //BIT(2) Rx buffer is full + I2S_INT_SRC_TX_HALF_EMPTY = I2S_TX_PUT_DATA_INT_ENA, //BIT(1) Tx buffer is half empty + I2S_INT_SRC_RX_HALF_FULL = I2S_RX_TAKE_DATA_INT_ENA, //BIT(0) Rx buffer is half full +} i2s_int_src_t; + +/** + * @brief I2S attribute + */ +typedef struct { + i2s_module_work_type_t type; + i2s_mode_t mode; + i2s_sample_rate_t rate; + i2s_sample_bits_t bits; + i2s_std_format_t std; + i2s_interface_t iface; + i2s_channel_fmt_t channel; + pdm_sample_rate_ratio_t ratio; + pdm_pcm_conv_t conv; +} i2s_module_info_t; + +/** + * @brief I2S attribute + */ +typedef struct { + i2s_module_info_t tx_mode; + i2s_module_info_t rx_mode; +} i2s_attr_t; + +// I2S DMA attribite +typedef struct { + uint32_t mode; + uint32_t buf_size; + ping_pong_buf_t *buf; +} i2s_dma_attr_t; + + +/** + * @brief Initialize I2s with a given module. + * + * @param[in] i2sNum Number of i2s module + * + * @param[in] pAttr Pointer to a struct i2s_attr_t that indicates I2S working attribution. + * + * @return None + * + */ +void i2s_init(i2s_num_t i2sNum, i2s_attr_t *pAttr); + +/** + * @brief Reset I2s with a given module. + * + * @param[in] i2sNum Number of i2s module + * + * @return None + * + */ +void i2s_reset(i2s_num_t i2sNum); + +/** + * @brief Start I2s module + * + * @param[in] type Indicates I2s module which mode will be working. + * + * @param[in] i2sNum Number of i2s module + * + * @param[in] mode Indicates I2S working mode. + * + * @return None + * + */ +void i2s_start(i2s_module_work_type_t type, i2s_num_t i2sNum, i2s_mode_t mode); + +/** + * @brief Stop I2s module. + * + * @param[in] type Indicates I2s module which mode will be stop. + * + * @param[in] i2sNum Number of i2s module. + * + * @param[in] mode Indicates I2S working mode. + * + * @return None + * + */ +void i2s_stop(i2s_module_work_type_t type, i2s_num_t i2sNum, i2s_mode_t mode); + +/** + * @brief Set i2s module clock. + * + * @param[in] rate bit clock. + * + * @param[in] bits bit length. + * + * @return None + * + */ +void i2s_clk_set(int rate, int bits); + +/** + * @brief Enable I2s DMA mode. + * + * @param[in] i2sNum Number of i2s module + * + * @param[in] mode Pointer to a struct i2s_attr_t that indicates I2S working attribution. + * + * @return None + * + */ +void i2s_dma_enable(i2s_num_t i2sNum, i2s_mode_t mode); + +/** + * @brief Disable I2s DMA mode. + * + * @param[in] i2sNum Number of i2s module + * + * @param[in] mode Pointer to a struct i2s_attr_t that indicates I2S working attribution. + * + * @return None + * + */ +void i2s_dma_disable(i2s_num_t i2sNum, i2s_mode_t mode); + +/** + * @brief Get ping buffer address. + * + * @param[in] obj Number of i2s module + * + * @return None + * + */ +uint32_t* i2s_dma_ping_buf_get(i2s_dma_attr_t *obj); + +/** + * @brief Get pong buffer address. + * + * @param[in] obj Number of i2s module + * + * @param[in] pAttr Pointer to a struct i2s_attr_t that indicates I2S working attribution. + * + * @return None + * + */ +uint32_t* i2s_dma_pong_buf_get(i2s_dma_attr_t *obj); + +/** + * @brief Get without working ping-pong buffer address. + * + * @param[in] i2sNum Number of i2s module + * + * @param[in] obj Pointer to a struct i2s_attr_t that indicates I2S working attribution. + * + * @return None + * + */ +uint32_t* i2s_dma_status_get(i2s_num_t i2sNum, i2s_dma_attr_t *obj); + +/** + * @brief Set the Ping-Pong buffer to the destination + * + * @param[in] i2sNum Number of i2s module + * + * @param[in] obj Pointer to a struct i2s_attr_t that indicates I2S working attribution. + * + * @return None + * + */ +void i2s_dma_dest_add_set(i2s_num_t i2sNum, i2s_dma_attr_t *obj); + +/** + * @brief Initialize DMA and create a I2S DMA instance. + * + * @param[in] i2sNum Number of i2s module + * + * @param[in] obj Pointer to a struct i2s_attr_t that indicates I2S working attribution. + * + * @param[in] isr Pointer to a function that will be called + * + * @return -1:indicates parameter error, -2: DMA buffer init failure, others indicates success. + * + */ +int i2s_dma_init(i2s_num_t i2sNum, i2s_dma_attr_t* obj, void *isr); + +/** + * @brief Destroy the I2S DMA instance. + * + * @param[in] obj Pointer to a struct i2s_attr_t that indicates I2S working attribution. + * + * @return ESP_FAIL:indicates parameter error, ESP_OK :indicates success. + * + */ +esp_err_t i2s_dma_uninit(i2s_dma_attr_t *obj); + +/** + * @brief Enable the I2s module interrupt source. + * + * @param[in] i2sNum Number of i2s module + * + * @param[in] intSrc Indicates which interrupt source to be enable. + * + * @return None + * + */ +void i2s_int_enable(i2s_num_t i2sNum, i2s_int_src_t intSrc); + +/** + * @brief Disable the I2s module interrupt source. + * + * @param[in] i2sNum Number of i2s module + * + * @param[in] intSrc Indicates which interrupt source to be disable. + * + * @return None + * + */ +void i2s_int_disable(i2s_num_t i2sNum, i2s_int_src_t intSrc); + +/** + * @brief Clear the I2s module interrupt source. + * + * @param[in] i2sNum Number of i2s module + * + * @param[in] intSrc Indicates which interrupt source to be clear. + * + * @return None + * + */ +void i2s_int_clear(i2s_num_t i2sNum, i2s_int_src_t intSrc); + +/** + * @brief Get the I2s module interrupt source + * + * @param[in] i2sNum Number of i2s module + * + * @return None + * + */ +uint32_t i2s_int_status_get(i2s_num_t i2sNum); + + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif // __I2S_H__ diff --git a/components/esp_audio/include/driver/ledc_pwm.h b/components/esp_audio/include/driver/ledc_pwm.h new file mode 100644 index 000000000..7b54810ba --- /dev/null +++ b/components/esp_audio/include/driver/ledc_pwm.h @@ -0,0 +1,281 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_LEDC_PWM_H_ +#define _DRIVER_LEDC_PWM_H_ + +#include "soc/soc.h" +#include "soc/ledc_reg.h" +#include "driver/gpio.h" +#ifdef __cplusplus +extern "C" { +#endif + +/*-------------------------------------------------- + HSCHX_LEDC_PWM +---------------------------------------------------*/ +#define LEDC_HSCHX_CONF0_REG(CHANNEL) (LEDC_HSCH0_CONF0_REG+0X14*(CHANNEL)) +#define LEDC_HSCHX_HPOINT_REG(CHANNEL) (LEDC_HSCH0_HPOINT_REG+0X14*(CHANNEL)) +#define LEDC_HSCHX_DUTY_REG(CHANNEL) (LEDC_HSCH0_DUTY_REG+0X14*(CHANNEL)) +#define LEDC_HSCHX_CONF1_REG(CHANNEL) (LEDC_HSCH0_CONF1_REG+0X14*(CHANNEL)) +#define LEDC_HSCHX_DUTY_R_REG(CHANNEL) (LEDC_HSCH0_DUTY_R_REG+0X14*(CHANNEL)) +/*------------------------------------------------- + LSCHX_LEDC_PWM +--------------------------------------------------*/ +#define LEDC_LSCHX_CONF0_REG(CHANNEL) (LEDC_LSCH0_CONF0_REG+0X14*(CHANNEL)) +#define LEDC_LSCHX_HPOINT_REG(CHANNEL) (LEDC_LSCH0_HPOINT_REG+0X14*(CHANNEL)) +#define LEDC_LSCHX_DUTY_REG(CHANNEL) (LEDC_LSCH0_DUTY_REG+0X14*(CHANNEL)) +#define LEDC_LSCHX_CONF1_REG(CHANNEL) (LEDC_LSCH0_CONF1_REG+0X14*(CHANNEL)) +#define LEDC_LSCHX_DUTY_R_REG(CHANNEL) (LEDC_LSCH0_DUTY_R_REG+0X14*(CHANNEL)) + +/*--------------------------------------------------- + HTIMERX_LEDC_PWM +---------------------------------------------------*/ +#define LEDC_HSTIMERX_CONF_REG(TIME) (LEDC_HSTIMER0_CONF_REG+0X08*(TIME)) +#define LEDC_HSTIMERX_VALUE_REG(TIME) (LEDC_HSTIMER0_VALUE_REG+0X08*(TIME)) +/*---------------------------------------------- + LTIMERX_LEDC_PWM +-----------------------------------------------*/ +#define LEDC_LSTIMERX_CONF_REG(TIME) (LEDC_LSTIMER0_CONF_REG+0X08*(TIME)) +#define LEDC_LSTIMERX_VALUE_REG(TIME) (LEDC_LSTIMER0_VALUE_REG+0X08*(TIME)) + +enum ledc_pwm_mode{ + LEDC_HIGH_SPEED_MODE=0, /**< Ledc high speed mode */ + LEDC_LOW_SPEED_MODE, /**< Ledc low speed mode */ +}; +enum ledc_pwm_intr_type{ + LEDC_INTR_DISABLE=0,/**< Disable ledc interrupt */ + LEDC_INTR_CHANGE_END, /**< Enable ledc interrupt */ +}; +enum ledc_pwm_increase_direction{ + LEDC_DIR_DECREASE=0,/** +#include "soc/dport_reg.h" +#include "soc/pcnt_reg.h" + +#ifdef __cplusplus +extern "C" { +#endif +//register address redefine,just only use simple +#define PCNT_UX_CONF0(Channel) (PCNT_U0_CONF0_REG+(Channel)*12) +#define PCNT_UX_CONF1(Channel) (PCNT_U0_CONF1_REG+(Channel)*12) +#define PCNT_UX_CONF2(Channel) (PCNT_U0_CONF2_REG+(Channel)*12) +#define PCNT_CNT_CURRENT_VALUE(Channel) ( PCNT_U0_CNT_REG+((Channel)*4)) +#define PCNT_UX_STATUS(Channel) (PCNT_U0_STATUS_REG+(Channel)*4) +//if user not use pin param ,please give this define +#define PCNT_INVALID_PIN_PARAM (40) + +typedef enum { + PCNT_CHANNEL0=0, + PCNT_CHANNEL1=1, + PCNT_CHANNEL2=2, + PCNT_CHANNEL3=3, + PCNT_CHANNEL4=4, + PCNT_CHANNEL5=5, + PCNT_CHANNEL6=6, + PCNT_CHANNEL7=7, +}enum_pcnt_channel_t; +//Control Mode +enum pcnt_ctrl_high_level{ + PCNT_H_LEVEL_INCREASE=0, + PCNT_H_LEVEL_DECREASE=1, + PCNT_H_LEVEL_FORBIDDEN=2, +}; +enum pcnt_ctrl_low_level{ + PCNT_L_LEVEL_INCREASE=0, + PCNT_L_LEVEL_DECREASE=1, + PCNT_L_LEVEL_FORBIDDEN=2, +}; +//Sig Mode +enum pcnt_sig_positive_edge{ + PCNT_POSEDGE_INCREASE=1, + PCNT_POSEDGE_DECREASE=2, + PCNT_POSEDGE_FORBIDDEN=0, +}; +enum pcnt_sig_negative_edge{ + PCNT_NEGEDGE_INCREASE=1, + PCNT_NEGEDGE_DECREASE=2, + PCNT_NEGEDGE_FORBIDDEN=0, +}; + +//Gate Config +typedef struct { + uint8_t ctrl_pin_num; + uint8_t sig_pin_num; + enum pcnt_ctrl_high_level ctrl_high_level; + enum pcnt_ctrl_low_level ctrl_low_level; + enum pcnt_sig_positive_edge sig_positive_edge; + enum pcnt_sig_negative_edge sig_negative_edge; +}pcnt_gate_t; +//Channel Config +typedef struct { + enum_pcnt_channel_t channel; + int16_t L_limit; + int16_t H_limit; + uint16_t Filter_tick; + pcnt_gate_t * Gate0; + pcnt_gate_t * Gate1; +}Pcnt_channel_config; + +typedef enum pcnt_intr_type{ + PCNT_CNT_EQU_THRESH1=BIT(2), + PCNT_CNT_EQU_THRESH0=BIT(3), + PCNT_CNT_LESS_THAN_LIMIT_L=BIT(4), + PCNT_CNT_EXCEED_LIMIT_H=BIT(5), + PCNT_CNT_ZERO_RELATED=BIT(6), +}enum_intr_type_t; + +enum pcnt_count_zero_intr_type{ + PCNT_CNT_INCREASE_TO_ZERO=0, + PCNT_CNT_DECREASE_TO_ZERO=1, + PCNT_CNT_NEGATIVE=2, + PCNT_CNT_POSITIVE=3, +}; + +enum pcnt_intr_mask{ + PCNT_THRESH1_INTR_ENABLE=PCNT_THR_THRES1_EN_U0, + PCNT_THRESH0_INTR_ENABLE=PCNT_THR_THRES0_EN_U0, + PCNT_L_LIMIT_INTR_ENABLE=PCNT_THR_L_LIM_EN_U0, + PCNT_H_LIMIT_INTR_ENABLE=PCNT_THR_H_LIM_EN_U0, + PCNT_ZERO_INTR_ENABLE=PCNT_THR_ZERO_EN_U0, + PCNT_ALL_INTR_ENABLE = (PCNT_THR_THRES1_EN_U0|PCNT_THR_THRES0_EN_U0|PCNT_THR_L_LIM_EN_U0|PCNT_THR_H_LIM_EN_U0|PCNT_THR_ZERO_EN_U0) +}; + +typedef struct{ + enum_pcnt_channel_t channel; + int16_t thres1; + int16_t thres0; + uint32_t PcntIntrEnMask; +}pcnt_intr_config; + +typedef struct pcnt_event_message{ + enum_pcnt_channel_t channel; + enum_intr_type_t intr_type; +}pcnt_event_mes; + +typedef void (*pcnt_event_callback)(pcnt_event_mes pcnt_message); + +/** + * @brief resert pcnt counter,the pcnt cnt is cleared zero + * + * @param[in] channel : the channel of the pcnt + * + * @return true : reset succed + * fail : reset fail + * + */ +bool pcnt_reset_counter(enum_pcnt_channel_t channel); + +/** + * @brief start pnct counter + * + * @param[in] channel : the channel of the pcnt + * + * @return None + * + */ +void pcnt_start_counter(enum_pcnt_channel_t channel); + +/** + * @brief get the pcnt counter value + * + * @param[in] channel : the channel of the pcnt + * + * @return the value of the pcnt + * + */ +int16_t pcnt_get_counter_value(enum_pcnt_channel_t channel); + +/** + * @brief enable the pcnt pcnt interrupt + * + * @param[in] channel : the channel of the pcnt + * + * @return None + * + */ +void pcnt_enable_channel_intr(enum_pcnt_channel_t channel); + +/** + * @brief disable the pcnt pcnt interrupt + * + * @param[in] channel : the channel of the pcnt + * + * @return None + * + */ +void pcnt_disable_channel_intr(enum_pcnt_channel_t channel); +/** + * @brief register pcnt interrupt occur callback function + * + * Use this Function,register interrupt event callback . when pcnt interrupt is triggered , the event callback + * will give appliacation .pcnt_event_callback is called by pcnt interrupt , so the gpio_event_callback + * should be completed in a very short period of time. If you want to deal with a lot of things,Please Creat + * a task ,and post message from the pcnt_event_callback to the task. + * + * @param[in] func : the func will be called,when pcnt interrupt is triggered ,and the param of func is the + * number of the pnct channel occurs interrupt and intr type + * + * + * @return None + * + */ +void pcnt_register_event_callback(pcnt_event_callback func); + +/** + * @brief config the pcnt pcnt interrupt + * + * @param[in] intr_config intr_config.channel : the channel of pcnt + * intr_config.thres1 : the intr threshold1 + * intr_config.thres0 : the intr threshold0 + * intr_config.PcntIntrEnMask : reference the enum pcnt_intr_mask.if user want to enable thres1 intr + * and thres0 intr,PcntIntrEnMask=PCNT_THRESH1_INTR_ENABLE|PCNT_THRESH0_INTR_ENABLE. + * + * @return None + * + */ +void pcnt_set_intr(pcnt_intr_config* intr_config); + +/** + * @brief pcnt common configuration + * + * @param[in] channel_config channel_config.channel : the channel of pcnt + * channel_config.L_limit : the counter range [L_limit,H_limit] + * channel_config.H_limit : the counter range [L_limit,H_limit] + * channel_config.Filter_tick : the counter filte tick cnt ,tick=80M + * channel_config.Gate0 : config the Gate0 + * channel_config.Gate1 : config the Gate1 + * + * @return None + * + */ +void pcnt_init_channel(Pcnt_channel_config *channel_config); + +/** + * @brief register pcnt interrupt handler + * + * @param uint8_t pcnt_intr_num : pcnt interrupt num,check the info in soc.h, and please see the core-isa.h for more details + * @param void (* fn)(void* ) : intr handler function + * @param void * arg : parameter for handler + * + * @return null + */ +void pcnt_intr_handler_register(uint8_t pcnt_intr_num,void (* fn)(void* ),void * arg); + +/** + * @brief default pcnt interrupt init function to initialize the pcnt intrrupt parameters. + * + * @param uint8_t pcnt_intr_num : pcnt interrupt num,check the info in soc.h, and please see the core-isa.h for more details + * + * @return null + */ +void pcnt_intr_init_default(uint8_t pcnt_intr_num); +#ifdef __cplusplus +} +#endif + +#endif /* _DRIVER_PCNT_H_ */ diff --git a/components/esp_audio/include/driver/rmt_ctrl.h b/components/esp_audio/include/driver/rmt_ctrl.h new file mode 100644 index 000000000..652f21274 --- /dev/null +++ b/components/esp_audio/include/driver/rmt_ctrl.h @@ -0,0 +1,256 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_RMT_CTRL_H_ +#define _DRIVER_RMT_CTRL_H_ + +#include +#include "soc/rmt_reg.h" +#include "soc/dport_reg.h" +#include "driver/gpio.h" +#ifdef __cplusplus +extern "C" { +#endif + +#define RMT_CHANNEL_MEMORY_CHAR_CNT (256) +#define RMT_CHANNEL_MEMORY_WORD_CNT (RMT_CHANNEL_MEMORY_CHAR_CNT/4) +#define RMT_DIV_CLK_KHZ (320)//Do not change this + +#define RMT_CHXCONF1(CHANNEL) ((RMT_CH0CONF1_REG)+((CHANNEL)*0X08)) +#define RMT_CHXCONF0(CHANNEL) ((RMT_CH0CONF0_REG)+((CHANNEL)*0X08)) +#define RMT_CHXSTATUS(CHANNEL) ((RMT_CH0STATUS_REG)+((CHANNEL)*0X04)) +#define RMT_CHXCARRIER_DUTY(CHANNEL) ((RMT_CH0CARRIER_DUTY_REG)+(CHANNEL)*0X04) +#define RMT_CHXADDR_REG(CHANNEL) (RMT_CH0ADDR_REG+((CHANNEL)*0X04)) +#define RMT_CHXSTATUS_REG(CHANNEL) (RMT_CH0STATUS_REG+((CHANNEL)*0X04)) +#define RMT_CHX_MEMEOY(channel) (DR_REG_RMT_BASE+0X800+0X4*(channel*0x40)) + +//Config0 +#define RMT_GET_REG_CARRIER_OUT_LV_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF0(CHANNEL),RMT_CARRIER_OUT_LV_CH0_V, RMT_CARRIER_OUT_LV_CH0_S) +#define RMT_SET_REG_CARRIER_OUT_LV_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF0(CHANNEL),RMT_CARRIER_OUT_LV_CH0_V,(val),RMT_CARRIER_OUT_LV_CH0_S) +#define RMT_GET_REG_CARRIER_EN_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF0(CHANNEL),RMT_CARRIER_EN_CH0_V, RMT_CARRIER_EN_CH0_S) +#define RMT_SET_REG_CARRIER_EN_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF0(CHANNEL),RMT_CARRIER_EN_CH0_V,(val),RMT_CARRIER_EN_CH0_S) +#define RMT_GET_REG_MEM_SIZE_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF0(CHANNEL),RMT_MEM_SIZE_CH0_V, RMT_MEM_SIZE_CH0_S) +#define RMT_SET_REG_MEM_SIZE_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF0(CHANNEL),RMT_MEM_SIZE_CH0_V,(val),RMT_MEM_SIZE_CH0_S) +#define RMT_GET_REG_IDLE_THRES_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF0(CHANNEL),RMT_IDLE_THRES_CH0_V, RMT_IDLE_THRES_CH0_S) +#define RMT_SET_REG_IDLE_THRES_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF0(CHANNEL),RMT_IDLE_THRES_CH0_V,(val),RMT_IDLE_THRES_CH0_S) +#define RMT_GET_REG_DIV_CNT_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF0(CHANNEL),RMT_DIV_CNT_CH0_V, RMT_DIV_CNT_CH0_S) +#define RMT_SET_REG_DIV_CNT_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF0(CHANNEL),RMT_DIV_CNT_CH0_V,(val),RMT_DIV_CNT_CH0_S) +//Config1 +#define RMT_GET_REG_IDLE_OUT_EN_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL), RMT_IDLE_OUT_EN_CH0_V, RMT_IDLE_OUT_EN_CH0_S) +#define RMT_SET_REG_IDLE_OUT_EN_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL),RMT_IDLE_OUT_EN_CH0_V,(val),RMT_IDLE_OUT_EN_CH0_S) +#define RMT_GET_REG_IDLE_OUT_LV_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL), RMT_IDLE_OUT_LV_CH0_V, RMT_IDLE_OUT_LV_CH0_S) +#define RMT_SET_REG_IDLE_OUT_LV_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL) ,RMT_IDLE_OUT_LV_CH0_V,(val),RMT_IDLE_OUT_LV_CH0_S) +#define RMT_GET_REG_REF_ALWAYS_ON_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL), RMT_REF_ALWAYS_ON_CH0_V, RMT_REF_ALWAYS_ON_CH0_S) +#define RMT_SET_REG_REF_ALWAYS_ON_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL),RMT_REF_ALWAYS_ON_CH0_V,(val),RMT_REF_ALWAYS_ON_CH0_S) +#define RMT_GET_REG_REF_CNT_RST_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL), RMT_REF_CNT_RST_CH0_V, RMT_REF_CNT_RST_CH0_S) +#define RMT_SET_REG_REF_CNT_RST_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL),RMT_REF_CNT_RST_CH0_V,(val),RMT_REF_CNT_RST_CH0_S) +#define RMT_GET_REG_RX_FILTER_THRES_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL), RMT_RX_FILTER_THRES_CH0_V, RMT_RX_FILTER_THRES_CH0_S) +#define RMT_SET_REG_RX_FILTER_THRES_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL),RMT_RX_FILTER_THRES_CH0_V,(val),RMT_RX_FILTER_THRES_CH0_S) +#define RMT_GET_REG_RX_FILTER_EN_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL), RMT_RX_FILTER_EN_CH0_V, RMT_RX_FILTER_EN_CH0_S) +#define RMT_SET_REG_RX_FILTER_EN_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL),RMT_RX_FILTER_EN_CH0_V,(val),RMT_RX_FILTER_EN_CH0_S) +#define RMT_GET_REG_TX_CONTI_MODE_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL), RMT_TX_CONTI_MODE_CH0_V, RMT_TX_CONTI_MODE_CH0_S) +#define RMT_SET_REG_TX_CONTI_MODE_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL),RMT_TX_CONTI_MODE_CH0_V,(val),RMT_TX_CONTI_MODE_CH0_S) +#define RMT_GET_REG_MEM_OWNER_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL), RMT_MEM_OWNER_CH0_V, RMT_MEM_OWNER_CH0_S) +#define RMT_SET_REG_MEM_OWNER_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL),RMT_MEM_OWNER_CH0_V,(val),RMT_MEM_OWNER_CH0_S) +#define RMT_GET_REG_APB_MEM_RST_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL), RMT_APB_MEM_RST_CH0_V, RMT_APB_MEM_RST_CH0_S) +#define RMT_SET_REG_APB_MEM_RST_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL) ,RMT_APB_MEM_RST_CH0_V,(val),RMT_APB_MEM_RST_CH0_S) +#define RMT_GET_REG_MEM_RD_RST_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL) , RMT_MEM_RD_RST_CH0_V, RMT_MEM_RD_RST_CH0_S) +#define RMT_SET_REG_MEM_RD_RST_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL) ,RMT_MEM_RD_RST_CH0_V,(val),RMT_MEM_RD_RST_CH0_S) +#define RMT_GET_REG_MEM_WR_RST_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL) , RMT_MEM_WR_RST_CH0_V, RMT_MEM_WR_RST_CH0_S) +#define RMT_SET_REG_MEM_WR_RST_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL) ,RMT_MEM_WR_RST_CH0_V,(val),RMT_MEM_WR_RST_CH0_S) +#define RMT_GET_REG_RX_EN_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL) , RMT_RX_EN_CH0_V, RMT_RX_EN_CH0_S) +#define RMT_SET_REG_RX_EN_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL) ,RMT_RX_EN_CH0_V,(val),RMT_RX_EN_CH0_S) +#define RMT_GET_REG_TX_START_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCONF1(CHANNEL) , RMT_TX_START_CH0_V, RMT_TX_START_CH0_S) +#define RMT_SET_REG_TX_START_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCONF1(CHANNEL) ,RMT_TX_START_CH0_V,(val),RMT_TX_START_CH0_S) +//Carrier +#define RMT_GET_REG_CARRIER_HIGH_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCARRIER_DUTY(CHANNEL) , RMT_CARRIER_HIGH_CH0_V, RMT_CARRIER_HIGH_CH0_S) +#define RMT_SET_REG_CARRIER_HIGH_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCARRIER_DUTY(CHANNEL) ,RMT_CARRIER_HIGH_CH0_V,(val),RMT_CARRIER_HIGH_CH0_S) +#define RMT_GET_REG_CARRIER_LOW_CHX(CHANNEL) GET_PERI_REG_BITS2(RMT_CHXCARRIER_DUTY(CHANNEL) , RMT_CARRIER_LOW_CH0_V, RMT_CARRIER_LOW_CH0_S) +#define RMT_SET_REG_CARRIER_LOW_CHX(CHANNEL,val) SET_PERI_REG_BITS(RMT_CHXCARRIER_DUTY(CHANNEL) ,RMT_CARRIER_LOW_CH0_V,(val),RMT_CARRIER_LOW_CH0_S) + +#define RMT_GET_MEM_TX_WRAP_EN() GET_PERI_REG_BITS2(RMT_APB_CONF_REG , RMT_MEM_TX_WRAP_EN_V, RMT_MEM_TX_WRAP_EN_S) +#define RMT_SET_MEM_TX_WRAP_EN(val) SET_PERI_REG_BITS(RMT_APB_CONF_REG ,RMT_MEM_TX_WRAP_EN_V,(val),RMT_MEM_TX_WRAP_EN_S) +#define RMT_GET_APB_FIFO_MASK() GET_PERI_REG_BITS2(RMT_APB_CONF_REG , RMT_APB_FIFO_MASK_V, RMT_APB_FIFO_MASK_S) +#define RMT_SET_APB_FIFO_MASK(val) SET_PERI_REG_BITS(RMT_APB_CONF_REG ,RMT_APB_FIFO_MASK_V,(val),RMT_APB_FIFO_MASK_S) + +enum rmt_channel{ + RMT_CTRL_CHANNEL0=0, /**< Rmt Channel0 */ + RMT_CTRL_CHANNEL1, /**< Rmt Channel1 */ + RMT_CTRL_CHANNEL2, /**< Rmt Channel2 */ + RMT_CTRL_CHANNEL3, /**< Rmt Channel3 */ + RMT_CTRL_CHANNEL4, /**< Rmt Channel4 */ + RMT_CTRL_CHANNEL5, /**< Rmt Channel5 */ + RMT_CTRL_CHANNEL6, /**< Rmt Channel6 */ + RMT_CTRL_CHANNEL7, /**< Rmt Channel7 */ +}; +enum rmt_ram_owner{ + RMT_RAM_OWNER_HARDWARE=0,/**< Rmt Rx mode ,Memory owner RMT_RAM_OWNER_HARDWARE */ + RMT_RAM_OWNER_SOFTWARE=1,/**< Rmt Rx mode ,Memory owner RMT_RAM_OWNER_SOFTWARE */ +}; +enum rmt_source_clk{ + RMT_BASECLK_REF=0,/**< Rmt Clk is Refclk defautl is 1MHz */ + RMT_BASECLK_APB,/**< Rmt Clk is APB CLK defautl is 80MHz */ +}; +enum rmt_ctrl_mode{ + RMT_TX_MODE=0,/**< Rmt TX Mode */ + RMT_RX_MODE, /**< Rmt RX Mode */ +}; +enum rmt_idle_level{ + RMT_IDLE_LOW_LEVEL=0,/**< Rmt TX IDLE Low Level */ + RMT_IDLE_HIGH_LEVEL, /**< Rmt TX IDLE High Level */ +}; +enum rmt_carrier_level{ + RMT_CARRIER_LOW_LEVEL=0,/**< Rmt Carrier Low Level */ + RMT_CARRIER_HIGH_LEVEL, /**< Rmt Carrier High Level */ +}; + +typedef struct rmt_ctrl_tx{ + uint32_t carrier_fre_Hz; /**< Rmt Carrier Fre */ + uint8_t carrier_duty; /**< Rmt Carrier duty */ + enum rmt_idle_level idle_level; /**< Rmt Idle level */ + enum rmt_carrier_level carrier_level;/**< Rmt Carrier level */ +}rmt_ctrl_tx_config_t; + +typedef struct rmt_ctrl_rx{ + uint8_t filter_tick_cnt; /**< Rmt filter tick cnt */ + uint16_t rx_threshold_tick_cnt;/**< Rmt rx interrupt threshold */ +}rmt_ctrl_rx_config_t; + +typedef struct rmt_ctrl_config{ + enum rmt_ctrl_mode rmt_mode; + enum rmt_channel channel; + gpio_num_t gpio_num; + uint8_t channel_mem_cnt;//NAME + bool intr_enable; + union{ + rmt_ctrl_tx_config_t tx_config; + rmt_ctrl_rx_config_t rx_config; + }mode_config; +}rmt_ctrl_channel_config_t; + +typedef struct rmt_event_message{ + enum rmt_ctrl_mode mode; + enum rmt_channel channel; +}rmt_event_msg_t; + +typedef void (*rmt_event_callback)(rmt_event_msg_t rmt_message); + +/** + * @brief register rmt interrupt occur callback function + * + * Use this Function,register interrupt event callback . when rmt interrupt is triggered , the event callback + * will give appliacation .rmt_event_callback is called by rmt interrupt , so the rmt_event_callback + * should be completed in a very short period of time. If you want to deal with a lot of things,Please Creat + * a task ,and post message from the rmt_event_callback to the task. + + * @param[in] func : the func will be called,when rmt interrupt is triggered ,and the param of func is the + * mode of rmt and channel of rmt + * + * + * @return None + * + */ +void rmt_register_event_callback(rmt_event_callback func); + +/** + * @brief rmt common configuration + * + * User this Function,config rmt the channel tx mode or rx mode + * + * @param[in] rmt_config rmt_config.rmt_mode : select rmt tx mode or rx mode. + * rmt_config.rmt_channel : current configuration channel. + * rmt_config.gpio_num : tx or rx mode ,signagle use the gpio. + * rmt_config.channel_mem_cnt : the tx or rx used the memory block cnt,every mem cnt have 256Byte contents + * rmt_config.intr_enable : enable or disable tx or rx interrupt.when enable tx mode , send the tx memory end ,will trigger + * tx event . when enable rx mode ,rx line idle time beyond rx_threshold_tick_cnt will trigger rx + * event. + * rmt_config.mode_config.tx_config : tx common config. + * rmt_config.mode_config.rx_config : rx common config. + * + * @return None + * + */ +void rmt_ctrl_init(rmt_ctrl_channel_config_t* rmt_config); + +/** + * @brief write rmt tx memory + * + * When rmt tx memory content is 0x00,the tx will stop,and trigger tx intr event + * + * @param[in] channel : rmt tx channel + * mem : write the mem to tx memory + * cnt : the cnt max is rmt_config.channel_mem_cnt *32 + * + * @return None + * + */ +void rmt_ctrl_tx_wr_memory(enum rmt_channel channel,uint32_t* mem,uint16_t cnt); + +/** + * @brief rmt rx start + * + * @param[in] channel : rmt rx channel + * + * @return None + * + */ +void rmt_ctrl_rx_start(enum rmt_channel channel); + +/** + * @brief rmt tx start + * + * @param[in] channel : rmt tx channel + * + * @return None + * + */ +void rmt_ctrl_tx_start(enum rmt_channel channel); + +/** + * @brief rmt read rx memory + * + * @param[in] channel : rmt rx channel + * + * @param[in] mem : the rx memory data copy to the mem,the mem content cnt = rmt_config.channel_mem_cnt *32 + * + * @return rx memory number of received data + * + */ +uint16_t rmt_ctrl_rx_rd_memory(enum rmt_channel channel,uint32_t* mem); +/** + * @brief register rmt interrupt handler + * + * @param uint8_t ledc_intr_num : rmt interrupt num,check the info in soc.h, and please see the core-isa.h for more details + * @param void (* fn)(void* ) : intr handler function + * @param void * arg : parameter for handler + * + * @return null + */ +void rmt_intr_handler_register(uint8_t rmt_intr_num,void (* fn)(void* ),void * arg); +/** + * @brief default rmt interrupt init function to initialize the rmt intrrupt parameters. + * + * @param uint8_t rmt_intr_num : ledc interrupt num,check the info in soc.h, and please see the core-isa.h for more details + * + * @return null + */ + +void rmt_intr_init_default(uint8_t rmt_intr_num); + + +#ifdef __cplusplus +} +#endif + +#endif /* _DRIVER_RMT_CTRL_H_ */ diff --git a/components/esp_audio/include/driver/spi.h b/components/esp_audio/include/driver/spi.h new file mode 100644 index 000000000..72540d272 --- /dev/null +++ b/components/esp_audio/include/driver/spi.h @@ -0,0 +1,493 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_SPI_H_ +#define _DRIVER_SPI_H_ +#include "soc/dport_reg.h" +#include "spi.h" +#include "soc/spi_reg.h" +#include +#include "dma.h" +#include "esp_err.h" + +#define ETS_SPI_INUM 8 +#define ETS_HSIP_INUM 8 +#define ETS_I2S_INUM 9 +#define ETS_RTC_INUM 9 +#define ETS_RMT_CTRL_INUM 9 +#define ETS_GPIO_INUM 18 +#define ETS_MAX_INUM 16 +#define ETS_I2C0_INUM 17 +//#define ETS_I2S0_INUM 17 +#define ETS_SPI1_INUM 17 +#define ETS_SPI2_INUM 17 +#define ETS_SPI3_INUM 17 +#define ETS_PCNT_INUM 17 +#define ETS_LEDC_INUM 18 + + +//***************************************************************************** +// +// Make sure all of the definitions in this header have a C binding. +// +//***************************************************************************** + +#ifdef __cplusplus +extern "C" +{ +#endif + +/** + * @brief Support SPI1/SPI2/SPI3 module. + * + */ +typedef enum { + SPI_NUM_SPI1 = 0x1, + SPI_NUM_SPI2 = 0x2, + SPI_NUM_SPI3 = 0x3, + SPI_NUM_MAX = SPI_NUM_SPI3, +} spi_num_t; + +/** + * @brief The SPI module can work in either master or slave mode. + * + */ +typedef enum { + SPI_MODE_MASTER = 0, + SPI_MODE_SLAVE = 1, +} spi_mode_t; + +/** + * @brief SPI sub mode + * + * Support 4 sub modes based on SPI clock polarity and phase. + * SPI_CPOL SPI_CPHA SubMode + * 0 0 0 + * 0 1 1 + * 1 0 2 + * 1 1 3 + */ +typedef enum { + SPI_SUBMODE_0 = 0, + SPI_SUBMODE_1 = 1, + SPI_SUBMODE_2 = 2, + SPI_SUBMODE_3 = 3, +} spi_sub_mode_t; + +/** + * @brief The SPI module working speed. + * + * @attention Max speed 80MHz + * + */ +typedef enum { + SPI_SPEED_2MHZ = 40, + SPI_SPEED_5MHZ = 16, + SPI_SPEED_8MHZ = 10, + SPI_SPEED_10MHZ = 8, + SPI_SPEED_16MHZ = 5, + SPI_SPEED_20MHZ = 4, +} spi_speed_t; + +/** + * @brief The SPI mode working speed. + * + */ +typedef enum { + SPI_BIT_ORDER_MSB_FIRST = 0, + SPI_BIT_ORDER_LSB_FIRST = 1, +} spi_bit_order_t; + +// @brief SPI interrupt source defined. +typedef enum { + SPI_INT_SRC_TRANS_DONE = SPI_TRANS_DONE, + SPI_INT_SRC_WR_STA_DONE = SPI_SLV_WR_STA_DONE, + SPI_INT_SRC_RD_STA_DONE = SPI_SLV_RD_STA_DONE, + SPI_INT_SRC_WR_BUF_DONE = SPI_SLV_WR_BUF_DONE, + SPI_INT_SRC_RD_BUF_DONE = SPI_SLV_RD_BUF_DONE, + SPI_INT_SRC_ONE_BUF_RECV_DONE = SPI_IN_SUC_EOF_INT_ENA, + SPI_INT_SRC_ONE_BUF_SEND_DONE = SPI_OUT_EOF_INT_ENA, +} spi_int_src_t; + +/** + * @brief The SPI mode working speed. + * + */ +typedef enum { + SPI_WORK_MODE_HALF = 0, + SPI_WORK_MODE_FULL = 1, +} spi_work_mode_t; + +/** + * @brief The SPI DMA channels. + * + */ +typedef enum { + SPI_DMA_CHANNEL_0 = 1, + SPI_DMA_CHANNEL_1 = 2, +} spi_dma_channel_t; + +/** + * @brief The SPI dma direction. + * + */ +typedef enum { + SPI_DMA_DIR_IN = 1, + SPI_DMA_DIR_OUT = 2, +} spi_dma_dir_t; + +#pragma pack(1) +/** + * @brief SPI attribute + */ +typedef struct { + spi_mode_t mode; ///< Master or slave mode + spi_sub_mode_t sub_mode; ///< SPI SPI_CPOL SPI_CPHA mode + spi_speed_t speed; ///< SPI Clock + spi_bit_order_t bit_order; ///< SPI bit order + spi_work_mode_t half_mode; ///< Half or Full work mode +} spi_attr_t; + +/** +* @brief SPI attribute +*/ +typedef struct { + uint16_t cmd; ///< Command value + uint8_t cmd_len; ///< Command byte length + uint32_t *addr; ///< Point to address value + uint8_t addr_len; ///< Address byte length + uint32_t *tx_data; ///< Point to send data buffer + uint8_t tx_data_len; ///< Send data byte length. + uint32_t *rx_data; ///< Point to recevie data buffer + uint8_t rx_data_len; ///< Recevie Data byte length. +} spi_data_t; + +// SPI DMA attribite +typedef struct { + spi_num_t spi_num; ///< Spi number + uint32_t mode; ///< Spi work mode + uint32_t buf_size; ///< Size of buffer + spi_dma_dir_t dir; ///< Direction of data,in or out. + spi_dma_channel_t channel; ///< Channel of DMA + ping_pong_buf_t *buf; ///< Buffer address +} spi_dma_attr_t; +#pragma pack() + +/** + * @brief Get SPI ping buffer address. + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * + * @return uint32_t*, NULL:indicates parameter error, others indicates ping buffer address. + */ +uint32_t* spi_dma_ping_buf_get(spi_dma_attr_t *obj); + +/** + * @brief Get SPI pong buffer address. + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * + * @return uint32_t*, NULL:indicates parameter error, others indicates pong buffer address. + */ +uint32_t* spi_dma_pong_buf_get(spi_dma_attr_t *obj); + +/** + * @brief Get without working ping-pong buffer address. + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * + * @return uint32_t*, NULL:indicates parameter error, others indicates not working buffer address. + */ +uint32_t* spi_dma_status_get(spi_dma_attr_t *obj); + +/** + * @brief Configrate the Ping-Pong buffer to the destination + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * + * @return None. + */ +int32_t spi_dma_memcpy(spi_dma_attr_t *obj, void *src, uint32_t len); + +/** + * @brief Configrate the Ping-Pong buffer to the destination + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * + * @return None. + */ +void spi_dma_dest_add_set(spi_dma_attr_t *obj); + +/** + * @brief Reset the SPI DMA instance + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * @param [in] isr + * Indicates which function to be called, when interrupt hanpened. + * + * @return None. + */ +void spi_dma_rest(spi_dma_attr_t *obj); + +/** + * @brief Initialize DMA and create a SPI DMA instance + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * @param [in] isr + * Indicates which function to be called, when interrupt hanpened. + * + * @return -1:indicates parameter error, -2: DMA buffer init failure, others indicates success. + */ +int spi_dma_init(spi_dma_attr_t *obj, void *isr); + +/** + * @brief Destroy the SPI DMA instance + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * + * @return int, -1:indicates parameter error, others indicates success. + */ +int spi_dma_uninit(spi_dma_attr_t *obj); + +/** + * @brief Configrate the Ping-Pong buffer to the destination + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * + * @return None. + */ +void spi_dma_int_enable(spi_num_t spiNum, spi_int_src_t intSrc); + +/** + * @brief Configrate the Ping-Pong buffer to the destination + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * + * @return None. + */ +void spi_dma_int_disable(spi_num_t spiNum, spi_int_src_t intSrc); + +/** + * @brief Configrate the Ping-Pong buffer to the destination + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * + * @return None. + */ +void spi_dma_int_clear(spi_num_t spiNum); + +/** + * @brief Configrate the Ping-Pong buffer to the destination + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * + * @return None. + */ +int32_t spi_dma_int_status_get(spi_num_t spiNum); + +/** + * @brief Start e SPI DMA instance + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * @param [in] len + * Indicates how many data to be called. + * + * @return None. + */ +void spi_dma_start(spi_dma_attr_t *obj, uint32_t len); + +/** + * @brief Stop the SPI DMA transmit + * + * @param [in] obj + * Pointer to a struct spi_dma_attr_t that indicates SPI DMA working attribution. + * + * @return None. + */ +void spi_dma_stop(spi_dma_attr_t *obj); + +/** + * @brief Initialize SPI module. + * + * @param [in] spiNum + * Indicates which submode to be used. + * @param [in] pAttr + * Pointer to a struct spi_attr_t that indicates SPI working attribution. + * + * @return void. + */ +void spi_init(spi_num_t spiNum, spi_attr_t* pAttr); + +/** + * @brief Set slave address value by master. + * + * @param [in] spiNum + * Indicates which submode to be used. + * @param [in] addr + * Slave address to be set. + * + * @return void. + */ +void spi_master_cfg_addr(spi_num_t spiNum, uint32_t addr); + +/** + * @brief Set command value by master. + * + * @param [in] spiNum + * Indicates which submode to be used. + * @param [in] cmd + * Command will be send to slave. + * + * @return void. + */ +void spi_master_cfg_cmd(spi_num_t spiNum, uint32_t cmd); + +/** + * @brief Send data to slave from master. + * + * @param [in] spiNum + * Indicates which submode to be used. + * @param [in] pInData + * Pointer to a spi_data_t strcuture that indicates data, address and command will be send. + * + * @return int, -1:indicates failure,others indicates success. + */ +int spi_master_send_data(spi_num_t spiNum, spi_data_t* pInData); + +/** + * @brief Receive data from slave by master. + * + * @param [in] spiNum + * Indicates which submode to be used. + * @param [in] pOutData + * Point to data buffer. + * + * @return int, -1:indicates failure,others indicates success. + * + */ +int spi_master_recv_data(spi_num_t spiNum, spi_data_t* pData); + +/** + * @brief Load data to slave send buffer. + * + * @param [in] spiNum + * Indicates which submode to be used. + * @param [in] pOutData + * Point to data buffer. + * @param [in] outLen + * The number of bytes to be set. + * + * @return int, -1:indicates failure,others indicates success. + */ +int spi_slave_send_data(spi_num_t spiNum, uint32_t *pOutData, uint8_t outLen); + +/** + * @brief Receive data by slave. + * + * @param [in] spiNum + * Indicates which submode to be used. + * @param [in] isrFunc + * isrFunc is a pointer to the function to be called when the SPI interrupt occurs. + * + * @return int, -1:indicates failure,others indicates success. + */ +int spi_slave_recv_data(spi_num_t spiNum, void(*isrFunc)(void*)); + +/** + * @brief Set slave status by master. + * + * @param [in] spiNum + * Indicates which submode to be used. + * + * @param [in] data + * Data will be write to slave SPI_WR_STATUS. + * + * @return void. + */ +void spi_master_send_status(spi_num_t spiNum, uint8_t data); + +/** + * @brief Get salve status by master. + * + * @param [in] spiNum + * Indicates which submode to be used. + * + * @return int, -1: indicates failure; other value in slave status. + */ +int spi_master_recv_status(spi_num_t spiNum); + +/** + * @brief Enable SPI module interrupt source. + * + * @param [in] spiNum + * Indicates which submode to be used. + * + * @param [in] intSrc + * Indicates which interrupt source to enable. + * + * @return void. + */ +void spi_int_enable(spi_num_t spiNum, spi_int_src_t intSrc); + +/** + * @brief Disable SPI module interrupt source. + * + * @param [in] spiNum + * Indicates which submode to be used. + * + * @param [in] intSrc + * Indicates which interrupt source to disable. + * + * @return void. + */ +void spi_int_disable(spi_num_t spiNum, spi_int_src_t intSrc); + +/** + * @brief Clear all of spi interrupt. + * + * @param [in] spiNum + * Indicates which submode to be used. + * + * @return void. + */ +void spi_int_clear(spi_num_t spiNum); + +/** + * @brief Get the spi interrupt status. + * + * @param [in] spiNum + * Indicates which submode to be used. + * + * @return void. + */ +int32_t spi_int_status_get(spi_num_t spiNum); + +#ifdef __cplusplus +} +#endif + +#endif // __SPI_H__ diff --git a/components/esp_audio/include/driver/touch_pad.h b/components/esp_audio/include/driver/touch_pad.h new file mode 100644 index 000000000..1590127a3 --- /dev/null +++ b/components/esp_audio/include/driver/touch_pad.h @@ -0,0 +1,105 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_TOUCH_PAD_H_ +#define _DRIVER_TOUCH_PAD_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define ETS_RTC_INTR_INUM 19 + + +typedef enum{ + TOUCH_PAD_NUM0=0, //GPIO4 + TOUCH_PAD_NUM1, //GPIO0 + TOUCH_PAD_NUM2, //GPIO2 + TOUCH_PAD_NUM3, //GPIO15 + TOUCH_PAD_NUM4, //GPIO13 + TOUCH_PAD_NUM5, //GPIO12 + TOUCH_PAD_NUM6, //GPIO14 + TOUCH_PAD_NUM7, //GPIO27 + TOUCH_PAD_NUM8, //GPIO33 + TOUCH_PAD_NUM9, //GPIO32 + TOUCH_PAD_MAX, +}enum_touch_pad_t; + +typedef struct touch_message{ + enum_touch_pad_t touch_num; +}touch_message_t; +typedef void (*touch_event_callback)(touch_message_t touch_mes); +/** +* @brief touch module int +* +*This function int touch pad module ,enable touch module +* +* @return None +* +*/ +void touch_module_init(); + +/** +* @brief config touch pad intr callback thresold +* +*When you touch the pad ,touch_pad_register reduce .When the touch_pad_register less than threshold +*will trigger the touch event callback +* +* @param[in] touch_num : config touch num +* +* @param[in] threshold : interrupt threshold ,When the touch_pad_register less than threshold +* will trigger the touch event callback.User can use touch_pad_read function +* to determine the threshold. +* +* @return None +* +*/ +void touch_pad_config(enum_touch_pad_t touch_num,uint16_t threshold); + +/** +* @brief register touch pad interrupt occur callback function +* +* Use this Function,register interrupt event callback . when touch pad interrupt is triggered , the event callback +* will give appliacation .touch_event_callback is called by touch interrupt , so the touch_event_callback +* should be completed in a very short period of time. If you want to deal with a lot of things,Please Creat +* a task ,and post message from the gpio_event_callback to the task. +* +* @param[in] func : the func will be called,when touch interrupt is triggered ,and the param of func is the +* number of the touch pad num occurs interrupt +* +* +* @return None +* +*/ +void touch_module_register_event_callback(touch_event_callback touch_event_cb); + +/** +* @brief get touch pad touch_pad_register number +* +*User can use this function to determine the the interrupt threshold .When you do not touch the +*pad ,read the touch_pad_read number(NumNotTouch) by the touch_pad_register.When you touch the pad ,read the touch_pad_register +*number(NumTouch) by the touch_pad_read.Normal NumNotTouch>NumTouch,so you can select a interrupt threshold +* +* @param[in] touch_num : touch num +* +* +* @return -1 : the touch num is err +* Other : the number of the touch_pad_read +* +*/ +int32_t touch_pad_read(enum_touch_pad_t touch_num); +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/components/esp_audio/include/esp_timer.h b/components/esp_audio/include/esp_timer.h new file mode 100644 index 000000000..a75c12b1a --- /dev/null +++ b/components/esp_audio/include/esp_timer.h @@ -0,0 +1,101 @@ +/* + * ESPRSSIF MIT License + * + * Copyright (c) 2015 + * + * Permission is hereby granted for use on ESPRESSIF SYSTEMS ESP32 only, in which case, + * it is free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the Software is furnished + * to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or + * substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef __ESP_TIMER_H__ +#define __ESP_TIMER_H__ + +#ifdef __cplusplus +extern "C" { +#endif +#include "esp_types.h" +/* timer related */ +typedef void os_timer_func_t(void *timer_arg); + +typedef struct _os_timer_t { + struct _os_timer_t *timer_next; + void *timer_handle; + uint32_t timer_expire; + uint32_t timer_period; + os_timer_func_t *timer_func; + bool timer_repeat_flag; + void *timer_arg; +} os_timer_t; + +/** \defgroup Timer_APIs Software timer APIs + * @brief Software timer APIs + * + * Timers of the following interfaces are software timers. Functions of the timers are executed during the tasks. + * Since a task can be stopped, or be delayed because there are other tasks with higher priorities, the following os_timer interfaces cannot guarantee the precise execution of the timers. + * - For the same timer, os_timer_arm (or os_timer_arm_us) cannot be invoked repeatedly. os_timer_disarm should be invoked first. + * - os_timer_setfn can only be invoked when the timer is not enabled, i.e., after os_timer_disarm or before os_timer_arm (or os_timer_arm_us). + * + */ + +/** @addtogroup Timer_APIs + * @{ + */ + +/** + * @brief Set the timer callback function. + * + * @attention 1. The callback function must be set in order to enable the timer. + * @attention 2. Operating system scheduling is disabled in timer callback. + * + * @param os_timer_t *ptimer : Timer structure + * @param os_timer_func_t *pfunction : timer callback function + * @param void *parg : callback function parameter + * + * @return null + */ +void os_timer_setfn(os_timer_t *ptimer, os_timer_func_t *pfunction, void *parg); + +/** + * @brief Enable the millisecond timer. + * + * @param os_timer_t *ptimer : timer structure + * @param uint32_t milliseconds : Timing, unit: millisecond, the maximum value allowed is 0x41893 + * @param bool repeat_flag : Whether the timer will be invoked repeatedly or not + * + * @return null + */ +void os_timer_arm(os_timer_t *ptimer, uint32_t msec, bool repeat_flag); + +/** + * @brief Disarm the timer + * + * @param os_timer_t *ptimer : Timer structure + * + * @return null + */ +void os_timer_disarm(os_timer_t *ptimer); + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/components/esp_audio/lib/libEspAudio.a b/components/esp_audio/lib/libEspAudio.a new file mode 100644 index 0000000000000000000000000000000000000000..e2d9387307ed28bfd1c3e05dd076bbb68985c06a GIT binary patch literal 113494 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 P+dHhmV7nX9Hi!QQ>+Fj{ literal 0 HcmV?d00001 diff --git a/components/esp_audio/lib/libMediaHal.a b/components/esp_audio/lib/libMediaHal.a new file mode 100644 index 0000000000000000000000000000000000000000..5fdbd3f2693cebe34f6fc35001a65a941975ae0c GIT binary patch literal 384768 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 z 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 literal 0 HcmV?d00001 diff --git a/components/esp_audio/lib/libMisc.a b/components/esp_audio/lib/libMisc.a new file mode 100644 index 0000000000000000000000000000000000000000..4a9c71a02831e7328a21219794b8c8ab71b3b38a GIT binary patch literal 24864 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 literal 0 HcmV?d00001 diff --git a/components/esp_audio/lib/libdlna.a b/components/esp_audio/lib/libdlna.a new file mode 100644 index 0000000000000000000000000000000000000000..c973c4a7712890a9d567c7cffe02a6dbdbedda14 GIT binary patch literal 510936 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