Универсальный синтезатор Si570/Si5351

SWL
Posts: 94
Joined: 23 Feb 2021, 10:53
Позывной: SWL

Re: Универсальный синтезатор Si570/Si5351

Post by SWL »

Relayer wrote:

Code: Select all

Lval = Lconst[trx.BandIndex];
:D Чувствовал же, что можно проще!
Ячейки то совпадают :D
Спасибо!

Code: Select all

float Lconst[] = {L1, L2, L3, L4, L5, L6, L7, L8, L9};
float Lval = 0;

Lval = Lconst[trx.BandIndex];

   float L = pow(Lval, -6);
Теперь должно быть так, правильно ?

Code: Select all

Скетч использует 29570 байт (96%) памяти 
:shock:
Было 92%)
Last edited by SWL on 28 May 2021, 14:40, edited 1 time in total.
SWL
Posts: 94
Joined: 23 Feb 2021, 10:53
Позывной: SWL

Re: Универсальный синтезатор Si570/Si5351

Post by SWL »

и в догонку

Code: Select all

long C = pow( round( 1 / (4 * square (M_PI) * square (trx.state.VFO[trx.GetVFOIndex()]) * (float)L )) , 12); // в пФ
  Serial.print(C, DEC);
outLCCtrl.Set(C);
  outLCCtrl.Write();
Так будет считать ?
И посмотреть результат в мониторе порта.
Last edited by SWL on 28 May 2021, 14:50, edited 1 time in total.
SWL
Posts: 94
Joined: 23 Feb 2021, 10:53
Позывной: SWL

Re: Универсальный синтезатор Si570/Si5351

Post by SWL »

UR5VCP wrote:Может через case сделать
Тоже сначала думал, но массив че то захотелось...
SWL
Posts: 94
Joined: 23 Feb 2021, 10:53
Позывной: SWL

Re: Универсальный синтезатор Si570/Si5351

Post by SWL »

Code: Select all

#define L1 110.0 	
#define L2 110.0 
#define L3 30.0 
#define L4 6.0 
#define L5 6.0	
#define L6 1.0 
#define L7 1.0
#define L8 1.0 
#define L9 1.0 

float Lconst[] = {L1, L2, L3, L4, L5, L6, L7, L8, L9};
float L = pow( Lconst[trx.BandIndex] , -6); // в Гн
long C = pow( round( 1 / (4 * square (M_PI) * square (trx.state.VFO[trx.GetVFOIndex()]) * (float)L )) , 12); // в пФ
 Serial.print(C, DEC);
outLCCtrl.Set(C);
outLCCtrl.Write();
Убрал промежуточную переменную.
2 Relayer
А можно дефайны L объявить в config.h ? Или не будет работать ?
Компилятор не ругается.
UR5FFR
Site Admin
Posts: 2197
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Универсальный синтезатор Si570/Si5351

Post by UR5FFR »

Плавающая точка и функции типа pow, square и тп жрут память. По остальному я не подскажу т.к. не знаю что там должно и как у вас считаться.
SWL
Posts: 94
Joined: 23 Feb 2021, 10:53
Позывной: SWL

Re: Универсальный синтезатор Si570/Si5351

Post by SWL »

C = 1/(4𲃲L)
Формула Томпсона.
В дефайнах Lconst вводим индуктивность в микрогенри, а в конечной L переводим в Генри (-6 степень).

Code: Select all

float L = pow( Lconst[trx.BandIndex] , -6);
В формуле Фарады, Генри, Герцы.
Потом емкость, для вывода , переводим в пикофарады (12 степень) и округляем до целого значения пикофарад.

Code: Select all

long C = pow( round( 1 / (4 * square (M_PI) * square (trx.state.VFO[trx.GetVFOIndex()]) * (float)L )) , 12);
Выводим на PCF8574 .
При восьми разрядах имеем изменение 0-255 пф.
Как то так.
Может 4 * square (M_PI) (4*число Пи) ввести числом, до седьмого знака ? Это съэкономит память ?
SWL
Posts: 94
Joined: 23 Feb 2021, 10:53
Позывной: SWL

Re: Универсальный синтезатор Si570/Si5351

Post by SWL »

Никто не заметил ошибок?

Code: Select all

 float L = Lconst[trx.BandIndex] *pow(10  , -6);  

Code: Select all

   long C = round(( 1 / (4 * square (M_PI) * square (trx.state.VFO[trx.GetVFOIndex()]) * (float)L )) * pow( 10 , 12));     
Исправил :D
Пока ехал домой, 1*10^-⁶, и 1*10^¹² не давала покоя :)
SWL
Posts: 94
Joined: 23 Feb 2021, 10:53
Позывной: SWL

Re: Универсальный синтезатор Si570/Si5351

Post by SWL »

Работает!
Залил скетч, монитор порта дает изменяющиеся показания емкости.
Почти совпадает с расчетом +- пару кГц. Расширитель і2с подключу после ужина :D (проверю код).
Еще надо будет подогнать диапазоны и индуктивности под имеющийся :D дискретный КПЕ.
А то на нижнем диапазоне требует больше 600 пф, а у меня их нету :lol:
Еще надо учесть емкости монтажа, паразитные, начальную емкость и вычитать их перед отправкой на вывод.
Как то так.
Conan
Posts: 47
Joined: 27 Apr 2021, 11:22

Re: Универсальный синтезатор Si570/Si5351

Post by Conan »

"...мой разгоряченный мозжечок мыслишка в полночь посетила..." ;)

Вообщем, Андрей, может идея вам понравится/понадобится.
Поместить/оформить все три SI-шки с обвесом в виде субмодуля (дочерней платы), и уже в последующих проектах использовать именно субмодуль, а не трассировать всякий раз по новой.

Есть ещё одна идея в плане развития проекта - но это скорее как экзотика.
Хотя найдутся и такие, которые воспримут её на "Ура"!
Построить ПП управления на двух 1.8" TFT индикаторах - на одном(правом) крутить виртуальный лимб(диск настройки),
а на другом(левом) - индицировать s-метр, режимы работы, и прочее.
Функционально это мало что добавит, но самому изделию добавит шарма/очарования/притягательности. ;)
Ведь, как любил часто повторять мой генеральный, когда я ещё работал в "ящике" - красивый самолёт красиво летает!
UR5FFR
Site Admin
Posts: 2197
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Универсальный синтезатор Si570/Si5351

Post by UR5FFR »

Не, два дисплея это уже занадто красиво. Такая красота будет просто ослеплять :)
Субмодуль с сишками не упрощает трассировку как могло бы показаться. Разве что его можно вынести от синтеза и разместить ближе к основной плате радиотракта. Но это сомнительное удовольствие.
Ближайшее что будет по проекту - небольшой рефакторинг с целью отказаться от конвертора TSX и заменить его на более простое решение.
Post Reply