• 杰理AC632蓝牙芯片ADC


    蓝牙芯片有2种ADC,一种是普通多通道10bit ADC,一种是音频mic单通道16bit LADC。

    普通ADC => 无DMA,单次采样单通道,带校准带参考电压,ADC采样值可以换算成绝对电压值。
    
    音频LADC => 支持DMA连续采样,无参考电压,一般用作交流变化量的采样使用。
    
    • 1
    • 2
    • 3

    普通ADC外设说明:

    量程电压 => 强VDDIO的电压值,满值ADC值:0x3FFL对应芯片的VDDIO电压值。 强VDDIO设置为VDDIOM_VOL_32V,即3.2V,那能测量的范围就是0V-3.2V。 强VDDIO设置为VDDIOM_VOL_30V,即3.0V,那能测量的范围就是0V-3.0V。
    参考电压 => LDOREF电压,芯片内部的固定幅值参考电压。(生产会存在一定的离散)
    校准值 => 芯片出产校准值,get_vbg_trim(),校准芯片LDOREF电压的偏差值。
    
    • 1
    • 2
    • 3

    ADC通道说明:

    芯片内部通道 => 芯片内部某些外设或结构电路,会预留有ADC通道,连接到ADC外设,用于芯片内部模块的自校准。
    外部通道GPIO引脚 => 引脚是否具有ADC功能,是固定的,软件无法映射的。设计板子注意引脚功能。
    
    • 1
    • 2

    SDK有专门的接口文件 adc_api.c 和adc_api.h。
    adc的使用方式,SDK预留了2种方式:

    注册定时采样 => u32 adc_add_sample_ch(u32 ch); 在定时器中断函数里,定时轮询所有的注册通道。注册的通道越多,轮询的时间越长。 usr_timer_add(NULL, adc_scan, 10, 0); 此语句即每10ms切换下一个通道采样。
    独占式立即采样 => adc_enter_occupy_mode(); adc_occupy_run(); adc_exit_occupy_mode(); 立即采样需要打断定时轮询的操作。立即采样当前设置的通道。 一般用于采样频率高,电压变化快,采样时刻短的场景。
    
    • 1
    • 2
    1. 注册定时采样
    //以下初始化代码添加到void adc_init()里
    u32 gpio = IO_PORTA_01;//指定IO,要和ADC通道对应上
    gpio_set_pull_down(gpio, 0);//看需求是否需要开内部下拉,会有20%的误差,不同芯片理论电阻值不一样,看规格书说明
    gpio_set_pull_up(gpio, 0);//看需求是否需要开内部上拉,会有20%的误差,不同芯片理论电阻值不一样,看规格书说明
    gpio_set_die(gpio, 0);//模拟态
    gpio_set_dieh(port, 0);//模拟态
    gpio_set_direction(gpio, 1);//输入态
    u32 ch = AD_CH_PA1; ///指定ADC通道,要和GPIO对应上
    adc_add_sample_ch(ch);//添加检测通道
    #define CH_SAMPLE_FREQ    1000 //ms
    adc_set_sample_freq(ch, CH_SAMPLE_FREQ);
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    Android 修复在 Settings 首页,按键盘方向键逐个单选
    【数据库原理及应用】——SQL概述及数据定义(学习笔记)
    python处理保存富文本内容到数据库中报语法错误的问题
    HTML静态网页成品作业(HTML+CSS)——原神介绍设计制作(4个页面)
    Java项目:SSM失物招领网站信息管理系统
    Jmeter压测——BlazeMeter录制脚本+Jmeter进行测试
    完美掌握MySQL登录方法]MySQL登录教程
    无代码开发平台数据ID入门教程
    Kubernetes(k8s)安装NFS动态供给存储类并安装KubeSphere
    DLP投影仪工作原理
  • 原文地址:https://blog.csdn.net/ydgd118/article/details/128188758