Нежесткая схватка STM32 vs. ATMEGA

Скажу, сразу: ATMEGA выиграла текущий тендер, но идеологически продула все дальнейшие соревнования. Однако, судьба у нее такая.

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

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

Здесь много проблем, которые предстоит решать. Одна из проблем заключается в том, что по одному и тому же кабелю поступает и питание, и по нему же нужно пересылать данные. Данных много, примерно до одного килобайта ежесекундно.

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

Как обычно, всё нужно сделать очень быстро. Для ускорения разработки, можно пожертвовать многими неключевыми характеристиками. Я не делаю открытия, такой подход к делу существует повсеместно. Ну, как минимум везде, где мне довелось работать. Типа потом, в процессе серийного производства «допилим» до совершенства. Главное — застолбить территорию, а доводить до блеска — это дело будущего.

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

Я сориентировался на на микроконтроллер ATMEGA328. Из ключевых характеристик мне были важны:

* объем оперативной памяти должен быть не менее 2 кБ. Сам пакет данных для пересылки занимает чуть менее килобайта, но ведь еще нужно иметь пространство для стека и размещения переменных. В один килобайт может всё хозяйство не поместиться, поэтому — ориентируюсь на два.
* с одной стороны — корпус должен быть маленький (ширина платы всего 20 мм), а с другой — ножки у него должны иметь большой шаг. Корпуса LQFP, QFN, а тем более BGA — не подойдут. Предполагается, что первая плата будет макетная, и она должна быть изготовлена быстро — в течение одного-двух дней. К сожалению, я до сих пор не освоил ЛУТ для класса 0.2/0.2. Максимум до чего я смог легко подняться (т.е. делать повторяемые по качеству платы без особых надрывов и нечеловеческих сверхусилий)  — это платы под корпус TSSOP, шаг ног у которого 0.65. Поэтому, если выбранный процессор будет выпускаться еще и в корпусе DIP, то это будет вообще — подарок судьбы!* обязательное наличие опыта с выбранным процессором, поддержка его в среде Линукса и наличие средств аппаратных поддержки (типа программатор). Понятно, что всё это позволит значительно ускорить разработку прибора.

Меня совершенно не лимитировало энергосбережение и быстродействие. 10-20 мА и 10 МГц было вполне достаточно.

И мой выбор пал на ATMEGA. Хотя я серьезно рассматривал STM32F1xx. Но отсутствие у STM больших корпусов сыграло злую шутку.

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

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

Трансляция в кабель подразумевает работу в коде Manchester-II, с временами формирования импульсов 50 мкс. Опрос АЦП — каждые 200 мкс. Получение информации с блока детектора Гамма-излучения — это вообще случайный процесс. Он висит на прерывании. До кучи, внутри прибора должна еще формироваться целая сетка частот для разных событий, типа формирования зондирующих импульсов и т.п.

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

Я попытался уменьшить его перестроив алгоритм автомата состояний. Получилось. Но не очень. Джиттер все равно был большой. У меня был еще резерв, уйти по тактовой частоте ядра вверх в 2-2.5 раза — установить кварцевый резонатор на 20 МГц. Но принципиально джиттер устранить не получится. Случись это в STM32 можно было бы подняться еще в несколько раз по тактовой частоте процессора. А тем более сам процессор не 8-, а 32-х разрядный, и всякие переменные, размер которых превышает один байт, он «заглатывает» за один прием, а не «жует» их по кусочкам.

Так или иначе, на очередном техсовете мы решили, отказаться от кода Manchester-II и гнать по кабелю обычный последовательный код с UART-а. Кабель позволяет нам передать постоянную составляющую, поэтому основное преимущество Манчестера оказывается снивелированным до нуля, нам оно становится безнадобности.

Более того, теперь процессору не нужно будет отвлекаться на передачу каждого бита. Причем раньше для каждого бита в Манчестере  приходилось дергать проц дважды раз, то есть 16 раз для передачи одного байта. Теперь же — всего один раз. Существенно. Вот, что значит программная и аппаратная реализация.

Потеря времени при передаче байтов для Манчестера недопустима. Если случится небольшая заминка между передачей байтов, то произойдет рассинхронизация всего пакета данных. Состояние синхронности восстановится только при передаче следующего пакета. Такие потери крайне неприятные. Более того, рассинхронизация становятся еще более вероятной, если у сигнала имеется джиттер.

При передаче стандартного последовательного кода (UART) каждый байт сопровождается стартовой и стоповой посылкой. То есть синхронизация идет по-байтно.

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

И вот тут до меня допёрло одно из ключевых преимуществ STM32. В отличие от ATMEGA у STM32 есть механизм DMA, который вообще не отвлекает процессор на такие мелочи, как передача следующего байта.

Вы готовите пакет, снабжаете его контрольной суммой, которую заметьте, STM32 тоже может вычислить своими силами, не прибегая к программным ухищрениям (как это обычно делается в ATMEGA), и дать единственную команду — «передать массив». И это — всё! После этого процессор STM32 может заниматься своими делами: продолжать опрашивать свои любимые датчики или же вообще — тупо лечь спать.

Процессору ATMEGA в этом случае пришлось бы тревожно дергаться по каждому байту пакета. Теперь понятно, что это не самое лучшее решение.

Только не убеждайте меня, что можно взять X-MEGA!

Да, можно. Но зачем? Зачем мне X-MEGA, когда при тех же корпусах и тех же ценах я могу взять более интересную STM32. Тем более, что X-MEGA не имеет поддержки в Линуксе. А кроме того, я её совсем не знаю.

Вот теперь чешите свой затылок при выборе микроконтроллера для следующей разработки. К стати ST Microelectronics не планирует выпускать STM32 в больших корпусах. для этого дела выпускаются специальные макетные платы типа STM32 Discovery.

И тем не менее, мне кажется, что не смотря на названные проблемные упущения, STM32 и впредь будет теснить на рынке AVR и захватывать умы разработчиков — у него чрезвычайно «вкусная» архитектура по сравнению с AVR.

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

Работа с фьюзами — это вообще хотьба по минному полю! Это отдельная тема.

Гарвардская архитектура не позволяет работать с данными (с константами) непосредственно из флеш-памяти. Представьте себе, вы пишите программное обеспечение, в котором много текстовых строк (допустим, строк меню или сообщений пользователю). Как по вашему, где они будут лежать в момент работы программы — в RAM или во Flash? Если в RAM, то они займут под себя не хилое пространство и без того крошечной (по размерам)  RAM. А если они будут лежать во flash, то ни одна функция из стандартной библиотеки Си с ними не сможет работать. В общем, заставить работать AVR с константными строками удается с помощью костылей. Кто-то об этом не знает. Но я знаю об этих костылях, и это меня это дико раздражает.

«Едионообразие» — в отношении AVR это только слова. Типичная ситуация. Допустим, вы разрабатываете какое-то устройство. И в какой-то момент времени вы осознали, что вам не хватает ресурсов выбранного проца. Вы берете микроконтроллер с большим количеством памяти, счетчиков, UART-ов и … и внезапно сталкиваетесь с тем, что некоторые регистры называются по другому. Более того, некоторые биты управления «переехали» в совершенно другие регистры. Зоопарк! Приходится пересматривать весь проект — от начала до конца.

Реклама

22 responses to “Нежесткая схватка STM32 vs. ATMEGA

  1. А 32-битные микроконтроллеры от Texas Instrumenst даже не рассматривались?

    • Нет.
      К стати, вчера на семинаре Франческо немного рассказал про судьбу Luminary. Несколько лет назад её купил TI, и сейчас TI на базе этих процов выпукскает свои Кортексы.

      Кортексы от TI — не самые плохие. Но я с ними близко не знаком, то есть с ними еще не работал. Да и на столе у меня их тоже нет. А STM32 — есть.

  2. >Корпуса LQFP, QFN, а тем более BFA
    BGA?
    >К сожалению, я до сих пор не освоил ЛУТ для класса 0.2/0.2
    Осваивайте фоторезист. Да, приспособлений и материалов больше. НО:
    1) 0,2/0,2 при поставленном процессе получаются как из пушки. Чтобы запороть — надо очень сильно постараться.
    2) почти бесплатно (с т.з. оборудования) получается паяльная маска. Без разницы что именно это будет — однокомпонентная «ремонтная» от голдпарта или вполне себе промышленная двухкомпонентная FSR8000. Дополнительно нужна только сама маска.
    Я первый раз фоторезист (тогда еще позитив20 с шаблоном на лазернике и одной лампой на 26Вт для 0,25/0,25 (атмел армы…)) запускал с неделю, но добился полной и абсолютной повторяемости процесса. Пленочный — уже второй подход был удачным. Маску победил за два дня.

    А так… Яркий пример просчета «я умею только это». И это печально наблюдать у разработчика с таким опытом… В крайнем случае можно было изготовление платы перепоручить людям, которые 0,2/0,2 (на самом деле там 0,25/0,25 😉 ) ЛУТом делают не напрягаясь. У нас (Украина) есть несколько таких предложений около 10$/дм2 и два-три дня плюс пересыл. Уверен, что и у вас такие предложения есть.

    • BGA?
      Упс! Видимо, промазал пальцем.
      Спасибо за обнаруженную ошибку.

      • Михаил

        Изо всех сил рекомендую заказывать платы не у отечественных а у китайских производителей. По крайнем мере мелкие партии. Разработчик не должен иметь проблем с выбором кристалла из-за сложности изготовления платы. Китайцы эти проблемы давно и с успехом решили. Я постоянно мониторю ценовое предложение по изготовлению плат китайцам и на данный момент дошел до следующего. Уже второй раз заказываю партии по 25 плат размерами 150*85мм, толщиной 1мм, 0,2/0,2 шаг плюс две маски плюс две маркировки. С учетом доставки DHL, эти партии обходятся мне в 151$ и полторы-две недели. При бескомпромиссном качестве изготовления. Раньше я возился с отечественными производителями. Это дорого, долго и раздражает. Если нужно — пишите, дам выходы на тех людей в китае, у которых сейчас размещаю заказы. Оплачиваю по Western Union, т.е. мгновенно. Сегодня разработал плату, сегодня же получил инвойс, сегодня же оплатил, сегодня же началось производство. Никаких проволочек. Кстати с ЛУТ нормально делаются макетки 0,2 на 0,2. Не знаю на счет повторяемости, серийности я от этого метода не требую. Т.е. если нужно сделать макет — то это ЛУТ. При этом заряжаю 4-10 одинаковых плат, одна по любому получится нормальной, для макета, а уж если нужно будет небольшую серию, то вон как я описал, 25 штучек обойдутся в 151 доллар, правда я ещё теряю 22 доллара на переводе Вестерном. Но если завести Пэйпэл и эти потери исчезнут. Сам пару месяц назад переполз на STM32 с Меги, о чем ни разу не пожалел. Конечно 10 лет общения с мегой просто так не забыть, и множество нюансов с новыми кристаллами удлинняют цикл, но примеры есть, нужные мне механизмы уже прощупал. Я правда начал сразу с STM32F4Discovery и прикупил F407 и F427 для опытов, так вот, все три каменюки успешно запущены, для 144 QFP платы уже неделю как оплачены китайцам, максимум через неделю будут у меня. Богатейшая периферия и 168МГц ядра, это доложу я вам не хухры-мухры. Да и корпусная взаимозаменяемость это просто подарок… В общем рад за коллегу двигающегося параллельным курсом, желаю успехов. А вообще, я полностью переехал на комплектацию в Китае… Это дешевле зачастую раз в 10 по компонентам, раз в 5 по платам, быстрее и предсказуемее. Да, ищу поставщиков на alibaba.com. За мою практику прошло уже пару сотен заказов, ни одного кидалова или брака не замечено. В отличие от наших… С уважением, Михаил.

      • Михаил

        Да, на счёт ЛУТ. Вы я думаю в курсе, но на всякий случай ещё раз напомню, что для получения качественного переноса нужно распечатанный шаблон ложить под заготовку, а не наобороть. Чтобы в первую очередь прогревалась заготовка, а уже от неё бумага. Это важный нюанс.

  3. Абсолютно согласен с позицией автора относительно размера корпусов при прототипировании, и не только. У нас в городе три «человеческих» (недорогих) производителя плат, и все три не могут обеспечить точность для LQFP STM32 на больших партиях (2-3 из 10 плат идут с браком). А производители покрупнее и оснащённые посерьёзнее за небольшую серию возьмут в тридорога. В то же время, корпус TQFP32 Atmega очень хорошо повторяется и годится для ЛУТ при срочном заказе.

    По поводу джиттера (на аппаратном уровне). Тесно связан устройствами автоматики для горно-рудной промышленности. Зонды для скважин конечно не делал, но знаю, что уже на 1км температура заметно повышается. Дальше по глубине, вообще говоря, нелинейное распределение температуры. На низких тактовых частотах МК качество резонаторов становится заметным. Иногда попадаются бракованные в партии. А также боюсь вибраций и ударов (хоть и пакуем датчики в корпуса из сантиметровой стали). Давно хочу поробовать MEMS генераторы тактовой частоты, на одном из форумов задавал вопрос «кто использовал» — но никто не откликнулся. Так что до 3-х километров часто работает опторазвязанный UART с контрольной суммой, притом нареканий нет (это на шахтном связном кабеле). Подтверждаю. А каротажные кабеля – это тема отдельная. Мой шеф когда-то в далёких 80-х был пионером силовых и прочих кабелей с вплетённым оптоволокном. Уже в 87г они пропускали 20кБит без потерь. На сколько это значительно – судить сложно.

    • Да, кстати по поводу быстрого макетирования в обход ЛУТа. Я лично для распаивания LQFP закупил ещё и переходников в конторе с названием «Космодром», по моему в Харьокве она. Производитель кстати украинский, качество нормуль, цена тоже. ПЕреходник с LQFP144 на ДИП обошелся мне в 2,5$ у них. Правда не в любом случае такой подход годится. Сам столкнулся с тем, что на этих частотах, уже сильно важна длина дорожек. Но никто не мешает легким движением руки снизить частоту ядра раз в 10 при макетировании и всё откатать таким образом… Опять же не в любом случа это можно сделать, но думаю в большинстве, из тех, где действительно важны такие скоростя в периферии. Вот эти макетки кстати, производитель вроде как : http://emkit.com.ua/products/adapter_boards_a2/
      а это вот продаватели : http://www.kosmodrom.com.ua/prodlist.php?name=maketpcb&page=0
      но думаю при желании такие-же можно найти и в России и в Кетае 🙂

      • Да, Михаил, — да!

        Мне никуда тоже не деться от ЛУТа для LQFP. И я урывками пытаюсь двигаться в этом направлении. Кое-что получается.

        Переходники я уже посмотрел на ebay-е. Ну, в принципе, не так сильно накладно. Думаю, закупить несколько штучек, если не получится нарисовать утюгом. Но я все же хочу свою макетку сделать. С кварцевым резонатором, с питанием, с кнопочками и светодиодами, с джамперами по питанию и BOOT-выводами, с возможностью подключения как по SWD, так и с возможностью заливки кода через UART… Ну, то есть, хочу реализовать свои специфические требования.

      • Юрий

        Михаил, напишите, пожалуйста, usav@inbox.ru
        Хочу распросить о АЛИБАБЕ и о платах.

      • Юрий, Михаил — мои извинения за задержку публикации комментария Юрия. Интернет-ресурс wordpress.com в очередной раз был заблокирован, поэтому несколько дней я не имел возможности попасть в свой блог.

        Некоторые комментарии без моего «ободрения» не могут быть опубликованы. Некоторые комментарии публикуются сразу, а некоторым требуется моё разрешение. В частности, комментариям Юрия требуется мое разрешение. Я не разбирался почему так. Но вот такой момент есть, и с ним надо как-то жить. И пока не было блокировок ресурса, все было нормально.

        Обычно я разрешаю все комментарии, и даже те, которые жестко критикуют меня. Я отклоняю только комментарии не относящиеся к делу, спам-содержащие. Даже комментарии с матерками я публикую, предварительно отредактировав табуированные слова.

  4. И относительно комментария В «Яркий пример просчета “я умею только это”».
    Не согласен, что неделя, потраченная на освоение новой технологии, оправдана.
    Тоже живу на Украине и знаю многих производителей, стоимость срочных заказов.
    Для себя выделил два типа работы: текущая, платы для которой можно подождать 2-3 недели, и «халтура», которая бывает только срочной (конечно, сугубо личный опыт). То рекламщикам нужен «светодиодный эффект», то альпинистам специфический двухканальный таймер. И всегда есть пару дней на исполнение. Ну какое, скажите, при таких сроках освоение новой технологии? Не всегда нужен и DMA, точнее, почти всегда не нужен, когда речь о малой автоматизации.

    • DMA от STM32 это конфета, слопав однажды, отказаться от которой весьма затруднительно 🙂 ОЧЕНЬ хорошо продуманный механизм, куча примеров… У себя применял с буфером в 65535 значений для шестнадцатиканального ADC, с автоматическим переключением каналов…. Такое впечатление, что разработчики кристалла специально его сделали под мою задачку 🙂

      • Улыбнуло. По доброму улыбнуло.

        Я познакомился с механизмом DMA еще в средине 1980-ых. Я тогдя игрался с ним на Микро-80 (мой вариант компа назывался «Юнона»). Потом знаменитый РК-86, но там особо и не с чем было играться, комп с точки зрения «железного творчества» был завершенным. Что-либо добавить было сложно, а самое главное — не зачем. Ну и окончательно прочувствовал силу DMA в DOS-е на персоналках.

        С DMA в микроконтроллерах я еще пока дела не имел.

        — У вас несчастные случаи на стройке были?
        — Нет. А что???
        — Будут!

  5. Ну там у STM32 реально красиво реализовано. Разнесено по времени с процем, чтобы не мешало одно другому… Я тоже прошел через всякого рода «Специалисты» и 86РК :), думаю бряцать этими регалиями щас уже не модно 🙂 Разве что с товарищем перекроили когда-то спектрум в ревербератор с компрессией, но то такое. Завтра приезжает ваще AM3359 на плате http://circuitco.com/support/index.php?title=BeagleBoneBlack#LATEST_PRODUCTION_FILES_.28A5A.29 вот это уже точно будет что-то интересное 🙂 цена прикольная, да и макетник развели как нужно под мои задачи опять же. 1ГГц, это увлекательно 🙂 Да и графический проц с акселератором на борту… А то я тут вечно огороды на плисках горожу чтобы LCD экранчики прикрутить. А там всё уже встроено в камень 15*15мм…. Правда вот это то и задница, что других корпусов не предлагают. Срочно стал опрашивать поставщиков плат на предмет изготовления многослоек с шагом 0,166*0,166… Пока молчат. Если возьмутся — будет песня… Я тогда и от STM32 откажусь наверное…. Цены сопоставимы, а конфет поболе будет.

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

  6. По теме — а на тот момент msp430 не рассматривались?
    Я РК-86 не застал, а вот Орион 128 помню собирал. Микро-80 по монтажу осилить это вообще…
    В мелкие проекты дешевые attiny и pic10…12 я закладываю вполне. Сделать себе какую-то автоматику домой — опять же они и msp430 чтобы на макетке. Касательно плат — какой китай, зачем? Завод в паре километров, сроки 5 суток в среднем. Качество отличное.
    Касательно МК прикупил К1986ВЕ92 по 165р, буду учиться готовить.

    • >> а на тот момент msp430 не рассматривались?
      Рассматривались, но недолго. Практически были отметены сразу. Мне сейчас несколько трудно вспомнить детали, но я всё же попробую назвать причину.

      Мне нужно чтобы в микроконтроллере было не менее 2 кБайт оперативной памяти. И в семействе MSP430 есть такие микросхемы. Но! … в корпусах LQFP-64 с шагом ножек 0.5 мм. Если уж так получается, что выбор падает на МК именно в таком корпусе, то тогда лучше сориентироваться на STM32. По крайней мере STM32 будут даже дешевле. У AVR-ок можно выбрать TQFP с шагом ног 0.8 мм.

      Руслан, а Вы где живете? В каком городе? У нас в Екатеринбурге нет в продаже (только-что зашел на сайт Промэлектроники). Я бы тоже прикупил К1986ВЕ92 поиграться. Я сторонник того, чтобы бабло не утекало за рубеж и работало здесь, в России. Я готов рублем поддерживать отечественного производителя. Буду продавливать Промэлектронику.

      • Руслан

        Ну , в DIP сейчас есть например msp430g2553. Только на тот момент их наверное не было. Вопрос по msp430, вы отладку вообще используете? Я пытался прикрутить к редактору отладчик, в консоли mspdebug работает…Собрать libMSP430.so для 64bit Debian не удалось пока, с флагами разобрался но теперь надо с линковкой библиотек и версиями.
        У нас в Новосибирске тоже нет в продаже. Пользуясь организацией я напрямую с Миландром… Помимо того приобрел плату от LDM-systems — тоже наши производители, там помимо этого ещё и контроллеры CAN-шины К5559ИН14А и rs-485 К5559ИН10Б
        В розницу МК и всякие платы есть в http://dekstroplat.ru — , но я не покупал там. А так вообще кроме пары моделей attiny/atmega/pic у нас в городе ничего и нет в магазинах, а PIC16F628 по 250р — не предел.
        Как раз из Екатеринбурга мне часто детали приходят, складов и поставщиков у вас порядком.

      • Не-не! DIP — это уже крупный корпус. Мне кажется, что на тот момент MSP430G2553 уже были известны. Скорее всего их тогда просто в наличие не было — только под заказ. Сейчас это уже не важно.

        Про отладку. Да как бы Вам сказать… Я вообще в последнее время MSP430 не занимаюсь. А про отладку на AVR и STM32 скажу так — я пишу код по «восходящей». То есть от ножкодрыгания к бизнес-логике.

        Сначала пишу нижний уровень, выделяю несколько ножек под светодиоды. Добиваюсь правильного поведения нижнего уровня программы. Для достижения правильности я устанавливаю кусочки отладочного кода (типа зажечь красный ЛЭД, погасить зеленый ЛЭД) чтобы светодиоды зажигались и гасли при определенных событиях или при прохождении программы по той или иной алгоритмической ветви. Когда это все заработает как нужно, можно уже будет использовать либо UART для вывода в комп (благо в Линуксе открыть еще одну консоль не проблема!), либо LCD-дисплей. Проекты разные, поэтому однотипного накатанного пути как бы нет. Есть только общий подход к проблемам отладки, общие рекомендации.

        Да я и раньше, когда сидел под Виндой, не особо-то жаловал подключение к МК в отладочном режиме — проход программы по шагам, установка точек останова. Суеты в Винде (в IAR-е), конечно, будет несколько по меньше, чем аналогичная отладка в консолях под Линуксом. Но как-то со временем я понял, что внеочередная (лишняя) заливка кода, в котором присутствует кусочки кода для диагностики, она получается проще и быстрей и более приближенной к реальности, в которой прога будет работать. А что касается ресурса флеша по количеству записей/стираний, то это все какие-то страшилки — дескать он быстро исчерпывается. Фигня всё это! Надуманное. Мне еще ни разу не удалось убить МК таким способом. Поэтому вот так и отлаживаю свои проги, и особо не комплексую по этому поводу.

  7. Плотно сижу на stm32 как раз из-за их сочетания возможностей и цены. У меня под рукой только Ubuntu. Поэтому весь код пишу на Emacs, а отладку прямо в железе веду с помощью связки STlink (есть на всех Discovery платах, я прикупил дешёвый USB адаптер в Китае, он места меньше занимает) и GDB (есть везде и отлично интегрируется с любыми IDE). Не надо извращаться со светодиодами, так как под рукой полноценный отдадчик. Единственное, что напрягало — использование библиотек типа CMSIS. Но ситуацию спас переход на ChibiOS/RT — мощную многозадачную RTOS. Теперь даже светодиодами мигаю в отдельном потоке 😉 Крайне редко использую OpenCM3, например, для создания прошивки USB Storage Bootloader.

    Недавно, в целях общего развития, решил сделать один проект на ATtiny13A (до этого вообще не работал с AVR). Целью проекта было создание таймера для управления УФ чемоданчиком для засветки всякой всячины. Для питания использовал конденсаторное питание и, поэтому, ЖКИ fp1125p. Это был крутой опыт, отладка в голове, масса ухищрения для оптимизации размера кода. Удалось утрамбовать всю логику в килобайт флеша и подпишусь под данной статьёй — stm32 удобнее для разработки. Просто мне было жалко тратить stm32 на этот проект, stm8 под рукой не было, а «тинек» было целая горка. Но больше я так делать не буду, хехе.

    • Отлично! Отлично!

      Вот, отличный пример ПРАВИЛЬНОГО выбора инструментария для разработки на ПРАВИЛЬНЫХ микроконтроллерах. Грамотный подход к делу снимает множество проблем и избавляет от ненужных танцев с бубнами. Учитесь у ПРАВИЛЬНЫХ людей ПРАВИЛЬНО делать ПРАВИЛЬНЫЕ вещи.

      Вы все еще сидите под Виндой и юзаете ворованный CodeVision или IAR? — Напрасно, напрасно!

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s