Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

STM8(S/L), первые впечатления

Непрочитано 04.11.2010, 02:38  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от =GM= Посмотреть сообщение
Взглянуть можно на 13-ти тактовый вариант?
Можно, но это просто "наброски на клочке бумаги". С ассемблером STM8 я еще на "Вы".
Код:
ADDW X,$deltaL				2
ld A,$accumHL				1
addc A,$deltaHL				1
ld $deltaHL,A				1
ld A,$deltaHH				1
addc A,$deltaHH				1
ld $deltaHH,A				1
EXG YL					1
ld A,(Y)				1
ld $port,A				1
jr start				2
Справа такты на команду. $deltaL - адрес младших 16 бит приращения фазы, $deltaHL и $deltaHH - адреса 8 битных половинок старшего слова. Старший байт адреса таблицы перед входом нужно занести в YH. $accumHL и $accumHH - адреса половинок старшего полуслова аккумулятора фазы. Младшая половина - в X.
Я впрочем особо не заморачивался, потратил минут 15 на это листая мануал по командам ядра. Так как асм мне нужен для поиска ошибок в листинге, я писать на нем ничего не собираюсь.
Реклама:

Последний раз редактировалось Falconist; 13.04.2011 в 23:39.
kison вне форума  
Непрочитано 04.11.2010, 02:46  
Gnider
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.06.2005
Сообщений: 3,392
Сказал спасибо: 5
Сказали Спасибо 429 раз(а) в 305 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Ну мы немножко отклонились от темы. Тут лучше создать отдельную тему "асм авр vs асм стм8"

Вопрос был у людей про потребление,токи,надежност ь и тд. Например можно ли поставить стм8 в серийное устр-во там где уже 10 лет стоит проверенный временем АВР,при условии что устр-во неизолировано от 220В и ловит все наводки,но АВР при этом пашет на ура и не сбивается.
Gnider вне форума  
Непрочитано 04.11.2010, 03:10  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от Gnider Посмотреть сообщение
Например можно ли поставить стм8 в серийное устр-во там где уже 10 лет стоит проверенный временем АВР,при условии что устр-во неизолировано от 220В и ловит все наводки,но АВР при этом пашет на ура и не сбивается.
STM8 походу разрабатывался изначально с прицелом на устройства, где надежность очень важна. Например у него два ватчдога. Запись в еепром имеет режим блокировки. Также блокируются RTC в 8L151, случайно время не испортить. Очень забавная фича - автоматический переход на внутреннее тактирование при отказе внешнего. Отвалится кварц - мега просто остановится, а STM8 продолжит работать, просто получит немаскируемое прерывание для информации о таком печальном событии. В плане надежности в STM8 многое предусмотрено. А в серию сразу ставить смысла нет, можно опытный образец сделать, погонять да и... отгрузить Если претензий не последует , то можно и о серии задуматься.

Последний раз редактировалось Falconist; 13.04.2011 в 23:39.
kison вне форума  
Непрочитано 04.11.2010, 03:58  
Gnider
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.06.2005
Сообщений: 3,392
Сказал спасибо: 5
Сказали Спасибо 429 раз(а) в 305 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kison Посмотреть сообщение
STM8 походу разрабатывался изначально с прицелом на устройства, где надежность очень важна. Например у него два ватчдога. Запись в еепром имеет режим блокировки. Также блокируются RTC в 8L151, случайно время не испортить. Очень забавная фича - автоматический переход на внутреннее тактирование при отказе внешнего. Отвалится кварц - мега просто остановится, а STM8 продолжит работать, просто получит немаскируемое прерывание для информации о таком печальном событии. В плане надежности в STM8 многое предусмотрено. А в серию сразу ставить смысла нет, можно опытный образец сделать, погонять да и... отгрузить Если претензий не последует , то можно и о серии задуматься.
Ну в нашем случае в меге вачдог используем внешний,а генератор внутренний. А гонять бесполезно в нашем случае. Даже после сурового прогона все равно много возвратов было из-за проблем у клиентов,хотя ни одного из-за меги.

Последний раз редактировалось Falconist; 13.04.2011 в 23:39.
Gnider вне форума  
Непрочитано 05.11.2010, 16:09  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Похоже, для DDS быстрее 13 тактов не сделать.

Здесь STM8 проигрывает AVR вчистую.

Я уж не говорю про то, что в программе DDS на ATtiny2313 у меня там реализован ввод частоты с кнопок с удалением дребезга и зажиганием светодиодов НЕ ПРЕРЫВАЯ основной цикл выдачи отсчётов 2000 квыборок/с. Частота генерации может также вводиться через рс232.

kison, у вас там в коде ошибочки-описочки, я поправил
Код:
addw X,$deltaL				2
ld A,$accumHL				1
addc A,$deltaHL				1
ld $accumHL,A				1
ld A,$accumHH				1
addc A,$deltaHH				1
ld $accumHH,A				1
exg yl					1
ld A,(Y)				1
ld $port,A				1
jr start				2
Но камень неплох, где-то на уровне пика18, хотя у последнего можно делать, например, сложение прямо в памяти.

Последний раз редактировалось Falconist; 13.04.2011 в 23:39.
=GM= вне форума  
Непрочитано 05.11.2010, 16:47  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от =GM= Посмотреть сообщение
Здесь STM8 проигрывает AVR вчистую
Ну не в чистую все же. Номинал для STM8S2xx - 24МГц. Кроме того возможность разгона есть STM8 могут выполнять код из SRAM - так что потенциально ее можно и до 50МГц разогнать. Основной тормоз - флеш, а тут его можно исключить. Ну и наверняка мой вариант не оптимален, нужно изучить систему команд нормально, а не 10 минут мануал полистать. А там глядишь и по тактам мегу можно обогнать.
И все равно для DDS нужно брать процессор пошустрее, тот же LPC11xx. У него и частота выше и складывает он за 1 такт сразу 32 бита. Там около 10 мегавыборок выйдет. Это 1-2МГц синуса, не так и плохо.
Сообщение от =GM= Посмотреть сообщение
ошибочки-описочки, я поправил
А что изменилось?

Последний раз редактировалось Falconist; 13.04.2011 в 23:39. Причина: не все буквы пропечатались
kison вне форума  
Непрочитано 05.11.2010, 17:04  
Gnider
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.06.2005
Сообщений: 3,392
Сказал спасибо: 5
Сказали Спасибо 429 раз(а) в 305 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Давайте рассмотрим типовую задачу - видеофильтр.

Есть ФИФО массив A на скажем 32 значения.


1) Сдвигаем массив (A[1]=A[0],....,A[31]=A[30])
3) Добавляем новое значение (A[0]=NewValue)
4) Копируем в массив "B"
5) Сортируем массив "B" скажем пузырьком
6) Суммируем эл-ты массива "B" с 8 по 23 (середину массива "B") в переменную S
7) S делим на 16.

В S получаем фильтрованное значение для массива А.
Шаги с 1 по 7 надо проделать 320x240 Раз.

A,B,NewValue - 16-битные. S - 32-битная.
Gnider вне форума  
Непрочитано 05.11.2010, 19:13  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Здесь STM8 проигрывает AVR вчистую, если добавить

фичи из поста #215, то полностью...

Сообщение от kison Посмотреть сообщение
А что изменилось?
Количество тактов осталось прежним, но программа будет работать правильно. Я честно пробовал улучшить ваш результат по тактам - но ни в какую .

Сообщение от kison Посмотреть сообщение
Номинал для STM8S2xx - 24МГц. Кроме того возможность разгона есть STM8 могут выполнять код из SRAM - так что потенциально ее можно и до 50МГц разогнать
Ну тут можно хмегу подогнать, у неё тактовая 32 МГц. И где тогда будет STM8S2xx? Так что сравнивать надо по тактам, так честнее.

Ну, а при запуске из ОЗУ не будет использоваться 32-битный интерфейс флеши, так что вместо ускорения, получите замедление не менее, чем в 4 раза.

Сообщение от kison Посмотреть сообщение
И все равно для DDS нужно брать процессор пошустрее, тот же LPC11xx. У него и частота выше и складывает он за 1 такт сразу 32 бита. Там около 10 мегавыборок выйдет. Это 1-2МГц синуса, не так и плохо
Тогда уж пикколо, получите не менее 15 Мвыб/с. А если взять 100 МГц TMS320F2801/02/04/06/08, то и все 25 МГц получите. А они перемножают 32*32 за один такт.

Вроде бы армы не так сильны в дрыгании ногами, или я не прав?

Последний раз редактировалось Falconist; 13.04.2011 в 23:38.
=GM= вне форума  
Непрочитано 05.11.2010, 19:23  
Gnider
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.06.2005
Сообщений: 3,392
Сказал спасибо: 5
Сказали Спасибо 429 раз(а) в 305 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: Здесь STM8 проигрывает AVR вчистую, если добавить

Сообщение от =GM= Посмотреть сообщение
фичи из поста #215, то полностью...


Количество тактов осталось прежним, но программа будет работать правильно. Я честно пробовал улучшить ваш результат по тактам - но ни в какую .


Ну тут можно хмегу подогнать, у неё тактовая 32 МГц. И где тогда будет STM8S2xx? Так что сравнивать надо по тактам, так честнее.

Ну, а при запуске из ОЗУ не будет использоваться 32-битный интерфейс флеши, так что вместо ускорения, получите замедление не менее, чем в 4 раза.


Тогда уж пикколо, получите не менее 15 Мвыб/с. А если взять 100 МГц TMS320F2801/02/04/06/08, то и все 25 МГц получите. А они перемножают 32*32 за один такт.

Вроде бы армы не так сильны в дрыгании ногами, или я не прав?
В 100-й раз говорю. Архитектура не имеет никакого отношения к дрыганию ног. Это уж как реализует производитель.

У LPC была проблема 6 лет назад что он не могу дрыгать ногами чаще чем 2.5Мгц. Сейчас этой проблемы нет. Как в программе напишешь так и будет дергать. Но мне если честно ниразу не приходолось вручную дергать ногами с такой частотой.

Последний раз редактировалось Falconist; 13.04.2011 в 23:40.
Gnider вне форума  
Непрочитано 05.11.2010, 20:14  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Вы в вашей "типовой" задаче п.2 пропустили :-)

Сообщение от Gnider Посмотреть сообщение
1) Сдвигаем массив (A[1]=A[0],....,A[31]=A[30])
3) Добавляем новое значение (A[0]=NewValue)
4) Копируем в массив "B"
5) Сортируем массив "B" скажем пузырьком
6) Суммируем эл-ты массива "B" с 8 по 23 (середину массива "B") в переменную S
7) S делим на 16
Ну, на аврке я бы уложился вгрубе в 500 тактов для шагов 1-7 (без 2), т.е. 25 мкс при тактовой 20 МГц, около 2с на всё-про-всё. Может быть 400, если пооптимизировать. Как на STM8?

Последний раз редактировалось Falconist; 13.04.2011 в 23:40.
=GM= вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
KiCAD-объявления и впечатления al_dan KiCAD 32 03.10.2016 17:02
Народ, посмотрите quasm, Как ваши впечатления? suri Proteus, KiCAD и другие ECAD 5 14.10.2009 11:57


Часовой пояс GMT +4, время: 00:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.