[an error occurred while processing this directive]
|
Но при таком подходе есть несколько подводных камней.
1) Для качественного преобразования на максимальной частоте 20 МГц нужно выдать точный меандр, т.е. 25нс - длительность импульса, 25нс - длительность паузы.
2) Отсюда идет ограничение на выбор тактовой частоты процессора, т.к. должно быть четное количество инструкций для формирования тактовой частоты АЦП.
К примеру, если процессор работает на 160 МГц, то в Вашем распоряжении есть 8 инструкций (50/6.25). Этого достаточно для формирования меандра. Вот примерный фрагмент для чтения АЦП и заполнения буфера. В регистре ar2 находится адрес АЦП на внешней шине.
stm #nsmpl-1,brc ;nomber of samples
rptb eosmpl-1 ;sampling loop
ld *ar2,a ;MSTRB# is low for the next 25ns
ld *ar2,a ;dummy reading
ld *ar2,a ;dummy reading
ld *ar2,a ;real reading of the ADC
nop ;MSTRB# is high for next 25ns
stl a,*ar3+ ;save result in the input buffer
nop ;dummy
nop ;dummy
eosmpl nop
Таким способом я читал АЦП на частоте 16.6(6)МГц.
3) Учтите, что AD9203 имеет 6-каскадный конвейер, так что нормальный результат из АЦП получается после 6 импульса тактовой частоты. Мне было удобнее просто игнорировать первые 6 результатов в буфере.
Что касается джиттера, то в описании АЦП есть формула, связывающая тактовую частоту чтения, апертурный джиттер и достижимое отношение сигнал-шум. Задавая отношение и зная частоту, можно вычислить полный джиттер. В описании также указан собственный апертурный джиттер – 1.2 пикосекунды.
E-mail: info@telesys.ru