pvo125 0 24 марта, 2020 Опубликовано 24 марта, 2020 · Жалоба Нашел я и у себя ошибку. команда write enable посланная spi флэшке не срабатывала. А не срабатывала она из за того что была описана так static void WriteEnable(void) { CS_LOW(); SPI1->DR=WREN; //WREN=0x06 while((SPI1->SR&SPI_SR_BSY)==SPI_SR_BSY) {} CS_HIGH(); } а нужно так static void WriteEnable(void){ CS_LOW(); SPI1->DR=WREN; //WREN=0x06 while(!(SPI1->SR&SPI_SR_TXE)) {} while((SPI1->SR&SPI_SR_BSY)==SPI_SR_BSY) {} CS_HIGH(); } Этот бит BSY не сразу ставиться при записи очередного байта в регистр DR. 2 такта шины APB нужно. Но в проекте у меня это срабатывала. А когда кейлу эти функции подсовывал то нет. В итоге когда собрал проект с оптимизацией 3 то и в проекте перестало работать с этого места начал копать и набрел на эту задержку флага. Видимо без оптимизации успевал устанавливаться. Короче в любом случае если один байт посылается сначала проверять флаг TXE и следом за ним уже BSY. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 24 марта, 2020 Опубликовано 24 марта, 2020 · Жалоба Так тоже может не сработать, в зависимости от режима SPI. Ждать надо RXNE. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 29 марта, 2020 Опубликовано 29 марта, 2020 · Жалоба Перешел c F746 на H743 Убил некоторое время на переделку алгоритма и основного кода. Заработало — и чтение и запись и алгоритм для прошивки. Только что-то не хочет у меня QSPI работать на частоте выше 33 МГц. Немного спасает конечно DDR режим, но все равно медленно. На F7 я запускал, если мне не изменяет память, на 100 МГц или около того. Сейчас я настраиваю HCLK на 200 МГц, работает только с clockPrescaler=5. (получается 200/(5+1) =33) Память W25Q128, две микросхемы в режиме DualFlash Я так понял они тактирование изменили, судя по схеме в Cube. Даже в коде для отладочной платы у них есть такие вот строки /* ClockPrescaler set to 1, so QSPI clock = 200MHz / (1+3) = 50MHz */ QSPIHandle.Init.ClockPrescaler = 3; QSPIHandle.Init.FifoThreshold = 16; Я не пойму, они что ли капитулировали и признали недееспособность QSPI выше 50 МГц? У кого какой опыт в использовании H7+QSPI? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LEXis-MegaVolt 0 12 октября, 2020 Опубликовано 12 октября, 2020 · Жалоба Приветствую всех. Совсем недавно меня столкнули с H743. Сразу необходимости исполнения кода из QSPI причем память NAND w25n01gv, Код вроде научился частично исполнять из примера QSPI_ExecuteInPlace, но это не совсем то, потому что входит в точку выполнения вроде по адресу 0x9000000, но сам BSP_LED_Toggle исполняет из 0x8000000 (со смещением соответственно), у меня вопрос, как понять или почитать про Scatter-ы, мне нужно основной большой код положить в SPI, только вот засунуть его туда пока не получается. Вообще пытался понять как их пишут. Но походу у меня нет таких "веществ", под которыми их придумывали... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LEXis-MegaVolt 0 21 октября, 2020 Опубликовано 21 октября, 2020 · Жалоба 30.01.2020 в 23:02, Forger сказал: Открывайте папку Keil\ARM\Flash\ находите наиболее подходящий вариант, переделываете под себя, пересобираете, заливаете туда же https://arm-software.github.io/CMSIS_5/Pack/html/flashAlgorithm.html Пробовал добавлять свой алгоритм, сделал пак, но этот пак добавляет устройство А не в список: Дайте пожалуйста правильное направление... А то я по ходу где-то свернул не туда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AleksBak 0 21 октября, 2020 Опубликовано 21 октября, 2020 · Жалоба 1 час назад, LEXis-MegaVolt сказал: Дайте пожалуйста правильное направление... Попробуйте поступить радикально - откажитесь от всей этой дури и разбирайтесь/пишите сами на регистрах. Будет мучительно очень больно, но по-моему так зато что-то получится. Сам сейчас пробую тоже самое. Вот человек задал вопрос тут: 29.03.2020 в 21:16, MementoMori сказал: У кого какой опыт в использовании H7+QSPI? И ему никто и ничего так и не ответил с тех пор. Хотя вроде все есть и за несколько "кликов мышью" можно готовый проект с кодом наклепать. Но так никто и не ответил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rat 0 21 октября, 2020 Опубликовано 21 октября, 2020 · Жалоба On 3/30/2020 at 12:16 AM, MementoMori said: У кого какой опыт в использовании H7+QSPI? Использовал QSPI с STM32H750 на 100МГц SDR. Писал на регистрах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LEXis-MegaVolt 0 21 октября, 2020 Опубликовано 21 октября, 2020 · Жалоба 4 часа назад, AleksBak сказал: Попробуйте поступить радикально - откажитесь от всей этой дури и разбирайтесь/пишите сами на регистрах. Будет мучительно очень больно, но по-моему так зато что-то получится. Сам сейчас пробую тоже самое. Вот человек задал вопрос тут: Проблема не в том на чем напишу, а в том чтобы зашивать код во флеш подключенную через qspi отладчику надо знать как работать с этой флешей - нужен Flash Loader, как инициализировать, на каких ногах, тайминги, размеры кода и банок. А для этого надо или использовать то что есть, что мне неподходит по схеме, или писать свое. Вот я и спрашиваю куда я не туда пошел при запихивании поддержки лоадера в Кейл? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 21 октября, 2020 Опубликовано 21 октября, 2020 · Жалоба 2 hours ago, LEXis-MegaVolt said: Вот я и спрашиваю куда я не туда пошел при запихивании поддержки лоадера в Кейл? Уже ранее в этой теме всё описано Keil5\ARM\Flash\... Смотрите примеры и делаете под свой H743 и w25n01gv Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться