[i] Пример работы с микросхемой К1636РР4У по последовательному интерфейсу FLASH

ID статьи: 60515
Дата последнего изменения: 21.11.2025 10:44:27
Микросхема Flash-памяти К1636РР4У имеет в своём составе для взаимодействия два последовательных и параллельный интерфейсы (суммарно три). В реальном применении может стоять задача оптимизации количества используемых выводов, и в таком случае лучшим решением будет использование одного из последовательных интерфейсов.

1. Первый из последовательных интерфейсов, о котором и пойдет речь в настоящей статье - Последовательный интерфейс FLASH. Данный интерфейс использует для своей работы выводы: TDI, TCK, STROBE и MRST

2. Второй последовательный интерфейс - Последовательный интерфейс SPI. Данный интерфейс использует для своей работы выводы: nCE, SCK, SI, SO.
Оба интерфейса предоставляют доступ к одним и тем же функциям работы с памятью (чтение, запись, стирание: важно отметить, что в последовательном интерфейсе SPI больше вариаций команд, например, можно выполнить очистку либо блока, либо всей микросхемы - базовые же операции одинаковы), но через разные протоколы и управляющие сигналы.
Рассмотрим систему, которая будет работать с последовательным интерфейсом FLASH. Типовая схема такого включения приведена на рисунке 1 (выдержка из официальной документации на микросхему):


Рисунок 1 - Типовая схема включения микросхемы при эксплуатации в режиме работы по последовательному интерфейсу

Для организации взаимодействия по данному последовательному интерфейсу со стороны внешнего устройства удобно использовать интерфейс SPI в режиме с SPO = 1 и SPH = 1, который будет учитывать специфику внутреннего протокола, в рамках которого, например, потребуется самостоятельно управлять выводом STROBE (на стороне внешнего устройства это линия SSP_FSS).

Для реализации драйвера по работе с последовательным интерфейсом FLASH по SPI (пример доступен в конце статьи, в разделе "Файлы для скачивания"), который может быть портирован для любого управляющего контроллера, применялась связка микросхемы К1986ВЕ91Т и К1636РР4У. Схема подключения представлена на рисунке 2:

Рисунок 2 - Подключение микросхемы памяти К1636РР4У и микроконтроллера К1986ВЕ91Т 

Важным аспектом при реализации драйвера стоит отметить разметку памяти в зависимости от битов Num[3:0] (активный уровень "1") в командной последовательности. Для более глубокого понимания раскладка памяти представлена на рисунке 3:


Рисунок 3 - Раскладка памяти микросхемы К1636РР4У в зависимости от битов Num[3:0] при работе с последовательным интерфейсом FLASH

Из рисунка 3 следует, что если стоит задача обратиться, например, ко второму подблоку шестого блока памяти (всего их восемь, каждый блок объемом по 2 Мбит: блок при этом делится на два подблока, то есть каждый подблок объемом по 1 Мбит), необходимо при организации командной последовательности задать значение Num[3:0] равное 0b1011.
Основные особенности реализованного драйвера:

- Реализованный драйвер предоставляет следующий функционал: запись полуслова (16 бит), чтение полуслова (16 бит), стирание блока памяти (2 Мбит) и отдельная функция, тестирующая отдельно взятый подблок (1 Мбит) памяти.
- Драйвер завязан на работе стандартного интерфейса SSP, который используется во многих микроконтроллерах компании "Миландр", при этом частота микроконтроллера должна быть 80 МГц.
- "Ручное" управление выводом STROBE. При портировании можно использовать любой вывод GPIO.

Контактная информация

Сайт:https://support.milandr.ru
E-mail:support@milandr.ru
Телефон: +7 495 221-13-55