打印
[CIU32F003系列]

CIU32F003J5S6的ADC怎么达不到1M的速度?才133k呢?

[复制链接]
358|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
配置主频16M,AHB,APB1分频,ADC时钟为PCLK的1分频,采样3周期,只做1个通道的转换,软件触发,查询等待转换结束,
void system_clock_config(void)
{
    /* 设置Flash读访问等待时间 */
    std_flash_set_latency(FLASH_LATENCY_0CLK);   //16M
    /* 使能RCH */
    std_rcc_rch_enable();
    while(std_rcc_get_rch_ready() != RCC_CSR1_RCHRDY);

    /* 设置系统时钟源为RCH */
    std_rcc_set_sysclk_source(RCC_SYSCLK_SRC_RCHDIV3);    //16M
    while(std_rcc_get_sysclk_source() != RCC_SYSCLK_SRC_STATUS_RCHDIV3);

    /* 设置AHB分频因子 */
    std_rcc_set_ahbdiv(RCC_HCLK_DIV1);
    /* 设置APB分频因子 */
    std_rcc_set_apbdiv(RCC_PCLK_DIV1);
    /* 配置系统时钟全局变量 */
    SystemCoreClock = RCH_VALUE/3;
}

void adc_init(void)
{
    /* 使能ADC时钟 */
    std_rcc_apb2_clk_enable(RCC_PERIPH_CLK_ADC);
      
    /* ADC_CK时钟为PCLK的1分频 */
    std_adc_clock_config(ADC_CK_DIV1);
    /* 软件触发ADC */
    std_adc_trig_sw();

    /* 单次转换模式 */
    std_adc_conversion_mode_config(ADC_SINGLE_CONVER_MODE);
   
    /* 采样时间配置,3个周期*/
    std_adc_sampt_time_config(ADC_SAMPTIME_3CYCLES);
    /* 选择通道0 */
    std_adc_fix_sequence_channel_enable(ADC_CHANNEL_0);
   
    /* 配置wait模式,避免数据未及时读取,转换溢出 */
    std_adc_wait_mode_enable();

    std_adc_internal_channel_vbgr_enable();
    /* 使能ADC */
    std_adc_enable();
   
    /* 等待ADC使能状态稳定 */
    delayus(ADC_EN_DELAY);
}
利用一个IO口指示转换时间,在IO口高电平时间约为7.5us,相当于转换速度133k

    DEBUGIO_HIGH();
    std_adc_fix_sequence_channel_disable(ADC_CHANNEL_VBGR);
    std_adc_fix_sequence_channel_enable(ADC_CHANNEL_0);
    std_adc_start_conversion();
    while(std_adc_get_flag(ADC_FLAG_EOC) == 0U);
    std_adc_clear_flag(ADC_FLAG_EOC);
    adc_buff[adc_counts] = std_adc_get_conversion_value();
    adc_counts++;
    DEBUGIO_LOW();

使用特权

评论回复
沙发
gaolf_2000|  楼主 | 2025-7-1 19:45 | 只看该作者
采样使用3个ad周期,那么整个转换时间也就16个ad周期,在16M主频的情况下,应该是1us才对啊,算上启动命令,查询结束命令,IO口耗费的时间,也达不到如此大吧?有原厂的大神吗?帮忙分析一下是哪里出的问题.

使用特权

评论回复
板凳
gaolf_2000|  楼主 | 2025-7-2 10:02 | 只看该作者
数据手册上关于各个模块的功耗描述太少了,有没有完整些的呢?

使用特权

评论回复
地板
gouguoccc| | 2025-7-3 07:41 | 只看该作者
论坛新版块,和小华MCU什么关系?最大采样速度也才1M?

使用特权

评论回复
5
星空魔法师| | 2025-7-3 12:43 | 只看该作者
看起来你的ADC配置是正确的,但是转换速度没有达到预期。可能是由于采样时间设置过长或者时钟配置的问题。你可以尝试减少采样时间或者检查时钟配置是否正确。

使用特权

评论回复
6
复古留声机| | 2025-7-3 18:26 | 只看该作者
看起来你的ADC配置是正确的,但是速度没有达到预期。可能需要检查一下你的PCLK频率是否正确设置,或者是否有其他外围因素影响了ADC的速度。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

31

帖子

0

粉丝