# Пины МК Документ составлен по прошивке: - `..\new rev\john103C8T6\john103C6T6.ioc` - `..\new rev\john103C8T6\Core\Inc\main.h` - `..\new rev\john103C8T6\Core\Src\gpio.c` - `..\new rev\john103C8T6\Core\Src\usart.c` - `..\new rev\john103C8T6\Core\Src\can.c` - `..\new rev\john103C8T6\Core\Src\i2c.c` - `..\new rev\john103C8T6\Core\Src\spi.c` - `..\new rev\john103C8T6\Core\Inc\ow_port.h` МК: `STM32F103C8Tx`, корпус `LQFP48`. ## Основные интерфейсы | Пин МК | Функция | Настройка | Назначение в проекте | |---|---|---|---| | `PB6` | `USART1_TX` | AF push-pull, remap USART1 | Modbus RTU slave TX | | `PB7` | `USART1_RX` | input, no pull, remap USART1 | Modbus RTU slave RX | | `PA2` | `USART2_TX` | AF push-pull | Modbus RTU master TX | | `PA3` | `USART2_RX` | input, no pull | Modbus RTU master RX | | `PA15` | `One_wire` | GPIO, динамически input/output | Шина 1-Wire для DS18B20 | | `PA10` | `Relay_dc5v` | GPIO output push-pull | Реле 5 В, управляется из Modbus coil `20` | | `PC13` | GPIO output | push-pull | Светодиод/индикация, используется в `led_blink()` | | `PA0` | GPIO input | no pull | Вход, назначение в коде не найдено | | `PA11` | `CAN_RX` | input | CAN RX | | `PA12` | `CAN_TX` | AF push-pull | CAN TX | | `PB8` | `I2C1_SCL` | AF open-drain, remap I2C1 | I2C1 SCL | | `PB9` | `I2C1_SDA` | AF open-drain, remap I2C1 | I2C1 SDA | | `PB3` | `SPI1_SCK` | AF push-pull, remap SPI1 | SPI1 SCK | | `PB4` | `SPI1_MISO` | input, no pull, remap SPI1 | SPI1 MISO | | `PB5` | `SPI1_MOSI` | AF push-pull, remap SPI1 | SPI1 MOSI | | `PA13` | `SWDIO` | Serial Wire | Отладка | | `PA14` | `SWCLK` | Serial Wire | Отладка | | `PD0` | `OSC_IN` | HSE oscillator | Внешний кварц | | `PD1` | `OSC_OUT` | HSE oscillator | Внешний кварц | ## GPIO output, сконфигурированные в `MX_GPIO_Init` | Пин МК | Начальное состояние | Комментарий | |---|---:|---| | `PC13` | `RESET` | Индикация, мигает при старте через `led_blink(GPIOC, 13, ...)` | | `PA1` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PA4` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PA5` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PA6` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PA7` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PA8` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PA9` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PA10` | `RESET` | `Relay_dc5v`, в цикле main зависит от `MB_DATA.Coils.coils[1].state_val_bit.state_val_05` | | `PA15` | `RESET` | 1-Wire, затем драйвер меняет режим пина input/output | | `PB0` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PB1` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PB2` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PB10` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PB11` | `RESET` | Есть macro `GPIOB11_valve`, но прямой записи в `PB11` в текущем коде не найдено | | `PB12` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PB13` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PB14` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | | `PB15` | `RESET` | Выход сконфигурирован, активного использования в коде не найдено | ## Периферия без внешнего пина | Периферия | Настройка | Назначение | |---|---|---| | `TIM1` | internal clock, period `65535`, prescaler `0` | Тайминги 1-Wire, `OW_TIM` | | `TIM2` | internal clock, period `65535`, prescaler `7199` | Таймер Modbus slave | | `TIM4` | internal clock, period `65535`, prescaler `7199` | Таймер Modbus master | | `ADC1` | `ADC_CHANNEL_VREFINT` | Внутренний Vref, внешних ADC-пинов нет | | `RTC` | LSI | Часы, доступны через Modbus-регистры | ## Замечания - В `.ioc` пины `PA2/PA3` отмечены как GPIO output, но в актуальном `usart.c` они инициализируются как `USART2_TX/RX`. Для документации использована фактическая инициализация из исходников. - Функция `handle_valves()` содержит запись в `GPIOC` pin `14`, но `PC14` не инициализирован в `MX_GPIO_Init()` и сама функция в основном цикле закомментирована. - Для RS-485 direction control (`DE/RE`) отдельный GPIO в `modbus_config.h` не задан: `RS_EnableReceive()` и `RS_EnableTransmit()` закомментированы.