Jump to content

    

Помогите понять errata на STM32L431CB

Здравствуйте!

Хочу в устройство поставить STM32L431CB

К устройству будет подключена АЦП по SPI, BLE модуль по LPUART и флешь память по QUADSPI (W25Q64FVSSIG)

Перед тем как покупать микроконтроллер заглянул в Errata. Помогите понять документ.

В разделе QUADSPI они пишут:

Spoiler

ErrataQUADSPI.thumb.png.291047dcfc9da8f19149e6f194214946.png

При quadspi, насколько я понял мне не нужно формировать команды чтения записи и считать адреса вручную. Периферия за меня это сделает? (Впервые буду QUADSPI использовать - не успел ещё всё изучить)

Пока не понял что есть косвенный режим. На что тут обратить внимание при работе с внешней памятью? Получиться вообще хоть?

Раздел LPUART

Spoiler

ErrataLPUART.thumb.png.5a3e78681a60d6c45e68128219d30b3d.png

Тут сказано, что не может устанавливаться в выход с открытым стоком. У меня всегда настроен в push-pull. В каких случаях используется open-drain и нужно ли что то добавлять в схемотехнике?

 

Раздел SPI.

Spoiler

ErrataSPI.thumb.png.30d2c29e0603c66f564cd7417f34367c.png

У меня микроконтроллер работает мастером, значит в моём случае актуально только 2.14.4

Тут, как я понял, либо работать медленно либо режим другой? Что за range 1 и range 2 в таблице?

Заранее, спасибо за любые советы.

Edited by di4zerus

Share this post


Link to post
Share on other sites

UART - подразумевает возможность наличия на одной шине нескольких местеров. Чисто технически. Если только один мастер и один ведомый, то режим Push-Pull на выходе ничего не изменит. Но если используется только одна двунаправленная линия (такое бывает, если замкнуть TX-RX и обмениваться данными по одному проводу), то этот режим может стать проблемой. Как обходной манёвр - отключать передатчик и переводить пин TX из альтернативного режима в аналоговый или вход.

 

По третьему блоку - Да, только пункт 2.14.4. Первые три относятся к SPI модулю в режиме ведомого.

Технически, в этом случае может возникать только дополнительный такт в самом конце передачи. Не целый байт, а один лишний бит. Не совсем понятно, будет ли возникать данная ошибка в случае установки максимальной частоты BR[2:0] = '000' (fPclk/2). Естественно, в этом случае частота SPI шины будет выше и не должно формироваться дополнительного строба (судя по тому, что указано только для fPclk/4).

Edited by AlanDrakes

Share this post


Link to post
Share on other sites

AlanDrakes, спасибо за помощь.

Вот, кстати, да.По SPI не понятно. Если в тексте указана fpclk/4. То ниже дана таблица, где, насколько я понял, ограничена максимальная скорость. Хотя ХЗ, что такое Range 2...

 

С quadspi флешками кто-нибудь работал?

Share this post


Link to post
Share on other sites
30 минут назад, di4zerus сказал:

С quadspi флешками кто-нибудь работал?

Да.

Share this post


Link to post
Share on other sites
5 hours ago, jcxz said:

Да.

На STM32? Сильно заморочено? Приходилось что-нибудь из Errata преодолевать?

Share this post


Link to post
Share on other sites
1 минуту назад, di4zerus сказал:

На STM32? Сильно заморочено?

LPC4370. Нет, там просто. Но если в STM похоже на то, как сделано в LPC, то Вам надо понять разницу между обычным доступом через SPI и memory-mapped режимом (который STM32 тоже похоже начал уметь).

Я вижу, что вы не понимаете что именно вам нужно. В LPC в memory-mapped режиме возможно было только чтение. Здесь, подозреваю, аналогично.

Share this post


Link to post
Share on other sites

Нет. Мне нужна память для архивов с 16-ти каналов АЦП записывать в течение длительного периода времени. А птом по этим архивам искать. Память ёмкая micron MT25QL на 128 Мбит. (чтобы хранить все архивы по возможности не стирая память поищу на 1Г). По всему архиву нужно будет осуществлять поиск и чтение. Чем быстрее, тем лучше. Micron предлагает (Supported protocols: Extended, Dual and Quad I/Oboth STR and DTR) вроде бы тот же самый QSPI. Пока взял winbond. Там тоже QUADSPI вот и думаю, почему бы не использовать, раз этот интерфейс позиционируется как интерфейс памяти.

Или не стоит заморачиваться?

Edited by di4zerus

Share this post


Link to post
Share on other sites

Не знаю как в L4, но в F7, например, работает только memory mapped read, то есть можно только читать в режиме карты памяти. Если нужна запись, то нужно работать с довольно медленными процедурами записи. Работать одновременно и на запись и на чтение в memory mapped mode не умеет.

Share this post


Link to post
Share on other sites
9 минут назад, Segment сказал:

Не знаю как в L4, но в F7, например, работает только memory mapped read, то есть можно только читать в режиме карты памяти.

Что я и подозревал....

Но ТС может писать в обычном режиме, а когда нужно много читать - переключаться в memory mapped. На LPC4370 у меня так всё и работало.

Share this post


Link to post
Share on other sites
2 часа назад, jcxz сказал:

Что я и подозревал....

Но ТС может писать в обычном режиме, а когда нужно много читать - переключаться в memory mapped. На LPC4370 у меня так всё и работало.

На мой взгляд, пока переключается режим — уже можно прочитать нужный блок. Там операции эти прилично занимают тактов, так что в целом организовывать переключение режимов накладно с точки зрения архитектуры кода.

Share this post


Link to post
Share on other sites
50 минут назад, Segment сказал:

На мой взгляд, пока переключается режим — уже можно прочитать нужный блок. Там операции эти прилично занимают тактов, так что в целом организовывать переключение режимов накладно с точки зрения архитектуры кода.

Если ТС, как пишет, собирается там хранить какие-то большие архивы, то для поиска в них инфы их очень желательно проиндексировать. Сделать это лучше при старте ПО. Создать таблицу индексов в ОЗУ. Здесь нужно будет много читать (может весь объём). И быстро (чтобы не тормозить запуск ПО). Вот тут и полезен будет memory mapped режим.

Share this post


Link to post
Share on other sites

Благодарю за советы!

На сколько я понял из вашей беседы, QUAD SPI режим подходит, по большей части, для для хранения кода или каких то неизменяемых данных?

Всё же попробую разобраться.

Share this post


Link to post
Share on other sites
7 минут назад, di4zerus сказал:

На сколько я понял из вашей беседы, QUAD SPI режим подходит, по большей части, для для хранения кода или каких то неизменяемых данных?

quad-spi - это интерфейс связи с чипом (передачи команд/данных). К хранению данных он не имеет никакого отношения. И мы к тому же говорили не про него, а про memory mapped режим.

Хоть почитайте хоть что-то по теме уж наконец-то......

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this