欢迎使用杰理科技32位AD系列通用语音IC
开源社区仓库链接:
https://gitee.com/Jieli-Tech/AW30N
https://github.com/Jieli-Tech/AW30N
开源社区交流群:
开源社区钉钉群二维码
项目负责人:刘杰
文档编写人:陈卓豪、马万程、刘昊坤
- 1. 无线模块介绍-BLE
- 2. 蓝牙硬件相关配置
- 3. 完整GATT服务(GATT_complete)介绍
- 3.1. 简介
- 3.2. 从机相关参数配置
- 3.3. 从机profile相关配置
- 3.4. 广播包修改
- 3.5. 定向广播
- 3.6. 主机相关参数配置
- 3.7. 公共接口
- 3.8. 从机相关接口
- 3.8.1. 函数void ble_slave_init(void)
- 3.8.2. 函数int ble_slave_data_send(u16 att_handle, u8 *data, u16 len)
- 3.8.3. 函数int hogp_att_write_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t transaction_mode, uint16_t offset, uint8_t *buffer, uint16_t buffer_size)
- 3.8.4. 函数ble_cmd_ret_e ble_op_conn_param_request(con_handle, con_param)
- 3.9. 主机相关接口
- 4. 简易GATT服务(GATT_simple)介绍
- 4.1. 简介
- 4.2. 从机相关参数配置
- 4.3. 主机相关参数配置
- 4.4. 公共接口
- 4.5. BLE_SLAVE接口
- 4.5.1. 函数const char *bt_get_local_name()
- 4.5.2. 函数void bt_ble_slave_init(void)
- 4.5.3. 函数void bt_ble_slave_exit(void)
- 4.5.4. 函数int bt_ble_slave_send_api(u8 *data, u16 len)
- 4.5.5. 函数void bt_ble_slave_recv_register(int (*callback_func)(u8 *buf, u16 len))
- 4.5.6. 函数u32 bt_ble_slave_update_conn_parm(u16 interval)
- 4.6. BLE_MASTER接口
- 5. 周期广播(periodic_advertise)介绍
- 6. vble_complete无线收发接口介绍
- 6.1. 简介
- 6.2. 数据发送/接收流程
- 6.3. 接口说明
- 6.3.1. 函数int vble_master_recv_cb_register(u32 slv_att_idx, void *priv, void *callback_fun)
- 6.3.2. 函数int vble_slave_recv_cb_register(u32 mstr_att_idx, void *priv, void *callback_fun)
- 6.3.3. 函数int vble_master_send_api(u32 mstr_att_idx, u8 *data, u16 len)
- 6.3.4. 函数int vble_slave_send_api(u32 slv_att_idx, u8 *data, u16 len)
- 6.3.5. 函数int vble_ioctl(u32 cmd, int arg)
- 7. vble_simple无线收发接口介绍
- 7.1. 简介
- 7.2. 数据发送/接收流程
- 7.3. 接口说明
- 7.3.1. 函数void vble_smpl_master_select(void)
- 7.3.2. 函数void vble_smpl_slave_select(void)
- 7.3.3. 函数void vble_smpl_init(void)
- 7.3.4. 函数void vble_smpl_exit(void)
- 7.3.5. 函数int vble_smpl_send_api(u8 *data, u16 len)
- 7.3.6. 函数void vble_smpl_recv_register(void *priv, int (*callback_func)(u8 *buf, u16 len))
- 7.3.7. 函数u32 vble_smpl_ioctl(u32 cmd, int arg)
- 8. vble_adv无线收发接口介绍
- 8.1. 简介
- 8.2. 数据发送/接收流程
- 8.3. 广播端(发送端)和扫描端(接收端)配置说明
- 8.4. 接口说明
- 8.4.1. 函数void vble_adv_init(void)
- 8.4.2. 函数void vble_padv_parm_init(void)
- 8.4.3. 函数void vble_adv_tx_init(padvb_user_param_t *param)
- 8.4.4. 函数void vble_adv_tx_open(void)
- 8.4.5. 函数void vble_adv_tx_close(void)
- 8.4.6. 函数void vble_adv_tx_uninit(void)
- 8.4.7. 函数void vble_adv_tx_push_data(u8 *data, u16 len)
- 8.4.8. 函数void vble_padv_radio_tx_callback(const PADVB_EVENT event)
- 8.4.9. 函数void vble_adv_rx_init(padvb_user_param_t *param)
- 8.4.10. 函数void vble_adv_rx_open(void)
- 8.4.11. 函数void vble_adv_rx_close(void)
- 8.4.12. 函数void vble_adv_rx_uninit(void)
- 8.4.13. 函数void vble_adv_rx_close(void)
- 8.4.14. 函数void vble_adv_rx_pop_data(u8 **data)
- 8.4.15. 函数void vble_padv_radio_rx_callback(const PADVB_EVENT event)
- 1. BLE对讲机APP说明
- 1.1. 简介
- 1.2. 半双工以及全双工对讲机应用流程说明
- 1.3. 广播式对讲机应用说明
- 1.4. 应用变量和接口
- 1.4.1. 变量rev_fsm_mge packet_recv
- 1.4.2. 变量sound_stream_obj stream
- 1.4.3. 变量cbuffer_t dec_icbuf
- 1.4.4. 变量cbuffer_t ack_cbuf
- 1.4.5. 变量cbuffer_t cmd_cbuf
- 1.4.6. 变量u32 app_softoff_jif_cnt
- 1.4.7. 变量u32 app_standby_jif_cnt
- 1.4.8. 变量u8 rra_mode
- 1.4.9. 变量u8 rra_event_occur
- 1.4.10. 变量audio2rf_send_mge_ops rf_radio_ops
- 1.4.11. 函数void rf_radio_app(void)
- 1.4.12. 函数void rf_radio_half_duplex_app(void)
- 1.4.13. 函数void rf_radio_full_duplex_app(void)
- 1.4.14. 函数void rf_radio_padv_app(void)
- 1.4.15. 函数void padv_rapp_loop(void)
- 1.4.16. 函数void rf_radio_padv_init(void)
- 1.4.17. 函数void rf_radio_padv_uninit(void)
- 1.4.18. 函数void rf_radio_app_init(void)
- 1.4.19. 函数void rf_radio_bt_init(void)
- 1.4.20. 函数void rf_radio_bt_uninit(void)
- 1.4.21. 函数void rf_radio_app_uninit(void)
- 1.4.22. 函数int rrapp_idle(void)
- 1.4.23. 函数u8 rrapp_receiving(int active_msg)
- 1.4.24. 函数bool rrapp_sending(int active_msg)
- 1.4.25. 函数int rf_radio_send_api(u8 *data, u16 len)
- 1.4.26. 函数int rf_radio_check_status_api(void)
- 1.4.27. 函数int rf_radio_get_valid_len_api(void)
- 1.4.28. 函数u8 fd_rrapp_loop(int active_msg)
- 2. 遥控器应用介绍
- 2.1. 遥控器模式(从机)简介
- 2.2. 遥控器模式(从机)BLE相关参数配置
- 2.3. 遥控器模式(从机)相关变量和函数说明
- 2.3.1. 变量rev_fsm_mge rc_recv_ops
- 2.3.2. 变量audio2rf_send_mge_ops remote_ops
- 2.3.3. 变量 enc_obj *gp_rc_enc_obj
- 2.3.4. 变量cbuffer_t packet_cmd_cbuf
- 2.3.5. 函数void rf_rc_app()
- 2.3.6. 函数void rc_rf_loop()
- 2.3.7. 函数int vble_slave_init_api(void)
- 2.3.8. 函数void audio2rf_send_register(void *ops)
- 2.3.9. 函数int rc_get_vaild_len_api(void)
- 2.3.10. 函数int rc_check_status_api(void)
- 2.3.11. 函数void rf_send_hid_key_api(int msg, u16 len)
- 2.3.12. 函数void audio2rf_encoder_io(u32(*enc_fun)(void *, void *, void *), void *input_func, void *output_func, u8 enc_type)
- 2.3.13. 函数void rf_controller_uninit()
- 2.4. dongle模式(主机)简介
- 2.5. dongle模式(主机)BLE相关参数配置
- 2.6. dongle模式(主机)相关变量和函数说明
- 2.6.1. 变量rev_fsm_mge packet_recv
- 2.6.2. 变量sound_stream_obj stream
- 2.6.3. 变量cbuffer_t dec_icbuf
- 2.6.4. 变量cbuffer_t ack_cbuf
- 2.6.5. 变量cbuffer_t cmd_cbuf
- 2.6.6. 变量audio2rf_send_mge_ops remote_ops
- 2.6.7. 函数void dongle_app()
- 2.6.8. 函数void dongle_rf_loop()
- 2.6.9. 函数void bt_usb_mic_hid_init()
- 2.6.10. 函数int vble_master_init_api(void)
- 2.6.11. 函数int vble_master_recv_cb_register(u32 slv_att_idx, void *callback_fun)
- 2.6.12. 函数int rf_dongle_hid_callback(u8 *rf_packet, u16 packet_len)
- 2.6.13. 函数int rf_receiver_audio_callback(u8 *rf_packet, u16 packet_len)
- 3. BLE连接手机说明
- 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)
- 1.2.11. 设备管理常见问题介绍
- 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. JL_MIO功能
- 1. AW30N 传统玩具应用模式介绍
- 1.1. 音乐解码模式(MUSIC_MODE)
- 1.2. 普通解码模式(SIMPLE_DEC_MODE)
- 1.2.1. 函数u32 simple_dev_fs_mount(play_control *ppctl)
- 1.2.2. 函数u32 simple_dev_fs_close(play_control *ppctl)
- 1.2.3. 函数u32 simple_play_file_byindex(play_control *ppctl)
- 1.2.4. 5.4 函数u32 get_decoder_status(dec_obj *obj)
- 1.2.5. 函数static bool simple_switch_device(play_control *ppctl)
- 1.2.6. 函数static bool simple_next_dir(play_control *ppctl)
- 1.3. 录音模式(RECORD_MODE)
- 1.3.1. 函数int encode_start(Encode_Control *obj)
- 1.3.2. 函数void encode_stop(Encode_Control *obj)
- 1.3.3. 函数int fatfs_enc_file_create(Encode_Control *obj)
- 1.3.4. 函数dec_obj *fatfs_enc_file_decode(Encode_Control *obj, u16 dec_type)
- 1.3.5. 函数int norfs_enc_file_create(Encode_Control *obj)
- 1.3.6. 函数dec_obj *norfs_enc_file_decode(Encode_Control *obj, u16 dec_type)
- 1.4. linein模式(AUX_MODE)
- 1.5. MIDI模式(MIDI_MODE)
- 1.6. MIDI琴模式(MIDI_CTRL_MODE)
- 1.7. 扩音模式(LOUDSPEAKER_MODE)
- 1.8. RTC模式(RTC_MODE)
- 1.9. USB从机模式(USB_SLAVE_MODE)
- 1. AUDIO 公共
- 2. AUDIO DAC
- 2.1. 《app_config.c》中的开机默认配置
- 2.2. 《audio_dac.h》中的开机默认配置
- 2.3. AUDIO DAC管理架构
- 2.4. AUDIO DAC相关函数
- 2.4.1. 函数void dac_mode_init(void)
- 2.4.2. 函数void dac_init_api(u32 sr)
- 2.4.3. 函数dac_sr_api(u32 sr)
- 2.4.4. 函数void dac_off_api(void)
- 2.4.5. 函数u8 dac_vol(char set, u8 vol)
- 2.4.6. 函数 bool dac_mute(bool mute)
- 2.4.7. 函数 bool regist_dac_channel(void *psound_pre, void *psound_later, void *kick)
- 2.4.8. 函数函数bool unregist_dac_channel(void *psound)
- 2.4.9. 函数void fifo_dac_fill(u8 *buf, u32 len, AUDIO_TYPE type)
- 2.5. AUDIO APA模块特殊函数
- 3. AUDIO ADC
- 3.1. 《app_config.c》中的开机默认配置
- 3.2. 《audio_adc.h》中的开机默认配置
- 3.3. AUDIO ADC管理架构
- 3.4. AUDIO ADC相关函数
- 3.4.1. 函数void audio_adc_mode_init(void)
- 3.4.2. 函数u32 audio_adc_init_api(u32 sr, ADC_MODE mode, u32 throw_sp_num)
- 3.4.3. 函数void audio_adc_off_api(void)
- 3.4.4. 函数 bool regist_audio_adc_channel(void *psound_pre, void *psound_later, void *kick)
- 3.4.5. 函数bool unregist_audio_adc_channel(void *psound)
- 3.4.6. 函数void fill_audio_adc_fill(u8 *buf, u32 len)
- 4. AUDIO LINK
- 4.1. AUDIO LINK 基本信息
- 4.2. AUDIO LINK 基本配置
- 4.3. AUDIO LINK 相关变量说明
- 4.4. AUDIO LINK 相关结构体说明
- 4.5. AUDIO LINK 函数说明
- 4.5.1. 函数 u32 audio_link_init_api(void)
- 4.5.2. 函数 u32 audio_link_uninit_api(void)
- 4.5.3. 函数 u32 audio_link_init_channel_api(ALINK_CH_CFG *alink_data_parm)
- 4.5.4. 函数 u32 audio_link_uninit_channel_api(ALINK_CH_CFG *alink_data_parm)
- 4.5.5. 函数 u16 audio_link_set_sr_api(u32 rate)
- 4.5.6. 函数 u16 read_audio_link_sr()
- 4.6. AUDIO LINK 应用
- 4.7. AUDIO LINK 注意事项
- 5. 软硬件淡入淡出
- 1. 编码接口
- 1.1. 编码功能控制函数
- 1.2. 函数void encoder_file(u32(*fun)(void *, void *, void *), void *pfile)
- 1.3. 函数void stop_encode(void *pfile, u32 dlen)
- 1.4. 函数void audio2rf_encoder_io(u32(*enc_fun)(void *, void *, void *), AUDIO_FORMAT enc_type)
- 1.5. 函数u32 rf_enc_output(void *priv, u8 *data, u16 len)
- 1.6. 函数void audio2rf_encoder_stop(ENC_STOP_WAIT wait)
- 2. 各编码格式配置说明
- 3. 解码接口
- 4. 各解码格式配置说明
- 5. 音频传输管理模块说明
- 5.1. 简介
- 5.2. 音频发送相关接口
- 5.2.1. 函数void audio2rf_encoder_io(u32(*enc_fun)(void *, void *, void *), AUDIO_FORMAT enc_type)
- 5.2.2. 函数u32 audio2rf_start_cmd(u32 sr, u32 br, AUDIO_FORMAT enc_type)
- 5.2.3. 函数u32 audio2rf_stop_cmd(void)
- 5.2.4. 函数u32 audio2rf_ack_cmd(u8 ack_cmd, u8 *data, u16 len)
- 5.2.5. 函数u32 audio2rf_send_packet(RADIO_PACKET_TYPE type, u8 *data, u16 data_len)
- 5.2.6. 函数u32 rf_enc_output(void *priv, u8 *data, u16 len)
- 5.2.7. 函数void audio2rf_encoder_stop(ENC_STOP_WAIT wait)
- 5.3. 音频接收相关接口
- 5.3.1. 结构体变量struct if_decoder_io dec_io_for_rf
- 5.3.2. 函数dec_obj *rf2audio_decoder_start(RF_RADIO_ENC_HEAD *p_enc_head, sound_stream_obj *p_rf_stream, u32 output_sr)
- 5.3.3. 函数void rf2audio_decoder_stop(dec_obj *p_recv_dec_obj, bool(*unregist_func)(void *))
- 5.3.4. 函数u32 rf2audio_receiver_write_data(dec_obj *p_recv_dec_obj, u8 *data, u32 data_len)
- 5.3.5. 函数int rf2audio_receiver_mp_input(void *priv, u32 addr, void *buf, int len, u8 type)
- 5.3.6. 函数void rf2audio_receiver_kick_decoder(void *p_stream_in, void *psound)
- 5.4. 数据封包/解包相关接口
- 5.4.1. 函数u32 ar_trans_pack(RADIO_PACKET_TYPE type, u8 *data, u16 data_len)
- 5.4.2. 函数bool ar_trans_unpack(rev_fsm_mge *ops, u8 *buff, u16 len, u32 *pcnt)
- 5.4.3. 函数int unpack_data_deal(rev_fsm_mge *ops, u8 *buff, u16 packet_len)
- 5.4.4. 函数s32 packet_cmd_post(void *p_pool, RADIO_PACKET_TYPE cmd, u8 *data, u16 data_len)
- 5.4.5. 函数u32 packet_cmd_get(void *p_pool, u8 *packet, u8 packet_len)
- 5.5. rf相关接口
- 6. midi
- 1. 软件EQ(PCM_EQ)
- 2. 混响音效(echo)
- 3. 移频啸叫抑制(pitchshifter_howling)
- 4. 自适应陷波啸叫抑制(notch_howling)
- 5. 变音音效(vo_pitch)
- 6. 实时变速变调(SPEED,用于扩音)
- 7. 歌曲变速变调(SONG_SPEED,用于解码)
- 8. 混合变音音效(voicechanger)
- 1. 系统记忆存储
- 2. VM 掉电存储详细说明
- 2.1. VM 记忆的基本原理
- 2.2. VM 记忆的系统局限性
- 2.3. NEW VM的预擦除
- 2.4. NEW VM常见BUG
- 2.5. VM 掉电存储使用说明
- 2.6. VM 掉电存储版本简单说明
- 2.7. 新旧VM文件组成及版本选择
- 2.8. VM相关参数介绍
- 2.9. VM掉电记忆存储接口
- 2.9.1. 函数u32 syscfg_vm_init(u32 mem_addr, u32 mem_size)
- 2.9.2. 函数u32 sysmem_write_api(u32 id,u8 *data_buf, u32 len)
- 2.9.3. 函数u32 sysmem_read_api(u32 id ,u8 *data_buf, u32 len)
- 2.9.4. 函数 u32 sysmem_pre_erase_api(void)
- 2.9.5. 函数void nvm_pre_erasure_next(NEW_VM_OBJ *p_nvm, u16 using_next, u16 idle_next)
- 2.10. VM常见问题介绍
- 1. AW30N 升级简要说明
- 2. AW30N 设备升级
- 3. AW30N 测试盒升级
- 4. AW30N 手机ota升级slave
- 5. AW30N 手机usb升级主机
- 1. 外设驱动
- 1.1. GPIO
- 1.2. gptimer
- 1.2.1. gptimer_init
- 1.2.2. gptimer_pwm_init
- 1.2.3. gptimer_capture_init
- 1.2.4. gptimer_deinit
- 1.2.5. gptimer_start
- 1.2.6. gptimer_pause
- 1.2.7. gptimer_rwesume
- 1.2.8. gptimer_set_resolution
- 1.2.9. gptimer_get_resolution
- 1.2.10. gptimer_set_pwm_freq
- 1.2.11. gptimer_get_pwm_freq
- 1.2.12. gptimer_set_pwm_duty
- 1.2.13. gptimer_get_pwm_duty
- 1.2.14. gptimer_pwm_flip
- 1.2.15. gptimer_set_edge_type
- 1.2.16. gptimer_get_edge_type
- 1.2.17. gptimer_set_capture_filter
- 1.2.18. gptimer_get_capture_filter
- 1.2.19. gptimer_get_capture_count
- 1.2.20. gptimer_get_count
- 1.2.21. gptimer_get_prd
- 1.2.22. gptimer_set_irq_callback
- 1.2.23. gptimer_set_work_mode
- 1.2.24. gptimer_get_work_mode
- 1.2.25. timer模式demo
- 1.2.26. pwm模式demo
- 1.2.27. capture模式demo
- 1.3. gpadc
- 1.3.1. adc_init
- 1.3.2. adc_add_sample_ch
- 1.3.3. adc_delete_ch
- 1.3.4. adc_set_sample_period
- 1.3.5. adc_get_value
- 1.3.6. adc_get_voltage
- 1.3.7. adc_get_value_blocking
- 1.3.8. adc_get_voltage_blocking
- 1.3.9. adc_value_to_voltage
- 1.3.10. adc_value_to_voltage_filter
- 1.3.11. adc_io2ch
- 1.3.12. adc_io_ch_set
- 1.3.13. 参考demo
- 1.4. UART
- 1.5. IIC
- 1.6. HW-IIC
- 1.7. SOFT-IIC
- 1.8. USB
- 1.9. mcpwm
- 1.10. SPI
- 1.11. irflt_decoder
- 2. 电源管理
- 3. wdt
- 1. FLASH硬件写保护功能
- 2. 消息与事件
- 3. 按键系统Key
- 4. 低功耗与唤醒
- 5. lvd低电管理
- 6. 虚拟RTC(软件RTC)
- 6.1. 简介
- 6.2. 虚拟RTC配置参数
- 6.3. 虚拟rtc运行功耗
- 6.4. 相关函数介绍
- 6.4.1. 函数void rtc_dev_init(const struct rtc_config_init *rtc)
- 6.4.2. 函数void read_current_time()
- 6.4.3. 函数void write_clock_time(u16 year, u8 month, u8 day, u8 hour, u8 min, u8 sec)
- 6.4.4. 函数void read_alarm_time()
- 6.4.5. 函数void write_alarm_time(u16 year, u8 month, u8 day, u8 hour, u8 min, u8 sec)
- 6.4.6. 函数void set_time_wakeup_soff(u32 clk_sel, u32 sec)
- 6.4.7. 函数void time_wakeup_soff_disable(void)
- 6.4.8. u32 rtc_get_alm_wkup(void)
- 7. Reserved_Area区域说明