# Распиновка STM32G474 ## Источники | Объект | Статус | Примечание | |---|---|---| | Проект `STM32G474CEU6` | не найден | Подтверждённого `.uvprojx/.ioc` для CEU6 нет | | Кандидатный проект | найден | `IHM08M`, цель `STM32G474RETx` | | CubeMX `.ioc` | найден | `AD_Keil_Project/IHM08M.ioc` | | Схема `X-NUCLEO-IHM08M1` | найдена | источник для ADC-сигналов `PhA`, `PhB`, `PhC`, `BUSV`, `Temp. Sens.`: `https://www.st.com/resource/en/schematic_pack/x-nucleo-ihm08m1_schematic.pdf` | | Плата | кандидат | `NUCLEO-G474RE`, не целевая плата CEU6 | | Старый embedded-код | найден | C2000/TMS320 в `Inu_im_1wnd_3lvl/Inu` | ## Подтверждённые пины STM32G474CEU6 Подтверждённой распиновки для `STM32G474CEU6` в проекте нет. Ниже приведена только кандидатная распиновка из `STM32G474RETx / NUCLEO-G474RE`. ## Кандидатная распиновка из `IHM08M.ioc` и схемы IHM08M1 | Пин | Сигнал | Направление | Назначение | Источник | |---|---|---|---|---| | `PC13` | `B1` | вход EXTI | кнопка пользователя | `.ioc`, `main.h` | | `PC14` | `RCC_OSC32_IN` | вход | LSE | `.ioc`, `main.h` | | `PC15` | `RCC_OSC32_OUT` | выход | LSE | `.ioc`, `main.h` | | `PC0` | `ADC1_IN6` | аналоговый вход | IHM08M1 `PhC`, ток фазы C | схема IHM08M1, `ad_board.c` | | `PC1` | `ADC1_IN7` | аналоговый вход | IHM08M1 `PhB`, ток фазы B | схема IHM08M1, `ad_board.c` | | `PC2` | `ADC1_IN8` | аналоговый вход | IHM08M1 `Temp. Sens.`, пока не читается | схема IHM08M1 | | `PF0` | `RCC_OSC_IN` | вход | HSE | `.ioc`, `main.h` | | `PF1` | `RCC_OSC_OUT` | выход | HSE | `.ioc`, `main.h` | | `PA0` | `ADC1_IN1` | аналоговый вход | IHM08M1 `PhA`, ток фазы A | схема IHM08M1, `ad_board.c` | | `PA1` | `ADC1_IN2` | аналоговый вход | IHM08M1 `BUSV`, напряжение DC-звена | схема IHM08M1, `ad_board.c` | | `PA5` | не используется | не инициализируется | IHM08M1 `PA5 - DAC`; конфликт с `LD2` убран | схема IHM08M1, `ad_board.c` | | `PA6` | `TIM1_BKIN` | AF-вход | аппаратный `BKIN` | `.ioc`, `stm32g4xx_hal_msp.c`, схема IHM08M1 | | `PA8` | `TIM1_CH1` | AF-выход | IHM08M1 `UH`, верхний ключ U | `.ioc`, `stm32g4xx_hal_msp.c`, `ad_inverter.c` | | `PA7` | `TIM1_CH1N` | AF-выход | IHM08M1 `UL`, нижний ключ U | `.ioc`, `stm32g4xx_hal_msp.c`, `ad_inverter.c` | | `PA9` | `TIM1_CH2` | AF-выход | IHM08M1 `VH`, верхний ключ V | `.ioc`, `stm32g4xx_hal_msp.c`, `ad_inverter.c` | | `PB0` | `TIM1_CH2N` | AF-выход | IHM08M1 `VL`, нижний ключ V | `.ioc`, `stm32g4xx_hal_msp.c`, `ad_inverter.c` | | `PA10` | `TIM1_CH3` | AF-выход | IHM08M1 `WH`, верхний ключ W | `.ioc`, `stm32g4xx_hal_msp.c`, `ad_inverter.c` | | `PB1` | `TIM1_CH3N` | AF-выход | IHM08M1 `WL`, нижний ключ W | `.ioc`, `stm32g4xx_hal_msp.c`, `ad_inverter.c` | | `PA13` | `T_SWDIO` | отладка | SWDIO | `.ioc`, `main.h` | | `PA14` | `T_SWCLK` | отладка | SWCLK | `.ioc`, `main.h` | | `PB3` | `GPIO_Input` | вход | IHM08M1 `Enc. B/H2`; SWO убран из `.ioc` | `.ioc`, схема IHM08M1 | ## Периферия кандидатного проекта | Периферия | Статус | |---|---| | ADC | вручную включен `ADC1` в `ad_board.c`; `.ioc` еще не синхронизирован | | TIM/PWM | шесть линий IHM08M1 через `TIM1`: `UH/UL`, `VH/VL`, `WH/WL`; `PA6/TIM1_BKIN` включен | | GPIO | кнопка `B1`; `PA5/LD2` не используется по умолчанию | | DMA | HAL-файлы есть, CubeMX init нет | | UART/USART | не включён | | CAN/FDCAN | не включён | | SPI/I2C | не включён | | OPAMP/COMP | не включён | | Watchdog | не настроен | | TIM break | `PA6 / TIM1_BKIN`, `TIM_BREAKPOLARITY_HIGH`; полярность надо проверить на железе | ## Сигналы старого C2000-кода Эти строки не являются STM32-распиновкой. Они нужны только как чек-лист миграции: | Сигнал C2000 | Назначение | |---|---| | `EPWM1A/B` .. `EPWM6A/B` | PWM-выходы инвертора | | `ADCRESULT0` | DC-звено `udc1` | | `ADCRESULT2` | ток `ic1` | | `ADCRESULT4` | ток `ia1` | | `ADCRESULT6` | ток `ib1` | Текущее STM32-сопоставление-кандидат: | Сигнал | STM32 | |---|---| | `ia_A` | `PA0 / ADC1_IN1` | | `ib_A` | `PC1 / ADC1_IN7` | | `ic_A` | `PC0 / ADC1_IN6` | | `vdc_V` | `PA1 / ADC1_IN2`, кусочная калибровка: `0.618 В ADC -> 10 В`, выше `14.5 В` масштаб `12.1770 В/В` | | `EQEP2A/B/I` | датчик скорости/положения | | `DI_24V_SOURCE_FAULT` | авария +24 В | | `SPIA` + `CS` | EEPROM или внешний SPI | | `LED_GREEN1/2`, `LED_RED` | индикация | ## Что нужно для настоящей платы CEU6 - Добавить настоящий `.ioc` и `.uvprojx` для `STM32G474CEU6`. - Заполнить ШИМ-пины, комплементарные выходы, мёртвое время и break. - Заполнить ADC-каналы токов, DC-звена и температуры. - Добавить входы аварии и аварийного стопа. - Перегенерировать этот документ по реальному CubeMX-проекту.