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

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

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

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

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

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


 
Опции темы
Непрочитано 25.10.2010, 06:24  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию STM8(S/L), первые впечатления

Не секрет, что с продукцией Атмела сейчас конкретные сложности. Цены какие то нереальные, да и купить не просто. Так что приходится переводить старые проекты на какую нибудь другую платформу. И как раз недавно ST выпустила на рынок свое детище - 8-ми битное семейство STM8. Цены более чем приятные, возможности тоже не слабые. И нафаршированность намного выше, чем у того же АВР-а. При этом работает в довольно широком диапазоне питаний (8S 2,95-5,5В), имеет приличное количество разных корпусов, довольно богат таймерами и памятью. В кристалле за 45р ОЗУ 2Кб. Это тогда, когда М8А стоит уже 75р и не может похвастаться таким объемом памяти. Также имеется 2Кб еепром с 300К циклами записи и 32Кб флеши. Это все в STM8S105.
Ну не попробовать было бы глупо, тем более что для быстрого старта ST предлагает недорогой комплект из отладчика и отладочной платы. Я их приобрел за 360р - ИМХО более чем бюджетно. Называется он STM8S-Discovery. Далее скачал с сайта ST среду программирования и отладки и триальную версию компилятора COSMIC. В принципе встречалась еще и версия от IAR, как триальная, так и не очень, но я ее не скачивал.
При подключении комбайна из отладки и дебаггера к USB начинает работать прошитый по умолчанию пример - мигалка светодиода с управлением периодом миганий с помощью сенсорной кнопки. И заодно появляется флешдиск с рекламой ST . Ну это неинтересно - нужно написать что то свое. ST предлагает библиотеку для быстрого старта, с поддержкой всей периферии и прочими радостями. Но библиотека разочаровала, при ее использовании код получается тормозным и раздутым. Пользоваться ей нет никакого желания. Процедура изменения состояния вывода на противоположное - 23! такта. Если не пользоваться библиотекой - 3 такта! Разница в СЕМЬ раз. Думаете зато библиотека память сэкономила? Нифига - вместо 4-х байт заняла около 20. Более того, минималистическая программка мигания светодиодом по таймеру скушала 3.7Кб флеши. Это при использовании стандартной библиотеки - всего трех модулей GPIO, CLK, TIM3. Переписываю библиотеку, пока ужал программку до 1,5Кб и ускорил заодно в несколько раз. Вообще интересно - неужели нельзя нормальную библиотеку приложить?
Или вообще не прикладывать, а потратить время на документацию.
Ну и среда от производителя вызывает уныние. Никакого сервиса в ней нет. Ну да ничего, C::B поможет. Компилятор скорее всего к нему удастся присобачить. А если не удастся, то будет просто редактором, хотя это и неудобно.
Но сами кристаллы понравились. Довольно шустрые несмотря на всего три регистра Тот же АВР за три такта не инвертирует вывод порта. Ну кроме хмеги, а та несколько в другой ценовой категории, ей с кортексами впору соревноваться.
У прерываний есть приоритеты, т.е. то у которого приоритет выше может прерывать то, у которого приоритет ниже. Это хорошо. Куча векторов, хотя некоторые события все равно объединены. Ну при таком количестве периферийных модулей было бы странно, если бы все удалось раскидать по отдельным векторам.
В общем надо продолжать. Для 8-ми битника кристалл получился весьма и весьма интересным. За пять часов секса в основном с библиотекой я получил массу новых впечатлений. Теперь жду STM32F100 и STM8L151, они пока в пути. А там тоже есть библиотеки
Кто нибудь еще пробовал STM8? Давайте делиться впечатлениями, подходами и прочими улучшайзингами. Что то мне кажется что это будущий народный контроллер, вместо АВР-ов. Правда в дипе не выпускается. Особенно 8L хорош для батарейных девайсов. Это вообще вкусная штука - с ЦАП, DMA, нормальными часами с отдельным батарейным питанием, туевой хучей входов АЦП - причем весьма шустрого. Но о 8L в следующий раз, когда его "пощупать" удастся в реале.
Ну так есть использующие STM8 на этом форуме? Обсудим сабж?

Тут проблема с софтом возникла - в результате редизайна сайта ST найти на нем где скачать STVD не получается. Так что несмотря на то, что софт этот бесплатный проще скачать его с файлообменника. Ссылка для спасиб - https://kazus.ru/forums/showpost.php?p=289363
Линк на STVD - http://depositfiles.com/files/uw2asnzfd
Или оно же - http://ssdepositfiles.com/files/uw2asnzfd
Еще одна - http://www.st.com/stonline/stappl/re...T&FamilyID=141
Реклама:

Последний раз редактировалось dosikus; 14.12.2010 в 11:02.
kison вне форума  
Эти 28 пользователя(ей) сказали Спасибо kison за это сообщение:
a-fisher (13.12.2010), Alex9797 (25.10.2010), AlexAsher (14.12.2010), AVF (06.01.2011), Bass85 (28.10.2010), Flopix (08.01.2011), forbidden (26.06.2011), GREGORI_DEMCHUK (13.11.2010), harchenko_pavel (25.10.2010), Highlander (31.12.2010), ibiza11 (06.12.2010), kostinn (30.11.2010), look22 (26.12.2010), lsa (05.12.2010), makakus (30.11.2010), matv (02.12.2010), naumovich (25.11.2010), nico100 (27.02.2011), omia (02.12.2010), pt200 (28.12.2010), rear (25.10.2010), RY723 (26.10.2010), sarsar (14.03.2011), SasaVitebsk (22.11.2010), terminator_seva (25.10.2010), VasMiP (29.06.2011)
Непрочитано 25.10.2010, 07:07  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

С размером в общем наладилось - указал в опциях компилятора раскладывать функции по отдельным секциям и линкер выкинул все неиспользованное. Так что размер стал около 400 байт без векторов и стартапа. Приемлемо. Но тормоза то остались Так что от переписывания библиотеки никуда не уйти.
kison вне форума  
Непрочитано 25.10.2010, 08:44  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kison Посмотреть сообщение
Тот же АВР за три такта не инвертирует вывод порта. Ну кроме хмеги, а та несколько в другой ценовой категории, ей с кортексами впору соревноваться.
Все новые меги ( например м88 ) инвертируют линию порта за 2 такта. Это так, к слову.

Мне трактористы ни в какую не дали stm8 попробовать. Даже м88 тоже. Только м8.
SasaVitebsk вне форума  
Непрочитано 25.10.2010, 08:49  
zheleznjakov
Прописка
 
Аватар для zheleznjakov
 
Регистрация: 31.03.2010
Сообщений: 200
Сказал спасибо: 3
Сказали Спасибо 48 раз(а) в 41 сообщении(ях)
zheleznjakov на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Аналогично стартанул с STM8S-Discovery, покупал просто глянуть что за штука. Позже купил ST-Link. Пока возился только с дисковери, но МК взял на пробу из разных серий, STM32F, STM8S, STM8L. От среды родной отказался сразу, лабаю на Eclipse, компилятор космик, дока на него хорошая, майкфайл накидал за час. Вот бы ещё шить из консоли а то родной софт только гуи имеет.
несколько фоток http://zib.sibinet.com
zheleznjakov вне форума  
Непрочитано 25.10.2010, 09:17  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от SasaVitebsk Посмотреть сообщение
Все новые меги ( например м88 ) инвертируют линию порта за 2 такта. Это так, к слову.
STM8 вообще должен за 1. Команда BCPL, три видимо из за неточности измерения. Т.е. скорее всего мой косяк. Я таймер в свободный полет запустил и выполнял инструкции пошагово. Смотрел соответственно счетный регистр до и после шага. Вышло три такта, хотя по доке - один.
Вообще отличные инструкции по работе с битами. Не только портов, STM8 все равно с чем - адресное пространство единое. Можно и в еепром бит инвертировать/установить/сбросить. Особо полезно при работе с флагами, критические секции уже не нужны.
Сообщение от SasaVitebsk Посмотреть сообщение
Мне трактористы ни в какую не дали stm8 попробовать.
Так надо самостоятельно, без привязки к конкретному проекту. Просто для общего развития. А там глядишь и М8 пропадет, заводов то у Атмела практически не осталось. Надо сани летом подготовить, хотя с Атмелом похоже вторая половина осени уже
Сообщение от zheleznjakov Посмотреть сообщение
Аналогично стартанул с STM8S-Discovery, покупал просто глянуть что за штука. Позже купил ST-Link.
Я и второй дискавери заказал, под STM32F100 Там будет "вторая половина" ST-Link - он залочен уже под STM32. Правда его уже так просто не отломаешь судя по картинке. Ну у меня клон JLINK-а имеется, так что для АРМ проблемы нет, нужен был в основном под STM8. Я правда хотел дискавери под 8L, но что то их в наличии ни у кого нет. Распаяю сам.
Сообщение от zheleznjakov Посмотреть сообщение
От среды родной отказался сразу, лабаю на Eclipse
Мне пока рано от STVD отказываться. Слишком часто отладчик нужен, буквально каждые пару минут. Вот библу перепишу под себя, отлажу, тогда можно и консолькой отлаживаться. Я пока по сути библиотеку под COSMIC затачиваю, ну и под себя. А вот с программатором надо что то делать. Может он все же из консоли запустится. Ну или GUI параметры примет.
Все не так и плохо - https://my.st.com/public/STe2ecommun...rrentviews=427
Может кому пригодится - Free RTOS - http://www.atomthreads.com/

Последний раз редактировалось kison; 25.10.2010 в 09:25.
kison вне форума  
Непрочитано 25.10.2010, 11:32  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Библиотека все же потрясающая. Простейшая функция настройки вывода порта разворачивается в монстроидальную конструкцию:
Код:
GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST);
// листинг, точнее листингище
 436                     ; 54 GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST);
 439  002c 4be0          	push	#224
 440  002e 4b01          	push	#1
 441  0030 ae500f        	ldw	x,#20495
 442  0033 cd0000        	call	_GPIO_Init
 444  0036 72105011      	bset	20497,#0
 445  003a 72105012      	bset	20498,#0
 446  003e a601          	ld	a,#1
 447  0040 72115013      	bres	20499,#0
 448  0044 85            	popw	x

// думаете все? Нет, это только вызов, сама функция ниже

363  0000               _GPIO_Init:
 365  0000 89            	pushw	x
 366       00000000      OFST:	set	0
 369                     ; 70     assert_param(IS_GPIO_MODE_OK(GPIO_Mode));
 371                     ; 71     assert_param(IS_GPIO_PIN_OK(GPIO_Pin));
 373                     ; 77     if ((((u8)(GPIO_Mode)) & (u8)0x80) != (u8)0x00) /* Output mode */
 375  0001 7b06          	ld	a,(OFST+6,sp)
 376  0003 2a18          	jrpl	L771
 377                     ; 79         if ((((u8)(GPIO_Mode)) & (u8)0x10) != (u8)0x00) /* High level */
 379  0005 a510          	bcp	a,#16
 380  0007 2705          	jreq	L102
 381                     ; 81             GPIOx-›ODR |= (u8)GPIO_Pin;
 383  0009 f6            	ld	a,(x)
 384  000a 1a05          	or	a,(OFST+5,sp)
 386  000c 2006          	jra	L302
 387  000e               L102:
 388                     ; 84             GPIOx-›ODR &= (u8)(~(GPIO_Pin));
 390  000e 1e01          	ldw	x,(OFST+1,sp)
 391  0010 7b05          	ld	a,(OFST+5,sp)
 392  0012 43            	cpl	a
 393  0013 f4            	and	a,(x)
 394  0014               L302:
 395  0014 f7            	ld	(x),a
 396                     ; 87         GPIOx-›DDR |= (u8)GPIO_Pin;
 398  0015 1e01          	ldw	x,(OFST+1,sp)
 399  0017 e602          	ld	a,(2,x)
 400  0019 1a05          	or	a,(OFST+5,sp)
 402  001b 2007          	jra	L502
 403  001d               L771:
 404                     ; 91         GPIOx-›DDR &= (u8)(~(GPIO_Pin));
 406  001d 1e01          	ldw	x,(OFST+1,sp)
 407  001f 7b05          	ld	a,(OFST+5,sp)
 408  0021 43            	cpl	a
 409  0022 e402          	and	a,(2,x)
 410  0024               L502:
 411  0024 e702          	ld	(2,x),a
 412                     ; 98     if ((((u8)(GPIO_Mode)) & (u8)0x40) != (u8)0x00) /* Pull-Up or Push-Pull */
 414  0026 7b06          	ld	a,(OFST+6,sp)
 415  0028 a540          	bcp	a,#64
 416  002a 2706          	jreq	L702
 417                     ; 100         GPIOx-›CR1 |= (u8)GPIO_Pin;
 419  002c e603          	ld	a,(3,x)
 420  002e 1a05          	or	a,(OFST+5,sp)
 422  0030 2005          	jra	L112
 423  0032               L702:
 424                     ; 103         GPIOx-›CR1 &= (u8)(~(GPIO_Pin));
 426  0032 7b05          	ld	a,(OFST+5,sp)
 427  0034 43            	cpl	a
 428  0035 e403          	and	a,(3,x)
 429  0037               L112:
 430  0037 e703          	ld	(3,x),a
 431                     ; 110     if ((((u8)(GPIO_Mode)) & (u8)0x20) != (u8)0x00) /* Interrupt or Slow slope */
 433  0039 7b06          	ld	a,(OFST+6,sp)
 434  003b a520          	bcp	a,#32
 435  003d 2706          	jreq	L312
 436                     ; 112         GPIOx-›CR2 |= (u8)GPIO_Pin;
 438  003f e604          	ld	a,(4,x)
 439  0041 1a05          	or	a,(OFST+5,sp)
 441  0043 2005          	jra	L512
 442  0045               L312:
 443                     ; 115         GPIOx-›CR2 &= (u8)(~(GPIO_Pin));
 445  0045 7b05          	ld	a,(OFST+5,sp)
 446  0047 43            	cpl	a
 447  0048 e404          	and	a,(4,x)
 448  004a               L512:
 449  004a e704          	ld	(4,x),a
 450                     ; 118 }
 453  004c 85            	popw	x
 454  004d 81            	ret
Если не пользоваться библиотекой листинг примерно такой:
Код:
439  002c 72105011      	bset	20497,#0
442  0030 72105012      	bset	20498,#0
449  0036 72115013      	bres	20499,#0
Функционал тот же, размер и скорость очень разные.
kison вне форума  
Непрочитано 25.10.2010, 12:08  
Petr_Dynin
Временная регистрация
 
Регистрация: 20.06.2007
Сообщений: 70
Сказал спасибо: 1
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
Petr_Dynin на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Цитата:
Может кому пригодится - Free RTOS - http://www.atomthreads.com/
Tester для STM8S портировал свою RTOS OSA - http://www.pic24.ru/doku.php/osa/ref/download/intro
Petr_Dynin вне форума  
Непрочитано 25.10.2010, 12:14  
rear
Вид на жительство
 
Аватар для rear
 
Регистрация: 30.12.2006
Адрес: Junktown
Сообщений: 300
Сказал спасибо: 164
Сказали Спасибо 171 раз(а) в 59 сообщении(ях)
rear на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

kison, сложности в библиотеке - наверно от стремления к универсальности?

Вчера перечитывал про ARM7MODA и думал спросить вас, что вы видите в качестве альтернативы АВРам, а здесь уже все готово!
__________________
Всегда стремись к недоступному
rear вне форума  
Непрочитано 25.10.2010, 12:34  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от rear Посмотреть сообщение
kison, сложности в библиотеке - наверно от стремления к универсальности?
И это тоже. Но это не то что сложности - кривые ручки индусских программистов. У них оплата видимо прямо пропорциональна объему кода. И результат никто видимо не проверял. А документация такая, что наполовину по библиотеке разбираться приходится. Сейчас еще примерчик какой нибудь вопиющего качества кода подкину.

Сообщение от rear Посмотреть сообщение
Вчера перечитывал про ARM7MODA и думал спросить вас
То то я думаю - с чего у меня аж душа горела, дай думаю дискавери то запущу, да на форуме отпишусь Вчера это было
Вы в битве экстрасенсов не участвуете часом?
kison вне форума  
Сказали "Спасибо" kison
rear (25.10.2010)
Непрочитано 25.10.2010, 13:26  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Вот простенький пример - инверсия бита в порте.
Код:
  71                     ; 24 		GPIO_WriteReverse(GPIOD, GPIO_PIN_0);
  73  0016 4b01          	push	#1
  74  0018 ae500f        	ldw	x,#20495
  75  001b cd0000       	call	_GPIO_WriteReverse

// и собственно сама функция инверсии
695  0000               _GPIO_WriteReverse:
 697  0000 89            	pushw	x
 698       00000000      OFST:	set	0
 701                     ; 173     GPIOx-›ODR ^= (u8)PortPins;
 703  0001 f6            	ld	a,(x)
 704  0002 1805          	xor	a,(OFST+5,sp)
 705  0004 f7            	ld	(x),a
 706                     ; 174 }
 709  0005 85            	popw	x
 710  0006 81            	ret
Без библиотеки это :
Код:
bcpl	20495,#0
Если на инициализацию еще можно и забить, все же она обычно делается только раз в начале программы, то на работу с портами уже не забьешь - там скорость уже важна.
В общем стандартная библиотека идет лесом.
kison вне форума  
 

Закладки
Опции темы

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

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:44.


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