Comments 91
Прикол ещё в том, что, как я понял, сохранить можно всего шесть регистров, что тоже не фонтан, как по мне.
Тут смотрите какая вещь. У вас может быть довольное тупое устройство, подключенное к довольно тупому контроллеру шины. Контроллер шины по совместительству может работать «тупым» контроллером прерываний для этой шины, который реализует очередь прерываний ёмкостью аж 1 прерывание.
При входе в обработчик прерываний вам нужно а) как можно скорее сбросить прерывание на контроллере, чтобы он мог принимать следующие прерывания от других устройств; и б) возможно, прочитать данные из выходного буфера дёрнувшего прерывание устройства, если например длина этого выходного буфера составляет 1 слово (говорю же — ну, тупые устройства).
Это было описание нереентерабельной части, для её реализации достаточно 1-2, ну максимум 3 регистра. Зачем целых 6 регистров сохранять и потом восстанавливать назад?
Зачем целых 6 регистров сохранять и потом восстанавливать назад?
Ну… я не говорю что это принципиальный вопрос. Мне (как потребителю) это удобнее. Например в PIC18 я над таким даже не думаю, а весь процесс кодинга лишь немного отличается от программирования под «взрослые» компы — в ассемблер PIC я вообще никогда не заглядывал.
Исключение, возможно — регистр флагов (SREG в AVR). Чтобы его сохранить, надо две команды, а сохранять его надо в 99.9% случаев. Но когда писал на старичке Z80, в нем тоже ничего не сохранялось само, я привык.
Отсутствие автоматического сохранения контекста при переходе в прерывание — это вообще довольно стандартная особенность микроконтроллерных ядер, особенно, если важна максимально быстрая реакция на внешнее событие.
Просто часто среда разработки дописывает этот код за программиста в зависимости от непосредственно кода обработчика прерывания.
Вот это меня, честно говоря, тоже поразило — неужели в 1886ВЕ5У никак нельзя было реализовать это аппаратно?
Уж лучше везде будет одинаково, чем программисту придется писать разный код для одной и той же архитектуры процессора.
Просто часто среда разработки дописывает этот код за программиста в зависимости от непосредственно кода обработчика прерывания.
В общем-то не важно как это происходит, главное что это можно было бы реализовать, причём нечего особо сложного в этом нет.
Уж лучше везде будет одинаково, чем программисту придется писать разный код для одной и той же архитектуры процессора.
Код так или иначе править под конкретную платформу придётся — компиляторы-то разные. Считаю что приемлемый уровень совместимости платформ вполне достигнут. Фишка про сохранение контекста — скорее из разряда хотелок.
А если импортозамещение не стоит, то лучше уж процессор с большим тиражом и большим количеством пользователей. То есть что-то популярное западное. А не российская мелкотиражка, которая в любой момент может исчезнуть из продажи.
Как пример — мультиплексор на 4 канала. Сам код мультиплексора — 3 странички. Остальное — готовое из ОС и библиотек.
P.S. Для меня «без ОС» — это переход с linux на FreeRTOS. :-)
Память программ 4096 команд, ОЗУ 902 байт. Сюда и без RTOS влезть бы…
Любую плоскую (plain text) документацию сложно написать так, чтобы для любой задачи она читалась последовательно, а не выборкой разных кусков. Чтобы было удобно — надо или делать гипертекстовую документацию или в дополнение к описанию процессора писать толстенный user guide с описанием типовых задач.
Увы, на большинство микропроцессоров нет ни того, ни другого. Так что привыкайте, на других процессорах легче не будет.
За примером далеко ходить не надо — например, что мешало добавить в нашей спецификации таблицу со всеми регистрами и их стартовыми значениями? Для PIC'ов такая почти у всех чипов есть. У нашего же я вообще не знаю точно сколько же у него всего регистров, разве что самому перечитать весь документ.
И да, на других процессорах всё-таки пока легче. Я уж молчу про всякие ардуины и прочее…
Любую плоскую (plain text) документацию сложно написать так, чтобы для любой задачи она читалась последовательно, а не выборкой разных кусков.
На STM32 как-то умудряются писать нормальные даташиты в PDF.
Чтобы что-то писать на STM надо держать открытыми целую кучу документов: Datasheet, Generic User Guide, Programming manual, Reference manual, Standard Peripheral Library, User manual.
Так или иначе, минимум половина из перечисленного вами в постоянно открытом виде точно не нужна — вы притягиваете за уши. Взять хоть тот же user manual — уж отладочная-то плата у вас от проекта к проекту редко меняется, да и в UM вообще ценного не много обычно, распиновки разве что.
Первое, с чем в 2017-м году столкнётся желающий использовать в своих разработках МК от Миландра — это сложности с покупкой. Даже не говоря о цене, вам для этого скорее всего потребуется как минимум какое-нибудь юр.лицо..
Двоякое чувство…
У автора, видимо не возникает проблем с покупкой оруж_я и наpкоtиков, а вот для покупки продукции с приемкой «ВП» попросили юр.лицо, вот засада… Еще должна быть специфичная лицензия или печать особая на заявке — к сведению.
При обращении называют все: цена, срок поставки + при необходимости поставляют бесплатные образцы, по запросу…
А, еще сказали что микросхема звучит 1886ВЕ5БУ или К1886ВЕ5БУ, интересно, что купил автор и у кого?
Про демо-версию вообще странный вопрос…
Ну и по поводу индекса «К» — это справедливо для советских микросхем. В данном случае, военная приёмка или нет, микросхема называется одинаково, без индекса, разница только в отметке ОТК, ну или в корпусе, если речь идёт про другие модели контроллеров.
Про бесплатные образцы, согласен, предоставить могут, но не абы кому. Васе «с улицы» никто подобные образцы не даст. Учебным заведениям — пожалуйста. Собственно, вопросы к маркетингу остаются.
Ну и как в советские времена, нормальной гражданской экономике остаются объедки.
чем это закончилось — напоминать не буду… :-(
нормальной гражданской экономике остаются объедки
Не знаю плохо это или хорошо, но есть небольшое отличие — пока ещё можно приобретать электронку за рубежом.
как говаривал кот матроскин в мультике:«средства у нас есть. у нас ума не хватает»©
В результате «отечественные разработчики» «конкурируют» с западными имея на руках устаревшие технологии, производственную линию и крайне скудное понимание как оно там внутри работает. При этом гражданский рынок почему-то (сарказм) отказывается приобретать продукцию в 3-4 раза дороже забугорного аналога. И как-следствие, энтузиазм развивать что-либо под свободный рынок даже если и был просто улетучивается.
Существует старинный, родом из средней Азии, способ всегда побеждать в соревнованиях. Заключается он в том, чтобы не вступать в те соревнования, где ты можешь не победить. У нас устаревшие линии и технологии? Ну и хорошо, значит можно делать простой, понятный чип с хорошей документацией. Не блещущий характеристиками, но достаточный для многих применений. Пусть он кушает энергию, зато у него не едет крыша если питание просело на 2%. Пусть он многое не умеет, зато цена разработки под него маленькая, особенно стартовая цена. А то у некоторых чипов стартап не потянет закупку не самого чипа, а компилятора и документации по нему. Можно делать то, что лидеры рынка никогда не делают: давать гарантии, что в течении Н лет данная модель с продажи не исчезнет. Для кого-то это будет очень весомый плюс.
Вот тогда и клиент найдётся. И не надо при этом иметь доступ к лучшему в мире нанометру. Но жаловаться-то проще.
По факту имеем более дорогой, менее технологичный контроллер с ужасным документированием, отсутствием «родной IDE», слабой поддержкой и т.д.
Заключается он в том, чтобы не вступать в те соревнования, где ты можешь не победить.
Если не вступать в соревнования, то как понять, правильным ли путем идешь? Ведь именно встреча с сильным противником позволяет понять сильный он или нет.
А может быть вообще ничего не делать, тогда и в соревнования вступать не придется :)
В среднем — паритет. У нас на пару долларов дороже, зато фаза чище. Но… есть одно преимущество. Работая с российским приемником, я могу связаться с авторами и сказать «коллеги, вот тут у вас в прошивке, похоже, бага». И получить и ответ и исправление прошивки. А вот с западными — так не получается. Причем это верно для не только для авторов Geos-3, с другими российскими разработчиками приемников — ровно то же самое.
И это перевешивает разницу в пару долларов по цене.
Я не спорю, что какие-то «нишевые» продукты мы можем и делаем достаточно неплохо. Есть, например, Multiclet. Но вот покажите мне человека, который их реально использовал не в оборонке? Проблема именно с массовыми продуктами.
Мы их используем не в оборонке, но тоже продукты не массовые. Например — спутниковые компасы. В массовый сегмент мы тоже хотим, но все осложняется тем, что в РФ нету массового сегмента крупных яхт. Так что массовый сегмент — это ориентация на Калифорнию.
В целом, кроме оборонки, есть достаточно большой сегмент гражданки, приближенный по требованиям к оборонке. Например — транспорт, энергетика и так далее. И там бывает, что российское железо — не хуже или лучше.
А ширпотреб… ширпотреб везде китайский.
На самом деле «догнать и перегнать» врядли получится
для этого надо, чтобы было кому догонять, чтобы догоняющий был хотя бы обут в кроссовки, а не в кирзу или босиком. Еще догоняющий должен видеть на горизонте уходящий поезд и бежать за ним, а не в сторону или назад. Ну и шпалы с рельсами не надо разбирать. :-(
Про бесплатные образцы, согласен, предоставить могут, но не абы кому. Васе «с улицы» никто подобные образцы не даст. Учебным заведениям — пожалуйста. Собственно, вопросы к маркетингу остаются.
Думаю, что никто из присутствующих, не раздает результаты своего труда Васе с улице, коим, вероятно вы и представились. Если есть вопросы к маркетингу — скажите с кем общались или задайте здесь… Образцы там получить совсем не сложно для любого предприятия РФ, конечно, в обмен на отчет об использовании, что бы сделать их лучше для нас.
С кем общался сейчас уже не скажу — это было больше года назад уже.
Образцы там получить совсем не сложно для любого предприятия РФ, конечно, в обмен на отчет об использовании
Не могу утверждать обратного, конечно. Возможно, когда будет время попробую позвонить и поговорить на эту тему в ваш отдел продаж.
Как и на любой другой процессор нужно очень тщательно читать документацию, у меня проблем не возникло проблем с использованием К1986ВЕ92QI. На новом сайте документацию неплохо переработали.
За сохранение регистров в стек и извлечение оттуда, если использовать С и какой нибудь IAR, я вообще ни разу не беспокоился. На ассемблере это в любом случае должен делать сам программист.
По поводу получения цен, прямо на сайте есть:
Тут
тут
точно не в 4 раза дороже процессора с CORTEX M3,M4F
Новый сайт вообще в целом поприятней, соглашусь.
Цена: 715 и 380 р. — почти в 2 раза
Частота: 144 и 120 MAX — тут всё хорошо, захочешь — не придерешься
FLASH: 128 K и 1 M — а вот тут тяжело не закручиниться
ОЗУ: 48 К и 128 К — продолжаем тяжело вздыхать
АЦП: 1 и 3
I/O Ports: 96 и 140
ну и т.д.
Информация взята из официальных даташитов.
FLASH: 128 K и 1 M — а вот тут тяжело не закручиниться — не представляю для чего)
И согласитесь не 3-4 раза ;)
И согласитесь не 3-4 раза
Ну так это и не аналоги ). Если мы найдём на рынке полный аналог с соответствующими параметрами и посмотрим цену, разница будет явно больше, чем в приведённом примере.
FLASH: 128 K и 1 M — а вот тут тяжело не закручиниться — не представляю для чего)
Если у нас не очередная «погодная станция», то 128 К под прошивку — крайне мало.
По поводу АЦП несколько ошибаетесь, их 2 в указанном процессоре
Я, если честно, не вчитывался особо, но вот цитата из даташита:
Аналоговые модули:
— 12-разрядный АЦП (до 8 каналов) с амплитудой измеряемых сигналов 0÷3,6 В;
http://www.microchip.ru/phorum/read.php?f=2&i=4685&t=4685
Если проект другой, то можно обойтись без этого чуда. Да даже в указанных мною областях обходятся без наших деталей, потом находишь регулярно китайский чип с нашей маркировкой. Зачем разработка, зачем этот труд, если разработчику «не интересно»?
Выше уже поднималась проблема отставания, где я согласен, нужно взять качеством и сервисом.
Пока читал, сложилось впечатление, что там студенты практику проходили. Кто-то из Миландра есть на Хабре?
Прошел через все те же грабли, что и автор и не согласен почти ни с чем. Точней все эти проблемы имеют место быть, но в сложившихся условиях именно так и должно быть. Документация с ошибками, нулевой маркетинг и смешной CC7A. И любые попытки это исправить приведет к тому что Миландра просто не будет.
Начнем с того, что все эти изделия были разработаны (я имею ввиду ядро) во времена когда МК были «большими и ламповыми». Требовать от них тонкой подстройки скорости последовательных интерфейсов глупо. Я понимаю, что xmega (где я впервые увидел возможность сделать дробный коэф. деления) и stm32 это круто, но они лет на десять моложе.
Теперь про бедный CC7A. Судя по всем признакам разрабатывался он суровыми норвегами в начале 2000-х. С тех пор он том же уровне и остался. Ничего кроме PIC17 он не поддерживает. А сам PIC17 уже давно днем с огнем не сыщешь.
Тоже самое про весь Миландр в целом. Сравните бюджеты Миландра и какой нибудь ST. Кормовая база не та, чтобы по $10 и бесплатно раздавать направо и налево отладки.
Конечно, напрямую сравнивать Миландр с гигантами индустрии глупо. Мне всё это вполне понятно. Я вообще считаю, что сам факт наличия этих железок при текущей ситуации с промышленностью, это достижение. Но, с другой стороны ведь и объёмы у них другие. И совковый подход к маркетингу это никак не оправдывает. Соответственно подход должен быть другим. Возможно буду банальным, но приведу в пример Apple, которая в своё время «въехала» на рынок с тремя продуктами, сделав упор на их качество и грамотный маркетинг.
Всё же, хочу обратить ваше внимание — я не поливаю грязью нашу промышленность, я лишь описал особенности, поскольку информации по теме в сети практически нету. Мне казалось что такие статьи должны быть полезны.
А рынок в России ограничен самым серьезным образом. Мы не делаем ширпотреб на весь мир. Только узкоспециализированные решения для конкретных отраслей.
ST сделали отличный пиар-ход, раздавая дев-борды на халяву, и вот результат: за 5 лет, очень много людей начали ее использовать, в коммерческих и не очень целях.
Но здесь, потраченные тысячи сделали неоценимую услугу ST, это и развитие опен сорса, и допиливание самих контроллеров, и мнение комьюнити по развитию и многое другое.
А Миландру, если уж все так плохо, к лицу было хотя бы давать по сходной цене, но одному МК в руки по ФИО физ лицам. Уверен, это не такие огромные затраты, зато очень ценную обратную связь можно получить, хотя бы применить данную стратегию к известным целевым компаниям-разработчикам… так сказать дать для проявления какого либо интереса к своему продукту.
А так он мало кому будет интересен и не будет расти, в плане специалистов и в плане своего софта.
Уверен, это не такие огромные затраты, зато очень ценную обратную связь можно получить, хотя бы применить данную стратегию к известным целевым компаниям-разработчикам… так сказать дать для проявления какого либо интереса к своему продукту.
Почитай-те что ли тут подборку статей про микроэлектронику от BarsMonster.
Подробнее можно посмотреть тут: http://www.oertel-halle.de/files/cia99paper.pdf
Когда-то разрабатывал девайс (как раз на оборонку) на 1886ВЕ1, кажется. Только потому, что на тот момент не было другого с USB. По нему и освоил USB. Никогда до того не работал с PIC. И, слава богу, больше не собираюсь. Архитектура ужасна (после AVR, молчу про кортекс). Компилятор ужасен. Среда ужасна. Но это не помешало сделать работу. Просто заранее были известны косяки, с которыми придётся столкнуться.
Берите миландровские кортексы, они прекрасны. Ещё и куча блоков вроде как собственной разработки.
Про «крохи для нормальной гражданской экономики» — в 90-х такая была, нормально было? Если кто не в курсе, стране грозит война. При ограниченном ресурсе стоит расставить приоритеты в такой ситуации — оборонка или гражданка.
И вообще, это большевики могли за 20 лет из отсталой аграрной страны, пережившей гражданскую и мировую войны, сделать первую-вторую страну мира, а у нас нынче феодально-капиталистический строй. Радоваться надо, что вообще электроника есть).
Вы же сами, сами его выбрали…
Отнюдь. Мы подрядчик, работаем строго по ТЗ. Выбирал не я. Для своих плат, я вообще настолько дорогие чипы не могу использовать по понятным причинам.
По факту, так как в условиях была ещё поддержка CAN, это приводит к выбору между Cortex и аналогом PIC. Кортекс, во первых, сильно избыточный для этой задачи, во вторых я его практически не знаю. Потому был выбран 1886ВЕ5У.
Что касается ТЗ… Ну, всякие ТЗ в оборонке бывают. Когда я только начинал работать инженером, мы работали над проектом, в ТЗ которого был не только конкретный чип прописан, но также например прописаны требования ко всем компонентам, от резисторов до проводов и разъёмов, и прописаны все типы интерфейсов. Причём это касалось даже тех компонентов, которые наружу никак не выходили.
Кортекс, во первых, сильно избыточный для этой задачи, во вторых я его практически не знаю. Потому был выбран 1886ВЕ5У.
"Я выбрал не современный процессор, а тот, про который я что-то уже знаю, пусть и с устаревшей на десяток лет архитектурой. Так вот, чуваки, оказывается, он не современный, прикиньте?"
«Чуваки, я тут погуглил, так вот у нас оказывается на сайте ни слова про наш МК нету, хотя вроде всем интересно, мне тут довелось с ним поработать чуток, об этом я и расскажу»
Улавливаете разницу?
Но это логичный итог вливания/распила денег в «нанотехнологии», и игнорирование состояния электронной промышленности.
Это печально. Но это тот максимум, что выдает наша МП, пока выдает, щас у государства сново новые приоритеты, враги, распилы и т.д.
Вроде все изложено последовательно и одним файлом, но стиль изложения постоянно меняется. Либо часть документации просто скопированный перевод с доков стм-ок (что вероятнее всего, т.к. при гуглении некоторых моментов находятся абзацы слово в слово по стм32), либо пол пункта написано одним человеком, вторая половина другим — и они друг друга недолюбливают.
Ну и встречаются ошибки иногда: в начале написано, что регистр делает одно, в конце в таблице расписано что оказывается другое.
Немного специфично чтобы пытаться кодить под отечественный МК изучать для этого инструкции по зарубежным, когда до этого ничего сложнее ардуинки в руках не держал.
Особенно он не любил умножение 16x16. Это треш вообще был. В результате проект было решено делать на асме.
Интересно, как сейчас ситуация?
Несколько слов про «наш» микроконтроллер