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

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

Оффлайн Егм

  • Hero Member
  • *****
  • Сообщений: 908
Re: Si5351
« Ответ #315 : Декабрь 20, 2019, 05:04:18 pm »
Для одной частоты  поиграв коэффициентами и частотой кварца можно мусор до -100 дБ опустить .
Но для полосы частот это почти нереально .
Мало кому нужен синтез с перестройкой 10 кГц .
Просчитать спуры не возможно . В своё время экспериментировал с 9850 , изменение температуры микрухи
вызывало появление пораженки . 
 

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: Si5351
« Ответ #316 : Декабрь 20, 2019, 05:42:11 pm »
Другой софт для SDR RTL (SDRSharp), другая "красота".
Si5351, CLK0, -20 dB ATT, NT7S lib, 36 762 000 Hz, 2 mA
« Последнее редактирование: Декабрь 20, 2019, 05:43:56 pm от veso74 »

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: Si5351
« Ответ #317 : Декабрь 20, 2019, 06:03:02 pm »
Si5351, CLK0, -20 dB ATT, файл Игорья: Si5351A-RevB-Registers.h из Si5351 ClockBuilder Pro, 36 762 000 Hz
---
Уменьшайте уровень до 2 mA.
« Последнее редактирование: Декабрь 20, 2019, 06:14:11 pm от veso74 »

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: Si5351
« Ответ #318 : Декабрь 20, 2019, 06:10:39 pm »
Si5351, CLK0, -20 dB ATT, UR5FFR lib, 36 762 000 Hz, 2 mA

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: Si5351
« Ответ #319 : Декабрь 20, 2019, 06:12:40 pm »
Si5351, CLK0, -20 dB ATT, упр. QRP-Labs, 36 762 000 Hz

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: Si5351
« Ответ #320 : Декабрь 20, 2019, 06:18:15 pm »
Si5351, CLK0, -20 dB ATT, LZ2WSG lib, 36 762 000 Hz

Оффлайн Relayer

  • Hero Member
  • *****
  • Сообщений: 1006
  • UR5FFR
Re: Si5351
« Ответ #321 : Декабрь 20, 2019, 06:22:18 pm »
Веселин, да у Игоря рыгол просто глючит :):)
PS Если не сложно сделайте еще прогон с самой свежей версией моей либы https://github.com/andrey-belokon/UR5FFR_Si5351 - там расширен диапазон до 225МГц и можно задавать пределы изменения частоты VCO
В любой схеме есть как минимум одна ненужная деталь :)

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 955
Re: Si5351
« Ответ #322 : Декабрь 20, 2019, 06:23:51 pm »
Я больше тестов о спекта Si5351 не буду делать. Никого не убеждаю. Используйте то, что считаете нужным.
---
Цитировать
там расширен диапазон до 225МГц и можно задавать пределы изменения частоты VCO
Охо ;) , посмотрел "в спешке" коде в предыдущий день, увидел, что есть изменения, но не попробовал еще.
Спасибо!  1999  Будем использовать библиотеку. :)
---
Для тест-генератор я дописал serial-управление, необходимо добавит там, так мне легко. Завтра попробую вероятно.
« Последнее редактирование: Декабрь 20, 2019, 06:30:11 pm от veso74 »

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

  • Administrator
  • *****
  • Сообщений: 20750
Re: Si5351
« Ответ #323 : Декабрь 20, 2019, 06:40:04 pm »
Веселин, да у Игоря рыгол просто глючит

 cr123 44443 pl33 lllol 1yep lol22
Ничего невозможного нет

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

  • Hero Member
  • *****
  • Сообщений: 1179
Re: Si5351
« Ответ #324 : Декабрь 21, 2019, 02:43:48 pm »
Где-то здесь я писал, что код управления Si5351A от QRP-Lab выдает целочисленный делитель в цепи PLL и дробный N. Это не так. Это я спутал с Si5340A. Вот там я родил код с дробным N, потому и считал, что так же у меня и все программы с Si5351A. Теперь остается выяснять, чем же код от QRP-Lab отличается от других..
Вот фрагмент:
void si5351aSetFrequency(uint32_t frequency)
{
1.   uint32_t pllFreq;
2.   uint32_t xtalFreq = XTAL_FREQ;
3.   uint32_t l;
4.   float f;
5.   uint8_t mult;
6.   uint32_t num;
7.   uint32_t denom;
8.   uint32_t divider;

9.   i2c_init();                  // Initialise the I2C

10.   divider = 900000000 / frequency;// Calculate the division ratio. 900,000,000 is the maximum internal
                           // PLL frequency: 900MHz
11.   if (divider % 2) divider--;      // Ensure an even integer division ratio

12.   pllFreq = divider * frequency;   // Calculate the pllFrequency: the divider * desired output frequency

13.   mult = pllFreq / xtalFreq;      // Determine the multiplier to get to the required pllFrequency
14.   l = pllFreq % xtalFreq;         // It has three parts:
15.   f = l;                     // mult is an integer that must be in the range 15..90
16.   f *= 1048575;               // num and denom are the fractional parts, the numerator and denominator
17.   f /= xtalFreq;               // each is 20 bits (range 0..1048575)
18.   num = f;                  // the actual multiplier is  mult + num / denom
19.   denom = 1048575;            // For simplicity we set the denominator to the maximum 1048575
« Последнее редактирование: Декабрь 21, 2019, 03:46:39 pm от Владимир_К »

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

  • Administrator
  • *****
  • Сообщений: 20750
Re: Si5351
« Ответ #325 : Декабрь 21, 2019, 03:11:05 pm »
Вот фрагмент:

А в двух словах по-русски для тупых?  cr123 1yep dontt44
Ничего невозможного нет

Оффлайн rn6lim

  • Hero Member
  • *****
  • Сообщений: 1269
  • Всеволод
Re: Si5351
« Ответ #326 : Декабрь 21, 2019, 03:20:08 pm »

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

  • Hero Member
  • *****
  • Сообщений: 1179
Re: Si5351
« Ответ #327 : Декабрь 21, 2019, 04:22:30 pm »
А в двух словах по-русски
По-русски. Я пронумеровал строки, чтобы было проще. Итак 1-8 строка. Это определения переменных. Надо растолковать компилятору, что собой представляет каждая переменная, с которой ему надо работать. Например uint32_t pllFreq; uint32_t (иногда пишут так - unsigned integer, то-есть беззнаковое целое). pllFreq32 - разрядность. pllFreq - имя переменной. Для этой переменной в памяти будет зарезервировано место - 4 байта, или 32 разряда. Вот поэтому надо сообщать компилятору, сколько разрядов содержит переменная.
9 строка - настройка модуля I2C.
Дальше основное:
10 строка. Определяем делитель, для чего делим максимальную частоту, на которой может работать ГУН, на частоту, которую должна выдать Si. Так как divider определен как целочисленный, то все, что после запятой будет отброшено. Кроме того, если он окажется нечетным, то вычитаем единицу. Это происходит в 11 строке. Дальше определяем истинное значение частоты, на которой будет работать ГУН (12 строка). Таким образом, видно, что делитель с таким алгоритмом будет целочисленным.
Дальше, в строках 13 и 19 определяем значение делителя в цепи PLL. Он представляет собой целую часть (mult), числитель дроби (num) и знаменатель 1048575. Это с "потолка". Что это за магическое число, почему именно такое. А это не что иное как FFFFF, в 16-ричной системе или  1111 1111 1111 1111 1111.
« Последнее редактирование: Декабрь 21, 2019, 04:28:32 pm от Владимир_К »

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

  • Administrator
  • *****
  • Сообщений: 20750
Re: Si5351
« Ответ #328 : Декабрь 21, 2019, 04:26:44 pm »
Спасибо.  1yep
В принципе, наверное, правильно, работать всё время с максимально возможным знаменателем, чтобы зря не грузить проц.  cr123
Оптимально ли это для заливки SI с точки зрения спуров - вопрос, надо будет как-нибудь глянуть.
« Последнее редактирование: Декабрь 21, 2019, 04:31:14 pm от Игорь 2 »
Ничего невозможного нет

Оффлайн Relayer

  • Hero Member
  • *****
  • Сообщений: 1006
  • UR5FFR
Re: Si5351
« Ответ #329 : Декабрь 21, 2019, 04:37:03 pm »
работать всё время с максимально возможным знаменателем, чтобы зря не грузить проц
Чтобы не грузить - лучше вобще не работать :) А знаменатель берут максимально возможный чтобы получить максимальную точность при задании дробного делителя.
В любой схеме есть как минимум одна ненужная деталь :)