高分辨力模数转换器在高精度编码器中的应用
【文章摘要】
介绍了 MAX1308 的工作原理和性能,提供了 MAX1308 最小系统设计。
【关键词】
MAX1308 ;编码器
中国分类号 :TP333.3
文献标识码 :A
0 前言
随着现代伺服控制系统的发展,对光电绝对式编码器的测量精度要求越来越高。所以利用美信公司的MAX1308芯片技术,提高光电绝对式编码器原始信号的采集精度,满足转台伺服控制的要求。
1 光电绝对式编码器的精度分析
光电绝对式编码器的测量精度主要是由码盘刻画精度,光机装调精度和处理电路精度三部分组成。电路部分影响测量精度的主要因素有精码细分误差和量化误差。精码细分主要是把光电绝对式编码器的精码原始模拟信号通过模数转换器采集到中央处理器,再由中央处理器进行软件细分。所以模数转换器芯片的性能是决定精码细分精度的关键。
2 模数转换器 MAX1308 芯片介绍
随着集成电路技术的迅猛发展,各种新的电子元器件不断涌现,使得对模拟信号的高精度采集成为可能。MAX1308是12位模数转换器提供8个独立输入通道。独立的采样保持电路为每个通道提供同时采样。在1.98us内完成8个通道的转换,8个通道转换时每个通道吞吐率为456ksps,20M,12 位双向并行数据总线用来提供转换结果,并可接受数字输入分别激活每一路通道。 高分辨力模数转换器在高精度编码器中的应用 杨 宁 中国科学院长春光学精密机械与物理研究所 吉林长春 130033
2.1 模数转换器 MAX1308 芯片的工作原理
美信公司的 MAX1308 芯片,工作时序如图 1 所示。MAX1308有两种工作模式:串行工作模式和高速并行模式,这里主要介绍并行接口模式。首先置CONVST(采样保持信号)低脉冲信号,等待MAX1308转换结束EOLC为低电平后,置CS(片选信号)为低电平,同时转换结果通过并行总线D0-D11 读取。
2.2 MAX1308 最小系统设计
MAX1308最小系统设计如图2所示,本设计是双极性工作方式。工作电压为+5V,接口电平为+3.3V 。模拟输入范围为±5V 。使用内部参考电压 +2.5V 。
2.3 MAX1308 软件操作
MAX1308的初始化设计,先通过并行数据总线对MAX1308各个通道写入数据,使 MAX1308 进入工作状态。GpioDataRegs.GPBDAT.bit.GPIOB0=0; // CS1*MAX1308ADDR_Pointer = 0xff;GpioDataRegs.GPBDAT.bit.GPIOB0=1;GpioDataRegs.GPBDAT.bit.GPIOB1=0; // CS2*MAX1308ADDR_Pointer = 0xff;GpioDataRegs.GPBDAT.bit.GPIOB1=1;GpioDataRegs.GPBDAT.bit.GPIOB2=0; // CS3 *MAX1308ADDR_Pointer = 0xff;GpioDataRegs.GPBDAT.bit.GPIOB2=1;MAX1308 的读操作软件设计先对CONVS(采样保持)置低脉冲信号,等待 MAX1308 转换结束,在通过并行总线进行读操作,来读取 12 位结果。
GpioDataRegs.GPBDAT.bit.
GPIOB10=0; //
Convst
DELAY_US(1);
//
Flash 中 "1" 延时约 10us,RAM 中 "1" 延
时约 1us
GpioDataRegs.GPBDAT.bit.
GPIOB10=1; //
Track 阶段结束
DELAY_US(2);
GpioDataRegs.GPBDAT.bit.GPIOB2=0;
// CS3
G_A8=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A8>0x7f) G_
A8=0; G_A8 <<=1;
G_GBSIN=(*MAX1308ADDR_
Pointer+0x800)&0x0fff;
G_A7=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A7>0x7f) G_
A7=0; G_A7 <<=1;
图 1 MAX1308 时序图G_GBCOS=(*MAX1308ADDR_
Pointer+0x800)&0x0fff;
G_A8=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A8>0x7f) G_
A8=0; G_A8 <<=1;
G_GBSIN=(*MAX1308ADDR_
Pointer+0x800)&0x0fff;
G_A7=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A7>0x7f) G_
A7=0; G_A7 <<=1;
G_GBCOS=(*MAX1308ADDR_
Pointer+0x800)&0x0fff;
GpioDataRegs.GPBDAT.bit.GPIOB2=1;
GpioDataRegs.GPBDAT.bit.GPIOB1=0;
// CS2
G_A12=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A12>0x7f) G_
A12=0; G_A12 <<=1;
G_GASIN=(*MAX1308ADDR_
Pointer+0x800)&0x0fff;
G_A11=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A11>0x7f) G_
A11=0; G_A11 <<=1;
G_GACOS=(*MAX1308ADDR_
Pointer+0x800)&0x0fff;
G_A1=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A1>0x7f) G_
A1=0; G_A1 <<=1;
G_FASIN=((*MAX1308ADDR_
Pointer>>4)+0x80)&0x00ff;
G_A2=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A2>0x7f) G_
A2=0; G_A2 <<=1;
G_FACOS=((*MAX1308ADDR_Pointer
>>4)+0x80)&0x00ff; // 方法可行
GpioDataRegs.GPBDAT.bit.GPIOB1=1;
GpioDataRegs.GPBDAT.bit.GPIOB0=0;
// CS1
G_A5 =(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A5>0x7f) G_
A5=0; G_A5 <<=1;
G_FBSIN=((*MAX1308ADDR_
Pointer>>4)+0x80)&0x00ff;
图 2 最小设计原理图
G_A6=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A6>0x7f) G_
A6=0; G_A6 <<=1;
G_FBCOS=((*MAX1308ADDR_
Pointer>>4)+0x80)&0x00ff;
G_A9=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A9>0x7f) G_
A9=0; G_A9 <<=1;
G_A4=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A4>0x7f) G_
A4=0; G_A4 <<=1;
G_A3=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A3>0x7f) G_
A3=0; G_A3 <<=1;
G_A10=(*MAX1308ADDR_
Pointer>>4)&0x00ff; if(G_A10>0x7f)G_
A10=0; G_A10 <<=1;
GpioDataRegs.GPBDAT.bit.GPIOB0=1
3 结论
本文介绍了模数转换器MAX1308芯片的性能。并详细的讨论了工作原理和最小系统设计。该设计以广泛应用在光电编码器处理电路中。
【参考文献】
[1]叶盛祥.光电位移精密测量技术[M].成都:四川科学技术出版社 ,2003.2]
[2]刘益民.转台伺服系统中高精度测速方法的研究与实现 .2007 08-1732-03