Сохранить текущие изменения NAND и LED перед объединением веток
This commit is contained in:
62
c/parallel-nand/ports/stm32f103ze/README.md
Normal file
62
c/parallel-nand/ports/stm32f103ze/README.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Порт STM32F103ZET6 для HY27UF084G2M
|
||||
|
||||
Порт использует аппаратный контроллер `FSMC NAND Bank 3`, 8-битную шину и
|
||||
окно памяти `0x70000000`. Сигналы `CE#`, `WE#`, `RE#`, `CLE` и `ALE`
|
||||
формируются FSMC. Защита записи `WP#` управляется отдельным GPIO `PG8`.
|
||||
|
||||
## Соединения
|
||||
|
||||
| HY27UF084G2M | STM32F103ZET6 | LQFP144 | Функция FSMC |
|
||||
|---|---|---:|---|
|
||||
| `I/O0` | `PD14` | 85 | `D0` |
|
||||
| `I/O1` | `PD15` | 86 | `D1` |
|
||||
| `I/O2` | `PD0` | 114 | `D2` |
|
||||
| `I/O3` | `PD1` | 115 | `D3` |
|
||||
| `I/O4` | `PE7` | 58 | `D4` |
|
||||
| `I/O5` | `PE8` | 59 | `D5` |
|
||||
| `I/O6` | `PE9` | 60 | `D6` |
|
||||
| `I/O7` | `PE10` | 63 | `D7` |
|
||||
| `CLE` | `PD11` | 80 | `A16/CLE` |
|
||||
| `ALE` | `PD12` | 81 | `A17/ALE` |
|
||||
| `WE#` | `PD5` | 119 | `NWE` |
|
||||
| `RE#` | `PD4` | 118 | `NOE` |
|
||||
| `CE#` | `PD7` | 123 | `NCE2` |
|
||||
| `R/B#` | `PD6` | 122 | вход GPIO (`NWAIT`) |
|
||||
| `WP#` | `PG8` | 93 | выход GPIO |
|
||||
|
||||
`R/B#` имеет открытый сток и требует внешней подтяжки 4,7–10 кОм к 3,3 В.
|
||||
Питание NAND — 3,3 В; возле каждой пары питания нужен 100 нФ, рядом с
|
||||
микросхемой — 1–4,7 мкФ. Все номера выводов MCU указаны для вида сверху.
|
||||
|
||||
## Подключение к STM32Cube HAL
|
||||
|
||||
В `stm32f1xx_hal_conf.h` должны быть включены `HAL_NAND_MODULE_ENABLED` и
|
||||
`HAL_GPIO_MODULE_ENABLED`. В проект добавляются:
|
||||
|
||||
- `parallel_nand_port_stm32f103ze.c`;
|
||||
- `stm32f1xx_hal_nand.c`;
|
||||
- `stm32f1xx_ll_fsmc.c`.
|
||||
|
||||
Инициализация переносимой библиотеки:
|
||||
|
||||
```c
|
||||
#include "parallel_nand.h"
|
||||
#include "parallel_nand_port_stm32f103ze.h"
|
||||
|
||||
static parallel_nand_t nand;
|
||||
|
||||
int nand_init(void)
|
||||
{
|
||||
return parallel_nand_init(
|
||||
&nand,
|
||||
parallel_nand_port_stm32f103ze(),
|
||||
¶llel_nand_hy27uf084g2m_geometry);
|
||||
}
|
||||
```
|
||||
|
||||
Начальные тайминги намеренно консервативны. После запуска проверьте
|
||||
осциллографом длительности `WE#`/`RE#` и время установки данных. Ожидаемый ID
|
||||
HY27UF084G2M: `AD DC 80 95`.
|
||||
|
||||
Порт поддерживает PROGRAM/ERASE. `WP#` на `PG8` остаётся активным между
|
||||
операциями и снимается ядром только на время программирования или стирания.
|
||||
Reference in New Issue
Block a user