发帖
5 0 0

PB03F如何使用P18的ADC功能啊

xmcxsta
注册会员

1

主题

3

回帖

70

积分

注册会员

积分
70
PB&TG系列 100 5 3 天前
SDK好奇怪啊,P18是差分输入,但是把P18屏蔽了,怎么用啊,example ADC里也说了differential_mode is rarely used,
    if use please config channel as one of [ADC_CH3DIFF,ADC_CH2DIFF,ADC_CH1DIFF],
    and is_high_resolution as one of [0x80,0x20,0x08],
    then the pair of [P20~P15,P14~P13,P12~P11] will work.
    other adc channel cannot work(没有说P18怎么用)
──── 0人觉得很赞 ────

使用道具 举报

3 天前


typedef enum
{
    ADC_CH0DIFF = 1,/*p18(positive),p25(negative),only works in diff*/
    ADC_CH0 = 2,ADC_CH1N_P11 = 2,
    ADC_CH1 = 3,ADC_CH1P_P23 = 3,ADC_CH1DIFF = 3,/*P23 and P11*/
    ADC_CH2 = 4,ADC_CH2N_P24 = 4,
    ADC_CH3 = 5,ADC_CH2P_P14 = 5,ADC_CH2DIFF = 5,/*P14 and P24*/
    ADC_CH4 = 6,ADC_CH3N_P15 = 6,
    ADC_CH9 = 7,ADC_CH3P_P20 = 7,ADC_CH3DIFF = 7,/*P20 and P15*/
    ADC_CH_VOICE = 8,
    ADC_CH_NUM =9,
} adc_CH_t;
int hal_adc_compare_enable(adc_CH_t ch,uint32_t flag,uint32_t th_high,uint32_t th_low)
{
    int i=0;

    if((ch >= ADC_CH1N_P11) && (ch <=ADC_CH3P_P20))// 差分配置相关的都是把P18屏蔽了,啥意思
    {}
3 天前


if(cfg.is_differential_mode != 0)
    {
        if((cfg.is_differential_mode != 0x80) && (cfg.is_differential_mode != 0x20) && (cfg.is_differential_mode != 0x08))
        {
            return PPlus_ERR_INVALID_PARAM;///和下面自相矛盾啊
        }
    }
switch(cfg.is_differential_mode)
        {
        case 0x80:
            pin = P20;
            pin_neg = P15;
            chn_sel = 0x04;
            evt_index = 7;
            break;

        case 0x20:
            pin = P14;
            pin_neg = P24;
            chn_sel = 0x03;
            evt_index = 5;
            break;

        case 0x08:
            pin = P23;
            pin_neg = P11;
            chn_sel = 0x02;
            evt_index = 3;
            break;

        case 0x02:
            pin = P18;
            pin_neg = P25;
            chn_sel = 0x01;
            evt_index = 1;
            *(volatile int*)(0x4000F020) = 0x0060;
            break;
今天我们的蓝牙技术外出了,需要等他回来了才能回复。
xmcxsta 发表于 2025-5-27 15:05
if(cfg.is_differential_mode != 0)
    {
        if((cfg.is_differential_mode != 0x80) && (cfg.is_ ...

目前此芯片P18的差分功能无法使用,此模块没有P25引脚,无法实现P18的差分功能,SDK例子提供的是单端模式的例程。
前天 13:44
Ai-Thinker-wu 发表于 2025-5-28 08:49
目前此芯片P18的差分功能无法使用,此模块没有P25引脚,无法实现P18的差分功能,SDK例子提供的是单端模式 ...

PB03F规格书写着P18  GPIO18/ADC input 7/PGA negative input;赶紧修改了,我就去看规格书分配管脚的
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28844 个
  • 话题数: 41304 篇