- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                
基于PIC18f45k22单片机和ADS8341SPI通
 :本文介绍了通过硬件和软件两种方式实现 PIC18f45k22单片机与TI公司的模数转换器ADS8341的SPI 接口通信,给出了具体的硬件电路和相关的软件流程,实现 了数据交换。
关键词:PIC18f45k22; SPI; ADS8341;共用体
中图分类号:TP368. 12文献标识码:A文章编号: 1674-7712	(2013)	12-0000-01
一、	ADS8341 简介
ADS8341是TI公司在2001年推出的具有串行接口的16 位高速逐次逼近行的A/D转换器。它是拥有4通道独立输入 端或2通道差动输入端,带有SPI接口的通信,转换速率大 于100KHZ,转换精度高,芯片工作电压范围在2.7V?5V, SS0P-16封装,安装尺寸很小,正常温度为-400C?+850C。 基准电压源的范围为500mV-Vcc之间变化,在低功耗模式下, 芯片的功率小于15uWo
二、	ADS8341与PIC18f45k22通信的硬件设计
在这里我们使用的是微星公司的PIC18f45k22单片机与 ADS8341进行SPI通信,连接图如下:
ADS8341控制字的设定,参考表T, s必须拉高,才能 开始转换。A0-A2为转换的输入端口,具体设置参考表-2。 SGL/DIF为单端模拟信号或是差动信号输入控制位,它必须 结合A0-A2 一起设置模拟信号的输入。PDO与PD1为电源模 式的选取位。例如我们设置控制字为94H,开始AD转换的是 CHO单通道,进入低功耗模式和工作方式为外部时钟模式。
在外部时钟模式下,ADS8341的时钟由MCU提供,当它 接收到来自MCU的控制字随后的一个时钟周期BUSY脚被拉 高,转换的结果会在后16个周期的下降沿通过DOUT脚输出, 具体的数据时序图请参考它的datasheeto在外部时钟模式 下,BUSY维持高电平到输出数据MSB的建立需要一个时钟周 期,完成一次AD数据的采集至少需要25个时钟周期,若采 用的是8位的MCU与ADS8341进行通信,需要对ADS8341的 输出数据进行读三次。基于以上考虑,我们可以采用32个 时钟周期来读一次转换的数据,前8个时钟周期用于MCU发 送控制字,后面24个时钟周期,连续三次读DOUT引脚的数 据。在具体C语言编程上面,我们可以借助一个联合体,和 一个属部变量来达到最终目的,部分程序如下。相应的MCU 寄存器的配置就不详述,该款单片机我们可以直接使用它的 库函数对SPI接口进行读写,使用非常方便。
union u AD unsigned int A; unsigned char B[2];
}//定义的联合体
SPI_CS = 0;	//片选拉低,启动AD芯片
SPIJVrite (0);	//选择 CH0 为 AD 的输出
uAD.B[l] = ReadSPIl (); //第 1 次读 DOUT 数据 uAD.BEO] = ReadSPIl (); 〃第 2 次读 DOUT 数据 ucAdlowO 二 ReadSPIl ();	//第 3 次读 DOUT 数据.
ucAdlowO为定义的临时变量,
uAD. A 二(uAD. A7);	//数据合并
三、软件程序实现
在MPLAB集成开发环境下,运用微星公司18系列单片 机的函数库对PIC18f45k22进行相关操作设置非常方便。在 这里以SPI 口读取ADS8341转换结果,并把结果通过串口发 送出来,方便用串口助手等工具进行观察,具体以主函数为 例来说明整个流程。
void main (void)
{
union ad_r //定义一个共用体
{
unsigned char ad[2]; unsigned int y;
} adr;
InitialMCU ();	//单片机初始化,包含10 口设置、
中断设置串口1初始化等。
while (1)
SPI_CS = 0; //SPI 片选信号
DelaylKTCYx (50); 〃延时
putcSPIl (0x94);	//单片机的 SPI 口发送 ADS8341 的
控制字
wh订e (SPI_BUSY); 〃判断AD转换是否完成
adr. ad[l] = getcSPIl ();	//读出 AD 转换结果的髙 8
位
adr. ad[0] = getcSPIl ();	//读出 AD 转换结果的低 8
DelaylKTCYx (50); 〃延时
SendBytebyUARTl (#,); //串口 1 发送标识符 “#”
SendBytebyUARTl ( adr. ad[l]);	//串口 1 发送 AD 转
换结果的高8位
SendBytebyUARTl ( adr. ad[0] )
                您可能关注的文档
最近下载
- 解读《GB_T 3880.2-2024一般工业用铝及铝合金板、带材 第2部分:力学性能》.docx VIP
 - ECA微生物偏差评估和调查指南2020.pdf VIP
 - 三年级下册科学青岛版20肠道传染病(课件)(共26张PPT).pptx VIP
 - 公司私车公用管理制度及私车公用协议.docx VIP
 - (完整版)格斗术教案.doc VIP
 - 金属学与热处理--热处理原理、热处理工艺习题.doc VIP
 - 《消防设施工程专业承包企业资质等级标准》.docx VIP
 - 义务教育学校校长、书记绩效考核工作实施办法(试行).doc VIP
 - 加油加气站改扩建项目申请报告.pdf VIP
 - 教学能力大赛教学实施报告【参考国赛一等奖撰写】.pdf
 
原创力文档
                        

文档评论(0)