Files
ds18b20-MODBUS/john103C6T6NewVer/MCU_PINS.md
2026-06-25 17:25:41 +03:00

79 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Пины МК
Документ составлен по прошивке:
- `..\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()` закомментированы.