LMX2306 как делитель
|
доцент2 |
Дата: Ср, 09.01.2019, 11:23 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
446
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Накопал в закромах lmx2306. Хотелось бы попробовать использовать его как делитель частоты (прескаллер) для частотомера. В наличие есть BAS6456, но он без сигнала шумит. Показания выдает пока его "носом" не ткнешь в источник сигнала с нормальной амплитудой. И то если он его не "загасит" своей емкостью и сопротивлением. В инете полно схем с lmx2306 как синтезатора и делителя, но кроме даташит описания практически нет. С даташитом никак не разберусь (в трех соснах заблудился). Может у кого есть наработки с установкой 2306 как делителя. И как устанавливаются коэффициенты деления.
|
|
|
|
|
anatol |
Дата: Ср, 09.01.2019, 21:11 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
615
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
Цитата доцент2 (  ) Хотелось бы попробовать использовать его как делитель частоты (прескаллер) А где вы нашли выход прескалера (делителя)? Вход есть, а выхода нетути...туда дуй - оттуда сами знаете что.
|
|
|
|
|
доцент2 |
Дата: Чт, 10.01.2019, 16:28 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
446
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Вот на вскидку несколько вариантов использование синтезаторов частоты в качестве делителей в частотомерах.
|
|
|
|
|
anatol |
Дата: Пт, 11.01.2019, 03:07 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
615
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
Я имел ввиду чисто предварительный счетчик (прескалер) который делит до 8. Вторая часть делителя кажется имеет минимальный коэф..деления = 3. У меня есть предубеждение к ДКПД (делитель с переменным коэфф..деления). Не лежит душа хоть тресни. нравятся делители на 2 в периоде, крайняк на 10 или 100. Причем в "железе", не программируемые.
|
|
|
|
|
доцент2 |
Дата: Пт, 11.01.2019, 17:06 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
446
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
В различных схемах частотомеров авторы получают коэф., например 256. Но как....описания нет, есть готовые прошивки.
Сообщение отредактировал
доцент2 - Пт, 11.01.2019, 17:07
|
|
|
|
|
anatol |
Дата: Пт, 11.01.2019, 19:41 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
615
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
Цитата доцент2 (  ) Но как....описания нет А даташит нафига. Там все команды есть, и формулы для расчета. Шина SPI
|
|
|
|
|
доцент2 |
Дата: Пт, 11.01.2019, 20:45 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
446
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Да вот и заблудился в трех регистрах. Anatol если бы я разобрался с этим даташитом, наверное сюда бы не обращался за помощью.
Сообщение отредактировал
доцент2 - Сб, 12.01.2019, 14:08
|
|
|
|
|
доцент2 |
Дата: Ср, 13.02.2019, 21:21 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
446
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Дошли руки до LMX2306.
На разных форумах пишут, что для конфигурации в качестве прескалера достаточно провести инициализацию (регистр F) и сконфигурировать счетчик (регистр N). Подаю на вход LMX 78МГц, но на выходе результат пока 0. Похоже где то накосячил. Подскажите где копать. 'инициализация прескалера ' LSB <--------- <---------- <---------- <---------- MSB 'c1 c2 | f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 f18 f19 ' 1 1 | 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 'рег F | ' | | ' cfq_H | cfq_L | cfq_M | cfq_M=$01 ' cfq_L=$80 ' cfq_H=$18 ' GoSub LMX_set 'настройка прескалера (счетчика) ' LSB <--------- <---------- <---------- <---------- MSB 'c1 c2 | n1 n2 n3 n4 n5 | n6 n7 n8 n9 n10 n11 n12 | n13 n14 n15 n16 n17 n18 n19 ' 1 0 | 0 0 0 0 0 | 1 0 1 1 1 1 1 | 0 0 0 0 0 0 1 'рег N | A=0 x x | B=125 | ' | | | ' cfq_H | cfq_L | cfq_M | ' для LMX2306 значение делителя N=B*P+A = 125*8+0 = 1000 cfq_M=$81 ' cfq_L=$2F ' cfq_H=$10 ' GoSub LMX_set
'передача на LMX2306 LMX_set: LMX_LE=1 ' запрет на передачу DelayUS 50 ' 50ns LMX_LE=0 ' разрешение на передачу
For cfq_i=7 To 0 LMX_Clock = 0 LMX_Data = cfq_M.0 DelayUS 50 LMX_Clock = 1 ' запись данных в регистр cfq_M.0 = cfq_M >>1 DelayUS 50 Next
For cfq_i=7 To 0 LMX_Clock = 0 LMX_Data = cfq_L.0 DelayUS 50 LMX_Clock = 1 ' запись данных в регистр cfq_L.0 = cfq_L >>1 DelayUS 50 Next
For cfq_i=4 To 0 LMX_Clock = 0 LMX_Data = cfq_H.0 DelayUS 50 LMX_Clock = 1 ' запись данных в регистр cfq_H.0 = cfq_H >>1 DelayUS 50 Next LMX_LE=1 'запрет на передачу Return
|
|
|
|
|
Aleksey_174 |
Дата: Чт, 14.02.2019, 04:23 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
93
Замечания:
±
На сайте с 22.01.2017
Статус:
Offline
|
Зачем вы пытаетесь передавать побитово, если есть специальные команды LMX_LE=0 ' разрешение на передачу SHOut LMX_Data , LMX_Clock , MsbFirst, [ %10000000,%10111111,%0000001 ] LMX_LE=1 'запрет на передачу и если уж на то пошло, то на Basic это будет выглядеть примерно так For cfq_i=0 To 7 LMX_Clock = 1 ' запись данных в регистр LMX_Data = GetBit cfq_M,cfq_i DelayUS 50 LMX_Clock = 0 Next
|
|
|
|
|
доцент2 |
Дата: Чт, 14.02.2019, 10:59 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
446
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Спасибо за ответ. Думаю способ передачи не особо принципиален. "Ножкодрыг" меньше места занимает, а иногда и шустрее. Мне нужно передать 21 bit. ' LSB <--------- <---------- <---------- <---------- MSB 'c1 c2 | f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 f18 f19 ' 1 1 | 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 т.е. так LMX_LE=0 ' SHOut LMX_Data , LMX_Clock , MsbFirst, [ %00000001,%10000000,%00011000\5 ] или SHOut LMX_Data , LMX_Clock , MsbFirst, [ cfq_M \ 8, cfq_L \8, cfq_H \ 5 ] LMX_LE=1 '
Собственно результат тот же. С выхода LMX тишина. Может с последовательностью передачи bit ошибаюсь. Но больше грешу на то, что не разобрался в настройках регистров LMX.
Сообщение отредактировал
доцент2 - Чт, 14.02.2019, 11:58
|
|
|
|
|
ivan_fd |
Дата: Пт, 15.02.2019, 14:51 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Специалист
Сообщений:
1125
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
доцент2, не знаю проверяли ли Вы ваш код. У меня, Протон 3.5.7.7, код:
Код For cfq_i=7 To 0 LMX_Clock = 0 LMX_Data = cfq_M.0 DelayUS 50 LMX_Clock = 1 ' запись данных в регистр cfq_M.0 = cfq_M >>1 DelayUS 50 Next
не работает.
Должно быть так:
Код For cfq_i=7 To 0 Step -1 LMX_CLOCK = 0 LMX_DATA = cfq_M.0 DelayUS 50 LMX_CLOCK = 1 ' çàïèñü äàííûõ â ðåãèñòð cfq_M = cfq_M >>1 DelayUS 50 Next
Посмотрите внимательно. А на счет SHOut LMX_DATA , LMX_CLOCK , MsbFirst, попробуйте LsbFirst. Ваш ногодрыг передает LsbFirst.
P.S: Хотя в даташите пишет
Цитата Note: *In programming the counter, data is shifted in MSB first.
Binary Serial Data Input. Data entered MSB first. The last two bits are the control bits. High impedance CMOS input.
Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал
ivan_fd - Пт, 15.02.2019, 15:41
|
|
|
|
|
доцент2 |
Дата: Пт, 15.02.2019, 17:35 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
446
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Цитата ivan_fd (  ) For cfq_i=7 To 0 Step -1 Спасибо, эту ошибку сам нашел. Разобрался с последовательностью записи в регистры. Сейчас все заработало, пока использовал команду SHOut LMX_Data, LMX_Clock, MsbFirst, [ cfq_M, cfq_L, cfq_H\5 ]
|
|
|
|
|
ivan_fd |
Дата: Сб, 16.02.2019, 12:40 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Специалист
Сообщений:
1125
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Ну так напишите в чем дело было, может кому то поможет в будущем?
Меня все время преследуют умные мысли...но я быстрее!!!
|
|
|
|
|
доцент2 |
Дата: Вс, 17.02.2019, 15:56 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
446
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Замотался. Вот пример конфигурации для делителя на 64: 'настройка регистр R (!!!только при работе как синтезатора!!!) cfq_M=$00 ' регистр R cfq_L=$00 ' cfq_H=$00 ' GoSub LMX_set
'настройка делителя (прескалера) 1:64 регистр N cfq_M=$00 'регистр N для LMX2306 N=B*P+A = 8*8+0 = 64 cfq_L=$20 ' 1:64 А=0 В=8 cfq_H=$01 ' 'GoSub LMX_set
'инициализация регистр F cfq_M=$00 ' регистр F cfq_L=$01 ' cfq_H=$03 ' GoSub LMX_set
LMX_set: LMX_LE=1 'запрет на передачу DelayMS 50 LMX_LE=0 'разрешение на передачу LMX_Clock=0 SHOut LMX_Data, LMX_Clock, MsbFirst, [ cfq_M, cfq_L, cfq_H\5 ] LMX_LE=1 'запрет на передачу Return
|
|
|
|