Page 23 of 39
Re: Универсальный синтезатор Si570/Si5351
Posted: 28 May 2021, 14:22
by SWL

Чувствовал же, что можно проще!
Ячейки то совпадают
Спасибо!
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%) памяти

Было 92%)
Re: Универсальный синтезатор Si570/Si5351
Posted: 28 May 2021, 14:38
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();
Так будет считать ?
И посмотреть результат в мониторе порта.
Re: Универсальный синтезатор Si570/Si5351
Posted: 28 May 2021, 14:47
by SWL
UR5VCP wrote:Может через case сделать
Тоже сначала думал, но массив че то захотелось...
Re: Универсальный синтезатор Si570/Si5351
Posted: 28 May 2021, 14:59
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 ? Или не будет работать ?
Компилятор не ругается.
Re: Универсальный синтезатор Si570/Si5351
Posted: 28 May 2021, 17:07
by UR5FFR
Плавающая точка и функции типа pow, square и тп жрут память. По остальному я не подскажу т.к. не знаю что там должно и как у вас считаться.
Re: Универсальный синтезатор Si570/Si5351
Posted: 28 May 2021, 17:31
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*число Пи) ввести числом, до седьмого знака ? Это съэкономит память ?
Re: Универсальный синтезатор Si570/Si5351
Posted: 28 May 2021, 19:24
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));
Исправил
Пока ехал домой, 1*10^-⁶, и 1*10^¹² не давала покоя

Re: Универсальный синтезатор Si570/Si5351
Posted: 28 May 2021, 20:01
by SWL
Работает!
Залил скетч, монитор порта дает изменяющиеся показания емкости.
Почти совпадает с расчетом +- пару кГц. Расширитель і2с подключу после ужина

(проверю код).
Еще надо будет подогнать диапазоны и индуктивности под имеющийся

дискретный КПЕ.
А то на нижнем диапазоне требует больше 600 пф, а у меня их нету

Еще надо учесть емкости монтажа, паразитные, начальную емкость и вычитать их перед отправкой на вывод.
Как то так.
Re: Универсальный синтезатор Si570/Si5351
Posted: 29 May 2021, 06:00
by Conan
"...мой разгоряченный мозжечок мыслишка в полночь посетила..."
Вообщем, Андрей, может идея вам понравится/понадобится.
Поместить/оформить все три SI-шки с обвесом в виде субмодуля (дочерней платы), и уже в последующих проектах использовать именно субмодуль, а не трассировать всякий раз по новой.
Есть ещё одна идея в плане развития проекта - но это скорее как экзотика.
Хотя найдутся и такие, которые воспримут её на "Ура"!
Построить ПП управления на двух 1.8" TFT индикаторах - на одном(правом) крутить виртуальный лимб(диск настройки),
а на другом(левом) - индицировать s-метр, режимы работы, и прочее.
Функционально это мало что добавит, но самому изделию добавит шарма/очарования/притягательности.
Ведь, как любил часто повторять мой генеральный, когда я ещё работал в "ящике" - красивый самолёт красиво летает!
Re: Универсальный синтезатор Si570/Si5351
Posted: 29 May 2021, 09:01
by UR5FFR
Не, два дисплея это уже занадто красиво. Такая красота будет просто ослеплять
Субмодуль с сишками не упрощает трассировку как могло бы показаться. Разве что его можно вынести от синтеза и разместить ближе к основной плате радиотракта. Но это сомнительное удовольствие.
Ближайшее что будет по проекту - небольшой рефакторинг с целью отказаться от конвертора TSX и заменить его на более простое решение.