Автор Тема: Птеродактиль трансивер (аналог+DDC)  (Прочитано 169912 раз)

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

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

  • Administrator
  • *****
  • Сообщений: 19680
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1710 : Май 28, 2022, 08:05:56 pm »
Пока синт Игоря даже со свистульками - рулит!

Это какие ещё свистульки?  44443 pl33 lllol lol22
У меня полный чистяк на аппаратах... 1999
Ничего невозможного нет

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1711 : Май 28, 2022, 08:06:48 pm »
Пока синт Игоря даже со свистульками - рулит!

Это какие ещё свистульки?  44443 pl33 lllol lol22
У меня полный чистяк на аппаратах... 1999
У вас же нет плис )))
Да да, я знаю, у меня ничего не получится )))

Оффлайн Valery Gusarov

  • Hero Member
  • *****
  • Сообщений: 2183
  • UA4HBO
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1712 : Май 28, 2022, 08:07:44 pm »
влияние математики (для ADF4351)  - несколько чисел разные, а я даже не дотронулся рукой до платы
И под каждую частоту ПЧ видимо свои... 

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1713 : Май 28, 2022, 08:08:03 pm »
    // PLL-Reg-R0         =  32bit
    //   Registerselect        4bit
    //  int N_Int = 92;       // 16bit
    int Prescal = 0;         // 1bit geht nicht ??? it does not work
  // int Autocal = 1;          //1 bit   =0 для мелких изменений <10кГц =1 для остальных изменений.
    //  reserved           // 10bit

    // PLL-Reg-R1         =  32bit
    //   Registerselect        4bit
    //   int FRAC1 = 10;       // 24 bit
    //   reserved              // 4bit

    // PLL-Reg-R2         =  32bit
    //    Registerselect        4bit
    int M_Mod2 = 16383;            // 14 bit
    //    int Frac2 = 0;            // 14 bit


    // PLL-Reg-R3         =  32bit - FIXED !
    // Registerselect        4bit
    //Fixed value to be written = 0x3 =3


    // PLL-Reg-R4         =  32bit
    // Registerselect        4bit
    int U1_CountRes = 0;     // 1bit
    int U2_Cp3state = 0;     // 1bit
    int U3_PwrDown = 0;      // 1bit
    int U4_PDpola = 1;       // 1bit
    int U5_MuxLog = 1;          // 1bit
    int U6_RefMode = 1;          // 1bit
    //  int U5_LPD = 0;          // 1bit
    //  int U6_LPF = 1;          // 1bit 1=Integer, 0=Frac not spported yet
    int CP_ChgPump = 9;      // 4bit
    int D1_DoublBuf = 0;     // 1bit
    int R_Counter = 1;       // 10bit
    int RD1_Rdiv2 = 0;       // 1bit
    int RD2refdoubl = 0;     // 1bit
    int M_Muxout = 6;        // 3bit
    // reserved              // 2bit



    // PLL-Reg-R5         =  32bit
    // Registerselect        // 4bit
    // Phase Select: Not of partcular interst in Amatuer radio applications. Leave at a string of zeros.

    // PLL-Reg-R6         =  32bit
    // Registerselect        // 4bit
    //Variable value to be written!!!
    int D_out_PWR = mdbm;      // 2bit  OutPwr 0-3 3= +5dBm   Power out 1
    int D_RF_ena = 1;            // 1bit  OutPwr 1=on           0 = off  Outport Null freischalten
    int Reserved  = 0;                 // 3bit
    int D_RFoutB = 1;         // 1bit  aux OutSel
    int D_MTLD = 0;              // 1bit
    int CPBleed = 126;   // 8bit
    int D_RfDivSel = 3;      // 3bit 3=70cm 4=2m    lokale Variable
    int D_FeedBack = 1;       // 1bit
    // reserved              // 7bit

    // PLL-Reg-R7         =  32bit
    // Registerselect        // 4bit
    //Fixed value to be written = 0x120000E7 = 301990119 (dec)

    // PLL-Reg-R8         =  32bit
    // Registerselect        // 4bit
    //Fixed value to be written = 0x102D0428 = 271385640 (dec)

    // PLL-Reg-R9         =  32bit
    // Registerselect        // 4bit
    //Fixed value to be written = 0x5047CC9 = 84180169 (dec)

    // PLL-Reg-R10         =  32bit
    // Registerselect        // 4bit
    //Fixed value to be written = 0xC0067A = 12584570 9dec)

    // PLL-Reg-R11         =  32bit
    // Registerselect        // 4bit
    //Fixed value to be written = 0x61300B = 6369291 (dec)

    // PLL-Reg-R12         =  32bit
    // Registerselect        // 4bit
    //Fixed value to be written = 0x1041C = 66588 (dec)

    // Referenz Freg Calc






    // int F4_BandSel = 10.0 * B_BandSelClk / PFDFreq;
    double RFout = Freq;       // VCO-Frequenz  144200000  Freq ist global, RFout ist lokal

    // calc bandselect und RF-div
    float outdiv = 1;
    if (RFout >= 680000000) {
        outdiv = 0.5f;
        D_RfDivSel = 0;
        D_RFoutB = 0;
        D_RF_ena = 0;
    }
    if (RFout < 680000000) {
        outdiv = 1;
        D_RfDivSel = 0;
        D_RFoutB = 1;
        D_RF_ena = 1;
    }
    if (RFout < 340000000) {
        outdiv = 2;
        D_RfDivSel = 1;
        D_RFoutB = 1;
        D_RF_ena = 1;
    }
    if (RFout < 170000000) {
        outdiv = 4;
        D_RfDivSel = 2;
        D_RFoutB = 1;
        D_RF_ena = 1;
    }
    if (RFout < 85000000) {
        outdiv = 8;
        D_RfDivSel = 3;
        D_RFoutB = 1;
        D_RF_ena = 1;
    }
    if (RFout < 42500000) {
        outdiv = 16;
        D_RfDivSel = 4;
        D_RFoutB = 1;
        D_RF_ena = 1;
    }
    if (RFout < 21250000) {
        outdiv = 32;
        D_RfDivSel = 5;
        D_RFoutB = 1;
        D_RF_ena = 1;
    }
    if (RFout < 10625000) {
        outdiv = 64;
        D_RfDivSel = 6;
        D_RFoutB = 1;
        D_RF_ena = 1;
    }

/////////////////////////////////////////////////////////////////////////////
//////////////////////// N and Frac1 and Frac2 calculations /////////////////
//////////////////////// Done using double precision 64 bit /////////////////
//////////////////////// Results agree exactly with AD demo /////////////////
/////////////////////////////////////////////////////////////////////////////

    double PFDFreq = refin * ((1.0 + RD2refdoubl) / (R_Counter * (1.0 + RD1_Rdiv2))); //Phase detector frequency

    double N = (outdiv*RFout) / PFDFreq;   // Calculate N

    int N_Int = (int)N;   // N= 50 for 5 GHz   // Turn N into integer

    double F_Frac1x = (N - N_Int) * pow(2, 24);   // Calculate Frac1 (N remainder * 2^24)

    int F_FracN = (int)F_Frac1x;  // turn Frac1 into an integer

    double F_Frac2x = ((F_Frac1x - F_FracN)) * pow(2, 14);  // Claculate Frac2 (F_FracN remainder * 2^14)

    int F_Frac1 =   (int)F_Frac1x;  // turn Frac1 into integer
    int F_Frac2 =   (int)F_Frac2x;  // turn Frac2 into integer



////////////////// Set 32 bit register values R0 to R12 ///////////////////////////

    R[0] = (unsigned long)(0 + N_Int * pow(2, 4) + Prescal * pow(2, 20) + Autocal * pow(2,21)); // R0 für Startfrequenz ok

    //  R[0] = (unsigned long)(0x203200);

    R[1]=(unsigned long)(1 + F_Frac1 * pow(2, 4));

    //R[1] = (unsigned long)(0x20C491);

    R[2] = (unsigned long)(2 + M_Mod2 * pow(2, 4) + F_Frac2 * pow(2, 18)); //


    R[3] = (unsigned long)(0x3);  //Fixed value (Phase control not needed)


    R[4] = (unsigned long)(4 + U1_CountRes * pow(2, 4) + U2_Cp3state * pow(2, 5) + U3_PwrDown * pow(2, 6) + U4_PDpola * pow(2, 7) + U5_MuxLog * pow(2, 8) + U6_RefMode * pow(2, 9) + CP_ChgPump * pow(2, 10) + D1_DoublBuf * pow(2, 14) + R_Counter * pow(2, 15) + RD1_Rdiv2 * pow(2, 25) + RD2refdoubl * pow(2, 26) + M_Muxout * pow(2, 27));
    // R[4] = (unsigned long)(0x32050B84); //Variable But probably can leave fixed.


    R[5] = (unsigned long) (0x800025); // Fixed (Reserved)

    R[6] = (unsigned long)(6 + D_out_PWR * pow(2, 4) + D_RF_ena * pow(2, 6) + Reserved * pow(2, 7) + D_RFoutB * pow(2, 10) + D_MTLD * pow(2, 11) + Reserved * pow(2, 12) + CPBleed * pow(2, 13) +  D_RfDivSel * pow(2, 21) + D_FeedBack * pow(2, 24) +10 * pow(2, 25));
    // R[6] = (unsigned long) (0x35002076);   //variable

    R[7] = (unsigned long) (0x120000E7);
    R[8] = (unsigned long) (0x102D0428);
    R[9] = (unsigned long) (0x302FCC9);
    R[10] = (unsigned long) (0xC0043A);
    R[11] = (unsigned long) (0x61300B);
    R[12] = (unsigned long) (0x1041C);
Да да, я знаю, у меня ничего не получится )))

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 944
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1714 : Май 28, 2022, 08:11:27 pm »
Под именем файла в основном изменение коэффициентов. В главном: можете получить одну частоту каждого синтезатора бесконечным способов/коэффициентов. В одном случае важно одно, в другом — другое. Например скорость изменения, паразитные частоты и многое другое. (ни часто обратно пропорциональны.) И чип синтеза - уиверсальной, можно сконтролировать как угодно. А не как заработает схема в начало - с условно идентичные и предсказуемые параметры, например, как мультивибратор или схема с одним светодиодом и одним резистором.

Как например: взяли код из интернета и адаптировали его для своих целей (вижу немецкий в некоторых комментариях). Да, но исследуйте влияние коеффициентов сейчас. Часто коды являются первыми, заработанными авторами. И передаются от человека к человеку (часто с ошибками и неточностями)

некоторые рекомендации:
1: увеличитье charge pump на макс.
2. работа с большим шагом / будет противоречить требованию синтезатора для радиостанции, хотим чтобы шаг был маленький -> необх. маленькая частота сравнения.
3. на выбранной частоте сравнения FLOAT дает меньше помех в ближней зоне спр. INT. В дальнем: это относительно, надо проверить, не хуже ли.

Точки много, в основном: из теории синтезаторов, но есть специф. для выбраного чипа.

Посему для себя: чужой програмной код управления чипа (в сл.: синтезатора): только для проверки работает или нет. Если мне нужно сделать выводы об основных параметрах чипах, я должен их сам выбрать, и подумать какой параметр написать. Но ето значит полное знакомство с документацией ... и пустая трата времени, с необходимостью исследований.
« Последнее редактирование: Май 28, 2022, 08:23:40 pm от veso74 »

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1715 : Май 28, 2022, 08:15:21 pm »
Все, вспомнил о чем вы! Есть такая проблема, много обсуждали по си5351
Да да, я знаю, у меня ничего не получится )))

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 944
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1716 : Май 28, 2022, 08:25:00 pm »
Часто небольшое изменение одного или двух параметров (как в случае: R1 и charge pump) меняет реакции глобально о чипах. И это не будет ощущаться, если код не будет написан и изучен самостоятельно. Но это также цена использования (время, нерв, подробное знакомство напр. с теорией и идокументации и др.) чужих программных кодов/драйверов для чипов. 

И часто так быстро делаются неправильные выводы об общих параметрах (синтезатора), которые могут стать немного лучше с небольшой модификацией.

Как Si5351 - один говорит: мусор (для первого осциллятора), другой говорит: замечательная микросхема (пишу при условии, что оба детально изучили микросхему (причем часто первые даже не пробовали читать pdf для чего сделан чип например)) :).
« Последнее редактирование: Май 28, 2022, 08:42:35 pm от veso74 »

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1717 : Май 28, 2022, 08:47:30 pm »
Увеличил выход генератора на максималку +5дБм стало почище. Явно мусора меньше. Но потребление 250мА блин.   
Микросхема греется ого-го
« Последнее редактирование: Май 28, 2022, 08:49:07 pm от ra0ahc »
Да да, я знаю, у меня ничего не получится )))

Оффлайн 6Ж2П

  • Hero Member
  • *****
  • Сообщений: 505
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1718 : Май 28, 2022, 08:51:44 pm »
Чувствительность не связана с ФШ, а обратное преобразование шумов повышает уровень шумов, но это величина переменная, зависящая от уровня внеполосной помехи. Потому говорить о получении чувствительности в связи с ФШ, не указав уровень помехи, это ерунда. Тем более про прямую связь чувствительности и ФШ

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1719 : Май 28, 2022, 08:52:31 pm »
Вот здесь сейчас нет параженок
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1720 : Май 28, 2022, 08:57:20 pm »
Чувствительность не связана с ФШ, а обратное преобразование шумов повышает уровень шумов, но это величина переменная, зависящая от уровня внеполосной помехи. Потому говорить о получении чувствительности в связи с ФШ, не указав уровень помехи, это ерунда. Тем более про прямую связь чувствительности и ФШ

К смесителю подключаешь и сразу все понятно с шумами. У ДДС генераторов -120дБ полка шума , у Игоря синта -145. и тд
Даешь на вход дпф минимальный сигнал и сразу видишь разницу, шумовая полка просто лезет вверх. (смотрю уже на НЧ)
Так , что без разницы  какие расчеты по итогу все переходит в НЧ и далее к нам у уши )))
ФШ: если юбка широкая и высокая, то все рядом стоящие станции дадут дополнительный шум. И к стати об этом много здесь говорилось про ширину юбки. Чем шире юбка - тем больше мусора собирает с дальних зон .

Где я ошибся ? 
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1721 : Май 28, 2022, 08:58:50 pm »
1: увеличитье charge pump на макс.
Практически ничего не дало.
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1722 : Май 28, 2022, 09:02:11 pm »
Продолжение тестов не имеет значение. Нужны экраны. Первый каскад как пылесос. Реле в этом месте как антенна работает, хотя контакты у реле 5 мм всего - ну вот хватает ))) собирает.
Да да, я знаю, у меня ничего не получится )))

Оффлайн veso74

  • Hero Member
  • *****
  • Сообщений: 944
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1723 : Май 28, 2022, 09:03:02 pm »
Попробуйте влияние Charge Pump Current Setting (CP4 to CP1 bits (Bits[DB13:DB10]), Register 4): посередине, на обоих концах... другое.

ADF4355 софт также полезно для выбора (и для расчета коэффициентов):
ADF4355/ADF4355-2/ADF4355-3/ADF4356/ADF5355/ADF5356 Evaluation

R Counter поддерживайте 1 (для маленького шага вероятно должно быть иначе: /)
У меня (на ADF4351) при наименьшей выходной мощности в ближней зоне помех меньше всего.
« Последнее редактирование: Май 28, 2022, 09:07:40 pm от veso74 »

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Птеродактиль трансивер (аналог+DDC)
« Ответ #1724 : Май 28, 2022, 09:10:25 pm »
 int CP_ChgPump = 9;      // 4bit 9
    int D1_DoublBuf = 0;     // 1bit
    int R_Counter = 1;       // 10bit
Да да, я знаю, у меня ничего не получится )))