Форум Радиолюбителей

si5340A

348831 просмотров, 196 ответов — стр. 12 из 14

veso74
Сообщений: 969
13 апреля 2020 г. в 01:13#166
Владимир_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 - "хорошая частота" напр. для теста с ЕМФ-ов .
veso74
Сообщений: 969
13 апреля 2020 г. в 07:15#167
Есть некоторое ограничение :/ 64b переменная не переполняется, но когда я отправляю к чипе при макс знаменатель, чип не работает. Помощь?

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

Другое: динамическое изменение М-divider не нравится: кроме необходимость мягкого сброса, так и по отношении калибрационного кварцегого коефициента: при изменение М-divider, XAXB_FREQ_OFFSET также должно изменяться пропорционально (если отличается от нуля, а калибрация всегда есть). Будем думать и собирать дальше. Для меня важно, чтобы основания функция заработала.
ra0ahcra0ahc
Сообщений: 4868
13 апреля 2020 г. в 07:31#168
Если я правильно понял у вас разрядности переменной не хватает?
Вы тогда сперва разделите, а то что получите умножите на .... fffff .... я так делал и тогда разрядности хватало double long.

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

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

uint64_t num = FVCO * (double long)( 0xFFFFFFFFULL/ (R_DIV * freq));
Так можно попробовать.
veso74
Сообщений: 969
13 апреля 2020 г. в 07:44#169
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);
veso74
Сообщений: 969
16 апреля 2020 г. в 01:25#170
расчет и зарядка одной частоты OUT0, по I2C 100 kHz -> 1576 us, по I2C 400 kHz -> 664 us
ra0ahcra0ahc
Сообщений: 4868
16 апреля 2020 г. в 04:37#171
Время забыть про ардуину и перейти на stm32
VA7KLVA7KL
Сообщений: 158
16 апреля 2020 г. в 07:45#172
STM32F745 записывала в AD9959 по QuadSPI за 400 наносекунд. Теперь работаем над H747...
veso74
Сообщений: 969
16 апреля 2020 г. в 09:58#173
I2C на 100 kHz не как QuadSPI. Задержка из-за спецификации шины, а не из-за Arduino . Расчет примерно за 96 us.
А и не спешу нигде .
veso74
Сообщений: 969
23 апреля 2020 г. в 10:32#174
Потребляемый ток при 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.
Владимир_К
Сообщений: 1245
23 декабря 2020 г. в 03:23#175
Всем привет! Коллеги, прошу помощи в решении проблемы. Сейчас занимаюсь с Si5340A. Стал вопрос в выборе опорного генератора. У меня два модуля с микросхемой. В одном опорник на 80 мгц, фирмы Jauch, второй модуль - опорник Geyer на 100 мгц. Спектр от второго модуля на 100 мгц опорнике - шумы почти на 10 дб выше. Ну решил, что Jauch круче, прикупил пару генераторов на 100 мгц от этой фирмы. Сегодня запаял один - шум на 30 дб стал еще выше. Причем, что интересно, по мере прогрева шум снижается, примерно на 5 дб.
В общем вопрос такой, что применить, может кто имел дело с хорошим вариантом. Сейчас попробую спаять на небуферированной логике, на 5 гармонику.
Игорь 2
Сообщений: 21288
23 декабря 2020 г. в 03:46#176
Цитата: Владимир_К
В общем вопрос такой, что применить, может кто имел дело с хорошим вариантом.


Собирается свой отдельный генератор, к примеру тот же 3001 у меня давно уже работает (вторая электрическая гармоника), опять же, никто не мешает выходить и на третью электрическую гармонику.
Кварцы, не предназначенные для механической гармониковой работы, я бы не рискнул использовать, там есть скользкие места, тем более, при работе на частотах выше 30 МГц.
Если нужны сотни мегагерц опоры при минимуме шума, опять же решение однозначно - множите снаружи, и вливаете в SI.
Есть, к слову, масса монолитных копеечных фильтров на сотни мегагерц, можно ими подчищать мусор после умножения...

ra0ahcra0ahc
Сообщений: 4868
23 декабря 2020 г. в 04:15#177
У меня сишка эта испод зуется в приборе сдр от Игоря , но там и синт стоит Игоря и с шумами там проблем нет. Сишку я третировал 120 МГц генератором обычным смд. Увод частоты не проверял. Для прибора эта микруха перебор . Да и греется она... хотя вы в курсе
Владимир_К
Сообщений: 1245
23 декабря 2020 г. в 04:18#178
Спасибо, попробую.. Но придется добавлять на плату что-то, поэтому попробую затактировать просто от кварца. Время поджимает. Думал по-быстрому вопрос решить. Вчера заказал генераторы, сегодня получил... фуфло.
Владимир_К
Сообщений: 1245
23 декабря 2020 г. в 04:24#179
Цитата: ra0ahc
У меня сишка эта испод зуется в приборе сдр от Игоря , но там и синт стоит Игоря и с шумами там проблем нет.

Наверное будут проблемы, если шум на 30 дб выше, чем имеет копеечная Si5351A.
Видел Вашу плату синтезатора. Впечатляет. Сам бы собрал такую, но вопрос печатки... Вы тоже писали, что генераторы плохие у китайцев купили?
Игорь 2
Сообщений: 21288
23 декабря 2020 г. в 04:25#180
Да, как раз, когда первые DDS пошли, где-то в конце 90-х по-моему, ко мне Сергей Макаркин часто с ними приезжал фазовые щумы мерить при тактировании от готовых генераторов.
Смотрел, грустил, уезжал, приезжал с новыми, опять грустил, а потом плюнул и говорит - любителям и так пойдёт, или, что-то, типа того...