Не знаю что вы хотите от флешки, мне нужно было только чтение данных ( это криво-косо и сделал). Записывать на флешку данные я планирую с помощью ExternalLoader через STLink-Utility. Затевалось всё для работы с вот такими платками BlackPill На них есть место под флешку , это очень удобно, можно конечно и на проводках подкинуть. Схема подключения флешки на моей плате, ( версии у плат бывают разные и пины могут отличаться ) нужно проверять. Демо проект , проверял на F401RCT6 и на F411CEU6 , но думаю на любом чипе F4 должно работать. Сделал две функции , чтение ID флешки и чтение последовательности данных с нужного адреса . Процесс чтения ID очень простой, нужно передать команду 0x9F и затем 3 любые байты , считывая принятый байт из регистра SPI_DR . Для чтения данных нужно отправить команду 0x03, затем три байта адреса ( старшим байтом вперёд), и затем отправлять и читать столько сколько хотим получить байт данных. От использования DMA пока отказался , ради простоты
Уважаемые пользователи ресурса, ни какой политики на форуме!
Никаких нациалистических взглядов.
Используйте ресурс по назначению!
На аватарках ни какой символики, причисляющей Вас к каким либо группам!
Не провоцируйте других участников.
Никаких нациалистических взглядов.
Используйте ресурс по назначению!
На аватарках ни какой символики, причисляющей Вас к каким либо группам!
Не провоцируйте других участников.
STM32F4xx_SPI_FLASH
STM32F4xx_SPI_FLASH
Последний раз редактировалось dvk Сб мар 28, 2026 3:53 pm, всего редактировалось 2 раза.
Re: STM32F4xx_SPI_FLASH
Модуль создан на базе имеющегося в редакторе spi_tx , в него добавлены переменная для хранения ID и маленький массивчик для данных пример чтения
Последний раз редактировалось dvk Сб мар 28, 2026 3:51 pm, всего редактировалось 1 раз.
Re: STM32F4xx_SPI_FLASH
Для записи данных во флешку можно использовать STLink Utility или CubeProgrammer и Внешний Загрузчик . Это сам загрузчик , его нужно добавить в папку External Loader любой из этих программ.В самой папке уже содержаться разные загрузчики для разных плат, их можно все удалить. Затем нужно выбрать загрузчик и указать адрес 0x90000000 Загрузчик писался для F411 и флешки W25Q64 которая должна сидеть на SPI1 как на схеме выше, это обязательно. Загрузчик нормально работает сейчас и с F401RCT6 и флешкой W25Q32. работать будет и с меньшим объёмом флешки а вот флешками размером 128 Мбит и больше уже не будет в полном объёме.
Re: STM32F4xx_SPI_FLASH
ну еще написать подпрограмму записи - и можно оформлять в виде модуля читающего\записывающего флешку
на счет SPI1 - ну главное чтобы с чего то можно было начать, дальше уже кому надо будет поправят
на счет SPI1 - ну главное чтобы с чего то можно было начать, дальше уже кому надо будет поправят
Re: STM32F4xx_SPI_FLASH
SPI1 нужен для работы через внешний загрузчик STLink Utility. Если не использовать внешний загрузчик то конечно можно любой настраивать, только нужно как-то что-то записатьVitGo писал(а): Сб мар 28, 2026 6:39 pm на счет SPI1 - ну главное чтобы с чего то можно было начать, дальше уже кому надо будет поправят
Re: STM32F4xx_SPI_FLASH
я про код записи во флешку со стороны мку..
то что можно через утилиту - это тоже конечно полезно, но скорее для тех кому восстановить данные надо..
я просто думаю как в своем проектике делать хранилище.. и вариант с какой нить spi флешкой пока мне нравиться...
разметить ее как cpm диск и использовать в операционке,
то что можно через утилиту - это тоже конечно полезно, но скорее для тех кому восстановить данные надо..
я просто думаю как в своем проектике делать хранилище.. и вариант с какой нить spi флешкой пока мне нравиться...
разметить ее как cpm диск и использовать в операционке,
Re: STM32F4xx_SPI_FLASH
Вчера попробовал писать . Эта гадюка ( запись ) , самая замороченная. Нужна ещё очистка , чтение статуса, проверка корректности записи
Вы примерно представляете сколько данных и как часто нужно будет писать ?
контроль износа есть в вашей операционке ? наверное нет
Re: STM32F4xx_SPI_FLASH
День добрый.
Перенёс все проверки флагов в подпрограммы Пришла мысля , можно ли их как-то в макросы обернуть ? А главное как ?))) У меня не получилось слёту
Перенёс все проверки флагов в подпрограммы Пришла мысля , можно ли их как-то в макросы обернуть ? А главное как ?))) У меня не получилось слёту
Re: STM32F4xx_SPI_FLASH
Сам шучу, сам смеюсь красненькое , но работает
. Интересно было бы услышать критику такого MACROсофака
Re: STM32F4xx_SPI_FLASH
Добавил :
Очистку сектора
Запись страницы
Проверку статуса записи\стирания
Запись одного байта выглядит так.
1 Отправляем команду разрешения записи
2 Проверяем установился ли бит разрешения записи в статус регистре флешки
3 Отправляем команду записи и адрес куда будем писать. Затем один байт(для теста)
4 Проверяем бит занятости в статус регистре флешки. Он показывает что процесс записи\стирания продолжается и другие команды флешка не примет , пока бит не сбросится.
Всё это происходит "очень" долго. Если производить запись не очень часто , то пункт 4 можно исключить или перенести его в начало цикла записи. Пункт 2 тоже не особо нужен , у меня во всех тестах бит WEL (Write Enable Latch) в статус регистре успевал установиться до начала записи.
Можно всё ускорить и настроить под свои нужды
Очистку сектора
Запись страницы
Проверку статуса записи\стирания
Запись одного байта выглядит так.
1 Отправляем команду разрешения записи
2 Проверяем установился ли бит разрешения записи в статус регистре флешки
3 Отправляем команду записи и адрес куда будем писать. Затем один байт(для теста)
4 Проверяем бит занятости в статус регистре флешки. Он показывает что процесс записи\стирания продолжается и другие команды флешка не примет , пока бит не сбросится.
Всё это происходит "очень" долго. Если производить запись не очень часто , то пункт 4 можно исключить или перенести его в начало цикла записи. Пункт 2 тоже не особо нужен , у меня во всех тестах бит WEL (Write Enable Latch) в статус регистре успевал установиться до начала записи.
Можно всё ускорить и настроить под свои нужды