Подключение микросхемы флэш памяти W25Q64 к STM32F411CEU6.

 В интернете много есть библиотек для подключения этой флэш памяти, но всё меня что то не устраивало(да и чужие глюки если они там обнаружатся не хотелось вылавливать), поэтому решил сделать свой вариант для себя (и может быть кому нибудь ещё пригодится). Заодно разобрался как работают эти микросхемы.

 В результате пока организовал стандартный интерфейс связи SPI с микросхемой.

Чтение запись статус регистров, чтение Manufacturer Device ID и JEDEC ID микросхемы. Сброс (Reset), по секторное, по блочное и полное стирание микросхемы. Чтение и запись произвольного количества байт из микросхемы. При записи данных в определённую область памяти эта область должна быть предварительно стёртой. Тут так же не нужно самому отслеживать переход записываемых данных с одной страницы на другую всё это уже организовано в функции записи. Максимальный записываемый массив данных за раз пока ограничен размером в 64килобайта.

 В самом же коде библиотеки задействовано 2 прерывания. Первое от приёмника SPI, второе это системный таймер в котором организованы счётчики для тайм аутов при записи и стирании микросхемы и второй счётчик для организации выхода из функции записи если произошла фатальная ошибка(микросхема заблокирована для записи) чтоб не зависла основная программа.

 Остальное можно посмотреть по коду тестовой программы. Там же в файле PinDefs.h описание портов для чего используются и для чего в будущем будут у меня использованы при отладке других модулей программ.

 Использовалась отладочная плата от WeAct V3.0 на обратной стороне которой и распаяна микросхема памяти.

 Подключенная по этой схеме.

PA4 - Флешка 25Q64 (CS / NSS2).

PA5 - Флешка 25Q64 (SCK2).

PA6 - Флешка 25Q64 (MISO2).

PA7 - Флешка 25Q64 (MOSI2).

 Где в интернете нашёл эту картинку определения портов платы WeAct STM32F411 уже не помню.

 Ну и что у нас получилось результат на видео.


 Исходник программы + дамп микросхемы памяти с картинкой. https://disk....

 Версию EmBitz 2.41 и фикс для неё брал с этого сайта easyelectronics.... ну или можно всё скачать ещё здесь https://disk....

 В дальнейшем думаю из этого сделать отдельную библиотеку для целого набора микросхем 25 серии.