Свежие обсуждения
Консультации

Микроконтроллер PIC и синтезатор LMX2322

1 2 4

Микросхема почти полный аналог LMX2346, которая в в ТереЭлектронике стоит 115 ублей.
Но не в этом суть. Самое нужное в ней писутствует - прескаллер, с которым пока не получается разобраться.
Что самое фиговое - нету модели этой микросхемы в том же протеусе.
В общем вопросы пока открыты.

Я тоже баиньки...

 

ivasi: В общем вопросы пока открыты.

Да все там просто. Вам надо в МК сформировать два 18 разрядных слова - те значения, которые вы будете записывать в регистр N и в регистр R. В документации сказано, какой бит каждого регистра, чем заведует. В вашем случае состояние самого счетчика R - любое. В R задаете только служебные биты.
От состояния счетчика N зависит ваш коэффициент деления, который задается, как N = (P x B) + A. Как задать P, B, A, указано в документации. Там формулы для вычисления P, B, A по искомому N не дается, но ее можно подсмотреть из дэйташита какого-нибудь другого синтезатора. Единственное, что на значения P, B, A наложены ограничения, указанные в конкретной документации на конкретный синтезатор и ими надо руководствоваться.
После того, как сформировали, начинаете проталкивать эти слова в микросхему синтезатора на вход DATA побитно по сформированному в МК сигналу CLOCK. Одно слово протолкнули (18 разрядов), выдаете с МК на микросхему сигнал LE. При этом ваше слово записывается в регистр R или N, в зависимости от служебных битов, присутствующих в самих этих словах. Дальше проталкиваете второе слово. Через 18 клоков опять выдаете сигнал LE. Все! синтезатор загружен и можно работать. Процедура одноразовая и повторения до следующего выключения-включения питания не требует, если конечно вы не собираетесь в процессе работы менять коэффициент деления. Если соберетесь, то достаточно загрузить заново только один N регистр с новым значением коэффициента деления.

Все, о чем я рассказал, подробно написано в дэйташите. Просто читайте внимательнее.

 

Zandy, спасибо за развернутый ответ. Как уже говорил ранее - с микроконтроллерами и синтезаторами никогда не работал, так что очевидные для вас вещи, пока с большим трудом поддаются моему пониманию ;) так что заранее извиняюсь за банальные вопросы.
Собственно в целом все более менее понятно, остался вопрос по регистрам R_CNTR NA_CNTR и NB_CNTR как их правильно выставить?
Не совсе понятен это абзац:

"The N divider counts such that it divides the VCO RF frequency by (P+1) A times, and then divides by P(B-A)
times. The B value (NB_CNTR) must be > 3. The continuous divider ratio is from 992 to 32,767. Divider ratios
less than 992 are achievable as long as the binary counter value is greater than the swallow counter value
(NB_CNTR > NA_CNTR). "

Как, например выставить коэффициент деления 64, чтобы получить на выходе Сpo f /64 ? Нужно ли менять коэффициент деления в зависимости от частоты?

 

ivasi: R_CNTR NA_CNTR и NB_CNTR как их правильно выставить?

R_CNTR - это задает коэффициент деления R счетчика (делитель опорной частоты). Если вы используете микросхему как делитель частоты, а не как синтезатор, вам "до лампочки", что там будет выставлено.

NA_CNTR и NB_CNTR - это составные звенья N счетчика. N счетчик хитрый. Не буду вдаваться в теорию, зачем и почему так сделано. Если интересно, почитаете в любой книжке по синтезаторам.

ivasi: "The N divider counts such that it divides the VCO RF frequency by (P+1) A times, and then divides by P(B-A)
times. The B value (NB_CNTR) must be > 3. The continuous divider ratio is from 992 to 32,767. Divider ratios
less than 992 are achievable as long as the binary counter value is greater than the swallow counter value
(NB_CNTR > NA_CNTR). "

Дословный перевод. N-делитель устроен таким образом, что сначала частота ГУНа делится на (P+1)A, а затем на P(B-A). Значение В, которое задается битами NB_CNTR, должно быть больше или равно 3. Непрерывный диапазон изменения коэффициентов деления может быть установлен от 992 до 32767. Коэффициент деления менее чем 992 тоже может быть получен, но необходимо, чтобы соблюдалось соотношение В>A (NB_CNTR > NA_CNTR). От себя добавлю - при этом не будет непрерывности изменения коэффициента деления.

ivasi: Как, например выставить коэффициент деления 64, чтобы получить на выходе Сpo f /64 ?

Не выставите такой никогда. Почему? Попробую пояснить "на пальцах". Следите внимательно за ходом моих выкладок.

Обратимся к формуле. N = (P x B) + A. Посмотрим, какой минимальный N можно получить. Знаем, что P=32. Минимальное значение В согласно документации равно 3. Про А из документации знаем, что (0 <= A < 31, A <= B). Значит А можем выбрать равным 0. Отсюда получаем, что N = (32 x 3)+0 = 96. Меняя только А можем получить дальше N = 97 (при А=1), N = 98 (при А=2), N = 99 (при А=3). А дальше разрыв. N = 100 получить уже не можем, так как нам бы пришлось выставить А=4, а это будет противоречить указанию A <= B. Следующий коэффициент деления, который можем получить будет при значении В = 4 и А = 0. То есть N = (32 x 4)+0 = 128. Далее, меняя А от 0 до 4 (теперь) получаем N=129, N=130, N=131, N=132. Далее опять разрыв. И так разрывы будут нас преследовать до тех пор, пока мы не установим В=31. При этом N = (32 x 31)+0 = 992. Начиная с этого коэффициента деления и до 32767 мы уже сможем его менять без всяких разрывов (подряд, прибавляя единичку). Именно этот диапазон коэффициентов деления используется для непрерывной (без разрывов) перестройки частоты в режиме работы синтезатора, например, перестраивая его в каждом шаге на 5 кГц.
Вы же можете устанавливать любой коэффициент деления даже в том диапазоне, где имеются разрывы, исключая естественно те, которые выставить невозможно, как я показал выше, например N=100 или 101 или... и т. д.
Теперь понятно?

Нужно ли менять коэффициент деления в зависимости от частоты?

Любую входную частоту в диапазоне, поддерживаемом синтезатором, можно делить на любой коэффициент деления, который вы сможете физически выставить, по вашему желанию.

З.Ы. Нет значков больше или равно. Я кое где вставил такие ">=" или вообще не правил. Так что все значки ">" или " < " следует читать как больше или равно, или меньше или равно.

 

Zandy, премного благодарен за объяснения. Многое встало на свои места. Теперь можно приступать к макетке.

///
Любую входную частоту в диапазоне, поддерживаемом синтезатором, можно делить на любой коэффициент деления, который вы сможете физически выставить, по вашему желанию.
///

Иначе говоря выход с N conter - частота, поделенная на коэффициент деления(cd) f/cd. То есть если мы имеем частоту 10Герц и коэффициент деления 3 то результат будет 3.3333333333333... герца. Соответственно при обратном пересчете в микроконтроллере будет появляться погрешность. Получается что в данной ситуации нужно менять коэффициент деления до получения целого числа?

 

ivasi: То есть если мы имеем частоту 10Герц и коэффициент деления 3 то результат будет 3.3333333333333... герца. Соответственно при обратном пересчете в микроконтроллере будет появляться погрешность. Получается что в данной ситуации нужно менять коэффициент деления до получения целого числа?

А если вы измеряете частоту 10.0001 Гц? О каких целых числах речь?

Непонятно, что вы имеете ввиду под обратным пересчетом в микроконтроллере?
Если вы используете микросхему не как синтезатор, а как фиксированный делитель, т. е. без петли обратной связи, то погрешность в отображении измеряемой частоты будет всегда. Никаких целых чисел не будет в принципе. Любое измерение физической величины осуществляется с какой-то конечной точностью, которая зависит от многих качественных показателей прибора. В данном случае, от выбора интервала времени измерения, количества разрядов отображения и т. д.

И еще, делитель в синтезаторе не будет делить любую частоту. У такого типа делителей (регенеративных) всегда есть ограничение снизу. Для данной микросхемы синтезатора эта частота по дэйташиту 700 МГц. Если будете подавать на него более низкую частоту, то делить ее он не обязан! Если и будет работать, например на 699 МГц то исключительно из-за разброса необходимого для работы запаса.

Также хочу сказать, что при отсутствии сигнала на входе делителя, на его выходе может присутствовать сигнал! Какой частоты, сложно сказать, это не нормируется. Почти все регенеративные делители частоты самовозбуждаются при отсутствии входного сигнала. С этим, видимо надо бороться программными средствами.

 

//
Непонятно, что вы имеете ввиду под обратным пересчетом в микроконтроллере?
//

Я имел ввиду то что частоту с выхода Сро синтезатора нужно будет умножить на коэффициент деления, перед отображением на жки. В результате мы будем иметь на 10герц а 9.99999

Касательно минимальной частоты 700мгц как то не вяжется... У автора частотомер http://hem.passagen.se/communication/fcntlcd.html на этой микросхеме меряет от 10мГц до 2.5 Ггц с шагом от 100герц. Неужели такой большой запас?

 

ivasi: Я имел ввиду то что частоту с выхода Сро синтезатора нужно будет умножить на коэффициент деления, перед отображением на жки.
Ну, саму то частоту ни на что умножать не надо. Тем более, что это невозможно и бессмысленно, зачем тогда делить? Вы наверное имеете ввиду, что значение, которое должно быть выведено на жки, должно быть умножено на коэффициент предделителя. Так?
ivasi: В результате мы будем иметь на 10герц а 9.99999
Ну и в чем здесь криминал? Что-то я не понимаю. Любой измеритель измеряет с конечной точностью. А целых чисел в природе не бывает - только в арифметике.
Возьмите коэффициент деления, кратный 10, например 1000. Тогда и показания выводить проще будет. Дело сведется вего лишь к перемещению запятой в десятичной интерпретации. Если возьмете коэффициет деления, кратный 2, то в ассемблере это сведется к нескольким командам циклического сдвига - тоже просто. Если программу будете писать на Си, то наверное, без разницы на какое число делить.
По поводу разных коэффициентов деления для разных частот - тоже непонятно, что вы под этим подразумеваете. Если речь идет о переключении диапазонов измерения, тогда все ясно. Ежели вы собираетесь подстраивать коэффициент деления под текущую частоту, то откуда вам знать какая частота на входе? Система то без обратной связи.

ivasi: Касательно минимальной частоты 700мгц как то не вяжется...
Я конкретно с этой микросхемой не работал, поэтому ничего сказать не могу. Вполне допускаю, что она делит и более низкие частоты. Я просто руководствовался документацией на нее. А в ней сказано, что минимальная входная частота с ГУНа - 700 МГц. Почитайте сами. Правда существует такая штука, как недокументированные возможности. Может быть автор конструкции использовал их?

 

Zandy, "По поводу разных коэффициентов деления для разных частот - тоже непонятно, что вы под этим подразумеваете. Если речь идет о переключении диапазонов измерения, тогда все ясно. Ежели вы собираетесь подстраивать коэффициент деления под текущую частоту, то откуда вам знать какая частота на входе? Система то без обратной связи."

Предположим что делитель 100, подаем на вход 6554Мгц, результат деления - вещественное число 65.54Мгц , начинаем менять коэффициент деления (в разумных пределах) с целью найти целое число, либо число с наименьшей вещественной частью.
Доходим до коэффициента деления 113 и получаем красивое число 58, либо берем число с минимальной вещественной частью.
Конечно все это должно быть опционально ибо будет увеличивать время измерения. Основная цель - повысить точность.

По поводу недокументированных возможностей... вероятность конечно есть, только откуда автор мог про них узнать? Ели он сам не принимал участие в разработке данной микры и не заложил себе бонисик ;) Конструктор этого частотометра как никак 80евриков стоит...

 

ivasi: либо число с наименьшей вещественной частью.
Что за вещественная часть? Если есть вещественная, значит должна быть и мнимая. Где она?

ivasi: подаем на вход 6554Мгц
Такая частота бывает только в задачках. Представьте, что вы измеряете частоту 6554.325671 Мгц. На какой коэффициент ее удобнее разделить? Не понимаю, как точность измерения может зависеть от коэффициента деления при его небольшом изменении.