62 lines
2.5 KiB
Markdown
62 lines
2.5 KiB
Markdown
# Порт 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 пока намеренно не реализованы.
|