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

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

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

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

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

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


 
Опции темы
Непрочитано 04.11.2010, 02:38  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
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.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

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

Вопрос был у людей про потребление,токи,надежность и тд. Например можно ли поставить стм8 в серийное устр-во там где уже 10 лет стоит проверенный временем АВР,при условии что устр-во неизолировано от 220В и ловит все наводки,но АВР при этом пашет на ура и не сбивается.
Gnider вне форума  
Непрочитано 04.11.2010, 03:10  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
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.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
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.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
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.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
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.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
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, время: 10:35.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot