Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
RT-Thread
rt-thread
提交
3e65ce5d
R
rt-thread
项目概览
RT-Thread
/
rt-thread
9 个月 前同步成功
通知
752
Star
8909
Fork
4735
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
3e65ce5d
编写于
5月 13, 2021
作者:
G
greedyhao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[bluetrum] add fmrx support
上级
74f6a0ba
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
85 addition
and
21 deletion
+85
-21
bsp/bluetrum/ab32vg1-ab-prougen/.config
bsp/bluetrum/ab32vg1-ab-prougen/.config
+16
-1
bsp/bluetrum/ab32vg1-ab-prougen/README.md
bsp/bluetrum/ab32vg1-ab-prougen/README.md
+1
-1
bsp/bluetrum/ab32vg1-ab-prougen/board/ports/audio/drv_sound.c
...bluetrum/ab32vg1-ab-prougen/board/ports/audio/drv_sound.c
+20
-18
bsp/bluetrum/ab32vg1-ab-prougen/rtconfig.h
bsp/bluetrum/ab32vg1-ab-prougen/rtconfig.h
+5
-1
bsp/bluetrum/libraries/hal_libraries/ab32vg1_hal/include/api_fmrx.h
...um/libraries/hal_libraries/ab32vg1_hal/include/api_fmrx.h
+43
-0
未找到文件。
bsp/bluetrum/ab32vg1-ab-prougen/.config
浏览文件 @
3e65ce5d
...
...
@@ -74,7 +74,7 @@ CONFIG_RT_USING_DEVICE_OPS=y
CONFIG_RT_USING_CONSOLE
=
y
CONFIG_RT_CONSOLEBUF_SIZE
=
128
CONFIG_RT_CONSOLE_DEVICE_NAME
=
"uart0"
CONFIG_RT_VER_NUM
=
0
x4000
3
CONFIG_RT_VER_NUM
=
0
x4000
4
# CONFIG_RT_USING_CPU_FFS is not set
# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
...
...
@@ -160,6 +160,7 @@ CONFIG_RT_USING_PIN=y
CONFIG_RT_USING_LIBC
=
y
# CONFIG_RT_USING_PTHREADS is not set
# CONFIG_RT_USING_MODULE is not set
CONFIG_RT_LIBC_FIXED_TIMEZONE
=
8
#
# Network
...
...
@@ -197,6 +198,11 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_RT_USING_ULOG is not set
# CONFIG_RT_USING_UTEST is not set
#
# RT-Thread Utestcases
#
# CONFIG_RT_USING_UTESTCASES is not set
#
# RT-Thread online packages
#
...
...
@@ -309,9 +315,11 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_STEMWIN is not set
# CONFIG_PKG_USING_WAVPLAYER is not set
# CONFIG_PKG_USING_TJPGD is not set
# CONFIG_PKG_USING_PDFGEN is not set
# CONFIG_PKG_USING_HELIX is not set
# CONFIG_PKG_USING_AZUREGUIX is not set
# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
# CONFIG_PKG_USING_NUEMWIN is not set
#
# tools packages
...
...
@@ -349,6 +357,10 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_ANV_TESTSUIT is not set
# CONFIG_PKG_USING_ANV_BENCH is not set
# CONFIG_PKG_USING_DEVMEM is not set
# CONFIG_PKG_USING_REGEX is not set
# CONFIG_PKG_USING_MEM_SANDBOX is not set
# CONFIG_PKG_USING_SOLAR_TERMS is not set
# CONFIG_PKG_USING_GAN_ZHI is not set
#
# system packages
...
...
@@ -396,6 +408,7 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_QFPLIB_M3 is not set
# CONFIG_PKG_USING_LPM is not set
# CONFIG_PKG_USING_TLSF is not set
# CONFIG_PKG_USING_EVENT_RECORDER is not set
#
# peripheral libraries and drivers
...
...
@@ -463,6 +476,7 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_LIBNFC is not set
# CONFIG_PKG_USING_MFOC is not set
# CONFIG_PKG_USING_TMC51XX is not set
# CONFIG_PKG_USING_TCA9534 is not set
#
# AI packages
...
...
@@ -490,6 +504,7 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
# CONFIG_PKG_USING_CANFESTIVAL is not set
# CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_MINIZIP is not set
# CONFIG_PKG_USING_DSTR is not set
# CONFIG_PKG_USING_TINYFRAME is not set
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
...
...
bsp/bluetrum/ab32vg1-ab-prougen/README.md
浏览文件 @
3e65ce5d
...
...
@@ -48,7 +48,7 @@ ab32vg1-prougen 是 中科蓝讯(Bluetrum) 推出的一款基于 RISC-V 内核
| FLASH | 即将支持 | 对接 FAL |
| TIMER | 支持 | |
| PWM | 支持 | LPWM 的 G1 G2 G3 之间是互斥的,只能三选一 |
| FM receive |
即将支持
| |
| FM receive |
支持
| |
| USB Device | 暂不支持 | |
| USB Host | 暂不支持 | |
...
...
bsp/bluetrum/ab32vg1-ab-prougen/board/ports/audio/drv_sound.c
浏览文件 @
3e65ce5d
...
...
@@ -13,8 +13,9 @@
#define DBG_LVL DBG_INFO
#include <rtdbg.h>
#define SAI_AUDIO_FREQUENCY_44K ((uint32_t)44100u)
#define SAI_AUDIO_FREQUENCY_48K ((uint32_t)48000u)
#define SAI_AUDIO_FREQUENCY_44K ((uint32_t)44100u)
#define SAI_AUDIO_FREQUENCY_38K ((uint32_t)38000u)
#define TX_FIFO_SIZE (1024)
struct
sound_device
...
...
@@ -22,10 +23,11 @@ struct sound_device
struct
rt_audio_device
audio
;
struct
rt_audio_configure
replay_config
;
rt_sem_t
semaphore
;
rt_thread_t
thread
;
rt_thread_t
thread
;
rt_uint8_t
*
tx_fifo
;
rt_uint8_t
*
rx_fifo
;
rt_uint8_t
volume
;
rt_uint8_t
dma_to_aubuf
;
};
static
struct
sound_device
snd_dev
=
{
0
};
...
...
@@ -120,16 +122,15 @@ void audio_sem_pend(void)
void
saia_frequency_set
(
uint32_t
frequency
)
{
DACDIGCON0
&=
~
(
0xf
<<
2
);
if
(
frequency
==
SAI_AUDIO_FREQUENCY_48K
)
{
DACDIGCON0
|=
BIT
(
1
);
DACDIGCON0
&=
~
(
0xf
<<
2
);
DACDIGCON0
|=
BIT
(
6
);
DACDIGCON0
|=
(
0
<<
2
);
}
else
if
(
frequency
==
SAI_AUDIO_FREQUENCY_44K
)
{
DACDIGCON0
&=
~
BIT
(
1
);
DACDIGCON0
&=
~
(
0xf
<<
2
);
DACDIGCON0
|=
BIT
(
1
);
DACDIGCON0
|=
BIT
(
6
);
DACDIGCON0
|=
(
1
<<
2
);
}
else
if
(
frequency
==
SAI_AUDIO_FREQUENCY_38K
)
{
DACDIGCON0
|=
(
2
<<
2
);
}
DACDIGCON0
|=
BIT
(
6
);
}
void
saia_channels_set
(
uint8_t
channels
)
...
...
@@ -271,6 +272,10 @@ static rt_err_t sound_configure(struct rt_audio_device *audio, struct rt_audio_c
break
;
}
case
AUDIO_MIXER_EXTEND
:
snd_dev
->
dma_to_aubuf
=
caps
->
udata
.
value
;
break
;
default:
result
=
-
RT_ERROR
;
break
;
...
...
@@ -349,6 +354,7 @@ static rt_err_t sound_init(struct rt_audio_device *audio)
/* set default params */
saia_frequency_set
(
snd_dev
->
replay_config
.
samplerate
);
saia_channels_set
(
snd_dev
->
replay_config
.
channels
);
saia_volume_set
(
snd_dev
->
volume
);
return
RT_EOK
;
}
...
...
@@ -368,9 +374,7 @@ static rt_err_t sound_start(struct rt_audio_device *audio, int stream)
AUBUFSIZE
|=
(
TX_FIFO_SIZE
/
8
)
<<
16
;
AUBUFSTARTADDR
=
DMA_ADR
(
snd_dev
->
rx_fifo
);
DACDIGCON0
=
BIT
(
0
)
|
BIT
(
10
);
// (0x01<<2)
DACVOLCON
=
0x7fff
;
// -60DB
DACVOLCON
|=
BIT
(
20
);
DACDIGCON0
|=
BIT
(
0
)
|
BIT
(
10
);
// (0x01<<2)
AUBUFCON
|=
BIT
(
1
);
}
...
...
@@ -380,13 +384,11 @@ static rt_err_t sound_start(struct rt_audio_device *audio, int stream)
static
rt_err_t
sound_stop
(
struct
rt_audio_device
*
audio
,
int
stream
)
{
struct
sound_device
*
snd_dev
=
RT_NULL
;
RT_ASSERT
(
audio
!=
RT_NULL
);
snd_dev
=
(
struct
sound_device
*
)
audio
->
parent
.
user_data
;
if
(
stream
==
AUDIO_STREAM_REPLAY
)
{
DACDIGCON0
=
0
;
AUBUFCON
&=
~
BIT
(
4
);
LOG_D
(
"close sound device"
);
}
...
...
@@ -463,7 +465,7 @@ static void audio_thread_entry(void *parameter)
{
while
(
1
)
{
if
(
snd_dev
.
audio
.
replay
->
activated
==
RT_TRUE
)
{
if
(
(
snd_dev
.
dma_to_aubuf
==
RT_FALSE
)
&&
(
snd_dev
.
audio
.
replay
->
activated
==
RT_TRUE
)
)
{
rt_audio_tx_complete
(
&
snd_dev
.
audio
);
}
else
{
rt_thread_mdelay
(
50
);
...
...
@@ -506,7 +508,7 @@ static int rt_hw_sound_init(void)
RT_NULL
,
1024
,
20
,
// must equal or lower than tshell priority
5
1
);
if
(
snd_dev
.
thread
!=
RT_NULL
)
...
...
@@ -516,7 +518,7 @@ static int rt_hw_sound_init(void)
/* init default configuration */
{
snd_dev
.
replay_config
.
samplerate
=
48000
;
snd_dev
.
replay_config
.
samplerate
=
SAI_AUDIO_FREQUENCY_48K
;
snd_dev
.
replay_config
.
channels
=
2
;
snd_dev
.
replay_config
.
samplebits
=
16
;
snd_dev
.
volume
=
55
;
...
...
bsp/bluetrum/ab32vg1-ab-prougen/rtconfig.h
浏览文件 @
3e65ce5d
...
...
@@ -46,7 +46,7 @@
#define RT_USING_CONSOLE
#define RT_CONSOLEBUF_SIZE 128
#define RT_CONSOLE_DEVICE_NAME "uart0"
#define RT_VER_NUM 0x4000
3
#define RT_VER_NUM 0x4000
4
/* RT-Thread Components */
...
...
@@ -90,6 +90,7 @@
/* POSIX layer and C standard library */
#define RT_USING_LIBC
#define RT_LIBC_FIXED_TIMEZONE 8
/* Network */
...
...
@@ -111,6 +112,9 @@
/* Utilities */
/* RT-Thread Utestcases */
/* RT-Thread online packages */
/* IoT - internet of things */
...
...
bsp/bluetrum/libraries/hal_libraries/ab32vg1_hal/include/api_fmrx.h
0 → 100644
浏览文件 @
3e65ce5d
#ifndef FMRX_H__
#define FMRX_H__
/**
* @brief Synchronize between FMRX and DAC
*
* @param buf_size Size of audio buffer.
*/
void
fmrx_dac_sync
(
uint32_t
buf_size
);
/**
* @brief FMRX power on.
*
* @param val Make it zero now.
*/
void
fmrx_power_on
(
uint32_t
val
);
/**
* @brief FMRX power off.
*
*/
void
fmrx_power_off
(
void
);
/**
* @brief FMRX digital start.
*
*/
void
fmrx_digital_start
(
void
);
/**
* @brief FMRX digital stop.
*
*/
void
fmrx_digital_stop
(
void
);
/**
* @brief FMRX dma to aubuf enable.
*
* @param enable RT_TRUE or RT_FALSE.
*/
void
fmrx_dma_to_aubuf
(
uint8_t
enable
);
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录