app_algo_hsd_sample_for_csk6示例在webusb_render.c文件中修改;app_algo_fd_sample_for_csk6示例则在main.c中修改。修改的参数为:
#define WEBUSB_IMAGE_DOWNSAMPLING (2)
#define WEBUSB_IMAGE_SCALE (1.0f / WEBUSB_IMAGE_DOWNSAMPLING)
其中:
WEBUSB_IMAGE_DOWNSAMPLING为压缩的倍数,目前仅支持设置为2的倍数(2、4、6、8)。
WEBUSB_IMAGE_SCALE表示PC预览图像压缩率,该值为1时代表不压缩,也就是传输原始图像。
当遇到拉取的 SDK 和 sample 编译后烧录到开发板上出现黑屏的情况,或者可通过以下命令尝试重新初始化 SDK 环境:
lisa zep init-app
lisa zep update
更多关于lisa zep update介绍请查看 Lisa 内置命令:lisa zep update
回答
RTC 用于芯片内部时钟模块,一般用于计时/日历/闹钟功能,输出计时最小单元是秒。
目前 RTC 可选时钟源有 3 个:内部RCO,外部24M,外部 32768 晶体,使用不同时钟源存在各自的误差,使用时需提前知晓。
目前 SDK 中使用的是外部 24M。
不同时钟源情况下的精度说明
回答
duomotai_ap/components/app_player/src/app_player.c 文件下的宏 DEFAULT_VOLUME
duomotai_ap/components/app_player/src/app_player.c 文件下的函数 app_player_set_sys_volume()
回答
以 语音交互与识图(duomotai_ap/apps/LLM_pic) 应用为例:
duomotai_ap/apps/LLM_pic/src/app_ui/display_task.c 文件下第 303 行 ui_set_brightness(0); 的参数(传入0是最大亮度,传入100是最小亮度)
duomotai_ap/apps/LLM_pic/src/app_ui/display_brightness.c 文件下的函数 ui_set_brightness() (传入0是最大亮度,传入100是最小亮度)
回答
以 语音交互与识图(duomotai_ap/apps/LLM_pic) 应用为例:
duomotai_ap/apps/LLM_pic/src/app_connect.c 文件下第 277 行语句 wifi_init(NULL,NULL); 的参数填入需要连接的 wifi 名以及密码。


此时,只是把wifi名跟密码保存在
nvs中,如果之前有连接成功过 wifi,会先尝试连接之前保存的 wifi,如果先前保存的wifi是可以连接的,会导致没有连接wifi_init()参数的wifi
duomotai_ap/components\wifi_mgr\wifi_mgr.c 文件下 第 220 行 添加以下代码,用于 wifi_init() 执行过程中清除先前 nvs 保存的wifi信息: wifi_mgr_sta_config_t *saved_infos;
int saved_infos_num = wifi_mgr_storage_search_ap(&saved_infos, SEARCH_ALL, NULL);
for (int i = 0; i < saved_infos_num; i++) {
wifi_mgr_storage_delete_ap(&(saved_infos[i]));
}
k_free(saved_infos);

回答:
在应用示例 duomotai_ap/apps/LLM_pic 中有实现,可使用 process_draw_url() 函数实现该功能。

回答
IR_POW 是摄像头红外功能使能控制引脚,用于控制摄像头的红外补光灯(用于活体检测的人脸识别)。
如果摄像头没有红外功能或者不需要活体检测可以不初始化该引脚。
回答:
排针 PB01 - PB06 没有直连 CSK6 芯片,而是连接单刀双掷模拟开关;
该开关用于控制 CSK6 芯片是连接 TF卡槽,还是连接 蓝牙/WIFI 模块;
而这个开关由 PC01 引脚进行控制,当 PC1 为低电平时,PB01-PB06 的排针是连接 CSK6 芯片的。
操作步骤如下:
prj.conf ,添加以下语句:CONFIG_GPIO=y
CONFIG_CSK6_EXMCU=y
CONFIG_GPIO_CSK6_CH32V003=y
boards/csk6_duomotai_devkit.overlay,添加以下语句:&sdmmc {
status = "disabled";
};
&spi0 {
status = "disabled";
};
main() 函数中,添加如下代码即可:#define EXGPIOC DT_NODELABEL(exgpioc)
LOG_MODULE_REGISTER(sample, LOG_LEVEL_INF);
int main(void)
{
#include <zephyr/drivers/gpio.h>
#include <zephyr/logging/log.h>
int main(void)
{
const struct device *exgpioc = DEVICE_DT_GET(EXGPIOC);
if (!device_is_ready(exgpioc)) {
LOG_ERR("device %s is not ready", exgpioc->name);
}else {
LOG_INF("device %s is ready", exgpioc->name);
int ret = gpio_pin_configure(exgpioc, 1, GPIO_OUTPUT);
if (ret) {
LOG_ERR("exgpioc pin 1 configure failed: %d", ret);
} else {
gpio_pin_set(exgpioc, 1, 0);
LOG_INF("exgpioc pin 1 driven LOW");
}
}
}
以上代码执行之后,PB01-PB06 排针就相当于直连csk6芯片,可以参考 .sdk\csk\samples\driver\ 内的驱动示例初始化需要的外设
值得注意的是,llm_pic 应用示例是基于 WIFI 模块进行大模型交互;
因此可以说该应用示例无法使用 PB01-PB06 排针,而离线 AI 应用可以通过上述步骤配置 PB01-PB06 步骤
llm_pic 应用示例中引脚 PA01 PA00 是空闲的,可以基于这两个引脚使用外设。
支持的,但是在 CSK6 MIX开发板中,CSK6芯片是同时连接 TF卡槽与蓝牙/WIFI 的,通过模拟开关来选择使用哪个部分。
如果需要使用TF卡槽,操作步骤如下:
prj.conf ,添加以下语句:CONFIG_GPIO=y
CONFIG_CSK6_EXMCU=y
CONFIG_GPIO_CSK6_CH32V003=y
boards/csk6_duomotai_devkit.overlay,添加以下语句:&sdmmc {
status = "disabled";
};
&spi0 {
status = "disabled";
};
main() 函数中,添加如下代码即可:#define EXGPIOC DT_NODELABEL(exgpioc)
LOG_MODULE_REGISTER(sample, LOG_LEVEL_INF);
int main(void)
{
#include <zephyr/drivers/gpio.h>
#include <zephyr/logging/log.h>
int main(void)
{
const struct device *exgpioc = DEVICE_DT_GET(EXGPIOC);
if (!device_is_ready(exgpioc)) {
LOG_ERR("device %s is not ready", exgpioc->name);
}else {
LOG_INF("device %s is ready", exgpioc->name);
int ret = gpio_pin_configure(exgpioc, 1, GPIO_OUTPUT);
if (ret) {
LOG_ERR("exgpioc pin 1 configure failed: %d", ret);
} else {
gpio_pin_set(exgpioc, 1, 0);
LOG_INF("exgpioc pin 1 driven LOW");
}
}
}
值得注意的是,llm_pic 应用示例是基于 WIFI 模块进行大模型交互;
因此可以说该应用示例无法使用 TF 卡槽,而离线 AI 应用可以通过上述步骤配置使用 TF 卡槽