欢迎使用杰理科技32位AD系列通用语音IC
开源社区仓库链接:
https://gitee.com/Jieli-Tech/fw-AD16N
https://github.com/Jieli-Tech/fw-AD16N
开源社区交流群:
![]()
开源社区钉钉群二维码
作者:刘杰、陈卓豪、马万程、刘昊坤
IDE 软硬件开发环境介绍:
设备、文件、编解码:
- 1. 设备管理
- 1.1. 设备注册表
- 1.2. 设备函数
- 1.2.1. 函数int devices_init_api_()
- 1.2.2. 函数void *dev_open(u32 index)
- 1.2.3. 函数u32 device_close(u32 index)
- 1.2.4. 函数void *device_obj(u32 index)
- 1.2.5. 函数u32 device_online(void)
- 1.2.6. 函数u32 device_status(u32 index, bool mode)
- 1.2.7. 函数int dev_bulk_read(void *_device, void *buf, u32 offset, u32 len)
- 1.2.8. 函数int dev_bulk_write(void *_device, void *buf, u32 offset, u32 len)
- 1.2.9. 函数int dev_ioctl(void *device, int cmd, u32 arg)
- 1.2.10. 函数int dev_close(void *device)
- 2. 文件系统管理
- 2.1. 文件系统介绍
- 2.2. 文件系统使用一般流程
- 2.3. 通用文件系统管理函数
- 2.3.1. 函数void fs_init(void)
- 2.3.2. 函数u32 fs_mount(void **ppvfs, void *device, void *type)
- 2.3.3. 函数u32 fs_openbypath(void *pvfs, void **ppvfile, const char *path)
- 2.3.4. 函数u32 fs_read(void *pvfile, void *buf, u32 len)
- 2.3.5. 函数u32 fs_seek(void *pvfile, u32 offset, u32 mode)
- 2.3.6. 函数u32 fs_file_close(void **ppvfile)
- 2.3.7. 函数u32 fs_fs_close(void **ppvfs)
- 2.3.8. 函数u32 fs_file_name(void *pvfile, void *name, u32 len)
- 2.3.9. 函数int fs_get_attrs(void *pvfile, void *pvfs_attr)
- 2.3.10. 函数int fs_ioctl(void *pvfile, int cmd, int arg)
- 2.4. FAT文件系统管理函数
- 2.4.1. 函数int fs_ftell(void *pvfile, void *parm)
- 2.4.2. 函数int vfs_get_fsize(void *pvfile, void *parm)
- 2.4.3. 函数struct vfscan *vfs_fscan_new(void *pvfs, const char *path, const char *arg, u8 max_deepth, int (*callback)(void), strcut vfscan *fsn, struct vfscan_reset_info *info)
- 2.4.4. 函数void fs_fscan_release(void *pvfs, struct vfscan *fs)
- 2.4.5. 函数int fs_get_folderinfo(void **pvfile, struct vfscan *fs, int *start_num, int *end_num)
- 2.4.6. 函数int fs_get_encfolder_info(void *pvfs, char *folder, char *ext, u32 *last_num, u32 *total_num)
- 2.4.7. 函数u32 fs_file_delete(void *pvfile)
- 2.4.8. 函数int fs_select(void *pvfs, void **ppvfile, struct vfscan *fs, int sel_mode, int arg)
- 2.4.9. 函数int vfs_mk_dir(void *pvfs, char *folder, u8 mode)
- 2.4.10. 函数int vfs_get_encfolder_info(void *pvfs, char *folder, char *ext, u32 *last_num, u32 *total_num)
- 2.4.11. 函数u32 vfs_file_delete(void *pvfile)
- 2.4.12. 函数int vfs_select(void *pvfs, void **ppvfile, struct vfscan *fs, int sel_mode, int arg)
- 3. 解码接口
- 4. 编码接口
- 5. JL_MIO功能
应用流程:
- 1. OTP小音箱应用流程
- 2. FLASH工程应用流程
- 2.1. 音乐解码模式
- 2.2. USB从机模式
- 2.3. LINEIN模式
- 2.4. MIDI解码 / MIDI琴模式
- 2.5. 玩具多路解码模式
- 2.5.1. 函数u32 simple_dev_fs_mount(play_control *ppctl)
- 2.5.2. 函数u32 simple_dev_fs_close(play_control *ppctl)
- 2.5.3. 函数u32 simple_play_file_byindex(play_control *ppctl)
- 2.5.4. 5.4 函数u32 get_decoder_status(dec_obj *obj)
- 2.5.5. 函数static bool simple_switch_device(play_control *ppctl)
- 2.5.6. 函数static bool simple_next_dir(play_control *ppctl)
- 2.6. 录音模式
- 2.6.1. 函数int encode_start(Encode_Control *obj)
- 2.6.2. 函数void encode_stop(Encode_Control *obj)
- 2.6.3. 函数int fatfs_enc_file_create(Encode_Control *obj)
- 2.6.4. 函数dec_obj *fatfs_enc_file_decode(Encode_Control *obj, u16 dec_type)
- 2.6.5. 函数int norfs_enc_file_create(Encode_Control *obj)
- 2.6.6. 函数dec_obj *norfs_enc_file_decode(Encode_Control *obj, u16 dec_type)
- 2.7. LoudSpeaker扩音模式
音频:
- 1. AUDIO 公共
- 2. AUDIO DAC
- 2.1. 《app_config.c》中的开机默认配置
- 2.2. 《audio_dac.h》中的开机默认配置
- 2.3. AUDIO DAC示例
- 2.4. AUDIO 全关闭示例
- 2.5. AUDIO DAC管理架构
- 2.6. AUDIO DAC相关函数
- 2.6.1. 函数void dac_mode_init(void)
- 2.6.2. 函数void dac_init_api(u32 sr)
- 2.6.3. 函数dac_sr_api(u32 sr)
- 2.6.4. 函数void dac_off_api(void)
- 2.6.5. 函数u8 stereo_dac_vol(char set, u8 vol_l, u8 vol_r)
- 2.6.6. 函数u8 dac_vol(char set, u8 vol)
- 2.6.7. 函数bool dac_mute(bool mute)
- 2.6.8. 函数函数bool regist_dac_channel(void *psound, void *kick)
- 2.6.9. 函数函数bool unregist_dac_channel(void *psound)
- 2.6.10. 函数void fifo_dac_fill(u8 *buf, u32 len, AUDIO_TYPE type)
- 2.6.11. 函数void audio_dac_analog_vol(AUDIO_DAC_ANA_VOL vol_l, AUDIO_DAC_ANA_VOL vol_r)
- 2.6.12. 函数void audio_amux_analog_vol(AUDIO_DAC_AUMX_VOL vol_l, AUDIO_DAC_AUMX_VOL vol_r)
- 3. AUDIO ADC
- 3.1. 《app_config.c》中的开机默认配置
- 3.2. AUDIO ADC示例
- 3.3. AUDIO 全关闭示例
- 3.4. AUDIO ADC管理架构
- 3.5. AUDIO ADC相关函数
- 3.5.1. 函数void audio_adc_mode_init(void)
- 3.5.2. 函数u32 audio_adc_init_api(u32 sr, ADC_MODE mode, u32 ch)
- 3.5.3. 函数void audio_adc_off_api(void)
- 3.5.4. 函数bool regist_audio_adc_channel(void *psound, void *kick)
- 3.5.5. 函数bool unregist_audio_adc_channel(void *psound)
- 3.5.6. 函数void fill_audio_adc_fill(u8 *buf, u32 len)
- 4. 软硬件淡入淡出
音效算法:
- 1. 混响音效(echo)
- 2. 移频啸叫抑制(pitchshifter_howling)
- 3. 自适应陷波啸叫抑制(notch_howling)
- 4. 简单EQ
- 5. 完整的浮点EQ
- 5.1. 浮点EQ配置(Flash工程)
- 5.2. 浮点EQ相关接口(Flash工程)
- 5.2.1. 函数 void *link_eq_sound(void *p_sound_out, void *p_dac_cbuf, void **pp_effect, u32 sr, u8 ch)
- 5.2.2. 函数 void *link_eq_sound(void *p_sound_out, void *p_dac_cbuf, void **pp_effect, u32 sr, u8 ch)
- 5.2.3. 函数 int eq_mode_sw(void *parm)
- 5.2.4. 函数 u8 get_eq_mode_total_num(void *parm)
- 5.2.5. 函数 u8 get_eq_mode_total_num(void *parm)
- 5.3. 在线EQ调试助手使用一般流程
- 6. 变音音效(vo_pitch)
- 7. 实时变速变调(SONG_SPEED,用于扩音)
- 8. 歌曲变速变调(SONG_SPEED,用于解码)
系统记忆:
- 1. 系统记忆存储
- 2. 设备记忆(OTP工程)
- 3. VM 掉电存储详细说明
- 3.1. VM 记忆的基本原理
- 3.2. VM 记忆的系统局限性
- 3.3. NEW VM的预擦除
- 3.4. NEW VM常见BUG
- 3.5. VM 掉电存储使用说明
- 3.6. VM 掉电存储版本简单说明
- 3.7. 新旧VM文件组成及版本选择
- 3.8. VM相关参数介绍
- 3.9. VM掉电记忆存储接口
- 3.9.1. 函数u32 syscfg_vm_init(u32 mem_addr, u32 mem_size)
- 3.9.2. 函数u32 sysmem_write_api(u32 id,u8 *data_buf, u32 len)
- 3.9.3. 函数u32 sysmem_read_api(u32 id ,u8 *data_buf, u32 len)
- 3.9.4. 函数 u32 sysmem_pre_erase_api(void)
- 3.9.5. 函数void nvm_pre_erasure_next(NEW_VM_OBJ *p_nvm, u16 using_next, u16 idle_next)
- 3.10. VM常见问题介绍
其他:
- 1. FLASH硬件写保护功能
- 2. 消息与事件
- 3. 按键系统Key
- 4. 低功耗与唤醒
- 5. LCD段码屏驱动说明
- 6. RTC功能
- 6.1. RTC功能介绍
- 6.2. RTC配置参数
- 6.3. RTC接口函数
- 6.3.1. void read_current_time();
- 6.3.2. void write_clock_time(u16 year , u8 month , u8 day , u8 hour , u8 min , u8 sec);
- 6.3.3. void rea_alarm_time();
- 6.3.4. void write_alarm_time(u16 year , u8 month , u8 day , u8 hour , u8 min , u8 sec);
- 6.3.5. void time_wakeup_set(u8 index , u8 en);
- 6.3.6. void set_alarm_ctrl(u8 set_alarm);
- 6.4. RTC简单使用示例