Автор Тема: si5340A  (Прочитано 87761 раз)

0 Пользователей и 7 Гостей просматривают эту тему.

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: si5340A
« Ответ #165 : Апрель 13, 2020, 01:13:11 pm »
Владимир_K, да, нашел я вариант чтобы избежать переполнение.
Без ULL расчет работал 1 разред меньше (до 0x7FFF FFFF FFFF FFFF). С ULL - значение до UINT64_MAX.
Значит Arduiono нормально работает с 64-битовие переменные, как uint64_t, так и int64_t. (Лично успокоился :) ).

Теперь к Si5340A масштабирование с максимальным знаменателем:
void set_freq(uint32_t freq) {
  uint32_t R_DIV = 2;
  uint64_t num = (FVCO * 0xFFFFFFFFULL) / (R_DIV * freq);
  uint8_t N_reg[11];

  N_reg[0] = (uint8_t)num;          // N0_NUM[7:0]
  N_reg[1] = (uint8_t)(num >>;   // N0_NUM[15:8]
  N_reg[2] = (uint8_t)(num >> 16);  // N0_NUM[23:16]
  N_reg[3] = (uint8_t)(num >> 24);  // N0_NUM[31:24]
  N_reg[4] = (uint8_t)(num >> 32);  // N0_NUM[39:32]
  N_reg[5] = (uint8_t)(num >> 40);  // N0_NUM[43:40]

  N_reg[6] = 0xFF;                  // N0_DEN[7:0]
  N_reg[7] = 0xFF;                  // N0_DEN[15:8]
  N_reg[8] = 0xFF;                  // N0_DEN[23:16]
  N_reg[9] = 0xFF;                  // N0_DEN[31:24]

  N_reg[10] = 0x01;                 // N0_UPDATE

  write_regs(0x0302, N_reg);        // page, start reg, data array
}
---
"Не трогаю" FVCO вчера (13,2 GHz), отправив частоту по серийному порту, получил с Si грубо 3..310 MHz. 99% моих требований к чипам удовлетворены. Я даже думаю о том, чтобы не пересчитывать М-divider, но R-divider можно добавить (2..8..32?)в расчете, напр. 500 kHz - "хорошая частота" напр. для теста с ЕМФ-ов ;) .
« Последнее редактирование: Апрель 13, 2020, 01:28:17 pm от veso74 »

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: si5340A
« Ответ #166 : Апрель 13, 2020, 07:15:17 pm »
Есть некоторое ограничение :/ 64b переменная не переполняется, но когда я отправляю к чипе при макс знаменатель, чип не работает. Помощь?

Оставляю на данный момент с 0x20000000, так умножение равносилно перемещение.

Другое: динамическое изменение М-divider не нравится: кроме необходимость мягкого сброса, так и по отношении калибрационного кварцегого коефициента: при изменение М-divider, XAXB_FREQ_OFFSET также должно изменяться пропорционально (если отличается от нуля, а калибрация всегда есть). Будем думать и собирать дальше. Для меня важно, чтобы основания функция заработала.
« Последнее редактирование: Апрель 13, 2020, 07:17:24 pm от veso74 »

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: si5340A
« Ответ #167 : Апрель 13, 2020, 07:31:00 pm »
Если я правильно понял у вас разрядности переменной не хватает?
Вы тогда сперва разделите, а то что получите умножите на .... fffff .... я так делал и тогда разрядности хватало double long.

  uint64_t num = (FVCO * 0xFFFFFFFFULL) / (R_DIV * freq);

FVCO * 0xFFFFFFFFULL это тяжелое умножение.

  uint64_t num = FVCO * (double long)( 0xFFFFFFFFULL/ (R_DIV * freq));
Так можно попробовать.
« Последнее редактирование: Апрель 13, 2020, 07:35:09 pm от ra0ahc »
Да да, я знаю, у меня ничего не получится )))

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: si5340A
« Ответ #168 : Апрель 13, 2020, 07:44:18 pm »
long double у меня нет. long double с плавающей точкой? 
long double ->3.4E 4932 ... 1.1E 4932. ухуууу :)

Только float = double есть в Arduino Nano-UNO (6-7 знака после запетаи), мало, а и не хочу использовать с пл. запетаю.
Xватает разрядности в Arduino, в Serial данни ОК. Предположение: некоторой беспорядок происходит с делителям или с их загрузки
---
Остаются таким пока: uint64_t num = (FVCO << 29) / (R_DIV * freq);
« Последнее редактирование: Апрель 13, 2020, 08:39:12 pm от veso74 »

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: si5340A
« Ответ #169 : Апрель 16, 2020, 01:25:47 am »
расчет и зарядка одной частоты OUT0, по I2C 100 kHz -> 1576 us, по I2C 400 kHz -> 664 us

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: si5340A
« Ответ #170 : Апрель 16, 2020, 04:37:05 am »
Время забыть про ардуину и перейти на stm32
Да да, я знаю, у меня ничего не получится )))

Оффлайн VA7KL

  • Administrator
  • *****
  • Сообщений: 142
  • ex-VA7FFT
Re: si5340A
« Ответ #171 : Апрель 16, 2020, 07:45:14 am »
STM32F745 записывала в AD9959 по QuadSPI за 400 наносекунд. Теперь работаем над H747...

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: si5340A
« Ответ #172 : Апрель 16, 2020, 09:58:55 am »
I2C на 100 kHz не как QuadSPI. Задержка из-за спецификации шины, а не из-за Arduino :) . Расчет примерно за 96 us.
А и не спешу нигде :) .
« Последнее редактирование: Апрель 16, 2020, 10:08:57 am от veso74 »

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: si5340A
« Ответ #173 : Апрель 23, 2020, 10:32:06 pm »
Потребляемый ток при 4 выхода: 320 mA (изм. в 12V шина перед стабилизаторами, с Arduino UNO на 5V шини):
OUT0 = 20 000 000 Hz
OUT1 = 10 000 000 Hz
OUT2 = 7 500 000 Hz
OUT3 = 5 000 000 Hz
при установлены их соответствующими делителями: N0, N1, N2, N3, с FVCO const = 13,2 GHz

"Горячий синтезатор", и интересен. Кроме тока не вижу ничего негативного при использовании (даже как первой гет.). 
Управление относительно простое: регистры расположены один за другим. Все, что мне нужно сделать еще: автоматизировать расчет коэффициентов и для других трех выходов: OUT1, OUT2, OUT3.
« Последнее редактирование: Апрель 23, 2020, 10:48:58 pm от veso74 »

Оффлайн Владимир_К

  • Hero Member
  • *****
  • Сообщений: 1179
Re: si5340A
« Ответ #174 : Декабрь 23, 2020, 03:23:37 pm »
Всем привет! Коллеги, прошу помощи в решении проблемы. Сейчас занимаюсь с Si5340A. Стал вопрос в выборе опорного генератора. У меня два модуля с микросхемой. В одном опорник на 80 мгц, фирмы Jauch, второй модуль - опорник Geyer на 100 мгц. Спектр от второго модуля на 100 мгц опорнике - шумы почти на 10 дб выше. Ну решил, что Jauch круче, прикупил пару генераторов на 100 мгц от этой фирмы.  Сегодня запаял один - шум на 30 дб стал еще выше. Причем, что интересно, по мере прогрева шум снижается, примерно на 5 дб.
В  общем вопрос такой, что применить, может кто имел дело с хорошим вариантом. Сейчас попробую спаять на небуферированной логике, на 5 гармонику.

Оффлайн Игорь 2

  • Administrator
  • *****
  • Сообщений: 20748
Re: si5340A
« Ответ #175 : Декабрь 23, 2020, 03:46:51 pm »
В  общем вопрос такой, что применить, может кто имел дело с хорошим вариантом.

Собирается свой отдельный генератор, к примеру тот же 3001 у меня давно уже работает (вторая электрическая гармоника), опять же, никто не мешает выходить и на третью электрическую гармонику.
Кварцы, не предназначенные для механической гармониковой работы, я бы не рискнул использовать, там есть скользкие места, тем более, при работе на частотах выше 30 МГц.  123123
Если нужны сотни мегагерц опоры при минимуме шума, опять же решение однозначно - множите снаружи, и вливаете в SI.
Есть, к слову, масса монолитных копеечных фильтров на сотни мегагерц, можно ими подчищать мусор после умножения... lol22
« Последнее редактирование: Декабрь 23, 2020, 04:04:40 pm от Игорь 2 »
Ничего невозможного нет

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: si5340A
« Ответ #176 : Декабрь 23, 2020, 04:15:44 pm »
У меня сишка эта испод зуется в приборе сдр от Игоря , но там и синт стоит Игоря и с шумами там проблем нет. Сишку  я третировал 120 МГц  генератором обычным смд. Увод частоты не проверял. Для прибора эта микруха  перебор . Да и греется она... хотя вы в курсе
Да да, я знаю, у меня ничего не получится )))

Оффлайн Владимир_К

  • Hero Member
  • *****
  • Сообщений: 1179
Re: si5340A
« Ответ #177 : Декабрь 23, 2020, 04:18:57 pm »
Спасибо, попробую.. Но придется добавлять  на плату что-то, поэтому попробую затактировать просто от кварца. Время поджимает. Думал по-быстрому  вопрос решить. Вчера заказал генераторы, сегодня получил... фуфло.

Оффлайн Владимир_К

  • Hero Member
  • *****
  • Сообщений: 1179
Re: si5340A
« Ответ #178 : Декабрь 23, 2020, 04:24:39 pm »
У меня сишка эта испод зуется в приборе сдр от Игоря , но там и синт стоит Игоря и с шумами там проблем нет.
Наверное будут проблемы, если шум на 30 дб выше, чем имеет копеечная Si5351A.
Видел Вашу плату синтезатора. Впечатляет. Сам бы собрал такую, но вопрос печатки... Вы тоже писали, что генераторы плохие у китайцев купили?

Оффлайн Игорь 2

  • Administrator
  • *****
  • Сообщений: 20748
Re: si5340A
« Ответ #179 : Декабрь 23, 2020, 04:25:25 pm »
Да, как раз, когда первые DDS пошли, где-то в конце 90-х по-моему, ко мне Сергей Макаркин часто с ними приезжал фазовые щумы мерить при тактировании от готовых генераторов.  1yep
Смотрел, грустил, уезжал, приезжал с новыми, опять грустил, а потом плюнул и говорит - любителям и так пойдёт, или, что-то, типа того...
 44443 lllol
Ничего невозможного нет