# Порт STM32F103RCT6 для HY27UF084G2M У `STM32F103RCT6` корпус LQFP64. Согласно datasheet STM32F103xC/D/E, функция FSMC в этом корпусе недоступна, поэтому порт выполняет асинхронные NAND-циклы через GPIO. ## Соединения Шина данных: - `I/O0 → PB0`, вывод MCU 26; - `I/O1 → PB1`, вывод MCU 27; - `I/O2 → PB2`, вывод MCU 28; - `I/O3 → PB3`, вывод MCU 55; - `I/O4 → PB4`, вывод MCU 56; - `I/O5 → PB5`, вывод MCU 57; - `I/O6 → PB6`, вывод MCU 58; - `I/O7 → PB7`, вывод MCU 59. Управляющие сигналы: - `CLE → PC0`, вывод MCU 8; - `ALE → PC1`, вывод MCU 9; - `WE# → PC2`, вывод MCU 10; - `RE# → PC3`, вывод MCU 11; - `CE# → PC4`, вывод MCU 24; - `WP# → PC5`, вывод MCU 25; - `R/B# → PC6`, вывод MCU 37. Питание NAND — 3,3 В. На каждый вывод питания нужен 100 нФ, рядом с чипом — 1–4,7 мкФ. `R/B#` имеет открытый сток и требует внешней подтяжки 4,7–10 кОм к 3,3 В. Не оставляйте `WP#` неподключённым. `PB2` также является `BOOT1`: NAND держит I/O в высокоимпедансном состоянии до командного цикла, но штатную конфигурацию загрузки платы всё равно нужно обеспечить подтяжкой. `PB3/PB4` заняты JTAG; порт отключает JTAG и сохраняет SWD на `PA13/PA14`. ## Подключение к проекту Cube/HAL Добавьте `parallel_nand_port_stm32f103rc.c`, путь к его заголовку и включите GPIO HAL. Инициализация: ```c #include "parallel_nand.h" #include "parallel_nand_port_stm32f103rc.h" static parallel_nand_t nand; int nand_init(void) { return parallel_nand_init( &nand, parallel_nand_port_stm32f103rc(), ¶llel_nand_hy27uf084g2m_geometry); } ``` После успешной инициализации прочитайте четыре байта ID и ожидайте `AD DC 80 95`. Ядро библиотеки работает только на чтение и удерживает `WP#` в активном низком уровне; PROGRAM/ERASE пока намеренно не реализованы.