Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нехватка ресурсов
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
bekor
Привет всем
появилась у меня такая вот проблема
делал я один проект на контроллере xmega128a1,
и когда все уже было сделано почти на 90%
то есть все модули и драйвера по отдельности уже готовы и работают
осталось только собрать их вместе, и вдруг выяснилось что
процессор не успевает все это дело делать
короче этот контроллер слабоват для моей задачи,
а ведь проект то надо заканчивать поскорее. Единственный выход из
сложившийся ситуации по моему это переводить проект на другой более мощный контроллер.
Но какой выбрать не знаю, посоветуйте пожалуйста.

какой выбрать чтобы за минимальное время можно было легко все это сделать
много времени для изучения контроллера нету.
пишу на Си.

примерные требования к МК
CPU хотябы 64MHz
штатное подключение SDRAM
16 разрядных таймеров 8штук минимум
аппаратная поддержка SD/HC карт памяти
встроенный ЦАП 10бит
встроенный АЦП 10бит

да и конечно же очень низкая цена и доступность...
а также чтобы можно было шить смопальным программатором
и писать код в IAR
Dog Pawlowa
Цитата(bekor @ Jan 28 2011, 01:39) *
16 разрядных таймеров 8штук минимум

Непонятное требование, а по всему остальному LPC22XX вроде подходит.
Да, таймеров должно быть больше в LPC29XX.
Короче, ARM7.
Только АЦП / ЦАП на плате c SDRAM будут плохо работать.
bekor
Цитата(Dog Pawlowa @ Jan 28 2011, 08:45) *
Непонятное требование

Непонятно что конкретно непонятного
Цитата(Dog Pawlowa @ Jan 28 2011, 08:45) *
а по всему остальному LPC22XX вроде подходит.
Да, таймеров должно быть больше в LPC29XX.
Короче, ARM7.

а к ним легче привыкать ?
Цитата(Dog Pawlowa @ Jan 28 2011, 08:45) *
Только АЦП / ЦАП на плате c SDRAM будут плохо работать.

действительно, при работе с SDRAM сильно шумит ЦАП !
интресно почему это так ?
можно ли этого както избегать ?
Dog Pawlowa
Цитата(bekor @ Jan 28 2011, 12:40) *
Непонятно что конкретно непонятного

Зачем столько. Может, Вы используете COMPARE/CAPTURE, и такое количество независимых счетчиков все-таки не нужно?

Цитата
а к ним легче привыкать ?

Да чего там привыкать - взял пример проект а ИАРе и вперед.

Цитата
действительно, при работе с SDRAM сильно шумит ЦАП !
...
можно ли этого както избегать ?

Внешний АЦП, видимо. Или осетра (точность - скорость) урезать.
bekor
нет, нужны именно независимые таймеры с прерываниями по переполнению.
посмотрел в сторону STM32F103VET6, по всем параметрам удовлетворяет но слишком мало ОЗУ
уже запутался незнаю что выбрать.

что такое осетра ?
у иксмеги именно внутренний ЦАП шумит!
работа EBI сильно влияет на ЦАП...



вот это было бы идеальным вариантом
если бы на борту было хотя бы 8МБ ОЗУ

skripach
Цитата
LPC22XX

Там вроде нет SDRAM. Есть она в каких то Luminary от TI.
В STM32 SDRAM тоже нет.
bekor
интересно с какой скоростью на этой платформе будет работать SD карта памяти,
если достаточно быстро то необходимость SDRAM отпадет
bekor

скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку
Код
value=value*percent/100;
(расчет процента целого двухбайтного числа)
а то очень много процессора жрет и на остальных вычислениях просто не остается процессора!
если это возможно то переходить на другую платформу неприйдется ...
zltigo
QUOTE (bekor @ Jan 29 2011, 10:45) *
скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку

Для достижения максимальной эффективности оптимизируют не строчки, а алгоритмы. При вычислениях думают не только о разделить-умножить, но и о необходимо-достаточной точности вычислений.
HARMHARM
Кроме того, никто не отменял табличных вычислений.
Деление иногда можно без особых сложностей заменить умножением. Очень помогает, если есть аппаратный умножитель как в старших MSP430.
bekor
Цитата(zltigo @ Jan 29 2011, 12:04) *
но и о необходимо-достаточной точности вычислений.

так у меня же целые числа а не float,
о какой точности идет речь не понимаю

Цитата(HARMHARM @ Jan 29 2011, 12:13) *
Кроме того, никто не отменял табличных вычислений.

а этот метод можно применять для вычисления процента ?
если можно по подробнее пожалуйста.



я так понимаю для этого нужно заранее вычислить все возможные варианты
и записать в двухмерный массив и при необходимости просто выбрать нужное значение из массива ?
тогда для вычисления процента типа char понадобится 25КБайт массива в озу wacko.gif

я правильно понял ?
HARMHARM
Цитата(bekor @ Jan 29 2011, 12:47) *
а этот метод можно применять для вычисления процента ?
если можно по подробнее пожалуйста.
я так понимаю для этого нужно заранее вычислить все возможные варианты
и записать в двухмерный массив и при необходимости просто выбрать нужное значение из массива ?
тогда для вычисления процента типа char понадобится 25КБайт массива в озу wacko.gif

Можно и так - в лоб.
Сначала нужно прояснить для себя необходимую точность вычислений, как верно заметил zltigo. И определиться с диапазоном входных значений.
Rst7
QUOTE
скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку
Код
value=value*percent/100;


Я, конечно, погрешу против правил, но скажу так
CODE
value=(((unsigned long)value*655UL)*(unsigned long)percent)>>16;


Ну и оптимизацию по скорости неплохо было бы включить в проекте.
proba
деление на 100 можно с точностю 0,0098% писать в форме:
x/100 = x/128+x/512+x/4096;
или: x/100=(x>>7)+(x>>9)+(x>>12);
код:
int x,x1;
x=x>>7;
x+=x1=x>>2;
x+=x1>>3;
скорость выполнения зависит от типа переменного,
unsigned выполняется быстрее чем signed.
bekor
попробовал выполнять деление сдвигами
немношко смягчило ситуацию но всеже не то,
а вот табличный метод это чтото!
реально снял с ЦПУ много нагрузки rolleyes.gif
спасибо HARMHARM-у за подсказку...
ща пытаюсь еще и с остальным кодом пошаманить,
оптимизировать где только возможно,
может чего и выйдет.
AlexandrY
Цитата(Dog Pawlowa @ Jan 28 2011, 06:45) *
Да, таймеров должно быть больше в LPC29XX.


Про LPC2929 правильно сказано. Сегодня видел в стоках его по 6$.
Там внутри ARM968E-S у которого есть DSP инструкции.
Работает на системной шине 125 МГц, почти в два раза быстрее чем STM32.
Соответственно быстрее в два раза доступ к внешней RAM.
При этом у него есть специальная отдельная быстрая память инструкций и данных.
Т.е. быстродействие отдельных процедур можно сделать независящим от нагруженности внешней шины.

Вообщем альтернатив LPC2929 на сегодняшний день практически нет в контексте обсуждаемой задачи.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.