新闻中心

EEPW首页>嵌入式系统>设计应用> 基于单片机SPI器件的串口控制

基于单片机SPI器件的串口控制

作者: 时间:2010-03-18 来源:网络 收藏

2 AD7390的基本结构和工作原理
AD7390是ADl公司生产的12位分辨率电压输出数/模转换器。该DAC为用户提供低成本、高精度的可控电压解决方案,使用单电源+3V系统供电。保证电源电压为2.7~5.5V时消耗不到100mA的电流,所以该适用于一些对功效要求高的设备,比如电池供电系统。输出电压取决于外部参考输入电压。DACOUT输出介于REFIN与地之间的任意值,其内部框图如图2所示。


内部双缓冲串行数据接口提供高速转换,微器通过三线、串行数据(SDI)、时钟(CLK)和使能(LD)引脚。此外,使用CLR输入可以对输出清零。操作时序如图3所示。


3 AD7390的
电脑通过RS 232向MCU发送控制信号,再由MCU控制AD7390,完成整个设置过程。通过控制AD7390的软件流程如图4所示。一旦有数据写入,则将重新设置AD7390。


程序分为三大模块,分别是控制模块、接收模块和操作信息反馈模块。
控制模块产生CLK,LD,并在CLK的上升沿到来之前,保证SDI数据的稳定,以便AD7390准确地采集到数据。CLK时钟的频率根据器件的典型延迟决定,不同器件有不同的延迟,所以它决定了不同器件的时钟应该不一样。
串口接收模块完成从电脑接收数据并保存数据。由一片MAX 232完成RS 232电平与TTL电平之间的转换。因为传输的是连续性数据,因此在接收程序的编写时,要注意中断申请的屏蔽,才能准确地接收到全部数据。
在利用串口调试助手调试时,留意发送数据的格式,是否以16进制发送,会影响接收到的数据。比如,发送字母“E”,如果以16进制发送。发送的实际数据是“15”,而接收到的数据是“15”的ASCII码“49”、“53”;如果不以16进制发送,则发送的是字母“E”的ASCII码“69’。由此可以看出它们之间的差别。因此在接收方要得到想要的数据,则需要进行转换。该转换可参看后面的程序。



评论


相关推荐

技术专区

关闭