[技术问题解答] 飞思卡尔ADC配置

[复制链接]
3556|15
 楼主| jpxuchao 发表于 2015-12-9 12:57 | 显示全部楼层 |阅读模式
有哪位大神知道飞思卡尔K02单片机ADC差分引脚怎么配置啊?求指导,谢谢!!!

打赏榜单

21ic小管家 打赏了 2.00 元 2015-12-10

FSL_TICS_Jeremy 发表于 2015-12-10 09:19 | 显示全部楼层
jpxuchao 发表于 2015-12-10 08:51
还有问题,我配置了一下代码,它不能进中断,我不知道什么原因,能不能帮我看一下:
int main(void)
{

请参考此经验分享
https://bbs.21ic.com/icview-621009-1-1.html
FSL_TICS_Jeremy 发表于 2015-12-9 13:57 | 显示全部楼层
关于查分引脚配置,首先建议楼主先浏览一下第三章中关于ADC channel assignment方面的内容如下图所示,
这样你可以根据参考手册中给出的MCU 引脚框图,找到需要配置的引脚,然后在初始化时,将引脚工作于特定的复用功能即可(如图所示)
2015-12-09_13-51-09.jpg

2015-12-09_13-56-56.jpg


 楼主| jpxuchao 发表于 2015-12-9 15:16 | 显示全部楼层
FSL_TICS_Jeremy 发表于 2015-12-9 13:57
关于查分引脚配置,首先建议楼主先浏览一下第三章中关于ADC channel assignment方面的内容如下图所示,
这 ...

我想配置PTE18和PTE19脚,我的配置代码是这样的,麻烦帮我看看对不对:
        SIM_SCGC6 |=SIM_SCGC6_ADC0_MASK;
        SIM_SOPT7 |=SIM_SOPT7_ADC0TRGSEL(4);
        SIM->SOPT7 &= ~SIM_SOPT7_ADC0PRETRGSEL_MASK;
        SIM_SCGC4 |=SIM_SCGC4_VREF_MASK;
        SIM_SCGC5  |= SIM_SCGC5_PORTE_MASK;
        PORTE_PCR18 |= PORT_PCR_MUX(0); //ALT0:ADC0_DP2
        PORTE_PCR19 |= PORT_PCR_MUX(0); //ALT0:ADC0_DM2

我是用PIT0触发的
舒斯特尔 发表于 2015-12-9 20:10 | 显示全部楼层
jpxuchao 发表于 2015-12-9 15:16
我想配置PTE18和PTE19脚,我的配置代码是这样的,麻烦帮我看看对不对:
        SIM_SCGC6 |=SIM_SCGC6_ADC0_MAS ...

还能用别的来触发吗
FSL_TICS_Jeremy 发表于 2015-12-10 08:37 | 显示全部楼层
jpxuchao 发表于 2015-12-9 15:16
我想配置PTE18和PTE19脚,我的配置代码是这样的,麻烦帮我看看对不对:
        SIM_SCGC6 |=SIM_SCGC6_ADC0_MAS ...

SIM_SOPT7[ADC0ALTTRGEN]需要设置为零,不然只能选择PDB触发

评分

参与人数 1威望 +2 收起 理由
jpxuchao + 2 赞一个!

查看全部评分

FSL_TICS_Jeremy 发表于 2015-12-10 08:38 | 显示全部楼层
舒斯特尔 发表于 2015-12-9 20:10
还能用别的来触发吗

当然可以啊,FTM,LPTMR都是可以的
FSL_TICS_Jeremy 发表于 2015-12-10 08:39 | 显示全部楼层
楼主如果还有问题,欢迎继续交流。
如果问题解决了,还请帮我们及时结贴。
 楼主| jpxuchao 发表于 2015-12-10 08:51 | 显示全部楼层
FSL_TICS_Jeremy 发表于 2015-12-10 08:39
楼主如果还有问题,欢迎继续交流。
如果问题解决了,还请帮我们及时结贴。 ...

还有问题,我配置了一下代码,它不能进中断,我不知道什么原因,能不能帮我看一下:
int main(void)
{
       
        sysinit();

        SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK;
        PORTB_PCR1 |= (1 << 8);
        PTB->PDDR |= (1 << 1);

        SIM_SCGC6 |=SIM_SCGC6_ADC0_MASK;
        SIM_SOPT7 |=SIM_SOPT7_ADC0TRGSEL(4)|SIM_SOPT7_ADC0PRETRGSEL_MASK;
        SIM->SOPT7 &= ~SIM_SOPT7_ADC0ALTTRGEN_MASK;
        SIM_SCGC4 |=SIM_SCGC4_VREF_MASK;
        SIM_SCGC5  |= SIM_SCGC5_PORTE_MASK;
        PORTE_PCR18 |= PORT_PCR_MUX(0); //ALT0:ADC0_DP2
        PORTE_PCR19 |= PORT_PCR_MUX(0); //ALT0:ADC0_DM2


        ADC0_SC1A=0x00;
  ADC0_SC1A |= ADC_SC1_DIFF_MASK|ADC_SC1_ADCH(2);
        ADC0_CFG1 |= ADC_CFG1_ADICLK(0)|ADC_CFG1_MODE(3)|ADC_CFG1_ADIV(3);
  ADC0_CFG2 |=0x00000000;//Õý³£¹¤×÷ģʽ
        ADC0_SC2 =ADC_SC2_ADTRG_MASK;
        ADC0_SC3 |=ADC_SC3_ADCO_MASK  
                 |ADC_SC3_AVGE_MASK  
                 |ADC_SC3_AVGS(3);

        while(1)
        {
          if((ADC0_SC1A&0x00000080)==0x00000080)
                {
                                        ADCshuchu=ADC0_RA;
                                        ADC0_SC1A &= ~ADC_SC1_COCO_MASK;
                }
        }
}
 楼主| jpxuchao 发表于 2015-12-10 09:29 | 显示全部楼层
FSL_TICS_Jeremy 发表于 2015-12-10 09:19
请参考此经验分享
https://bbs.21ic.com/icview-621009-1-1.html

谢谢,它使用PDB触发adc,我想直接用pit0软件触发,这个可以实现吗?
FSL_TICS_Jeremy 发表于 2015-12-10 09:33 | 显示全部楼层
jpxuchao 发表于 2015-12-10 09:29
谢谢,它使用PDB触发adc,我想直接用pit0软件触发,这个可以实现吗?

原理都是一样的,可以实现
 楼主| jpxuchao 发表于 2015-12-10 09:59 | 显示全部楼层
FSL_TICS_Jeremy 发表于 2015-12-10 09:33
原理都是一样的,可以实现

好吧,我再试试吧,我想问K02的单片机adc能采电压最大是多少,是基于电压基准的多少吗
FSL_TICS_Jeremy 发表于 2015-12-10 10:49 | 显示全部楼层
jpxuchao 发表于 2015-12-10 09:59
好吧,我再试试吧,我想问K02的单片机adc能采电压最大是多少,是基于电压基准的多少吗
...

根据参考电压不同会有不同
 楼主| jpxuchao 发表于 2015-12-10 10:58 | 显示全部楼层
FSL_TICS_Jeremy 发表于 2015-12-10 10:49
根据参考电压不同会有不同

好吧,谢谢了
21ic小管家 发表于 2015-12-10 17:12 | 显示全部楼层
此打赏为十大热门打赏哦~详情请戳:https://bbs.21ic.com/icview-1219832-1-1.html
李香兰 发表于 2015-12-10 20:36 | 显示全部楼层
这个adc属于16位还是12位的啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

53

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部