Например TDA7294

Форум РадиоКот • Просмотр темы - STM32F100RB@Keil VS AtMega8@CVAVR
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 25, 2024 15:21:22

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 103 ]  1, , , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 08:57:50 
Поставщик валерьянки для Кота

Карма: 11
Рейтинг сообщений: 58
Зарегистрирован: Пт окт 31, 2008 09:38:55
Сообщений: 1957
Откуда: Одесса
Рейтинг сообщения: 0
Здравствуйте!
Намедни освоил новый проц/архитектуру/производителя/способ отладки

имеется STM32VLDiscovery

запустил с нуля созданный в кейле проект через StdPeriphDriver + CMSIS
впринципе могу и без СтдПерипДрайвера - после 3-х дней общения камушек стал прост до безобразия...

и вот на новой платформе заинтересовали меня сравнения...
1) Каково потребление
2) макс частота
3) насколько быстрее атмеги на той же частоте
4) насколько больше/меньше жрёт на меговской частоте
5) насколько высока макс частота
6) разница по объёму кода

в результате чего было проведено масса тестов
итак..
программа - обыкновенная простая заготовочка с инициализацией системы, PLL, некоторых таймеров, РТЦ, и самописный драйверок экрана 44780+граф либа к нему....вся вычислительная и рисовательная часть один-в-один с атмеговских проектов...

значиться так по пунктам
1) при 24 мегагерцах и указанной периферии - 10 ма(11 при активных вычислениях)
2) макс частота 56 мегагерц....кушает при этом 25 ма или 29 при активных вычислениях
3) написал прогу примитивнейшую...
Код:
f1 = x;
         f1 = f1/23;
         //f1=f1+y;
         f3 = f1;
         f4 = y;
         f4 = f4/23;
         f4+=f3;
         f5 = y;
         f5 = f5/230;
         f2 = sin(f4*0.95/2)*f5+4.0;
         f1=f1*3;
         dot((int)f1, (int)f2, 1);
         
         //if(((int)f1)>40)
         //   bufinit();
         Sinuses+=1;


где ф1...ф5 это флоаты, синусес 32-битный унсигнед инт
функция дот это
Код:
void dot(int x, int y, char mode)
{
   unsigned char tmp;
   unsigned char tmp1;

   char bitnum;
   char strnum;

   while(x>MAX_X)
      x-=(MAX_X+1);

   while(y>MAX_Y)
      y-=(MAX_Y+1);

   while(x<0)
      x+=(MAX_X);

   while(y<0)
      y+=(MAX_Y);

   bitnum = y;
   tmp = DispBuf[0][x];
   tmp1 = 1<<bitnum;
   if(mode==1)
   {
      tmp|=tmp1;
   }
   if(mode==2)
   {
      tmp&=~tmp1;
   }
   if(mode==3)
   {
      tmp=~(tmp&tmp1);
   }
   DispBuf[0][x] = tmp;
}



замечено что её наличие-отсутствие на результат влияет мало...очень мало...неразличимо мало

так вот
на 8 мегагерцах
АРМ за секунду проходит указанный тестовый код 2300 раз...
АтМега8 - 800 при оптимизации на объём и 900 при оптимизации на скорость
разница в два с половиной раза всего....не радует...

5) на 8-ми мегагерцах и указанных вычислениях - токи примерно равны....+- 1 миллиампер...
но мега-то рабоатет от 5-ти вольт а арм от 3.3 тоесть мощность в два раза меньше

6) тестовая программка на кодвижне скомпилилась в 5 килобайт коду...
оптимизация по размеру ....по скорости - скомпилится в 5.2 кб..разницы нет

АРМовский код аналогичен....занимает 17 килов! без оптимизации и 12 килов с макс оптимизацией по размеру .... на скорость влияет ПОЛОЖИТЕЛЬНО...+ 100-200 проходов в секунду

ИТОГО.....если дать АРМУ 56 мегагерц + его архитектура + кеил который поточнее будет чем свавр овский флоат = 15000 вычислений в секунду

атмегу не гнал...да и разницы нет....скорость растет линейно - 900 при 8 мегагерцах...
ИТОГО...
-в 3 раза больше прошивка аналогичная по функциям - можно сделать вывод что 128 КБ у арма = 32 килобайтам у АТМЕГИ

-в 2.5 раза больше быстродействие при той же частоте...

-в 3,5 раза больше макс допустимая частота

-в результате - производительность всего в 8 раз выше .... и это максимум....при том что макс допустимой частоты моего арма 24 мегагерца...

- если использовать стандартные частоты то мега на 16-ти мегагерцах выдаёт 1800 вычислений в секунду
а АРМ выдаёт 6400 вычислений в секунду на 24 мегагерцах
тоесть всего в 3.5 раза больше....при этом и кода сравнительно тоже так же само больше по обьёму...тоесть 128 кб у арма это 36 КБ у атмеги...
не радует память...у арма 8 килобайт всего....2000 занято этой прогой...
а у меги занято всего 200 байт!!!! при её то килобайте ВСЕГО
+ у меги есть еепром а у арма - 20 байт бекап регостров для которых надо батарейка...
но арм всётаки покруче будет меги...особенно таймерами и режимами ног...большая половина которых 5Вольт толерантная...

и на последок - очень тяжелое ВИДЕО двух устройств рядом...
арму я динамически на ходу менял тактовую
http://clawham.hopto.org/DriveD/PubD/66/MVI_8188.AVI
ОСТОРОЖНО 500 МЕГАБАЙТ!



Если есть ктото у кого дискаверя лежит и он зная атмеги не знает как перейти на армы - обращайтесь помогу чем смогу..мне с ней уже стало скучно...всё что хотел и мог хотеть уже попробывал настроит и получил....
АРМ это довольно просто....пересесть с атмела на арм нечего делать

_________________
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 09:11:21 
Друг Кота
Аватар пользователя

Карма: 74
Рейтинг сообщений: 1244
Зарегистрирован: Вс мар 29, 2009 22:09:05
Сообщений: 7517
Рейтинг сообщения: 0
Цитата:
обращайтесь помогу чем смогу..


О! Я, пожалуй, воспользуюсь случаем.

В принципе, мне там все понятно. Однако есть один вопрос: объясните пожалуйста еще раз, как работать с NVIC (БЕЗ стандартной бибилиотеки, через регистры, с CMSIS и я могу).

Кстати, если кто не знал. Камушек, который стоит в VLDiscovery (STM32F100RB) легко и непринужденно перепаивается на STM32F103XXX без изменения платы.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 09:35:32 
Поставщик валерьянки для Кота

Карма: 11
Рейтинг сообщений: 58
Зарегистрирован: Пт окт 31, 2008 09:38:55
Сообщений: 1957
Откуда: Одесса
Рейтинг сообщения: 0
дак ЦМСИС эт просто битраспиновки
а вот cln периф драйвер это уже да...это зло...но...там ничего сложного нет можно в исходники посмотреть и увидеть что он делает...
с нвик никаких проблем нету...у меня по крайней пере не возникло....надо просто включить его и включить линию прерывания....ну и включить генерацию прерывания в соответствующей периферии

П.С. они то конечно полностью идентичны по распиновке и т.д. но...зачем мне туда 100 грниневый камень? в чём вкусность армов stm32VL ? Цена 9 грн за камень аналогичный атмеге 8-й по размерам флеше и раме но НАСКОЛЬКО навороченней и быстрее? и доставаемей...

_________________
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.


Последний раз редактировалось clawham Пт июн 24, 2011 09:40:31, всего редактировалось 1 раз.

Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 09:39:19 
Собутыльник Кота
Аватар пользователя

Карма: -22
Рейтинг сообщений: -63
Зарегистрирован: Вт сен 14, 2010 10:27:19
Сообщений: 2584
Рейтинг сообщения: 0
Появился новый набор STM32L Discovery

Добавлен ЖКИ и емкостные сенсоры в виде слайд-бара.

Надо сравнить с silabs.com на 100 mips 8051 :))

_________________
Будете проходить мимо- проходите!


Последний раз редактировалось radio-kot Пт июн 24, 2011 09:47:01, всего редактировалось 1 раз.

Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 09:41:29 
Поставщик валерьянки для Кота

Карма: 11
Рейтинг сообщений: 58
Зарегистрирован: Пт окт 31, 2008 09:38:55
Сообщений: 1957
Откуда: Одесса
Рейтинг сообщения: 0
и их тоже биплатно раздают ?

_________________
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 09:50:18 
Собутыльник Кота
Аватар пользователя

Карма: -22
Рейтинг сообщений: -63
Зарегистрирован: Вт сен 14, 2010 10:27:19
Сообщений: 2584
Рейтинг сообщения: 0
Возможно, но у известно кого STM32L Discovery по 850 рублей

Поставить плату на безпаячную макетку за 450 рублей и прекрасный стенд начального уровня готов !

Изображение

STM32L-DISCOVERY – недорогой способ познакомиться с микроконтроллерами STM32L, построенными на базе ядра Cortex-M3, отличающиеся ультранизким энергопотреблением (порядка 270нА в спящем режиме). Эта плата – полноценный инструментарий, включающий в себя оценочную плату, программатор и отладчик с поддержкой самых популярных программных средств разработки от таких фирм как IAR, Keil и Atollic.

В основе STM32L-Discovery заложен 32МГц микроконтроллер STM32L152RBT6 с 128 KБ Flash, 16 KБ RAM и 4 KБ EEPROM. Наличие встроенного программатора–отладчика ST-LINK позволяет начать разработку собственных приложений без дополнительных затрат. Сигналы встроенного ST-Link выведены на внешний разъем, что позволяет в дальнейшем использовать STM32L-Discovery в качестве программатора-отладчика для своих собственных разработок. На официальном сайте STMicroelectronics вы можете найти всю необходимую информацию по данному продукту – руководства, примеры программного обеспечения, документацию http://www.st.com/internet/evalboard/product/250990.jsp

Основные характеристики STM32L-Discovery:
• Микроконтроллер STM32L152RBT6
- Ядро Cortex-M3, 128 KB Flash, 16 KB RAM, 4 KB EEPROM
- Интерфейсы USB 2.0 FS, 3xUSART, 2xSPI, 2xI2C, 8 таймеров
- 24-канальный 12-бит АЦП 1мкс, компараторы, 2х12-бит ЦАП
- Полноценные часы реального времени
- Встроенный контроллер LCD 8х40
• Встроенный программатор ST-Link с возможностью программировать другие микроконтроллеры STM32.
• LCD дисплей 24х8 в форм-факторе DIP28
• Возможность измерения потребляемого тока
• Четыре светодиода:
- LD1 (красный/зеленый) для сигнализации обмена данных по USB
- LD2 (красный) для питания 3.3В
- Два пользовательских диода LD3 (зеленый) и LD4 (синий)
• Две кнопки (user и reset)
• Сенсорная клавиатура (четыре сенсорных кнопки или один слайдер)
• Все свободные выводы STM32L152RBT6 выведены на контактные площадки

_________________
Будете проходить мимо- проходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 10:12:49 
Друг Кота
Аватар пользователя

Карма: 74
Рейтинг сообщений: 1244
Зарегистрирован: Вс мар 29, 2009 22:09:05
Сообщений: 7517
Рейтинг сообщения: 0
Цитата:
дак ЦМСИС эт просто битраспиновки


Э-э-э, мил человек! CMSIS - это библиотека для работы с ядром. А, поскольку NVIC - часть ядра, то и функции для работы с ним входят туда же.

А вот STDPERIPHDRIVER это набор программных модулей для работы с периферией, типа ADC/UART/etc.

Цитата:
надо просто включить его и включить линию прерывания...


А что такое группы прерываний по приоритетам Вы не разбирались? А Tail-Chaining'ом не интересовались?

Все гораздо сложнее, чем Вам кажется. Но и мощнее. :wink:

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 11:06:42 
Поставщик валерьянки для Кота

Карма: 11
Рейтинг сообщений: 58
Зарегистрирован: Пт окт 31, 2008 09:38:55
Сообщений: 1957
Откуда: Одесса
Рейтинг сообщения: 0
приоритетами игрался ....пока нет таких задач
как то ж на авр жил до этого?
я тут это сравнение сделал просто для того чтоб увидеть реально что мне даёт арм....по факту ничего особенного....в 4 раза больше производительность на стандартных частотах....
всё...
да красивые таймера, да много плюшек с прерываниями, да много функций у системы тактования....но....это всё не делает его чем-то уникальным.....я не вижу у себя ни одной задачи которая бы арму была б по зубам а вот на меге 8-16-32-108 я этого бы не мог сделать...нет таких задач...
рамы мало...много ног не 5в толерант....сложнопаябельные корпуса....скорость на том же уровне...не в 10 и не в 20 раз они быстрее...прерывания...совершенно не известно за сколько тактов выполняются(опоздание - у меги 8й - 12 тактов)....частоту 1 мегагерц на прерывании они тоже не выдерживают...зависают намертво..хоть немного и пускают команд основного цикла...но...это как-то не особо помогает....
ДМА....очень интересно назначение ДМА в 8-ми килах без возможности расширить...
да код можно выполнять из РАМ...разницы никакой...по скорости одно и то же...
я говорю о проце f100rb ....
стабильность тактовой внутренней - ваще пипец...при поднятии температуры корпуса на 10 градусов вместо 2.3 мегагерц генератор выдаёт 2.6....его как термометр можно использовать...
у меги не лучше встроенный но...зато внешний не уплывает а в моём арме(мож бракованный попался - И КВАРЦ ПЛЫВЁТ на 1-2 килогерца в плюс при нагреве!!!(правда паяльником и до 60-70 градусов)...

вот и целесообразность....вопрос?

_________________
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 11:41:38 
Поставщик валерьянки для Кота

Карма: 11
Рейтинг сообщений: 58
Зарегистрирован: Пт окт 31, 2008 09:38:55
Сообщений: 1957
Откуда: Одесса
Рейтинг сообщения: 0
я инициализирую прерывание таймера так
Код:
NVIC_InitStructure.NVIC_IRQChannel = TIM7_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);


если сходить по исходникам то это получается
Код:
tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700))>> 0x08;
    tmppre = (0x4 - tmppriority);
    tmpsub = tmpsub >> tmppriority;

    tmppriority = (uint32_t)NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
    tmppriority |=  NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub;
    tmppriority = tmppriority << 0x04;
       
    NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;
   
    /* Enable the Selected IRQ Channels ----------*/
    NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
      (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);


вот такой код на включение прерывания...
ключевая строка -
Код:
NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
      (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);

происходит из цмсис
Код:
#define SCS_BASE            (0xE000E000)                              /*!< System Control Space Base Address */
#define NVIC_BASE           (SCS_BASE +  0x0100)                      /*!< NVIC Base Address                 */
#define NVIC                ((NVIC_Type *)          NVIC_BASE)        /*!< NVIC configuration struct         */

typedef struct
{
  __IO uint32_t ISER[8];                      /*!< Offset: 0x000  Interrupt Set Enable Register           */
       uint32_t RESERVED0[24];                                   
  __IO uint32_t ICER[8];                      /*!< Offset: 0x080  Interrupt Clear Enable Register         */
       uint32_t RSERVED1[24];                                   
  __IO uint32_t ISPR[8];                      /*!< Offset: 0x100  Interrupt Set Pending Register          */
       uint32_t RESERVED2[24];                                   
  __IO uint32_t ICPR[8];                      /*!< Offset: 0x180  Interrupt Clear Pending Register        */
       uint32_t RESERVED3[24];                                   
  __IO uint32_t IABR[8];                      /*!< Offset: 0x200  Interrupt Active bit Register           */
       uint32_t RESERVED4[56];                                   
  __IO uint8_t  IP[240];                      /*!< Offset: 0x300  Interrupt Priority Register (8Bit wide) */
       uint32_t RESERVED5[644];                                 
  __O  uint32_t STIR;                         /*!< Offset: 0xE00  Software Trigger Interrupt Register     */
}  NVIC_Type;                                               



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

_________________
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 12:50:09 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
не понятно как у вас одинаковые программы откушали от озу разный объем,
на порядок разница, вероятно код разный, и получается что сравнение не корректное.
--
можете выложить оба проекта?

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 13:04:41 
Поставщик валерьянки для Кота

Карма: 11
Рейтинг сообщений: 58
Зарегистрирован: Пт окт 31, 2008 09:38:55
Сообщений: 1957
Откуда: Одесса
Рейтинг сообщения: 0
ну конечно разный...разные компиляторы разные разрядности переменных..например флоат у авра 0.0000 а у арма 0.000000 есть разница?
у арма любая переменная - 32 битная...даже чар займёт в раме 32 бита!
а у АВР нет
У Авр кодвижн...он наверняка очень упрощен...
увы сравнить результаты расчета синусов пока не смогу...хотя нет....смогу....в уарт сливать да и всё...

потом у арма полтора кила рамы занимает только програ инициализации периферии...а у авра инициализация - просто 10-ток регистров прописать...вот вам и разница архитектур!!!

арм это Кейл...у него флоат 64 битный помоему...а у авра и кодевижна - всего 32 битный...ну есть разница....вот она....напорядок боле расход памяти и оперативки...по сути ресурсов....на самообеспечение....

конечно если без ничего конфигить арм на уровне адресов регистров то получится меньше...но....оно того стоит?

исходник под кеий - пожалуйста http://clawham.hopto.org/DriveD/PubD/66/1_hello.rar
http://clawham.hopto.org/DriveD/PubD/66 в этой папке ещё видики есть...тестов и первых стартов...тест генератора...
туда же выкину кодвижновский проект
на авр - дома лежит..вечером выложу..но програ там реально такая же....просто он проще...

_________________
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 13:11:23 
Поставщик валерьянки для Кота

Карма: 11
Рейтинг сообщений: 58
Зарегистрирован: Пт окт 31, 2008 09:38:55
Сообщений: 1957
Откуда: Одесса
Рейтинг сообщения: 0
Это не холивар авр и ли арм...
я говорю о личном смысле переходить и иметь возможность сравнивать две несравненные архитектуры....просто армы я могу у техасцев нарыть хоть 100 бесплатно а атмели не раздают нашару...а меги 8-е покупать в одессе по 30 грн как-то жаба душит...недавно у ворона купил 20 штук ...так уже 3 остались.......просто я сделал тест-сравнение одинаковых задачь и во что выливается решение их на аврке и на армике...это ж не арм...это жалкое подобие...но стоит 9 грн....

_________________
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 13:53:07 
Друг Кота
Аватар пользователя

Карма: 74
Рейтинг сообщений: 1244
Зарегистрирован: Вс мар 29, 2009 22:09:05
Сообщений: 7517
Рейтинг сообщения: 0
Цитата:
сложнопаябельные корпуса...


ЛУТом - ОК.

Цитата:
совершенно не известно за сколько тактов выполняются(опоздание - у меги 8й - 12 тактов)...


Тут тоже 12 тактов. http://www.scribd.com/doc/48856205/STM3 ... rupt-model

Причем, если прерывания следуют друг за другом, то при переходе от одного обработчика к другому проходит всего 6 тактов.

Цитата:
даже чар займёт в раме 32 бита!


Нет. Там действует хитрая система упаковки.

Надо сказать, что STM32F100RB - довольно странный проц. Он выглядит обрезаным по прихоти маркетологов - остальное семейство несравненно круче по памяти, периферии и тактированию.

Вообще, я бы посоветовал Вам пристальнее изучать архитектуры, с которыми собираетесь работать, ибо видно, что возможности STM32 Вы представляете не полностью.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 14:40:53 
Поставщик валерьянки для Кота

Карма: 11
Рейтинг сообщений: 58
Зарегистрирован: Пт окт 31, 2008 09:38:55
Сообщений: 1957
Откуда: Одесса
Рейтинг сообщения: 0
я не против хитрой упаковки но режим тхумб не рабоатет ...судя по отладчику читается ВЕСЬ регистр на 32 бита из памяти при присвоении....может при хранении начальных данных и нет - но вот при присвоении смотрел - 32 бита все хором...мой чаровский буффер экрана занимает просто дофигищщще
дальше по прерываниям...та..так то оно так
но вот ...
запустил я на сисклоке таймер
сбрасываю его в ноль и запускаю внешнее прерывание....
проходит от 24 до 100 тактов

ладно...софт прерывания не то...
беру таймер и при переполнении дергаю ножкой....от которой внешнее прерывание...
в прерываании первой же командой - прямым обращением к регистру торможу таймер а потом его читаю и присваиваю пром переменную....
и что я вижу? снова....то 5 тактов то 24....12 нигде не видел...хотя именно это в одном проекте мне очень сильно точно нужно знать....ставил внешне приоритет повыше пониже....ничего...
у проца больше небыло заданных мною других прерывааний...!!!

я не спорю что я где-то чего-то не знаю..но...какой-то этот экземпляр армика очень уж странный...есть дма нет рамы...есть ЦРЦ но нет апаратноуправляемого контроллера передачи с контролем правильности приёма...просто генерит тот црц вдогонку...
я пока в раздумьях... заказал с техаса http://focus.ti.com/docs/prod/folders/p ... s2776.html таких камушков....посмотрим как они мне понравятцо...

П.С. я не спорю что очень мало чего знаю о армах...
я не спорю что они круче АТМЕГ
я рассуждаю как пользователь у которого с мегами все хорошо и что нужно - всё на них получается....но есть пара-тройка задачь в которых мега не справляется....впрочем арм текуущий - тоже... так что бум дальше изучать архитектуру ассортимент особенности и т.д.
единственное где арм пригодился бы - работа с экраном 128х64....но снова - мало рамы...64 кила вроде как достаточно ...а 8 чтото ну ни в какие ворота...
так что вот такое моё первое общение с представителями суровых армов....

_________________
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 18:23:43 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
Спасибо за код.
Такой сральник в файлах у кейла всегда? (ни разу с кейлом не работал)
Не понимаю каким образом инициализация у вас занимает ОЗУ? (сильно к код не вдавался, очень не читабелен)
вероятно наклепали глобальных переменных, вот на вскидку ваш код
на 8 МГц, выполняется более 50 тысяч раз в секунду (точно только в понедельник, дома в наличии простой мультиметр - измерял частоту),
код 8,2 кб озу 244 байта (из них 200 байт стек)
большую часть кода занимает синус, без него кода всего 700 байт.
компилятор gcc, платка STM32VL-Discovery
Код:
/*
 *    File:   main.c
 *    Date:   2011-01-02
 */

#include "main.h"
#include <math.h>

#define MAX_Height 1
#define MAX_Width 8

#define MAX_X MAX_Width*5
#define MAX_Y MAX_Height*8

uint32_t Sinuses = 0;

unsigned char DispBuf[MAX_Height][MAX_X];

void dot(int x, int y, char mode)
{
   unsigned char tmp;
   unsigned char tmp1;

   char bitnum;

   while (x > MAX_X)
      x -= (MAX_X + 1);

   while (y > MAX_Y)
      y -= (MAX_Y + 1);

   while (x < 0)
      x += (MAX_X);

   while (y < 0)
      y += (MAX_Y);

   bitnum = y;
   tmp = DispBuf[0][x];
   tmp1 = 1 << bitnum;
   if (mode == 1)
   {
      tmp |= tmp1;
   }
   if (mode == 2)
   {
      tmp &= ~tmp1;
   }
   if (mode == 3)
   {
      tmp = ~(tmp & tmp1);
   }
   DispBuf[0][x] = tmp;
}

//----------
int main(void)
{
   float f1 = 0;
   float f2 = 0;
   float f3 = 0;
   float f4 = 0;
   float f5 = 0;
   int x = 0;
   int y = 0;

   PIN_CONFIGURATION(PIN_TEST);

   while (1)
   {
      PIN_ON(PIN_TEST);
      PIN_OFF(PIN_TEST);

      f1 = x;
      f1 = f1 / 23;
      f3 = f1;
      f4 = y;
      f4 = f4 / 23;
      f4 += f3;
      f5 = y;
      f5 = f5 / 230;
      f2 = sin(f4 * 0.95 / 2) * f5 + 4.0;
      f1 = f1 * 3;
      
      dot((int) f1, (int) f2, 1);

      Sinuses += 1;
   }

   return 0;
}

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 18:39:19 
Поставщик валерьянки для Кота

Карма: 11
Рейтинг сообщений: 58
Зарегистрирован: Пт окт 31, 2008 09:38:55
Сообщений: 1957
Откуда: Одесса
Рейтинг сообщения: 0
эт не совсем весь мой код
эт раз
а потом - в кейле то мой первый проект по сути...я не знал что надо свои файлы ложить отдельно...

я тоже не знаю ка кно вот чистый проц моргающий по прерыванию от РТЦ лампочкой весит 9 килов!!!
низнаю как и почему!!!
мож я чо не так с кейлом делаю но...фАхт....

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

али я чот нипанимаю?

интересно было бы получить табличку-распечатку того что передаётся в функцию...мож там сами расчеты не такие?

кстати проект под мегу 8-мь.... вот

П.С,
Вот отключил вывод на дисплей и инкремент икса
результат 105 тыщ на 56 мегагерцах
а если инкрементировать икса но не выводить на экран(не обновлять экран) то 21300 проходов по синусу при 56 мегагерцах
по поводу кода....мож я чего не понимаю -
Код:
Program Size: Code=15494 RO-data=634 RW-data=144 ZI-data=1696 

расшифруйте данную мессагу?


Вложения:
Комментарий к файлу: тест на меге 8 под 8 мегагерц
43_bench.rar [181.97 KiB]
Скачиваний: 262

_________________
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 19:02:23 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
я сам новенький в этом деле, но делать сравнения мк по производиловке не очень просто,
для этого существуют специальные тесты.
и код тестовый код при этом не должен прерываться прерываниями, мне показалось оптимальным просто передергивать ножку, без всяких выводов на экран.
Повторяю с кейлом не работал, поэтому не знаю что такое ZI-data=1696
Code=15494 это код
RO-data=634 константы
RW-data=144 по всей видимости переменные в ОЗУ

в целом мк, довольно таки не плохие. младшие собраться stm8L так же не плохо обгоняют авр, особенно в плане потребления.

в плане кода что было то и вставил, то что было за комментировано не трогал, вроде ни чего не изменял.

мег уже не осталось все раздал, более не интересны, проверить не на чем. (хотя на работе мега64 есть, но не хочу проверять)

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 20:39:59 
Поставщик валерьянки для Кота

Карма: 11
Рейтинг сообщений: 58
Зарегистрирован: Пт окт 31, 2008 09:38:55
Сообщений: 1957
Откуда: Одесса
Рейтинг сообщения: 0
а я не говорил о сравнении тотальном и гарантированно обьективном...
я говорю о конкретных применениях...
например строить синусы на килогерцах....делать расчеты/умножения по 4-м каналам PWM
меге не хватало скорости вообще...

этому тоже не особо хватает но....на 56 мегагерцах и детальной оптимизации должно хватить
а техасские 50-егагерцовники уверен что ещё раза в 2 можно газонуть - тем должно хватить точно....тем более что там рамы море можно флеш отключать и газовать гораздо больше...

_________________
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 20:57:03 
Друг Кота
Аватар пользователя

Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Сообщений: 7439
Откуда: г. Москва
Рейтинг сообщения: 0
clawham писал(а):
не в 10 и не в 20 раз они быстрее...

Это смотря на чем и как писать. Ну умножении 32 бит чисел в 10 раз разница будет даже не в абсолюте, а на мегагерц.

Цитата:
вот и целесообразность....вопрос?

Целесообразно сначала хорошенько разобраться в архитектуре и в конкретных МК с их периферией и настройками.

Начиная от инициализации переферии и кончая количеством настроек компиляторов в АРМе все в разы богаче.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100RB@Keil VS AtMega8@CVAVR
СообщениеДобавлено: Пт июн 24, 2011 21:04:32 
Друг Кота
Аватар пользователя

Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Сообщений: 7439
Откуда: г. Москва
Рейтинг сообщения: 0
clawham писал(а):
рамы мало...много ног не 5в толерант....

конкретно ST'шные не помню, но в NXP и TI почти все ноги 5v толерантные.
рам в тех же ST до 128кб гдето есть столько в AVRах ? -)))
Корпуса плохо паябельные - так и AVRы с шагом ножек 0.8мм только tqfp32, дальше с тем же шагом но 0.5мм. где разница ?

Нагрузочная способность ног только у дубовых AVRов выше и уровень может быть около 5 вольт при 5В питании, но не так чтоб часто это было нужно.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 103 ]  1, , , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y