Исходный код вики Patune utilty - fine tuning of PA

Редактировал(а) UT2UK 2026/03/02 10:58

Последние авторы
1 Утилита **patune** — это интерактивная консольная программа для калибровки и настройки параметров усилителя мощности (Power Amplifier, PA) в трансивере Ermak TT. Программа обеспечивает управление смещением (bias) усилителя, калибровку токов каскадов, мониторинг и конфигурацию системы охлаждения.
2
3 ## Назначение утилиты
4
5 Программа предназначена для инженеров и техников для:
6
7 * Автоматической калибровки смещения драйвера и выходного каскада
8 * Настройки целевых токов холостого хода для каждого каскада
9 * Мониторинга текущего статуса усилителя мощности
10 * Управления тепловой компенсацией
11 * Конфигурации параметров сигнализации (тревоги по температуре и току)
12 * Настройки таблицы управления вентилятором (охлаждение)
13 * Сохранения конфигурации в энергонезависимой памяти (NVMEM)
14
15 ### Режимы работы
16
17 Утилита организована в виде иерархической системы меню:
18
19 ```
20 Главное меню
21 ├── Просмотр информации
22 │ ├── Print PA info (статус)
23 │ ├── Print PA config (конфигурация)
24 │ ├── Print PA bias table (таблица смещения)
25 │ └── Print total current (потребление тока)
26 ├── Редактирование таблицы смещения
27 │ ├── Print PA bias table
28 │ ├── Reset all bias to defaults
29 │ ├── Enter driver stage current
30 │ ├── Enter output stage current
31 │ ├── Autotune DAC bias for driver stage
32 │ ├── Autotune DAC bias for output stage
33 │ ├── Enter driver stage thermo compensation
34 │ └── Enter output stage thermo compensation
35 ├── Редактирование конфигурации PA
36 │ ├── Print PA config
37 │ ├── Edit max temperature ALARM
38 │ ├── Edit restore temperature ALARM
39 │ ├── Edit max driver current
40 │ ├── Edit max output stage current
41 │ └── Fan Table Editor
42 │ ├── Print fan lookup table
43 │ ├── Reset fan table to defaults
44 │ └── Edit entries 0-7
45 ├── Быстрые команды
46 │ ├── Bias switch ON
47 │ ├── Bias switch OFF
48 │ ├── Reset overcurrent
49 │ └── Write all settings
50 ```
51
52 ## Параметры командной строки
53
54 Утилита не принимает параметры командной строки. Всё управление осуществляется через интерактивное консольное меню.
55
56 ### Запуск программы
57
58 ```bash
59 patune
60 ```
61
62 При запуске программа:
63
64 1. Подключается к PA Manager
65 1. Запрашивает текущую конфигурацию PA
66 1. Запрашивает текущую таблицу смещения (bias)
67 1. Отображает главное меню
68 1. Ожидает выбора пользователя
69
70 ## Формат ввода
71
72 ### Пользовательский ввод
73
74 #### Числовой ввод
75
76 При запросе числового значения программа ожидает:
77
78 * Положительное целое число в указанном диапазоне
79 * Или символ `q` для отмены операции
80 * Или `q` и Enter для выхода
81
82 Пример ввода текущего значения:
83
84 ```bash
85 Enter driver stage current, mA (1-1000), press 'q' to cancel: 600
86 ```
87
88 **Валидация:**
89
90 * Значение должно быть в диапазоне [min, max]
91 * При вводе вне диапазона программа выдаст ошибку и повторит запрос
92 * Максимум 1 попытка в секунду (задержка 1 сек)
93
94 #### Знаковые числовые значения
95
96 Для тепловой компенсации используются знаковые значения:
97
98 ```bash
99 Enter driver stage thermo compensation, C/dac (-100 - 100), press 'q' to cancel: -5
100 ```
101
102 **Диапазоны допустимых значений:**
103
104 * Тепловая компенсация: -100 до +100 DAC/°C
105 * Температура: -40 до 126 °C
106 * Скорость вентилятора: 0 до 100 %
107
108 #### Отмена операции
109
110 Нажать `q` при любом запросе ввода для отмены текущей операции без сохранения.
111
112 ### Навигация по меню
113
114 * Цифры `0-9` для выбора пункта меню
115 * Enter для подтверждения
116 * `q` для возврата в предыдущее меню
117
118 ## Формат вывода
119
120 ### Статус PA
121
122 ```bash
123 Print PA info.
124 Heat temp: 75C
125 Int temp: 65C
126 VSWR alarm : 0
127 Extra current alarm : 0
128 Temperature alarm : 0
129 Bias enable: 1
130 Bus voltage: 48mV
131 Output stage current: 1050mA
132 Driver stage current: 620mA
133 Output bias: 2450/2460mV
134 Driver bias: 1850/1855mV
135 Fan speed: 45
136 ```
137
138 | Поле | Описание | Единица |
139 | -------------------- | ---------------------------------------- | ------- |
140 | Heat temp | Температура радиатора | °C |
141 | Int temp | Внутренняя температура | °C |
142 | VSWR alarm | Флаг тревоги по КСВ | 0/1 |
143 | Extra current alarm | Флаг тревоги по перетоку | 0/1 |
144 | Temperature alarm | Флаг тревоги по температуре | 0/1 |
145 | Bias enable | Статус включения смещения | 0/1 |
146 | Bus voltage | Напряжение питания | мВ |
147 | Output stage current | Ток выходного каскада | мА |
148 | Driver stage current | Ток драйвера | мА |
149 | Output bias | Напряжение смещения выхода (канал 0/1) | мВ |
150 | Driver bias | Напряжение смещения драйвера (канал 0/1) | мВ |
151 | Fan speed | Скорость вентилятора | % |
152
153 ### Конфигурация PA
154
155 ```bash
156 Print PA config.
157 High limit temp: 80C
158 Low limit temp: 75C
159 Max driver current: 1200mA
160 Max output current: 2000mA
161 ```
162
163 | Поле | Описание | Значение по умолчанию |
164 | ------------------ | ---------------------------------------- | --------------------- |
165 | High limit temp | Максимальная температура (тревога) | 80°C |
166 | Low limit temp | Минимальная температура (восстановление) | 75°C |
167 | Max driver current | Макс. ток драйвера (сигнализация) | 1200мА |
168 | Max output current | Макс. ток выхода (сигнализация) | 2000мА |
169
170 ### Таблица смещения (bias)
171
172 ```bash
173 Bias DAC output 0: 2450
174 Bias DAC output 1: 2460
175 Bias DAC driver 0: 1850
176 Bias DAC driver 1: 1855
177 Target driver current,mA: 600
178 Target output current,mA: 1000
179 Driver thermo compensation,dac/C: -2
180 Output thermo compensation,dac/C: -3
181 Temprature of calibration,C: 25
182 ```
183
184 | Поле | Описание | Диапазон |
185 | -------------------------- | ----------------------------------------------- | ------------------- |
186 | Bias DAC output [0/1] | DAC значение смещения выхода каналов 0 и 1 | 0-4095 |
187 | Bias DAC driver [0/1] | DAC значение смещения драйвера каналов 0 и 1 | 0-4096 |
188 | Target driver current | Целевой ток холостого хода драйвера | 1-1000 мА |
189 | Target output current | Целевой ток холостого хода выхода | 1-2000 мА |
190 | Driver thermo compensation | Тепловая компенсация драйвера | -100 до +100 DAC/°C |
191 | Output thermo compensation | Тепловая компенсация выхода | -100 до +100 DAC/°C |
192 | Temperature of calibration | Температура, при которой проводилась калибровка | °C |
193
194 ### Таблица управления вентилятором
195
196 ```bash
197 Index | Temperature (°C) | Fan Speed (%)
198 ------|------------------|---------------
199 0 | 10 | 0%
200 1 | 20 | 7%
201 2 | 35 | 31%
202 3 | 40 | 63%
203 4 | 50 | 79%
204 5 | 60 | 100%
205 6 | 70 | 100%
206 7 | 126 | 100%
207 ```
208
209 Таблица содержит 8 точек интерполяции. На каждой строке:
210
211 * **Index**: порядковый номер (0-7)
212 * **Temperature**: пороговая температура в °C
213 * **Fan Speed**: скорость вентилятора в %
214
215 Скорость вычисляется интерполяцией между точками на основе текущей температуры.
216
217 ### Прогресс калибровки
218
219 Во время автоматической калибровки отображается прогрессбар:
220
221 ```bash
222 Tuning Driver Channel 0
223 Target Current: 600mA
224 DAC: 1800/4095 [***** ] 12% | Current: 150mA/600mA [**** ] 25%
225 ```
226
227 Компоненты:
228
229 * **DAC**: текущее значение DAC и максимум
230 * Первый прогрессбар: прогресс по DAC (жёлтый)
231 * **Current**: текущий измеренный ток и целевой ток
232 * Второй прогрессбар: прогресс по достижению целевого тока (зелёный)
233
234 ### Сообщения об ошибках
235
236 ```bash
237 Set bias ON ERROR
238 Get driver current ERROR
239 Request PA config ERROR
240 Connect/Disconnect loading ERROR
241 Unable to tune bias for Driver channel 0
242 ```
243
244 Сообщение об ошибке красным цветом указывает на сбой связи с PA Manager или непредвиденное состояние.
245
246 ### Сообщения об успешном выполнении
247
248 ```bash
249 ✓ Finished OK
250 Channel: 0
251 Final DAC Value: 1850
252 Final Current: 600mA
253 Bias switched ON.
254 New settings were recorder to NVMEM - OK.
255 Overcurrent flag reseted OK.
256 ```
257
258 Успешные операции отображаются жёлтым цветом.
259
260 ## Примеры использования
261
262 ### Пример 1: Проверка статуса усилителя
263
264 ```bash
265 $ patune
266 ************************************************************
267 | Power amplifier service utility version 1.2 |
268 ************************************************************
269 [Main menu]
270 0 - Print PA info.
271 1 - Print PA config.
272 2 - Print PA bias table.
273 3 - [Edit bias table]
274 4 - [Edit PA configs]
275 5 - [Edit fan table]
276 6 - Bias switch ON.
277 7 - Bias switch OFF.
278 8 - Reset overcurrent.
279 9 - Write all settings.
280 q - Quit
281 Enter your choice: 0
282 Print PA info.
283 Heat temp: 45C
284 Int temp: 38C
285 VSWR alarm : 0
286 Extra current alarm : 0
287 Temperature alarm : 0
288 Bias enable: 1
289 Bus voltage: 48mV
290 Output stage current: 1050mA
291 Driver stage current: 620mA
292 Output bias: 2450/2460mV
293 Driver bias: 1850/1855mV
294 Fan speed: 35
295 ```
296
297 ### Пример 2: Установка целевого тока драйвера
298
299 **Внимание - перед устновкой токов усилитель необходимо нагрузить на нагрузку 50 Ом **
300
301 ```bash
302 Enter your choice: 3
303 [Bias table editor]
304 0 - Print PA bias table.
305 1 - Reset all bias to default value.
306 2 - Enter driver stage current.
307 3 - Enter output stage current.
308 4 - Autotune DAC bias for driver stage.
309 5 - Autotune DAC bias for output stage.
310 6 - Print power consumption for all stages.
311 7 - Enter driver stage thermo compensation.
312 8 - Enter output stage thermo compensation.
313 q - Quit
314 Enter your choice: 2
315 Enter driver stage current, mA (1-1000), press 'q' to cancel: 650
316 ```
317
318 ### Пример 3: Автоматическая калибровка драйвера
319
320 ```bash
321 Enter your choice: 4
322 Tuning Driver Channel 1
323 Target Current: 600mA
324 DAC: 800/4096 [** ] 19% | Current: 0mA/600mA [ ] 0%
325 DAC: 1200/4096 [**** ] 29% | Current: 100mA/600mA [***** ] 16%
326 DAC: 1500/4096 [**** ] 36% | Current: 250mA/600mA [******* ] 41%
327 DAC: 1700/4096 [***** ] 41% | Current: 450mA/600mA [***** *** ] 75%
328 DAC: 1750/4096 [***** ] 42% | Current: 590mA/600mA [***** **** ] 98%
329 DAC: 1751/4096 [***** ] 42% | Current: 600mA/600mA [***** ***** ] 100%
330 ✓ Finished OK
331 Channel: 1
332 Final DAC Value: 1751
333 Final Current: 600mA
334 ```
335
336 ### Пример 4: Редактирование записи таблицы вентилятора
337
338 ```bash
339 Enter your choice: 5
340 [Fan Table Editor]
341 0 - Print fan lookup table.
342 1 - Reset fan table to defaults.
343 2 - Edit entry 0 (10°C / 0%).
344 3 - Edit entry 1 (20°C / 7%).
345 ...
346 Enter your choice: 3
347 Edit Fan Table Entry 2
348 Current settings:
349 Temperature: 35°C
350 Fan Speed: 31%
351 Enter new temperature (C) (-40 - 126), press 'q' to cancel: 30
352 Enter new fan speed (0-100%) (0-100), press 'q' to cancel: 25
353 Entry 2 updated:
354 Temperature: 30°C
355 Fan Speed: 25%
356 ```
357
358 ### Пример 5: Сохранение конфигурации
359
360 ```bash
361 Enter your choice: 9
362 New settings were recorder to NVMEM - OK.
363 ```
364
365 ## Диагностика ошибок
366
367 ### Ошибка при калибровке
368
369 **Сообщение:**
370
371 ```bash
372 ✗ Unable to tune bias for Driver channel 0
373 ```
374
375 **Причины:**
376
377 * Усилитель не работает
378 * Нет подачи питания на каскад
379 * Датчик тока неисправен
380 * Цепь смещения неправильно настроена
381
382 **Решение:**
383
384 1. Проверьте питание PA
385 1. Проверьте коннекторы нагрузки
386 1. Убедитесь, что смещение можно изменять
387 1. Проверьте значение коэффициента в DAC
388
389 ### Ошибка при записи конфигурации
390
391 **Сообщение:**
392
393 ```bash
394 Write config ERROR
395 ```
396
397 **Причины:**
398
399 * NVMEM заполнена
400 * Аппаратная ошибка записи
401 * Потеря соединения с PA Manager
402
403 **Решение:**
404
405 1. Повторите запись
406 1. Попробуйте сбросить конфигурацию: "Reset all bias to default value"
407 1. Перезагрузитесь и повторите
408
409 ## Практические сценарии применения
410
411 ### Сценарий 1: Первоначальная настройка нового усилителя
412
413 ```
414 Шаг 1: Проверка статуса
415 - Выбрать "Print PA info"
416 - Убедиться, что датчики работают
417 Шаг 2: Установка целевых токов
418 - Выбрать "Edit bias table" → "Enter driver stage current"
419 - Ввести 600 мА (типовое значение)
420 - Выбрать "Enter output stage current"
421 - Ввести 1000 мА (типовое значение)
422 Шаг 3: Автоматическая калибровка
423 - Выбрать "Autotune DAC bias for driver stage"
424 - Дождаться завершения (оба канала последовательно)
425 - Выбрать "Autotune DAC bias for output stage"
426 - Дождаться завершения
427 Шаг 4: Проверка результатов
428 - Выбрать "Print PA info"
429 - Убедиться, что токи в пределах целевых значений
430 Шаг 5: Сохранение
431 - Выбрать "Write all settings"
432 ```
433
434 ### Сценарий 2: Настройка управления вентилятором
435
436 ```bash
437 Шаг 1: Просмотр текущей таблицы
438 - Выбрать "Edit fan table" → "Print fan lookup table"
439 Шаг 2: Редактирование точек интерполяции
440 - Для каждой записи:
441 - Выбрать "Edit entry N"
442 - Установить температуру срабатывания
443 - Установить скорость вентилятора в %
444 Шаг 3: Сохранение
445 - Выбрать "Write all settings"
446 Пример таблицы для холодного климата:
447 Entry 0: 15°C / 0%
448 Entry 1: 25°C / 10%
449 Entry 2: 40°C / 30%
450 Entry 3: 50°C / 60%
451 Entry 4: 60°C / 80%
452 Entry 5: 70°C /100%
453 Entry 6: 80°C /100%
454 Entry 7: 126°C /100%
455 ```
456
457 ### Сценарий 3: Обслуживание и диагностика
458
459 ```
460 Шаг 1: Проверка целостности конфигурации
461 - Выбрать "Print PA bias table"
462 - Убедиться, что все значения в пределах допустимого
463 - Выбрать "Print PA config"
464 Шаг 2: Проверка текущего потребления
465 - Выбрать "Print power consumption for all stages"
466 - Сравнить с ожидаемыми значениями
467 Шаг 3: Тестирование усилителя
468 - Выбрать "Bias switch ON"
469 - Проверить "Print PA info"
470 - Убедиться, что все тревоги в нулевом состоянии
471 - Выбрать "Bias switch OFF"
472 Шаг 4: Сброс тревоги (если требуется)
473 - Выбрать "Reset overcurrent"
474 ```
475
476 ## Ограничения и особенности реализации
477
478 ### Ограничения по параметрам
479
480 | Параметр | Минимум | Максимум | Примечание |
481 | -------------------------------- | ------- | ----------------------------- | ---------------------- |
482 | Ток драйвера | 1 мА | 1000 мА | Целевое значение |
483 | Ток выхода | 1 мА | 2000 мА | Целевое значение |
484 | Макс. ток сигнализации (драйвер) | - | 6000 мА | Пороговое значение |
485 | Макс. ток сигнализации (выход) | - | 26000 мА | Пороговое значение |
486 | Температура радиатора | -40°C | 126°C | Диапазон датчика |
487 | Максимальная температура тревоги | - | 80°C | Ограничено |
488 | DAC смещения | 0 | 4095 (выход) / 4096 (драйвер) | Разрешение 12 бит |
489 | Тепловая компенсация | -100 | +100 | DAC/°C |
490 | Скорость вентилятора | 0% | 100% | Соответствует DAC 0-63 |
491
492 **Версия утилиты:** 1.2