4921|2

2856

帖子

260

TA的资源

五彩晶圆(高级)

楼主
 

富士通工控板DIY之AD篇 [复制链接]

Easy KIt  板例程里面有1路AD测量的程序,我就不介绍了。在用AD前我们有必要知道一下MB9BF506的AD资源。16路AD通道(AN00------AN15),3路AD转化器(ADC unit0、ADC unit1、ADC unit2)。16个AD通道都可以配置到任意一个AD转化器.
        而我们的DIY板有两路AD通道(AN14和AN15),怎么才能测量两路AD呢?方法有两种:
        1、用1个AD转化器测量2个AD通道。先测AD14通道,测完AD14通道后,在启动AD15通道测量,依次循环。这个方法改起来比较容易,就不说了。
        2、用2个AD转化器测量2个AD通道。AD14通道用ADC unit0测,AD15通道用ADC unit1测。下面已第二种方法为例讲解一下。
        2.1    Easy KIt  板例程里面1路AD通道用了ADC unit0转化器。所以要用ADC unit1转化器需要在“adc.h”中添加ADC unit1转化器寄存器(原“adc.h”头文件只有ADC unit0转化器寄存器)。
下面为ADC unit0寄存器
#define BASEADD_ADC_U0  0x40027000
/* A/DC unit0 */
#define IOREG_ADSR_U0  *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x000)
#define IOREG_ADCR_U0  *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x001)
#define IOREG_SFNS_U0  *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x008)
#define IOREG_SCCR_U0  *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x009)
#define IOREG_SCFD_U0  *(volatile unsigned long*)(BASEADD_ADC_U0 + 0x00C)
#define IOREG_SCIS2_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x010)
#define IOREG_SCIS3_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x011)
#define IOREG_SCIS0_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x014)
#define IOREG_SCIS1_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x015)
#define IOREG_PFNS_U0  *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x018)
#define IOREG_PCCR_U0  *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x019)
#define IOREG_PCFD_U0  *(volatile unsigned short*)(BASEADD_ADC_U0 + 0x01C)
#define IOREG_PCIS_U0  *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x020)
#define IOREG_CMPCR_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x024)
#define IOREG_CMPD_U0  *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x025)
#define IOREG_ADSS2_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x028)
#define IOREG_ADSS3_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x029)
#define IOREG_ADSS0_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x02C)
#define IOREG_ADSS1_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x02D)
#define IOREG_ADST1_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x030)
#define IOREG_ADST0_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x031)
#define IOREG_ADCT_U0  *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x034)
#define IOREG_PRTSL_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x038)
#define IOREG_SCTSL_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x039)
#define IOREG_ADCEN_U0 *(volatile unsigned char*)(BASEADD_ADC_U0 + 0x03C)
添加ADC unit1寄存器:
#define BASEADD_ADC_U1  0x40027100
/* A/DC unit1 */
#define IOREG_ADSR_U1  *(volatile unsigned char*)(BASEADD_ADC_U1 + 0x000)

...........后面A/DC unit1的其余寄存器的照着A/DC unit0寄存器添加进去。
2.2  修改"ADC.C"里面的AD初始化程序,使用查询的方法,先将Easy KIt  板例程中的AN08改为AD14通道。初始化程序中将AN14通道分配到A/DC unit0。按照AN14的方法添加AN15通道到A/DC unit1。
2.3 在“main.c”添加AD15转换结果的查询程序,即可完成2路AD通道同时采样。

[ 本帖最后由 ltbytyn 于 2012-7-23 13:09 编辑 ]

AD.JPG (78.01 KB, 下载次数: 0)

AD.JPG

AD1.JPG (12.44 KB, 下载次数: 0)

AD1.JPG

最新回复

怎么赚积分  详情 回复 发表于 2018-1-26 16:47
点赞 关注
 

回复
举报

8

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
好厉害
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表