一种FS=2Vpp,reslotion 为10bit的直接移位型sar adc ,输入为0>vin>FS的负数,实现代码:
一、定义转换器的基本参数:
num=10 ;% bits of resoltion
FS=-2 ; % full scale is 2Vpp
vref=FS/2 ;
lsb=FS/2^num ;
二、定义转换器的各bit位权重:
weight=zeros(num,1);
for ii=num:-1:1
weight(ii)=2^(ii-1) ;
end
三、采样:
% input
vin=-0.267;
% sample
sample=vin ;
四、转换:
% conversion
dout=0 ;
for ii=num:-1:1
if sample>vref
bits(ii)=0 ;
else
bits(ii)=1 ;
sample=sample-vref ;
end
vref=vref/2 ;
dout=dout+bits(ii)*weight(ii);
end
五、打印转换结果:
%% dig to vout
vout=dout*lsb ;
%% print the conversion data
fprintf('vin=%4.4fV, dout=%4d,vout=%4.4fV,LSB=%4.4fmV\n', vin,dout,vout,lsb*1000);
六、显示结果:
vin=-0.2670V, dout= 136,vout=-0.2656V,LSB=-1.9531mV
七、转换流程
见插图