реклама на сайте
подробности

 
 
> быстрый(простой) интерфейс STM32 F0 (F1) с внешней RAM, как добавить 32 или 64 килобайта RAM к простому(дешевому) STM32
Ruslan1
сообщение Jul 9 2015, 19:20
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



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

Есть задача, которая требует активной работы с большим объемом данных (FFT по массиву 32 килобайта).
Сейчас работаю с PIC24, к которому подцепил последовательную SRAM по SPI интерфейсу.
Компилятор позволяет описать эту память, и далее работать с расположенными в ней данными как с внутренней памятью (только медленнее, но оптимизирован доступ к 1,2,4-байтным данным). Это всего лишь вызов моих функций общения с внешней RAM, то есть могу вставить не SPI a любой другой интерфейс.

Хочу перейти на STM32 F0 или F1: при прочих равных у них, по сравнению с PIC24, больше внутреннего RAM и меньше цена, да и 12-бит АЦП везде, а не иногда как это в PIC (мне нужно не меньше чем 12 бит).

Пока что вопросы вот какие:
1. Есть ли возможность прицепить внешнее RAM объемом до 64 кБайт к младшим моделям и сделать эту память прозрачной на уровне компилятора для процедур записи-чтения? То есть я пишу A = Im[i]*Re[i], а компилятор сам поймет что нужно достать 4-байтовые величины из внешней SPI памяти и вставить обращение к нужным подпрограммам.
2. Как еще можно подцепить память? взять 4-битную или 8-битную? какие механизмы быстрого доступа есть в STM32? например, может есть внешняя шина адреса-данных для параллельной SRAM?
3. Что-нибудь еще для подключения внешней памяти, специфическое для STM32 ? Например, вижу недорогие модели с RAM 16 к, вероятно смогу что-то соптимизировать для минимизации обращений во внешнее RAM. Ну и какое-то DMA присутствеут, может поможет.

Сильным стимулом к переходу от 16-битного PIC24 на 32-битный STM32 будет, если скорость обработки возможно увеличить ну хоть в несколько раз. Сейчас у меня обработка FFT 4096 точек в формате плавающей запятой ординарной точности занимает около 20 секунд (благодаря внешней SPI RAM памяти, внутренняя RAM всего 2к). Чего можно ожидать от STMF0 ? Я вижу выигрыш засчет 32-битного ALU. Ну, тактовую от 32 МГц до 48 МГц поднять могу (30% выигрыш). надеюсь на оптимизацию засчет того что внутренняя RAM может быть больше. Что еще?

Ну и как вариант- взять F3 с RAM 40 килобайт и перестрелять всех зайцев с одним внутренним ОЗУ. А к нему можно цивильно внешнюю RAM подключить "на вырост"?
Еще обнаружил на дижикее STM32F411RCT6 - он почему-то дешевле чем F3, хотя имеет аж 128К ОЗУ, почему так?

Заранее спасибо за идеи и подсказки.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Jul 10 2015, 04:50
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Ruslan1 @ Jul 9 2015, 22:20) *
и сделать эту память прозрачной на уровне компилятора для процедур записи-чтения? То есть я пишу A = Im[i]*Re[i], а компилятор сам поймет что нужно достать 4-байтовые величины из внешней SPI памяти и вставить обращение к нужным подпрограммам.
На C++ - возможно, причем для любого процессора. На "голом" Си - маловероятно. Известные мне компиляторы не умеют, в Стандарте языка такого нет.
Цитата(Ruslan1 @ Jul 9 2015, 22:20) *
например, может есть внешняя шина адреса-данных для параллельной SRAM?
смотрите STM32 с модулем FSMC. Он умеет.
Цитата(Ruslan1 @ Jul 9 2015, 22:20) *
надеюсь на оптимизацию засчет того что внутренняя RAM может быть больше.
Да, переход на внутреннее ОЗУ должен дать огромный скачек.
Цитата(Ruslan1 @ Jul 9 2015, 22:20) *
Ну и как вариант- взять F3 с RAM 40 килобайт и перестрелять всех зайцев с одним внутренним ОЗУ.
Это наилучший вариант. Или сразу F4 - цена на них постоянно падает.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 06:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016