打印
[STM8]

STM8S005K6,电源ADC检测

[复制链接]
3028|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
457878|  楼主 | 2014-4-24 16:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 457878 于 2014-4-26 14:14 编辑

ADC1对AN7采样,原003的代码到005就不能用了,怎么回事呢?

对AN7采样结果为1023,满了,改成对AN10, AN11, AN15采样都试过,ADC采样值很低,30多点!


{   CLK_PCKENR2 = 0x08;
    ADC_CR1 = 0x70;//Set Fadc=Fclk/18
        ADC_CR2 = 0x08;//Rigth mode
        ADC_CR3 = 0x00;//Buff使能,禁止
        ADC_CSR = 0x2F;//AN15 = 1.22V 反推,电源参考(Vref) = 1.22*1024/ADC
        ADC_CR1_ADON = 1;
}

沙发
457878|  楼主 | 2014-4-24 19:01 | 只看该作者
本帖最后由 457878 于 2014-4-24 19:07 编辑

官网搜索资料也找不到, mmuuss586 的【官方例程】改过来的也不行,通道7的ADC值是 1023, 10通道,15通道ADC值是70多?

WORD ADC_GetConversionValue(void)
{   WORD temph = 0;
    BYTE templ = 0;
    if ((ADC_CR2 & 0x08) != 0) /* Right alignment */
    {   templ = ADC_DRL;/* Read LSB first */
        temph = ADC_DRH;/* Then read MSB */
        temph = (WORD)(templ | (WORD)(temph << (BYTE)8));
    }
    return ((WORD)temph);
}


#define ADC_CH      0x0F

WORD GetADC(void)
{
        WORD ADConversion_Value;
    ADC_CR2 &= (BYTE)(~0x08);
    ADC_CR2 |= (BYTE)(0x08);
         ADC_CR1 |= 0x02;
    ADC_CSR &= (BYTE)(~0x0F);
    ADC_CSR |= (BYTE)(ADC_CH);    //channel
   
    ADC_CR1 &= (BYTE)(~0x70);
    ADC_CR1 |= (BYTE)(0x70);

   
    ADC_CR2 &= (BYTE)(~0x30);
    ADC_CR2 &= (BYTE)(~0x40);
    ADC_CR2 |= (BYTE)(0x00);

#if (ADC_CH >8)
    ADC_TDRL |= (BYTE)((BYTE)0x01 << (BYTE)ADC_CH);                                                //0x07
#else
        ADC_TDRH |= (BYTE)((BYTE)0x01 << ((BYTE)ADC_CH - (BYTE)8));                //0x0F
#endif   
    ADC_CR1 |= 0x01;
    ADConversion_Value = ADC_GetConversionValue();
    return ADConversion_Value;            
}

使用特权

评论回复
板凳
mmuuss586| | 2014-4-24 20:51 | 只看该作者
VDDA和VREF接的多少V

使用特权

评论回复
地板
457878|  楼主 | 2014-4-25 10:21 | 只看该作者
本帖最后由 457878 于 2014-4-25 10:24 编辑
mmuuss586 发表于 2014-4-24 20:51
VDDA和VREF接的多少V

QFP32封装的:
VDDA = VDD = Vref+ = 3.3V
VSSA = GND = Vref- =  0V

原来003的AN7有个1.22V的参考电压,估计005是没有了,AN7估计在IC内部连到了VDDA...

实测 7,8,9通道ADC值都是1023,估计都连到了VDDA!

使用特权

评论回复
5
mmuuss586| | 2014-4-25 10:37 | 只看该作者
457878 发表于 2014-4-25 10:21
QFP32封装的:
VDDA = VDD = Vref+ = 3.3V
VSSA = GND = Vref- =  0V

7,8,9通道接的啥啊?
图发上来看看。
你程序没看出啥问题。
主要就:
通道切换,和对齐方式

使用特权

评论回复
6
457878|  楼主 | 2014-4-26 09:25 | 只看该作者
mmuuss586 发表于 2014-4-25 10:37
7,8,9通道接的啥啊?
图发上来看看。
你程序没看出啥问题。

有图,不过你不会想看的:)
7,8,9是005的内部通道,没有引出来,左对齐,右对齐,以及从7开始的所有通道都测了... 7,8,9是1023,12通道是0,其它是一个很低的值...

使用特权

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

本版积分规则

个人签名:不正常人类

269

主题

883

帖子

3

粉丝