8L-Курс, Часть 0 (ревизия дваноль) - Начало

Содержание Часть 1 — Hello, светодиод →

True story, bro
Середина октября, понедельник, пол-пятого утра. Сижу, жую печеньки, ни о чем плохом не думаю, переписываюсь с девушкой в этом вашем вконтактике. Неожиданно в аську кто-то стучится и спрашивает про учебный курс по STM8. Я, честно говоря думал, что про сию затею все благополучно забыли за год. Оказалось, что нифига подобного: настоящие анонимусы не прощают и не забывают. Да и модуль STM8L для пинборды уже поступил в продажу: тут статьи были-бы как-раз в тему. В общем, начинаю продолжать писать свой несчастный курс.

Хочу сразу предупредить:
Если вам покажется, что я описываю нечто, что было уже не раз описано (в том числе и на we, в том числе и мной), знайте — вам не показалось. Я действительно буду иногда повторяться вместо того, чтобы влепить ссылку. Не пытайтесь это понять и принять, просто смиритесь :) А если серьезно, то я хочу чтобы курс был цельным, без лишних пробелов и отсылок в дальние дали.

Кому это надо?
Писать курс для «самых маленьких», то есть для тех, кто с МК совсем не знаком, я не собираюсь. Во-первых получится сильно дофига текста (который не всем будет интересно читать), а во-вторых мне лень. Поэтому скажем, что этот курс предназначен для тех кто уже знаком, хоть немного, с какой-то архитектурой (например AVR — часто я буду сравнивать STM8 и с этими МК) и хочет изучить что-то новое.

Кто, что, зачем и почему?
Новое (2008 года рождения) семейство восьмибитных МК от ST делится на две группы: STM8S и STM8L. От первых еще отпачковались STM8A, что по-сути тоже самое, но сертифицированны для использования в автомобильной промышленности. Короче, нам они не интересны.
STM8S это контроллеры для широкого спектра применений. Сюда входят как дешевая (меньше 15р за камень — аналог ATMega8. В розницу. Нет, правда) линейка Value-line, так и «монстры» старших моделей с кучей периферии и частотой до 24МГц (perfomance line). На мой взгляд, из них какой-то интерес представляют только контроллеры из дешевой линейки, и то только для тех, кто строит устройство на серию. Ибо тут копеечная цена может неплохо выстрелить. Впрочем, STM8S в отличие от STM8L имеют широкий диапазон напряжения питания — от 2.7 до 5.5В (против 1.65-3.6 у 8L), поэтому рулят во многих других случаях, помимо крупных партий.

STM8L заточены под низкое потребление. Кроме этого, вышли позже STM8S и выглядят более продуманными. Как в общем плане, так и по периферии. Например, у них есть DMA и аналоговые компараторы с низким потреблением (а в STM8S нету компараторов. То есть совсем). Собственно, их мы и будем изучать. Поэтому остановимся по-подробнее:

Семейство можно разделить на три линейки — STM8L051, STM8L101 и STM8L15x.
Первая — это value-line. Дешевые МК с дешевой памятью (меньшее количество циклов перезаписи, но нам не страшно), появились не очень давно, но думаю станут довольно популярны. По харатеристикам весьма внушительны и похожи на STM8L15x
STM8L101 обладают наиболее низким потреблением по сравнению с двумя соседними линейками (ой, ладно — по сравнению со всеми МК STM). Но зато у них куда менее богатая периферия и меньше памяти. Отсутствует АЦП, RTC и другие ништяки. Flash памяти всего 8к.
STM8L15x нравятся мне больше всех: чуть большее потребление, чем у 101й линейки, но зато
— Куча периферии, включая RTC, ЦАП и DMA
— Невысокая цена (что-то около 50р за камень с 32 кб флеша, 21-канальным АЦП и контроллером LCD. STM8L152K6T6)
— Корпуса типа TQFP32 с шагом 0.8мм

Как вы уже могли догадаться по фразе «мне нравятся больше всех», изучать будем именно STM8L15x :) Несогласных могу успокоить тем, что они все очень похожи. Если придется делать проект для 101, то различие вы заметите наверное только в отсутсвии некоторой периферии. На STM8S все тоже не сильно отличается — есть различия в подсистеме питания (выпилены за ненадобностью всякие хитрости с уменьшением потребления), а вот периферия устроена практически так-же. Что касается Большого Брата (я про STM32, есличо) то тут есть некоторое сходство в устройстве периферии, и тем-более в организации документации. Так что перепрыгнуть с STM8 на STM32 не сильно сложно, я гарантирую это :)

Линейка STM8L15x распадается еще на две ветки, которые отличаются только последней цифрой
STM8L152 имеют встроенный контроллер ЖК дисплея. МК из этой ветки стоят на STM8L-Discovery и на STM8L модуле для PB2.
STM8L151 контроллером LCD обделены. Они по-идее должны стоить дешевле, но in Soviet Russia… их либо фиг найдешь, либо дороже чем 152.

Полная маркировка МК, стоящего на модуле для PINBOARD2 — «STM8L152K6T6», а МК на демоплате Discovery «STM8L152C6T6». Что за буквы и цифры в конце? А вот:

Если верить этой схеме, то разница между МК на PINBOARD и на discovery только в количестве выводов.
На само деле нет :) Вместе с некоторыми пинами у STM8L152K6 отсутствует и привязанная к ним периферия — например несколько «быстрых» (1MS/s против 760kS/s) каналов АЦП и дополнительный канал ЦАП. Кроме того, в корпусах с небольшим числом выводом (TQFP32 можно таким назвать) пины, с точки зрения удобства подключения больших шин (дисплей на HD44780 как самый банальный пример) разведены по-идиотски. Разработчики старались вытащить как можно больше периферии на пины, но переназначать выводы под нее упорно не хотели. Как итог: обрезанные порты, где из 8 пинов может присутствовать штук 6 или того меньше. В общем, выбирая МК, читайте даташиты! А, кстати, о них

Документация на контроллеры STM (вообще все, а не только STM8) построена не так, как на AVR или PIC. У AVR в МК одного семейства могли быть некоторые различия (названия регистров например) или дополнительные asm команды, и все данные, начиная с распиновки и заканчивая списком ассемблерных команд, были в одном файле — даташите. Скачавшие даташит на STM в поисках того-же самого, сначала немного офигевают, а потом идут искать недостающие кусочки мозаики.

Reference manual. Толстый и тяжелый толмуд с описанием всего, что общее для семейства. В основном там описание периферии, причем подробное до ужаса. А вот за табличкой прерываний, например, или схемой распределения памяти вас вежливо пошлют в даташит. В общем, это основной документ, который будет использоваться при работе с контроллером. Для STM8L15x он называется RM0031
Datasheet. Распиновка, организация памяти, краткое описание периферии (именно той, что есть в конкретном МК), табличка прерываний, электрические параметры и чертежи с размерами корпусов. Всё. Больше в даташите на контроллеры STM ничего нету. Кстати, один даташит тоже описывает целую пачку МК. Например на все STM8L15xx4 и 15xx6 это CD00240181.
Errata sheet. Тут списочек ошибок, которые допустили в STM при разработке чипа. Настоятельно рекомендуется к просмотру, ибо помогает ловить баги. Забегая вперед скажу, что при написании примера для статьи о таймерах, провел незабываемый викенд, отлавливая глюк с прерываниями в спящем режиме. Отловил, исправил. Но в итоге оказалось, что надо было просто пристально посмотреть на Errata sheet, где он описан на второй странице. Не повторяйте моих ошибок :) Для наших STM8L15x Errata вот.
Так-как STM потихоньку исправляют ошибки и придумывают новые, errata регулярно обновляется. Как и сами МК — в новых ревизиях старые ошибки уже исправлены. Ревизию можно узнать, глянув на маркировку на корпусе:

Последняя цифра (на данный момент A, B или Z) это и есть ревизия. Z — самая новая, а A — первая.
Programming manual. Один на все семейство STM8 — называется PM0044. Описывает ядро, устройство памяти, и другие вещи, с которыми напрямую обычно не работаешь, но знать о том, как оно устроено надо. Там-же набор ассемблерных команд.

А теперь немного о том, «как оно устроено»:
В отличие от тех-же AVR, у STM8 вся память (FLASH, EEPROM, RAM и регистры периферии) находится в едином адресном пространстве и доступ к ней с точки зрения программиста осуществляется одинаковым образом. Но для доступа к разным областям памяти используются разные шины, благодаря чему запись данных в оперативку и чтение команды из flash памяти могут проходить одновременно. Сие называется архитектурой Фон-Неймана с раздельными шинами данных. С такой архитектурой программа может выполняться откуда угодно (Flash, RAM или даже EEPROM). Правда, шина данных у оперативки восьмибитная (против 32х бит у шины FLASH), что приводит к тормозам при выполнении оттуда программы.

Единое адресное пространство разделено на области RAM, EEPROM, FLASH и регистры периферии

В самом низу (а на схеме вверху:) у нас находится оперативка, затем EEPROM, далее Option Bytes, пара калибровочных значений, ID чипа (уникальный у каждого), регистры периферии, ROM память загрузчика, регистры процессора и отладчика SWIM, а в самом конце находится флеш. Расположение этих областей памяти одинаковое у всех контроллеров STM8 (хотя ROM загрузчика может в некоторых отсутствовать за неимением самого загрузчика).

Option bytes это что-то вроде fuse битов у AVR — через них настраиваются некоторые параметры МК. Но на этом сходство заканчивается. Option bytes могут читаться и записываться из выполняющейся в МК программы. Настроек тактирования (как в AVR) там нету, оно может настраиваться и переключаться «на лету». Зато там есть настройки для пользовательского бутлоадера, защиты памяти от считывания и настройки заводского загрузчика.

ROM память загрузчика это кусок незаписываемой памяти, куда на заводе зашит бутлоадер. Работает по SPI, UART или CAN (если конечно он есть в МК). Вообще штука полезная, т.к. во-первых позволяет прошивать МК безо всяких ST-Link, а во-вторых случайно затереть его нельзя.

Хватит теории!
Не, мне не сложно и дальше документацию пересказывать, но если я тут буду описывать все устройство МК со всеми потрохами и подробностями, то я заскучаю, а вы уснете это читая и подумаете что курс скучен и уныл. Поэтому теория будет выдаваться маленькими порциями и только по необходимости :)

Давайте лучше посмотрим, с чем нам предстоит работать.

Есть очень прикольная и сравнительно не дорогая (что-то около 550р) демоплата STM8L-Discovery. Вообще у STM целая линейка подобных плат почти для всех семейств МК, что несомненно круто.

Плата подключается по USB (на ней есть стабилизатор на 3.3В для МК) и имеет на борту отладчик ST-Link. Это в общем-то главная причина найти себе такую игрушку, так-как st-link позволяет прошивать и отлаживать все камни STM8 (8S, 8L и 8A). Кроме отладчика на ней есть МК STM8L152C6T6, все пины которого выведены на штыревые разъемы (что-то вроде PLS, но торчат с двух сторон платы), ЖК дисплей (6 разрядов по 14 сегментов + точки и двоеточия между ними и индикатор-полоска справа) и хитрая система для замера тока МК, которая нафиг никому не нужна. Вообще, как плата STM8L-Discovery может отлаживать любые восьмибитники от STM, так и любая другая плата дискавери из линейки STM8 может выступать в роли отладчика для STM8L. Самая дешевая из них — STM8SVL-Discovery (немногим более 400р) — на ней контроллер STM8S из семейства value line.

Проблема дискавери в том, что на ней (ну кроме ЖК дисплея) всего одна кнопка и пара светодиодов. Если взять ее как основу для курса, то придется постоянно подключать к ней внешние компоненты чтобы реализовать то или иное устройство. Это скучно и быстро надоест. Потому, ну ее нафиг (но как отладчик она хороша!)

Кроме дискавери есть PINBOARD2 с STM8L модулем.

Там немного другой МК, но похожи они настолько что можно даже заливать прошивку от одного в другой ничего не меняя (только те пины, которых нет на МК в пинборде, лучше не использовать и не трогать. Так-как не выведенные пины у МК подключены к земле внутри кристалла, и можно что-нибудь спалить, если пытаться ими дергать).
Приемущество перед discovery тут в том, что есть туева хуча разной периферии, начиная от пачки кнопок и заканчивая символьным ЖК экраном и памятью на I2C. А еще возможность подключать модули расширения. В общем по периферии однозначный вин. В чем же подвох?

А подвох в возможностях отладки. Отлаживать STM8 через FT2232 нельзя, зато можно прошивать через бутлоадер. В принципе это тоже неплохо — AVR же как-то изучали без отладчика. Но хочется большего. Поэтому самый-самый вариант: взять PINBOARD с STM8L модулем и подключить к нему отладчик с discovery. Да, громоздко. Да, занимает сразу два USB. Да, пинборд и дискавери есть не у всех. Зато получаем удобную отладочную плату и аппаратный отладчик.

Ну а вообще, отсутствие отладчика это не такая большая беда. Если вы изучали AVR, то скорее всего отладчика по-началу у вас не было. И у меня не было, но тем-не менее изучение шло без тупняков. STM8 не сильно сложнее, чем AVR, поэтому думаю что никаких особых проблем в случае отсутствия discovery у вас возникнуть не должно.

Вот я тут рассказываю про отладчики, программаторы и демоплаты,
— А через что эти STM8, собственно, прошиваются? — Спросит подозрительно любопытный читатель.
— Через проводок (один) — Отвечу я
Single Wire Interface Module — протокол по которому отлаживается (и прошивается) STM8. Как понятно из названия, работает по одному проводку, совсем как 1-Wire. Ну ладно, кроме линии данных еще обязательно требуется соединить земли (считайте, два проводка) и иногда может потребоваться подключить RESET — уже три. Тем не менее, это меньше, чем 5 проводков у AVR.

Я не буду тут описывать сам протокол и логику его работы — это нужно только тем, кто захочет построить свой собственный отладчик с сами знаете чем. Если уж очень сильно распирает любопытство — в документе "STM8 SWIM communication protocol and debug module" все написано. А вот практические особенности работы протокола знать полезно:

SWIM использует для обмена данными всего один пин (в нашем случае это пин A0). Причем этот пин программно (то есть во время работы МК) можно настроить как обычный вывод GPIO. В таком случае никая отладка уже работать не будет, пока вы не вернете ножке ее изначальную функцию.

При старте SWIM выключен и не отсвечивает. Активируется он специальной последовательностью импульсов (все на том-же пине A0), после чего включается и готов принимать команды.

Для работы SWIM используется высокочастотный внутренний генератор, который кушает около 150мкА. При переходе в спящий режим этот генератор остается работать, если SWIM активен (отладчик подал на пин А0 стартовую последовательность), поэтому не удивляйтесь высокому потреблению. А если SWIM неактивен — генератор вырубается, лишая нас возможности достучаться до МК в спящем режиме. Решить эту проблему можно, перезагрузив МК перед тем, как начать работу со SWIM. Проще говоря, подключив пин RESET на МК к выводу RST отладчика. Помните это, когда будете делать устройство, где используется спящий режим.

Кроме отладки по SWIM, некоторые STM8 (и наш в том числе) поддерживают прошивку через бутлоадер. Он позволяет читать и записывать flash, EEPROM и RAM (Оперативку писать через бут это совсем изощренная экзотика, но вдруг кому-то пригодится). Бутлоадер поддерживает три интерфейса: UART, SPI и CAN (у нашего МК CAN нету, поэтому остаются только два). Причем ему не нужно явно указывать с чем работать — сам определит куда (UART или SPI) пришла стартовая команда и продолжит работать через этот интерфейс, отключив остальные.

Для активации бутлоадера не требуется никаких лишних телодвижений. Если flash память пустая (как в новом МК из магазина), то бутлоадер запускается в любом случае. А если там уже записана какая-то программа, то бут посмотрит на байты BL_OPT в Option bytes и по их значению решит — нужно запускаться и ждать данных, или сразу передать управление программе во флеш памяти. На новом МК эти байты соответствуют выключенному бутлоадеру, а значит после первой прошивки, бутлоадер нас покинет. Чтобы такого не произошло, надо при первой же прошивке установить нужные значения в option bytes. Но на наших 8L модулях это дело уже исправлено и бутлоадер выключаться не будет.

Ну вот, для вступительной части наверное хватит. Получилось как-то многовато (16к букавок, а я хотел около 10). Зато кое-какая начальная база у вас теперь есть.

P.S. Для тех кто не следит за эфиром и удивляется «ревизии дваноль» в названии.
Примерно год назад я замыслил написать учебный курс по STM8L. Был придуман план и распределены темы. Было обсуждение плана и даже была написана нулевая часть. Но потом все заткнулось и зависло на некоторое время — у меня появились дела, которые были чуть важнее какого-то там учебного курса. Так и висел он год. За этот год я успел окончательно раскурить STM8, начать изучать STM32, а так-же случайно поиграться с MSP430, и думаю что теперь можно закончить начатое, тем более, желание и возможности у меня пока есть. В общем, продолжаем жечь, дамы и господа!

Содержание Часть 1 — Hello, светодиод →
  • +12
  • 09 декабря 2012, 00:59
  • dcoder

Комментарии (103)

RSS свернуть / развернуть
реклама ни разу не заметна.
-2
  • avatar
  • a9d
  • 09 декабря 2012, 01:09
да ну норм) а чё? ахахаха
0
Это плохо. По идее должна бросаться в глаза.
+3
Контроллеры STM8 имеют Гарвардскую архитектуру (это когда доступ к разным областям памяти осуществляется через разные шины). Но при этом вся память (FLASH, EEPROM, RAM и регистры периферии) находится в едином адресном пространстве
По моему, это все же Фон Неймановская архитектура. Ее еще вроде называют «Фон Неймановская с раздельными шинами». У ARM МК тоже раздельные шины на разную память, но их тотносят к Фон Неймановским.
Самая дешевая из них — STM8SVL-Discovery (немногим более 400р) — на ней контроллер STM8S из семейства value line.
Я за 250 видел.
Оперативку писать через бут это совсем изощренная экзотика, но вдруг кому-то пригодится
Вполне нормально, для отладки исполняемого из RAM кода.
0
  • avatar
  • Vga
  • 09 декабря 2012, 05:58
Я за 250 видел.
Это вроде в самом начале продаж было. Я цену по чип-нн смотрел
Вполне нормально, для отладки исполняемого из RAM кода.
Ну как бы да, но ведь этот код придется в RAM как-то загружать при нормальном выполнении программы. Так не лучше ли загрузить сразу и код, который забрасывает процедуры в RAM? К тому-же в RAM как правило скидывают всякую мелочь, которую отдельно от основного кода отлаживать глупо. В общем, «это совсем изощренная экзотика»

ЗЫЖ Про архитектуру специально не ответил — прибегу из магазина и посмотрю. Может ты и прав
0
Это вроде в самом начале продаж было. Я цену по чип-нн смотрел
В Промэлектронике 270р. На 30р дороже, чем было, зато есть в наличии и все же близко к 250.
Так не лучше ли загрузить сразу и код, который забрасывает процедуры в RAM?
Ну, это изнашивает флеш. А в ОЗУ мона сколько угодно отлаживаться.
ЗЫЖ Про архитектуру специально не ответил — прибегу из магазина и посмотрю. Может ты и прав
Ну ИМХО все же тру Гарвардская — это когда пространства памяти полностью разделены. А так оно с точки зрения программы Фон Неймановское, а реализация — это уже детали.
0
Переписал про архитектуру
0
Ну, это изнашивает флеш. А в ОЗУ мона сколько угодно отлаживаться.
Ну там все таки не все так страшно. «10к циклов перезаписи» не значит, что на 10001 цикле ячейка сломается. Это значит, что при каждом стирании и записи ячейка будет изнашиваться — ухудшается изоляция у полевиков, на которых построена память — заряд быстрее «стекает». По этому большое число перезаписей привет скорее к меньшему сроку хранения, чем к полному отказу.

Я интереса ради пытался убить ячейку EEPROM в STM8L152K6T6. Записывал байт, читал, сравнивал, инкрементил, снова записывал. По моим прикидкам 100к циклов должны были пройти через пол часа непрерывной работы, однако оно так писало часа четыре непрерывно. Потом мне понадобился пинборд для отладки примера и эту адскую машину пришлось остановить. Надо будет к этому вернуться и проверить.

Вика вот что пишет.

А даташит вот что

(з.ы. смотри, как температура влияет на сохранность data memory!)
0
По этому большое число перезаписей привет скорее к меньшему сроку хранения, чем к полному отказу.
Update: Flash_Destroyer final destroys EEPROM
По моим прикидкам 100к циклов должны были пройти через пол часа непрерывной работы, однако оно так писало часа четыре непрерывно.
Почему я не спешу продолжать разговор о растактовке выполнения инструкций вычислительным ядром STM8 хотя бы уартом выводил бы количество циклов, на глазок и в даташите написано :)
0
Я почти уверен, что далеко до цифры 11,494,069 циклов, память уже начинала бы портится при хранении в течении месяца-недели-дня-часа.

Насчет времени выполнения — я дрыгал ножкой и смотрел скопом за сколько времени проходит цикл. Поэтому расчет весьма точный. Но пост на hackaday подтвердил сомнения — ждать пришлось бы долго :)

Гораздо интереснее, в практическом плане, посмотреть сколько будет жить память после разного числа записей.
0
Цикл надо было дольше делать. Записал, подождал, прочитал. Правда, тогда бы оно дооооолго тестировало.
0
В общем, «это совсем изощренная экзотика»
Такую экзотику используют при программировании LPC. В рам пишется програмка, программирующая флеш, и запускается на выполнение. RPC — так сказать.
0
Ты бредишь vga, измышлизмы. Читаем первоисточники:

Advanced STM8 core
Harvard architecture and 3-stage pipeline

пруф-определение определение:

The Harvard architecture is a computer architecture with physically separate storage and signal pathways for instructions and data. The term originated from the Harvard Mark I relay-based computer, which stored instructions on punched tape (24 bits wide) and data in electro-mechanical counters. These early machines had data storage entirely contained within the central processing unit, and provided no access to the instruction storage as data. ...

Under pure von Neumann architecture the CPU can be either reading an instruction or reading/writing data from/to the memory. Both cannot occur at the same time since the instructions and data use the same bus system. In a computer using the Harvard architecture, the CPU can both read an instruction and perform a data memory access at the same time, even without a cache.


т.н. фон-неймановская с раздельными шинами — бредовое определение в ущербном пост-советском образовании.


0
Чистых гарвардской и фон-неймановской архитектур уже не осталось. Для программиста STM8 — фон-неймановский. В железе же MCS51 фон-неймановский (использует общую шину для ПП и ПД при их внешнем исполнении), а тот же ARM или x86 — гарвардский.
0
А учитывая, что в железе давно уже все процессоры представляют смесь архитектур — остается только разделять их по принципу того, в одном АП лежат ПП и ПД или в разных, т.е. по программному представлению.
0
Алсо, если взять принципы архитектур Фон Неймана и Гарварда в том виде, в каком они в википедии (а как минимум для гарвардской они совпадают с приведенными тобой), то получится, что они друг другу не противоречат, если используется единое АП для всей памяти, т.к. принципы Фон Неймана описывают идеи с точки зрения программирования, а Гарварда — с точки зрения железа, и на сегодня процессоры обычно в железе соответствуют Гарвардской архитектуре, а в программном отношении — Фон Неймановской.
0
Чистых гарвардской и фон-неймановской архитектур уже не осталось.
Собственно по этой причине не надо было искать определение для STM8 :) А конечном итоге формальный вид архитектуры не имеет никакого значения.
0
Ну, если говорить о архитектуре с точки зрения программиста, то «о, фон-неймановская, можно выполнять код из ОЗУ!». А что там в железе — это уже детали, да.
0
КМК пинбоард хорош для лабораторий учебных заведений, где паять нежелательно. А любители-энтузиасты как раз наоборот, любят поковыряться с паяльничком. Посему Дискавери для них более приятен, учитывая наличие СТ-линка. Это мое мнение, а не реклама :)
0
Ну дааа :) если энтузиасты любят ковыряться с паяльником, кто же покупает пинборд?
0
дворцы пионеров?
0
Ты удивишься…

99.99% покупателей частные лица. Образовательные учреждения только вот вот начинают робко подтягиваться.
0
дискавери несколько «близка» в ардуине. Переферия отдельными модулями для дуин распространена. её же можно и с дискавери эзать.
0
Заинтересовали эти ARMы :) До этого работал с AVR процессорами. Понравилась их дешевизна и низкое потребление напряжения.
Хотел бы спросить вот что, какую GCC среду вы посоветуете?
Где бы можно было бы приобрести дешевый программатор для STM и можно ли его собрать самому?
0
Купите любую STM32xxxDiscovery и будет вам программатор и аппаратный отладчик в нагрузку к чипу. Статья об установке и настройке еклипса и статья о настройке ST-link-а, думаю, будут полезны.
0
О спасибо) насчет discovery. Читал о нём, но мне он не совсем подходит. А вот то что stm8 можно прошивать через ubuntu меня очень порадовало))
А если покупать программатор отдельно, какой лучше выбрать, кроме st-link-a
0
STM8 — не ARM.
А если покупать программатор отдельно, какой лучше выбрать, кроме st-link-a
Для STM8 — только ST-LINK. Для STM32, которые и являются ARM'ами — практически любой JTAG-ARM, вроде CoLink, J-Link, etc.
0
Читал о нём, но мне он не совсем подходит.
Чем же они не подходят? Особенно если покупать именно как программатор, а не как отладочную плату. Для STM8 тоже можно взять дискавери, одна из них позволяет даже откусить программатор и пользоваться им без довеска. Впрочем, довесок не мешает, все дискавери штатно предусматривают отладку/прошивку других плат встроенным в них программатором/отладчиком.
0
одна из них
две из них
S и S Value line
Причем вторая стоит 270р
0
Точно. Я не сильно за ними следил, правда, поскольку STM8 мне не очень интересна из-за отсутствия открытого тулчейна.
0
SDCC заглох :(
0
Они и AVR-то с PIC'ом сделать не смогли. Хотя это возможно потому, что для них и так хватает средств разработки. Но на тот же пик открытых я не нашел вообще, ситуация примерно как с STM8.
0
одна из них позволяет даже откусить программатор и пользоваться им без довеска.
Вот брал себе плату, ориентируясь именно на такую возможность. Но, так ничего и не отламал, да и не собираюсь. Цельное удобнее, хотя и отлаживаю на отдельных платах.
0
STM8 это всё-таки не ARM :) У них там свое ядро. А ARM это STM32.

Если нужно только прошивать, то можно воспользоваться загрузчиком (по UART). Весьма удобно
0
dcoder, как ты уже понял, я прокомментирую. Эмм… это просто охуенная статья! Есть в тебе что-то этакое! Продолжай в том же духе!
+2
Соглашусь с bomond и поддержу!
Читается как-то прямо вот легко что ли.
Был бы рад в вашем, dcoder , исполнении и про STM32 почитать!
Знаю-знаю, уже и так много где можно про них почитать, но ведь не в вашем исполнении ;)
0
Еще раз подтверждается мысль о том, что настроение аффтара в момент написания неиллюзорно влияет на качество статьи :)

Наверное просто про STM32 я писать не буду. Реально уже куча всего написано. Хочу поиграться с STM32W, вообще ищу себе универсальное беспроводное решение, желательно SoC (то есть МК+радио в одном корпусе). (желающие развести тут дебаты о таких решениях да пойдут вот сюды). А еще надо-бы поиграться с ПЛИС, из этого тоже может что-то выйти.

И не «в вашем», а «в твоем»! Ну что это такое, в самом деле? :)
0
1) Однозначно!
2) Да в любом случае дело! Пусть и по 32W :)
3) Привычка «обращаться ко всем на вы» такая привычка…
0
Осознал, как много написано (и как много я прочитал) только после слов:
Ну вот, для вступительной части наверное хватит.
Даже не заметил, как время пролетело. Нет, я не уснул :)
0
Ну дык :) Статья начинающаяся со слов
жую печеньки, ни о чем плохом не думаю, переписываюсь с девушкой в этом вашем вконтактике.
Просто по определению не может быть плохой :)

Спасибо
+2
Давай только без одиночных скобок в середине предложений, компилятор ругается )
0
  • avatar
  • gadz
  • 09 декабря 2012, 20:32
*в панике просматривая текст* ГДЕААА Я ТАКОЕ ДОПУСТИЛ?!
0
===То есть совсем) с низким потреблением. Собственно, их мы и будем изучать.===
0
эээ…
(а в STM8S нету компараторов. То есть совсем)
0
Спасибо за многообещающий цикл статей. Давно присматриваюсь к STM8. Единственное что останавливает – отсутствие бесплатного компилятора для данного ядра.
0
  • avatar
  • e_mc2
  • 09 декабря 2012, 21:43
Вот, уже второй такой :) IAR дает бесплатные 8к, COSMIC тоже. Это конечно не много, но думаю 70% проектов попадают в эту цифру. А если делается для себя, то может убить совесть и найти лекарство?

А для всяких STM8L101 и STM8Sx03 вообще не надо заморачиваться — там и так 8к памяти :)
+2
мне иар и космик параллельны, у мну винды нету
0
А как же всякий там вайн?
0
Тогда уж виртуалбокс. Только зачем? С точки зрения цены/фукнциональности для моих задач они полностью накрываются мелкими кортексами. При этом мне не нужно ставить другой тулчейн или приспосабливаться к новой IDE.
0
Тогда уж виртуалбокс.
Ну вайн таки несколько бесплатней.
0
Виртуалбокс ничуть не менее бесплатный.
0
Да. Но в него придется ставить ту самую винду, а у нее уже есть определенные проблемы с бесплатностью.
0
Если
А если делается для себя, то может убить совесть и найти лекарство?
,
то в такой ситуации говорить о платности какой-либо софтины, как бы, смысла уже не имеет.
0
Ну, в отличие от винды, у иара и космика есть бесплатные версии.
0
Однако же для их запуска мне придется как-то выкручиваться, либо вайн крутить, либо винду ставить. Слишком много мороки, что бы пользоваться не сильно нужными мне контроллерами. Так что в сад.

Я тут недавно лпц-еспрессо купил и решил воспользоваться бесплатной версией софта от ред-кода. Она даже под линух есть. Столкнулся с какими-то непонятными заморочками касательно кодов активации и забил. Мне мое время дороже, чем все эти жлобские заморочки с лицензиями/ключами/кряками/виндами и прочим.
0
Нет там никаких заморочек: регистришся, шлёшь им код который выдаёт икспресса, получаешь майл, вводишь код. И всё работает.
0
Я так и сделал. Только первое, что мне ответили — код неправильный. Кроме того, работает далеко не все. Давать только компилятор С — это форменное жлобство.
0
>>Только первое, что мне ответили — код неправильный.
Странно, ни разу проблем не было.

>>Кроме того, работает далеко не все
Чего не хватает? Плюсов?

>>Давать только компилятор С — это форменное жлобство.
Им тоже деньги нужны.
К тому же, их среда нужна только для отладки в железе, а тулчайн можно свой использовать. Хоть на фортране пиши, лишь бы elf был на выходе.
0
Чего не хватает? Плюсов?
Да.
Им тоже деньги нужны.
Охотно верю. Только не понимаю, почему это должны быть мои деньги.
К тому же, их среда нужна только для отладки в железе, а тулчайн можно свой использовать. Хоть на фортране пиши, лишь бы elf был на выходе.
Думаю, для отладки в железе конкретно их среда тоже не нужна.
0
На плюсы ограничений нет, если проект makefile и тулчайн внешний.

>>Думаю, для отладки в железе конкретно их среда тоже не нужна.
икспресса ж привязана к IDE. Хотя мне удавалось запустить её с SlickEdit. Но как-то убого всё выглядело.
0
На плюсы ограничений нет, если проект makefile и тулчайн внешний.
Тогда зачем мне кодередовская IDE?
икспресса ж привязана к IDE. Хотя мне удавалось запустить её с SlickEdit. Но как-то убого всё выглядело.
Каким боком она привязана? Как минимум прошивать уж точно можно как минимум несколькими способами. Удастся ли воспользоваться набортным отладчиком — отдельная тема.
0
Ихняя IDE — это просто Eclipse, но уже заточенный под LPCxx. И денег не стоит.
Разве не привязана? Как его тогда к другому Eclips-у подключить?
Прошивать можно конечно, но этого ж мало — отладчик нужен.
0
Ихняя IDE — это просто Eclipse, но уже заточенный под LPCxx.
Я понимаю. Только «заточка» сводится к введению всевозможных ограничений.
И денег не стоит.
Да, для того, кто считает свое время бесплатным.
Разве не привязана? Как его тогда к другому Eclips-у подключить?
Откуда я знаю?
Прошивать можно конечно, но этого ж мало — отладчик нужен.
Отладчик можно и внешний подцепить, если набортный завести не удастся.
0
Только «заточка» сводится к введению всевозможных ограничений.
Не только, например регистры периферии подкючены к эклипсе. Самому что ли их подключать?

Отладчик можно и внешний подцепить, если набортный завести не удастся.
Можно… если он есть. И сколько он стоить будет?
0
Не только, например регистры периферии подкючены к эклипсе.
Они подключены не к эклипсу, а к ихнему же плагину. К слову, аналогичная тулза (плагин и standalone версия) у ST бесплатно раздается всем желающим и не имеет привязки к IDE.
Можно… если он есть. И сколько он стоить будет?
Универсалный клон jlink-а где-то за 25 баксов можно купить.
0
К слову, аналогичная тулза (плагин и standalone версия) у ST бесплатно раздается всем желающим и не имеет привязки к IDE.
Интересно. Что за плагин? И что он может? Можно с помощью него подключтся к discovery и отлаживать программу в Eclipse(фриварной)? Ссылку не дадите?
Универсалный клон jlink-а где-то за 25 баксов можно купить.
Ну это же пиратство какое-то… нехорошо.
0
Интересно. Что за плагин? И что он может? Можно с помощью него подключтся к discovery и отлаживать программу в Eclipse(фриварной)? Ссылку не дадите?
К дискавери (или с ее помощью к чему-либо другому на STM32) из эклипса можно подключиться и без помощи ST. Сам плагин тут.
Ну это же пиратство какое-то… нехорошо.
Ну не покупайте.
0
Есть и открытые отладчики. Версалун, КоЛинки, etc.
0
Да, конечно. Вопрос же был «сколько стоить будет», а не " а «увуие есть альтернативы?»
0
увуие=какие
0
Ну, альтернативы (по крайней мере CoLinkEX) стоят примерно столько же, так что можно было назвать их и не получать претензий к пиратству).
0
можно было, но тогда флеймить было бы не о чем :)
0
Ни разу не умаляя необходимость флейма и срача в жизни человека, хочу сказать, что про IDE все-таки будет следующая часть. Вы бы силы раньше времени не тратили ;)
+1
До стм-ок мы еще толком не добрались, так, размялись слегка на лпц-шках :)

P.S. "..., а сил у меня немеряно." (с) Антикиллер
0
Отладчик можно и внешний подцепить, если набортный завести не удастся.
А зачем тогда вообще LPC Xpresso? Там же голый МК с отладчиком.
0
Когда покупал, то даже не мысли не допускал, что NXP может связаться с такой конторой.
0
И денег не стоит.
Да, для того, кто считает свое время бесплатным.
Судя по количеству комментариев — именно для вас.
И не надо заливать, что
Мне мое время дороже, чем все эти жлобские заморочки с лицензиями/ключами/кряками/виндами и прочим.
0
Судя по количеству комментариев — именно для вас.
Во-первых, это мое время и мне решать куда и как его тратить. Во-вторых, если у вас написание комментариев занимает много времени, то это вовсе не значит, что все так же медленно набирают текст, как и вы.
И не надо заливать, что
Не надо — не заливайте. При чем тут я?
0
Время на комментарии потрачено в свое удовольствие. А секс с лицзащитой — в точности наоборот. Это очень большая разница.
0
Не поверишь, не было ни какого секса. Ткнул кнопочку, скопипастил текст, ткнул кнопочку — готово.
А вот когда народ привык воровать (кряки, кейгены, пиратские версии), то для них это непосильная задача — да.
Гораздо проже же открыть гугл, вбить строку поиска, отсмотреть десяток ссылок и скачать кряк. Или вариант для совчем ленивых — на форумах постить «дайте кряктутую версию». Ведь в этом случае «потрачено в свое удовольствие» и «мое время и мне решать куда и как его тратить».
0
В винде — возможно. Но у evsi линукс. А там
Я так и сделал. Только первое, что мне ответили — код неправильный. Кроме того, работает далеко не все.
0
А вот когда народ привык воровать (кряки, кейгены, пиратские версии), то для них это непосильная задача — да.
В зеркало глядитесь? У меня нелицензионного и/или ломаного софта на машине нет, причем весьма давно. Так что ваш наезд явно мимо кассы.
0
Возможно есть обходной вариант: при покупке компа с виндой использовать ее, только пересадить в виртуалбокс. Не исключено, правда, что мелкомягкие такую возможность перекрыли, я давно не читал их лицензионных соглашений. Не исключено, так же, что подобное перекрытие может не стыковаться с местным законодательством. Вобщем, надо внимательно разбираться, а у меня на это нет ни времени, ни сколько-нибудь заметного желания.
0
Насколько мне известно, OEM изначально нельзя переносить на другой ПК или виртуальную машину:
« Most pre-installed versions of Windows have OEM licenses. OEM licenses generally cannot be transferred to another computer, or to a virtual machine.»
0
Я ж говорю, это надо выяснять, насколько подобное вписывается в национальное законодательство.
0
Cortex-M0? Ну в смысле что бы все по феншую (переносимо/совместимо сверху вниз, один tool-chain & RTOS и т.п.), как это предлагает ARM, а не впадать в ересь 8-бит из-за эксклюзива в цене/энергопотреблении — на дворе уже почти 2013 год все же.

А какие есть уже сейчас процессоры Cortex-M0/M3 сравнимые по энергопотреблению и цене с указанными stm8S/L?
0
А какие есть уже сейчас процессоры Cortex-M0/M3 сравнимые по энергопотреблению и цене с указанными stm8S/L?
Это ко мне, что ли, вопрос? Я, вообще-то, любитель и вообще чисто погулять вышел. В смысле, меня, в качестве критерия вполне устраивает «нравится-не нравится», а борьба за копейки цены и микроватты потребления конечного изделия мне как-то глубоко параллельна.
0
На самом деле просто интересно: что есть реально? Сейчас много разговоров про Cortex-M0 дешевые якобы и в мелких/простых корпусах (даже DIP есть). Но что в реале, и как у них с энергопотреблением? AVR attiny считаются уже дорогими вроде, как бы им на замену stm8. Но если Cortex-M0 сравнимы по цене и главное энергопотреблению с stm8, то зачем тогда нужен этот stm8?

У меня просто вопрос: Реально есть Cortex-M0 сравнимые по цене+энергопотреблению с stm8L/S?
0
Смотрим и сравниваем вот, вот и вот. За подробностями по энергопотреблению стоит смотреть в документацию, мне это особо интересно никогда не было. С доступностью в мелких корпусах есть проблемы (у всех).
0
От C-M0 можно ожидать от 130 uA/MHz в активном режиме и ~45 uA/MHz в sleep.
А как у stm8 с потреблением?
0
От яблок питается.
stm8s на 16МГц потребляет что-то типа 5мА (плюс-минус от кварцев зависит и пр). stm8l меньше кушает.
Но странно что не были упомянуты TI-шные армы, вроде как лидеры в энергосбережении.
0
Но странно что не были упомянуты TI-шные армы, вроде как лидеры в энергосбережении.
MSP430 в лидерах были раньше, это да. А кто у TI из АРМов в лидерах?
P.S. Считал что среди АРМов в лидерах по сбережению EFM32. Тексас их обогнал?
0
stm8s на 16МГц потребляет что-то типа 5мА (плюс-минус от кварцев зависит и пр).
5000/16=315 uA/MHz — утюг, однако.
0
Вот, уже второй такой :)

Млин, даже здесь я второй :(

IAR дает бесплатные 8к, COSMIC тоже. Это конечно не много, но думаю 70% проектов попадают в эту цифру. А если делается для себя, то может убить совесть и найти лекарство?

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

К Вам, однозначно, претензий нет, и я жду продолжения цикла статей. Претензии скорее к маркетингу ST.
+1
Согласитесь, что наличие нормального бесплатного компилятора это однозначно плюс для любой платформы.
Более того, стоит ли «платформа» того, чтобы обращать на неё внимание, если все средства программирования требуют длителной пляски с бубном и неясным результатом, или поиска лекарства, или поддерживают не все семейства, или примитивны и не имеют отладки?
+1
Так и не понятна цель статьи. В конце автор резюмирует утверждением, что, мол, теперь-то у читателя есть некая база. В чём она, эта база? Прочитал статью (целиком), в попытках найти эту самую базу (как оно бывает в обзорных статьях) и так и не нашёл. Статья не тянет даже на обзорную.
+1
Я еще с самого начала намекнул, что это реклама а не обзор. Даташит куда более информативен, чем рекламная брошурка )
0
Да это понятно. Только хотелось бы чтоб статьи не писали в пустую. Можно было б зарактеристики того же АЦП, что из него можно выжать. Что и как можно зацепить на DMA ну всё в таком духе. В чём преимущество адресации в STM8 перед AVR'ками. Но вот нахрена таблица с картой памяти — воще не понятно.
0
Со времен срочной службы в рядах Советской Армии запомнилась одна поговорка — «Инициатива наказуема исполнением». dcoder'у — не слушай критиканов, дружище, пиши. У тебя это отлично получается. :)
0
Ты меня все-таки переоцениваешь. Я б не стал писать 15к букавок, чтобы сказать «Покупайте STM8L модуль». Мне лениво :)
0
Что-то мне подсказывает, что в продолжении тоже не будет рекламы…
0
Да, слова «модуль для PINBOARD2» мелькают и в следующих статьях, поэтому если тебе это так режет глаза — предлагаю уже сейчас начать писать скрипт для браузера, который заменить это словосочетание на «ОСТОРОЖНО РЕКЛАМА!11»
+1
Сие не стоит рассматривать как отдельную статью. Это часть цикла статей, в котором далее будет и АЦП, и градусники и прочие милые сердцу вещи.

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

Тем не менее, я считаю, что для начала и этого будет достаточно. Вы можете не согласится, но я спишу ваше несогласие на то, что я вижу перед собой остальные части и представляю где, о чем, и как рассказано, а вы — нет :)
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.