Files
templates/c/parallel-nand/ports/stm32f103rc/README.md

52 lines
2.1 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.
# Порт STM32F103RCT6 для HY27UF084G2M
У `STM32F103RCT6` корпус LQFP64. Согласно datasheet STM32F103xC/D/E, функция
FSMC в этом корпусе недоступна, поэтому порт выполняет асинхронные NAND-циклы
через GPIO.
## Соединения
| HY27UF084G2M | STM32F103RCT6 | LQFP64 |
|---|---|---:|
| `I/O0..I/O7` | `PB0..PB7` | 26, 27, 28, 55, 56, 57, 58, 59 |
| `CLE` | `PC0` | 8 |
| `ALE` | `PC1` | 9 |
| `WE#` | `PC2` | 10 |
| `RE#` | `PC3` | 11 |
| `CE#` | `PC4` | 24 |
| `WP#` | `PC5` | 25 |
| `R/B#` | `PC6` | 37 |
Питание NAND — 3,3 В. На каждый вывод питания нужен 100 нФ, рядом с чипом —
14,7 мкФ. `R/B#` имеет открытый сток и требует внешней подтяжки 4,710 кОм
к 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(),
&parallel_nand_hy27uf084g2m_geometry);
}
```
После успешной инициализации прочитайте четыре байта ID и ожидайте
`AD DC 80 95`. Порт поддерживает PROGRAM/ERASE: ядро держит `WP#` в активном
низком уровне между операциями и поднимает его только на время изменения NAND.