|
ATmega8 + lmx2326, управляющее слово |
|
|
|
Feb 20 2009, 08:53
|

Местный
  
Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716

|
Нужно для себя сделать универсальный синтезатор 100 MHz - 2 GHz , почитал доку на 2326 полоса 0,1 МГц- 2,8ГГц . Надеюсь хватит с запасом по верхней частоте . Возникла проблема с пересчетом для данного pll lmx2326 . Глянул ДШ на нее но не совсем понятно К примеру есть формула пересчета fvco = [(P x  + A] x fosc/R // частота ГУНа считается по формуле B: Preset divide ratio of binary 13-bit programmable counter (3 to 8191) \\ что выставляется здесь A: Preset divide ratio of binary 5-bit swallow counter (0 £ A £ 31; A £ B for LMX2326) \\ что выставляется здесь fosc: Частота опорного генератора к примеру 10 МГц R: Preset divide ratio of binary 14-bit programmable reference counter (3 to 16383) предделитель утановки частоты P: Preset modulus of dual modulus prescaler // LMX2326; P = 32 Частота гуна = [(32x8191)+31] x 10000000/3 = 262 143 x 3333333.3 = 873 810 000 Это получается унас частота ГУНа , но почему то линнейного пересчета вкурить не могу .  . Буду рад пинку в нужную сторону
|
|
|
|
|
 |
Ответов
(1 - 48)
|
Feb 20 2009, 12:29
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Павлик @ Feb 20 2009, 08:53)  Частота гуна = [(32x8191)+31] x 10000000/3 = 262 143 x 3333333.3 = 873 810 000 Это получается унас частота ГУНа , но почему то линейного пересчета вкурить не могу. Буду рад пинку в нужную сторону Ну, получите. Частота гуна у вас 873 810 000 000 или вгрубе 873 ГГц. Стоит частоту сравнения выбрать поменьше, скажем fREF/10000=10 кГц, тогда при А=0, В=6250, Р=32 fГУН=2 000 000 кГц
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Feb 20 2009, 16:25
|

Местный
  
Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716

|
>>Выбираете шаг перестройки. Это будет Fref. Рассчитываете R: R = Fosc / Fref. К примеру у меня опорник ( Fosc) будет 10,240 МГц (как делают многие), шаг сетки (Fref) 5 кГц считаем 10240 / 5 = 2048 DEC -> 0x800 hex R = 0x800 >>Находите коэф. деления N нужной вам частоты: N = Fvco / Fref. Нужно получить частоту ГУНа (Fvco) 100 МГц 100000 / 5 = 20000 dec -> 0x4E20 hex >>5 младших бит получившегося числа будет А. Следующие 13 будут B. 0x4E20 = 0b 0100 1110 001 0 0000 B A A = 0 0000 B = 010 0111 0001 = 625 dec = 0x271 >>P = 2^5 = 32, те самые 5 бит A. Все число N = P * B + A P = 32 N = 32 * 625 + 0 = 20000 dec = 0x4E20 С этим понятно , теперь идем к выводу информации в LMX2316/26 R = 0x800 его мы заносим в 14-BIT PROGRAMMABLE REFERENCE DIVIDER RATIO (R COUNTER) Посылка первый 21 бит биты 1 2 - контрольные биты = 0 , биты 1 2 3 4 5 6 7 8 9 10 11 12 13 14 = R COUNTER = в данном случае 0х800 , биты 15 16 17 18 должны быть 0 в нормальном режиме , бит 19 MSB не понятно 0 или 1 писать в него . Затем посылка следующих 21 бит биты 1 2 - контрольные биты = 0 , биты 1 2 3 4 5 = А и тоже = 0 , биты 6 7 8 9 10 11 12 13 14 15 16 17 18 = числу В = 0 0010 0111 0001 (добавляем 2 нуля в старшие разряды ) бит 19 MSB не понятно 0 или 1 писать в него . В принципе вот такой расчет вывел из предложения выше , спасибо за подсказку , теперь надо проверить это на железе , и остается вопрос правильно ли все я понял и MSB не понятно 0 или 1 писать в него ? . CODE out_lmx: mov r29, r19 rcall out_byte mov r29, r20 rcall out_byte mov r29, r21 rcall out_byte nop nop nop sbi PORTB,CE sbi PORTB,CE nop nop cbi PORTB,CE cbi PORTB,CE nop nop ret
out_byte: ldi r28, 8 otb: clc rol r29 brcc dat_0 sbi PORTB,DAT rjmp pulse
dat_0: cbi PORTB,DAT pulse: nop nop sbi PORTB,CLOCK nop nop cbi PORTB,CLOCK nop nop dec r28 brne otb ret Вот так вот получилось в плане вывода .
Сообщение отредактировал Павлик - Feb 20 2009, 16:37
|
|
|
|
|
Feb 20 2009, 18:58
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(=GM= @ Feb 20 2009, 19:44)  Учтите, выводить нужно 21 бит, а не 24 как у вас, а СЕ=0 должно стоять перед началом вывода бит. Не обязательно. Защелкнутся последние 21 бит. Запись происходит по фронту CE, где будет срез - абсолютно не важно(картина 1.4). Я гружу LMX2332 обоими способами. Цитата(Павлик @ Feb 20 2009, 18:25)  бит 19 MSB не понятно 0 или 1 писать в него . Раздел 1.3.2. Если я правильно его понял - зависит от того, по каким критериям вы хотите оценивать факт захвата. Цитата(Павлик @ Feb 20 2009, 18:25)  бит 19 MSB не понятно 0 или 1 писать в него . А это зависит от вашей реализации захвата: будете использовать быстрый захват - записываете 1, ждете захвата, записываете 0. Не будете - записываете 0 сразу. Раздел 1.3.4. И не забудьте прописать регистр F. P.S. Я работал с LMX2332 и PMB2306. По вашему LMX2326 могу подсказать только то, что можно прочесть в даташите. Да, и выводить можно сразу три байта в одном цикле: CODE LoadSynth: LDI R20,19 LoadCycle: off(SYNTH_CLK)
SBRC R18,3 ; if(Value & (1L << 18) on(SYNTH_DATA) SBRS R18,3 ; else off(SYNTH_DATA)
on(SYNTH_CLK) LSL R16 ROL R17 ; Value <<= 1; ROL R18 DEC R20 BRNE LoadCycle
on(SYNTH_LOAD) off(SYNTH_LOAD) RET
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Feb 20 2009, 23:40
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Сергей Борщ @ Feb 20 2009, 18:58)  Не обязательно. Защелкнутся последние 21 бит. Запись происходит по фронту CE, где будет срез - абсолютно не важно(картина 1.4) Скорее всего можно выдвигать 24 бита, хотя я вот недавно столкнулся с цапом с последовательным вводом, где перезапись идёт либо по приходу 16 бит, либо по фронту LE. Вы-то сами почему в своей программе выдвигаете 19 бит, а не 21? Считаете, что всё равно запишется куда надо (:-)?
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Feb 21 2009, 18:50
|

Местный
  
Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716

|
Для LMX2306 получилось так , приедет образец 2326 , разберусь уже и с ним . Частота опорного генератора 10000 кГц расчитываем число для установки состояния ( R counter ) а) 10000 / 2,5 = 4000 -> 0x0FA0 Сдвигаем число в лево 2 раза для вывода в LMX2306 0x0FA0 = << 2 = 0x3E80 выводим первое значение б) выходная частота ГУНа должна быть 20000 кГц шаг сетки 2500 гц / 2,5 кГц 20000 / 2,5 = 8000 переводим его в хекс -> 0x1F40 Сдвигаем число в лево 2 раза для вывода в LMX2306 0x1F40 = << 2 = 0x7D00 выводим второе значение в) инит LMX2306 устанавливаем контрольный бит С2 и контрольный бит поляризации F6 получается число 0х0082 выводим третье значение и все на этом посылка закончена Спасибо всем , Сергей Борщ Тема решена .
|
|
|
|
|
Mar 28 2009, 15:09
|

Местный
  
Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716

|
Вернусь опять к своей теме , возник очень интерестный для меня вопрос. Написал перекодировку частоты для вывода на ЖКИ , работает без проблем на микросхемах lmx2316 , а вот lmx2326 ни в какую не хочет работать  , привожу схему включения ниже. Подаю по 3 байта в 3 захода. 0x00, 0x40, 0x08 control bits 00 Частота ГУНа 400 МГц , Сетка 2,5кГц 0x09, 0xC4, 0x01 control bits 01 выбираем поляризацию настройки ГУНа битом 6 ( сдвинуто на 2 ) 0x00, 0x00, 0x82 control bits 10 Вот в ступоре или микросхема дохлая попалась , или во мне проблема. Смущает еще то , что 2316 работает без проблем , а в даташите все что я перевел , особых отличий кроме диапазона частоты я не увидел. Еще прикрепляю скан вывода данных из проца.
Сообщение отредактировал Павлик - Mar 28 2009, 15:24
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 28 2009, 15:29
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Вот тут есть пример работы (с исходниками) - http://www.thegleam.com/ke5fx/synth.htmlИли здесь - http://forum.cqham.ru/viewtopic.php?p=2741...d9c50120#274192В аттачменте к тому сообщению файл lmx2306.c - работающий. Для lmx2316 и других - другое значение для учета прескалера пропишите в программе. Ну и вообще - шаг 5 кГц на трех гигагерцах частоте пр частоте сравнения 5 кГц? А качество кого-нибудь интересует? Скорость перестройки? В статье John Miles описывается довольно распространенный сейчас принцип - с объяснениями зачем и почему так стоит делать. Вот еще - работающий у меня проект прескалера к частотомеру - там используется LMX2306 + ATMega8 Канал rf программируется на деление в 24 раза и его выход подключается к многофункциональному выводу микросхемы.
Сообщение отредактировал Genadi Zawidowski - Mar 28 2009, 15:32
|
|
|
|
|
Mar 28 2009, 15:45
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата(Павлик @ Mar 28 2009, 18:37)  Все это хорошо , но 2306 и 2316 и у меня прекрасно работают , меня интересует именно почему 2326 не работает , и где именно про прескаллер пишут не нашел в даташите , или 5 бит первых это и есть прескаллер ? В Си я не силен , пишу на асме , с примеров мало чего понял . Даташит, страница 8 - инструкция по образованию управляющего слова. 1.2.3 Pulse Swallow Function ... Preset modulus of dual modulus prescaler for the LMX2306; P = 8 for the LMX2316/26; P = 32 Попробуйте запрограммировать на выход для контроля - на сколько же в самом деле делит делтель. Да, после программирования делителя опоры до загрузки делителя osc работать н ебудет (в инструкции об этом написано). С примеров... мне в свое время очень помогли примеры от John Miles, надеюсь, вам независимо от языка программирования могут тоже помочь. Или попробуйте скомпилировать то, что я прислал, убедиться что работает - и начать модифицировать. Для компиляции нужен WinAVR и студия. Если настолько плохо - http://www.national.com/vcm/NSC_Content/Fi...oader4Setup.exe (http://www.national.com/analog/timing/codeloader) вам может помочь выяснить, где причина неработы.
Сообщение отредактировал Genadi Zawidowski - Mar 28 2009, 15:55
|
|
|
|
|
Mar 28 2009, 17:36
|

Местный
  
Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716

|
Скачал версию которая 16,1мб , работает , но нужных микросхем в списке и чего-то вразумительного не нашел. Онлайн синтезы на сайте производителя тоже почему-то не дают настройки под микросхемы. Только параметры и схемы включения. В даташите то написанно (между строк) , но я не понимаю. В общем нашел людей которые делали устройства именно на lmx2326 , сказали что меняются 1 в 1 и ничего переделывать не нужно , прийдется купить еще микросхему и проверить ее. Пока отбой.  В общем нашел людей которые делали устройства именно на lmx2326 , сказали что меняются 1 в 1 и ничего переделывать не нужно , прийдется купить еще микросхему и проверить ее. Пока отбой.
|
|
|
|
|
Mar 28 2009, 20:34
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата(Павлик @ Mar 28 2009, 20:36)  Скачал версию которая 16,1мб , работает , но нужных микросхем в списке и чего-то вразумительного не нашел. Онлайн синтезы на сайте производителя тоже почему-то не дают настройки под микросхемы. Только параметры и схемы включения. В даташите то написанно (между строк) , но я не понимаю. В общем нашел людей которые делали устройства именно на lmx2326 , сказали что меняются 1 в 1 и ничего переделывать не нужно , прийдется купить еще микросхему и проверить ее. Пока отбой.  В общем нашел людей которые делали устройства именно на lmx2326 , сказали что меняются 1 в 1 и ничего переделывать не нужно , прийдется купить еще микросхему и проверить ее. Пока отбой.  По указанной мною ссылке качаается версия, в которой есть эти чипы... Ждем результата. А вылетать (битые входы) они любят... с ADF411* такого не происходит.
|
|
|
|
|
Apr 9 2009, 16:40
|

Местный
  
Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716

|
Вот собственно код вывода данных в синтез , как я уже писал lmx2316 работает без проблем с этим кодом CODE syntez: ldi tx_h,0x00 // 10240 ldi tx_m,0x40 // (control bits = 00) ldi tx_l,0x00 // 10240 / 2.5 = 4096 = 1000H <<2 = 4000 rcall outwrd //
lds tx_h,t_h // h byteload frequency Частота ГУНа / частоту сетки = 3 байта слова lds tx_m,t_m // m byte // 100 000 / 2,5 = 40 000 = 0х00 9С 40 lds tx_l,t_l // l byte
tx_tx: // clc // rol tx_l // rol tx_m // rol tx_h // sec // rol tx_l // rol tx_m // rol tx_h // (control bits = 01) rcall outwrd
outwrd1: ldi tx_h,0 ldi tx_m,0 ldi tx_l,0x82
outwrd: // Вывод в 2316 управляющего слова mov tmp,tx_h rcall out_lmx mov tmp,tx_m rcall out_lmx mov tmp,tx_l rcall out_lmx nop nop nop sbi portd,syn_stb // STROB -> 1 nop nop nop cbi portd,syn_stb // STROB -> 0 nop nop nop ret
out_lmx: // Выдать байт в 2316 Байт в acc ldi loop,8 // загрузить 8 в счетчик бит. lmx_cycle: // clc // сброс cary rol tmp // сдвиг acc влево через C brcc lmx_l // sbi portd,syn_dat // установить DATA=1 rjmp lmx_h // lmx_l: // cbi portd,syn_dat // установить DATA=0 lmx_h: // nop // sbi portd,syn_clk // CLK -> 1 nop // nop // cbi portd,syn_clk // CLK -> 0 dec loop // brne lmx_cycle // проверить счетчик бит. ret // выход
|
|
|
|
|
Apr 9 2009, 20:54
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата(Павлик @ Apr 9 2009, 21:17)  Чта за вывод AUX не понятно , в распиновке мс его нету , схему включение я приложил , можно ткнуть на нее. Вывод 14 - Fo/Ld - можно подключить у выходам любого из делителей. Multiplexed Output of the RF Programmable or Reference Dividers and Lock Detect. CMOS output. (See Table 4.)F[3] F[4] F[5] Fo/LD Output State 0 0 0 TRI-STATE 0 0 1 R Divider Output (fr) 0 1 0 N Divider Output (fp)0 1 1 Serial Data Output 1 0 0 Digital Lock Detect (See 1.3.2 LOCK DETECT OUTPUT Section) 1 0 1 n Channel Open Drain Lock Detect (See 1.3.2 LOCK DETECT OUTPUT Section) 1 1 0 Active HIGH 1 1 1 Active LOW
Сообщение отредактировал Genadi Zawidowski - Apr 9 2009, 20:55
|
|
|
|
|
Jan 3 2013, 20:36
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата(ASDFG123 @ Jan 3 2013, 20:28)  ДД. Как правильно посылать биты на LMX2326 ? допустим N counter 10 00000 000100000000 это правильно, для делителя 256 ? с1 с2 впереди при передаче задом наперед. 01 00 010 000000000000 это выход Fo/ld на N counter ? в каком порядке надо все это записывать, надо ли записывать R counter? и для чего режим с1 с2 [1,1] ? в самом начале темы еще был вопрос, аппаратный SPI в авр передает токо байтами, и как себя ведет LMX если передать ей 24 бит и только потом LE =1 ?
пока разбираюсь только с прескаллером, но хочу сделать генератор/частотомер приборчик. c2, c1 - это всегда последние два бита в передаче. Кладите в регистр SPI передатчика, передающего старшим битом вперёд значения (не переворачивая ничего!) - старшие раньше, потом младшие - и передавайте. Всё там нормально. Да, воспринимаются последние перед подъёмом LE биты. т.е., дополняете первыми нулями до 24 бит. SPI в MODE3, если что.
Сообщение отредактировал Genadi Zawidowski - Jan 3 2013, 20:41
|
|
|
|
|
Jan 5 2013, 15:22
|
Частый гость
 
Группа: Участник
Сообщений: 165
Регистрация: 2-01-13
Пользователь №: 75 042

|
Спасибо Цитата(Genadi Zawidowski @ Jan 4 2013, 02:36)  SPI в MODE3 третий режим это же CLOСK=1 и смена данных при падении уровня? с даташитом чет не совпадает. режим 0  режим 3  а вот даташит а для того чтобы запустить прескалер надо, сначала загрузить фукциональный блок, затем N счетчик, и все ? п.с Genadi Zawidowski вы DDS синтезаторами типа AD9959 не занимались ?
Сообщение отредактировал ASDFG123 - Jan 5 2013, 15:24
Эскизы прикрепленных изображений
|
|
|
|
|
Jan 6 2013, 00:29
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
AD9959 не занимался. В даташите видно, что данные защёлкиваются по нарастающему фронту. В том устройстве, что у меня есть, на SPI может быть только MODE3 и MODE2. Соберите макет и попробуйте с разными SPI MODE, если 3-й не нравится, расскажете...
Скажу честно, отдельно прескалер от всего я не проверял... Если Вам хочется просто предделитель сделать - программируйте все регистры (там, в даташите, написано о приостановке счёта N после пограммирования R, если не ошибаюсь). Короче, в даташите ВСЁ написано. Исходники программ я выкладывал, последовательности проверенны.
Сообщение отредактировал Genadi Zawidowski - Jan 6 2013, 00:38
|
|
|
|
|
Nov 11 2013, 15:23
|
Группа: Новичок
Сообщений: 4
Регистрация: 9-10-13
Пользователь №: 78 656

|
Товарищи, день добрый! Стараюсь победить LMX2347. Инициализация, вроде, проходит успешно. Но частота скачет в пределах 2кГц, деление происходит непонятно. учитывая что подаю сигнал с кварцевого резонатора, он очень стабильный (и то то другое контролирую ч3-63/1 поверенным). Вот как у меня странно делится частота (в качетве примера, коэф. деления брал любые): 1. подаю 25.000.00 Гц. В=3,A=3 --> N=99. Т.е. 25.000.00/100=25.000. У меня почему-то 18.000.00 2. подаю 25.000.00 Гц. В=7,А=3 --> N=227. Т.е. 25.000.00/227=11013. У меня почему-то 7.712.00 2. подаю 25.000.00 Гц. В=11,А=3 --> N=355. Т.е. 25.000.00/355=7042. У меня почему-то 4.908.00 Ну и так далее. Т.е. микросхема реагирует на конфигурацию, выключается, включается, меняется коэфф. деления, но где-то ошибка. Код инициализации. CODE /*настройка микросхемы lmx_2347 Порядок настройки: 1. Запись в регистр "N". NB_CNTR [9:0]=0000000011, NA_CNTR[4:0]=00011, PD[1:0]=00, ADDR=0. Коэфф. деления N=32*B+A, B>=A. В=3,A=3 --> N=99 2. Запись в регистр "R". R_OPT[2:0]=000, LD_OUT[1:0]=11, PD_POL=1, CP_TRI=1, R_CNTR[9:0]=0000000000, ADDR=1*/ void lmx_2322_tune(void) { /*1. Запись в регистр "N"*/ char i; lmx_cfgL=0b00000000;//последние 2 бита lmx_cfgM=0b11000110;//следующие 8 бит lmx_cfgH=0b00000000;//первые 8 бит, начиная с MSB //LMX_LE=1; Delay10TCYx(1);//задержка 240нс LMX_LE=0; LMX_CLK=0; Delay10TCYx(1); Delay1TCY(); for(i=7;i>=0;i--) { LMX_DATA=(lmx_cfgH>>i)&0b00000001; //Delay1TCY(); LMX_CLK=1; Delay10TCYx(1);//задержка 240нс LMX_CLK=0; Delay10TCYx(1);//задержка 240нс }
for(i=7;i>=0;i--) { LMX_DATA=(lmx_cfgM>>i)&0b00000001; //Delay1TCY(); LMX_CLK=1; Delay10TCYx(1);//задержка 240нс LMX_CLK=0; Delay10TCYx(1);//задержка 240нс }
for(i=7;i!=5;i--) { LMX_DATA=(lmx_cfgL>>i)&0b00000001; //Delay1TCY(); LMX_CLK=1; Delay10TCYx(1);//задержка 240нс LMX_CLK=0; Delay10TCYx(1);//задержка 240нс }
Delay10TCYx(1);//задержка 240нс Delay10TCYx(1);//задержка 240нс LMX_LE=1; Delay10TCYx(1);//задержка 240нс LMX_LE=0;
/* 2. Запись в регистр "R"*/ lmx_cfgL=0b01000000; lmx_cfgM=0b00000000; lmx_cfgH=0b00011110; Delay10TCYx(1);//задержка 240нс LMX_LE=0; LMX_CLK=0; Delay1TCY(); for(i=7;i>=0;i--) { LMX_DATA=(lmx_cfgH>>i)&0b00000001; LMX_CLK=1; Delay10TCYx(1);//задержка 240нс LMX_CLK=0; Delay10TCYx(1);//задержка 240нс }
for(i=7;i>=0;i--) { LMX_DATA=(lmx_cfgM>>i)&0b00000001; LMX_CLK=1; Delay10TCYx(1);//задержка 240нс LMX_CLK=0; Delay10TCYx(1);//задержка 240нс }
for(i=7;i!=5;i--) { LMX_DATA=(lmx_cfgL>>i)&0b00000001; LMX_CLK=1; Delay10TCYx(1);//задержка 240нс LMX_CLK=0; Delay10TCYx(1);//задержка 240нс } Delay10TCYx(1);//задержка 240нс LMX_LE=1; } Схема, по которой включаю (сделал переходную платку для макета). Частоту подаю на вход Fin.
Сообщение отредактировал IgorKossak - Nov 11 2013, 21:43
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
|
|
|
|
|
Nov 18 2013, 10:23
|
Группа: Новичок
Сообщений: 4
Регистрация: 9-10-13
Пользователь №: 78 656

|
Цитата(Genadi Zawidowski @ Nov 17 2013, 04:05)  1) есть в даташите параметр - минимальная частота - для Fin она 200 МГц. 2) B должно быть не менее A 2. Учтено. Пробовал разные варианты - результат аналогичный. 1. Эммм. Но ведь у людей всё нормально работает с такими частотами. Может, на выход повесить буфер для преобразования в ТТЛ?
|
|
|
|
|
Nov 18 2013, 16:54
|
Группа: Новичок
Сообщений: 4
Регистрация: 9-10-13
Пользователь №: 78 656

|
в общем, 25МГц микросхема кушает только так. Проблему со стабильностью решил поставив между Fin и XFin 100пФ. Но! Заметил, что при увеличении Кдел, уровень сигнала на выходе заметно ослабляется. Поэтому буфер на ножке LD нужен обязательно для работы в широком диапазоне входных частот. Посоветуйте, пожалуйста, хороший ВЧ транзистор с микро током базы. Пробовал КТ3102 и подобные - сигнал сразу забивается. Сейчас смотрю в сторону ВЧ полевиков. Ещё остались вопросы по делителю NA - но о них чуть позже отпишусь, ещё поэкспериментирую. Потом окончательную схему выложу.
|
|
|
|
|
Nov 19 2013, 23:08
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
А кто сказал, что на этом выходе (LD) будет меандр? Вам туда не буфер, а счётный триггер надо... Цитата 2. Учтено. Пробовал разные варианты - результат аналогичный. В Ваших примерах было ещё не учтено. Теперь другие параметры программирования? РЕшать надо не конденсатором 100 пФ, а обеспечением согласования входа. Подайте входной сигнал через аттенюатор 6 дБ (не забывая про разделительные конденсаторы). Заодно избавит от проблем с выгоранием входов этой м.с. Там, где Вы её применяете, не беспокоит что она снята с производства?
Сообщение отредактировал Genadi Zawidowski - Nov 19 2013, 23:13
|
|
|
|
|
Nov 21 2013, 12:28
|
Группа: Новичок
Сообщений: 4
Регистрация: 9-10-13
Пользователь №: 78 656

|
Цитата(Genadi Zawidowski @ Nov 20 2013, 02:08)  Цитата А кто сказал, что на этом выходе (LD) будет меандр? Вам туда не буфер, а счётный триггер надо... А зачем меандр? Таймер-счётчик МК отлично считает импульсы разной длительности, потом получаем среднее значение за время счёта. В схемках, которые находил в интернете люди цепляют на LD просто NPN транзистор с питанием коллектора 5В - получается преобразователь в красивый ТТЛ уровень. Цитата В Ваших примерах было ещё не учтено. Теперь другие параметры программирования? Так. Вот здесь прошу подробнее. Такое чувство, что я чего-то непонимаю. Попробую перевести кусочек документации. 1.4 PROGRAMMABLE FEEDBACK DIVIDER (N COUNTER) The programmable feedback divider operates in concert with the RF prescaler to divide the input RF signal (FIN)bya factor of N. The output of the programmable reference di- vider is provided to the feedback input of the phase detector circuit. The programmable divider supports a continuous integer divide range from 992 to 32,767. The divide ratio should be chosen such that the maximum phase comparison frequency (Fφ) of 10 MHz is not exceeded. The programmable divider circuit is comprised of an A Counter and a B Counter. The A counter is a 5-bit CMOS swallow counter programmable from 0 to 31. The B Counter is a 10-bit CMOS binary counter, programmable from 3 to 1023. Divide ratios less than 992 are achievable as long as the binary counter value is greater or equal to the swallow counter value (NB_CNTR ≥ NA_CNTR). Refer to Section 2.3.2 and 2.3.3 for details on programming the NA and NB Counter. The following equations are useful in determining and programming a particular value of N: N = (32 x NB_CNTR) + NA_CNTR Т.е. мы имеем делитель с коэффициентом деления 992-32.767, который зависит от значений в регистре N. При этом значение фазового компаратора не должно превышать 10Мгц (не очень понятно, к чему это). Далее про части А и В регистра делителя - это понятно. Значения делителя менее 992 доступно, если соблюдать NB_CNTR ≥ NA_CNTR. Возвращаясь к моему примеру: NB_CNTR [9:0]=0000000011, NA_CNTR[4:0]=00011 (т.е. 3 и 3). Условие соблюдается. Но реально частота делится на 3. Дальше - всё аналогично, частота у меня делится просто на значение NB_CNTR (от 3 до 1023). Причём всё чётко, без сбоев. Формула N = (32 x NB_CNTR) + NA_CNTR не работает почему-то, и получить коэффициент деления >1023 не получается. Цитата РЕшать надо не конденсатором 100 пФ, а обеспечением согласования входа. Подайте входной сигнал через аттенюатор 6 дБ (не забывая про разделительные конденсаторы). Заодно избавит от проблем с выгоранием входов этой м.с. Согласен, но это следующий из этапов. На схеме входы подключены через конденсатор 1нФ. Цитата Там, где Вы её применяете, не беспокоит что она снята с производства? Заказал чисто из интереса, если хватит терпения, то хочу сделать частотомер. Знаю, что есть готовые проекты, но интересен сам процесс. Кстати, какой её современный аналог?
Сообщение отредактировал -VenoM- - Nov 21 2013, 12:32
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|