Добавить общее ядро DEIF, эмуляцию приборов и переносимые панели Python/Qt. Расширить загрузчики F2812 и F28335, обновление Flash и профиль STM Invertor. Добавить альтернативный МНК Eigen, модели неисправностей и диагностику сигналов. Обновить справочники устройств, проекты CCS и регрессионные проверки.
47 lines
9.9 KiB
Python
47 lines
9.9 KiB
Python
TEMPLATE_MCUS = { # Каталог отражает конкретные MCU-порты закреплённого templates; значения загрузчиков совпадают с FirmwareTab.
|
||
"stm32": ( # Порядок сохраняет прежние F103/F407 и группирует добавленные варианты по семействам.
|
||
("STM32F103C8T6", "DS18B20, CAN Sensor, RS-485 Boot, Firmware Info и LED Indicator.", 2), # Порты ds18b20/stm32f1 и rs485-boot/stm32f103 используют имеющийся UART ROM Boot, индекс 2.
|
||
("STM32F407", "STM32F407VET6: SETProtocol, DevBoard V1, эмуляторы, генератор ЦАП, Parallel NAND и USB Boot.", 7), # Порты set-protocol/stm32f407-* и parallel-nand/stm32f407ve; индекс 7 относится только к USB-загрузчику F407.
|
||
("STM32F103RCT6", "Parallel NAND через GPIO, SETProtocol, DS18B20, Firmware Info и LED Indicator.", None), # Отдельный порт parallel-nand/stm32f103rc учитывает отсутствие FSMC в корпусе LQFP64; None открывает обзор MCU.
|
||
("STM32F103ZET6", "Parallel NAND через FSMC, SETProtocol, эмуляторы УМП / 2812 / IGBT / ЦАП / DEIF, DS18B20, Firmware Info и LED Indicator.", None), # Порт parallel-nand/stm32f103ze использует аппаратный FSMC, поэтому вариант показан отдельно от RCT6.
|
||
("STM32G431", "DS18B20 / 1-Wire, Firmware Info и LED Indicator.", None), # Поддержка задана конфигурацией ds18b20/stm32g4/onewire_config.g431.template.h и общими портами G4.
|
||
("STM32G474", "SETProtocol, DS18B20 / 1-Wire, Firmware Info, LED Indicator и генератор ЦАП.", None), # Общие порты stm32g4 и set-protocol/stm32g474-wavegen подходят семейству; конкретные платы перечислены ниже.
|
||
("STM32G474CEU6", "Parallel NAND через GPIO, DS18B20 / 1-Wire, Firmware Info и LED Indicator.", None), # Порт parallel-nand/stm32g474ce предназначен для корпуса UFQFPN-48.
|
||
("STM32G474RB", "SETProtocol, периферийный эмулятор, генератор ЦАП и порт USB Boot в templates.", None), # Порты set-protocol/stm32g474-periph и stm32g474-usb-boot описывают RB; USB-клиент F407 не назначается этому MCU.
|
||
("STM32G474VET6", "HOPE: эмуляторы УМП / 2812 / IGBT / ЦАП / DEIF; CANdle CAN / UART BOOT, STM Invertor, DS18B20 / 1-Wire.", None), # CAN_BOOTLOADER_G474.md проекта CANdle подтверждает BOOT именно VET6, отдельно от USB BOOT платы RB.
|
||
), # Завершаем список STM32 без автоматического поиска каталогов, недоступных внутри собранного EXE.
|
||
"k1921": ( # К1921 использует те же общие инструменты SETProtocol, что описаны в PROJECT_RELATIONS.md.
|
||
("K1921VK028", "RTC Service, Firmware Info и обмен SETProtocol через UART.", None), # Источники возможностей — rtc-service/k1921vk028, firmware-info/k1921vk028 и транспорт приложения.
|
||
), # Единственный конкретный MCU этого семейства в текущем templates.
|
||
} # Чистые данные не создают Qt-виджеты и сохраняют отложенное построение платформ.
|
||
|
||
EMULATOR_MODES = { # Номера режимов совпадают с config[3] общего set_emu_server и не зависят от MCU.
|
||
0: ("ump", "УМП — логгер и сигналы", "УМП: запись логгера и управление эмуляцией пуска."), # Режим по умолчанию после сброса MCU.
|
||
1: ("tms2812", "2812 — BALZAM_7 / CMD_STD", "2812: пуск, останов и задание частоты через CMD_STD."), # Обмен 2812 использует собственный адрес, обычно 1.
|
||
2: ("igbt", "IGBT / драйвер — Vin / Vstat", "IGBT: после выбора включите эмуляцию в панели драйвера."), # Физические GPIO зависят от платы, сама модель общая.
|
||
3: ("wavegen", "Генератор сигналов — ЦАП / PA4", "ЦАП: загрузите таблицу, затем отдельно нажмите «Пуск ЦАП»."), # Запись таблицы не запускает аппаратный вывод.
|
||
4: ("deif", "DEIF Master — передача CAN", "DEIF Master: настройте профиль и RAW, затем нажмите «Пуск DEIF»."), # Общая C-модель передаёт SAM/DAM через аппаратный CAN выбранного MCU.
|
||
5: ("deif", "DEIF Slave — приём CAN", "DEIF Slave: настройте Node-ID и привязки, затем нажмите «Пуск DEIF»."), # Роль Slave принимает NMT/MPDO и передаёт Boot-up, heartbeat и EMCY.
|
||
} # Режим применяется отдельной подтверждаемой транзакцией STM, запуск выполняется в панели модели.
|
||
EMULATOR_TOOLS = { # Один набор инструментов используется каждым реализованным аппаратным портом.
|
||
"settings": "Настройки STM", # Адрес, скорость и режим читаются и проверяются общим клиентом.
|
||
"ump": "УМП", # Логгер и синтетические сигналы используют set_emu_ump.
|
||
"tms2812": "2812", # Обмен BALZAM_7 использует set_emu_tms.
|
||
"igbt": "IGBT / драйвер", # Логические входы и выходы используют set_emu_igbt.
|
||
"wavegen": "Подключение генератора", # Таблица передаётся общему генератору с таймером выбранной платы.
|
||
"deif": "DEIF Master / Slave", # Одна панель управляет обеими ролями set_emu_deif.
|
||
} # Приложение предоставляет существующие панели и использует общую панель DEIF из templates.
|
||
EMULATOR_MENU_TITLE = "Эмуляторы: УМП / 2812 / IGBT / ЦАП / DEIF" # Обзор MCU и общая навигация используют одинаковый список поддержанных моделей.
|
||
EMULATOR_PROFILES = { # Каталог содержит платы с реальной прошивкой stm32-emulator; дополнительные порты подключаются здесь.
|
||
"STM32F407": {"title": "STM32F407VET6", "timer_hz": 72_000_000, "sample_max": 1_000_000, "settings": "stm_ump", "model": "STM32F407-EMU-EXPERIMENT", "igbt_inputs": tuple("PB%d" % pin for pin in range(8)), "igbt_gpio": True, "wave_port": "stm32f407-periph", "tools": tuple(EMULATOR_TOOLS)}, # TIM6 72 МГц и прежний ключ stm_ump сохраняют совместимость F407.
|
||
"STM32F103ZET6": {"title": "STM32F103ZET6", "timer_hz": 72_000_000, "sample_max": 1_000_000, "settings": "stm_emulator/STM32F103ZET6", "model": "STM32F103ZE-EMU-EXPERIMENT", "igbt_inputs": ("PB0", "PB1", "PB2", "PB10", "PB11", "PB12", "PB13", "PB14"), "igbt_gpio": True, "wave_port": "stm32f103-periph", "tools": tuple(EMULATOR_TOOLS)}, # High-density F103ZE имеет DAC/TIM6 72 МГц, UART/GAS и bxCAN; малые F103 без DAC не объявляются совместимыми автоматически.
|
||
"STM32G474RB": {"title": "STM32G474RB", "timer_hz": 160_000_000, "sample_max": 1_000_000, "settings": "stm_emulator/STM32G474RB", "model": "STM32G474RB-EMU-EXPERIMENT", "igbt_inputs": ("PB0", "PB1", "PB2", "PB10", "PB11", "PB12", "PB13", "PB14"), "igbt_gpio": True, "wave_port": "stm32g474-periph", "tools": tuple(EMULATOR_TOOLS)}, # RB использует свой USB BOOT, FDCAN и TIM6 160 МГц.
|
||
"STM32G474VET6": {"title": "HOPE STM32G474VET6", "timer_hz": 160_000_000, "sample_max": 1_000_000, "settings": "stm_emulator/STM32G474VET6", "model": "STM32G474VE-HOPE-EMU", "igbt_inputs": ("PB0", "PB1", "PB2", "PB10", "PB11", "PB12", "PB13", "PB14"), "igbt_gpio": False, "wave_port": "stm32g474-periph", "tools": tuple(EMULATOR_TOOLS)}, # HOPE подтверждает собственную USB-модель, USART1 PA9/PA10 и CAN1 PD0/PD1; GPIO IGBT отключены из-за CAN2 на PB12/PB13.
|
||
} # Модели общие, а идентичность, GPIO, частоты и сохранённое подключение принадлежат выбранной плате.
|
||
CANDLE_G474_BOOT = { # Профиль воспроизводит CAN_BOOTLOADER_G474.md и boot_profile.h проекта CANdle_stm32.
|
||
"app_base": 0x08008000, "app_size": 480 * 1024, # Начальные 32 КиБ из 512 КиБ Flash заняты BOOT; приложение занимает оставшиеся 480 КиБ.
|
||
"stack_base": 0x20000000, "stack_end": 0x20014000, # Валидатор pcan_boot_stm32g474.c проекта CANdle принимает начальный MSP только внутри используемых linker-скриптом 80 КиБ SRAM.
|
||
"device_type": 7, "device": 15, "product": 0, "hardware": 0, # Идентичность ProtoCAN BOOT: Type 7, Device 15, Product 0 и аппаратная ревизия 0.
|
||
"can_bitrate": 500_000, "uart_baud": 512_000, # Classic CAN работает на 500 кбит/с, USART1 PA9/PA10 — на 512000 бод, 8N1.
|
||
} # Адреса и скорости относятся только к CANdle G474VET6 и не подменяют профиль USB BOOT G474RB.
|