garfield

【原创】【应求】飞思卡尔dsc的ad转换模块初始化

0
阅读(2472)

    昨天有个朋友问我怎么使用pe来初始化飞思卡尔dsc的ad模块,其实使用pe来做初始化是比较简单的,这省去了我们大量的查寄存器和写代码的时间,但是这并不代表这编程者可以对芯片一无所知。要想正确使用一个模块还是要对这个模块的结构和寄存器有一个大体的了解,这样才能正确地配置、使用这个模块。

     啰嗦完了,进入正题,先来看飞思卡尔dsc的ad模块的简单介绍和结构介绍。

     结构图,从数据手册上截下来的,从结构图上看,一个ad模块有一个参考输入,有两组共八路模拟量输入,有两个12位转换器。

image

      该ad模块有如下特点:

1.12位分辨率

2.最大ADC时钟频率为5.33MHz(1/6系统时钟)

3.最高采样频率可达1.78msps

4.单次转换时间为8.5个ADC时钟

5.附加采样时间为6个ADC时钟

6.同步模式下26.5个ADC时钟周期即可完成八路输入量的一次采样

7.ADC的转换可以受PWM或者TMR模块同步控制

8.可以完成两路输入的同步采样

9.可以存储多达八次测量

10.内部的多路复用器可以从八路输入中选择两路

11.可以实现差分输入测量或者单端输入测量

寄存器介绍在这里就不说了,大家看手册就好了,下面重点说一下使用pe实现ad模块初始化

试验环境:codewarrior8.3 win7 32

使用平台:mc56f8366

第一步:新建工程,选择使用pe工具(最下面一项)。

image

生成新的工程,初始界面是这样的

image

点到processor expert标签(界面左侧第四个标签),对cpu进行初始化,设置总线频率,也可以选择默认。

2.添加ad模块

在右上角界面中放大cpu可以看到他的内部模块,在adc模块上右键选择添加,如图所示

image

在左边目录栏中显示:

image

这时ad模块边上有一个红色叹号,说明该模块还没配置好,不能生成代码,下一步就是配置该模块。

3.配置adc

双击,就可以打开该模块的配置页面

image

由上到下每一项

component name:模块名称,可以由用户自主命名

A/D converter:转换器,8346有两个adc分别是adca和adcb,两个转换器万千独立,用户可以自主选择

interrupt service:中断,ad模块有两个中断,一个是转换完成中断,另一个是过零/超限中断,用户可以决定是否使用这两个中断,配置这两个中断的优先级

A/D channel :ad转换通道,可以配置为1-8,这里选择三,如图,有三个子项,channel0-3,编程者可以在此分别配置每一个通道所对应的引脚以及为该通道命名,可以选择单端还是差分模式。

image

quene:队列,每一个ad转换器有八个结果寄存器,所以每一个队列最多可以有八个采样,每一个采样都可以单独设置为使能或者禁止,设置为使能的采样可以配置采样通道,这里的再养通道就是之前设置好的a/d channel,可以对转换结果做一些处理,比如说加偏置,或者设置上下限。

a/d resolution:分辨率,这里默认就行,因为dsc的ad模块分辨率不可调整,都是12位结果

conversion time 转换时间,这个很重要,不能随便选,需要考虑信号处理的知识。

internal trigger :内部触发

initialization:初始化,这个默认就可以了

cpu clock:cpu时钟,这个默认就可以了

这样,简单的配置就做完了,点

image 上的绿色箭头左边的按钮,代码生成,编译,连接一气呵成。

好了,今天先讲这么多,困了,睡觉。