309|5

1689

帖子

2

资源

纯净的硅(高级)

平头哥RVB2601板子-ADC采集与CSI [复制链接]

依据有限的资料知道CH2601的内部是有ADC的。但是引脚通过“ARDUINO”接口引出来的。

image.png CH2601的adc驱动是在YOC开发包中提供的既CSI接口,CSI 是针对嵌入式系统,定义了CPU内核移植 接口、外围设备操作接口统一软件接口规范,消除不同芯片的差异,简化软件的使用及提高软件的移植性。通过CSI 接口规范,可以快速实现芯片对接到YoC 平台。CSI有CSI1和CSI2两种,CSI2的功能较CSI1的代码密度要高,CSI2的抽象要好一些。

CH2601的ADC可提供“支持单次转换、连续转换”本次测试为单次采集测试。代码根据yoc的例程。

程序的主要步骤如下:

1、打开引脚的功能 csi_pin_set_mux(EXAMPLE_ADC_CHANNEL0_PIN,  EXAMPLE_ADC_CHANNEL0_PIN_FUNC);

2、ADC初始化,ret = csi_adc_init(&adc, 0);

3、设置ADC的工作采样频率ret = csi_adc_freq_div(&adc, 128);

4、设置采样周期,ret = csi_adc_sampling_time(&adc, 2);

5、使能ADC通道, ret = csi_adc_channel_enable(&adc, 0, true);

6、开始采样, ret = csi_adc_start(&adc);

7、读取采样数据,data = csi_adc_read(&adc);

6,7的步骤可以反复的进行。完整的程序如下:

#include <drv/adc.h>
#include <drv/tick.h>
#include <board_config.h>
//#include <board_init.h>
#define ADC_CHECK_RETURN(ret)            \
do {                                     \
    if (ret != CSI_OK) {                 \
        return -1;                       \
    }                                    \
} while(0);


static csi_adc_t adc;

int main(void)
{
	int      ret;
    uint32_t data;
	board_yoc_init();
	
	csi_pin_set_mux(EXAMPLE_ADC_CHANNEL0_PIN,  EXAMPLE_ADC_CHANNEL0_PIN_FUNC);
	ret = csi_adc_init(&adc, 0);
    ADC_CHECK_RETURN(ret);
	
	ret = csi_adc_freq_div(&adc, 128);
    if(ret == 0){
        return -1;
    }
	
	/* Configure sampling time */
    ret = csi_adc_sampling_time(&adc, 2);
    ADC_CHECK_RETURN(ret);

    /* Enable channel */
    ret = csi_adc_channel_enable(&adc, 0, true);
    ADC_CHECK_RETURN(ret);

    /* Trigger new conversion */
    ret = csi_adc_start(&adc);
    ADC_CHECK_RETURN(ret);

    /* Read result */
    data = csi_adc_read(&adc);
    printf("get adc result: %d\n", data);
	
	/* Uninit adc */
    csi_adc_uninit(&adc);
		
    LOGD(TAG, "%s\n", aos_get_app_version());
    oled_init();
    while (1) {
        LOGD(TAG, "Hello world! YoC");
        aos_msleep(1000);
    }

    return 0;
}

 csi_adc_uninit(&adc);这一步是可以选的,本次测试结果:

image.png  


回复

1838

帖子

3

资源

版主

我以为CSI摄像头接口呢!


回复

4498

帖子

1

资源

五彩晶圆(初级)

csi是个什么缩写?

点评

只需要根据芯片驱动接口层(CSI)的定义,CHIP SERVIC INTFACE  详情 回复 发表于 2021-9-8 12:44
个人签名

默认摸鱼


回复

1689

帖子

2

资源

纯净的硅(高级)

freebsder 发表于 2021-9-8 00:11 csi是个什么缩写?

只需要根据芯片驱动接口层(CSI)的定义,CHIP SERVIC INTFACE

点评

卧槽,瞎弄这种大多数人认可的缩写,让人费解。  详情 回复 发表于 2021-9-8 22:11

回复

22

帖子

0

资源

一粒金砂(中级)

  惊喜的发现我代理的ES7210+ES8156。哈哈!


回复

4498

帖子

1

资源

五彩晶圆(初级)

bigbat 发表于 2021-9-8 12:44 只需要根据芯片驱动接口层(CSI)的定义,CHIP SERVIC INTFACE

卧槽,瞎弄这种大多数人认可的缩写,让人费解。

个人签名

默认摸鱼


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表