Jump to content

    

Darth Vader

Участник
  • Content Count

    463
  • Joined

  • Last visited

Community Reputation

0 Обычный

1 Follower

About Darth Vader

  • Rank
    Местный

Recent Profile Visitors

2034 profile views
  1. Проектирование схемы таким образом - разбрасывание граблей, на которые рано или поздно наступишь сам. Называется, схема работает, но не благодаря, а вопреки. Чтобы такого не было производитель выпускает документацию: технические описания, руководства по применению, и т.п., где требует или дает рекомендации, что куда и как подключать. И им стоит следовать, а не игнорировать и надеяться, что если все работало в прошлый раз, значит так и надо, значит так будет работать и в этот, и вообще всегда. И что фирма ST пишет про вывод VBAT в серии STM32F10x? Читаем AN2286 Getting started with STM32F10xxx hardware development: 1.1.2 1.2 Так что МК Миландра в этом плане ничем от STM32F10x не отличаются. К подключению вывода VBAT у них требования одинаковые.
  2. Не произносите это вслух! Здесь Eddy_Em, он вас слышит!
  3. У меня первый запуск прошел гладко за пол часа. Всё работало: и отладка и прошивка. Обычная настройка: смотришь на функциональную схему в даташите и настраиваешь битовые поля в регистрах по ней, последовательно формируя путь для прохождения тактового сигнала от выводов корпуса через мультиплексоры, делители и PLL до ядра. Такого точно не было. Китайский клон J-link v8 с Алиэкспресса нормально работал, все прошивалось и отлаживалось. Осваивать работу с МК по видеороликам с ютуба - это за гранью добра и зла. Есть же официальный сайт техподдержки, где все разжевывается с нуля: установка и настройка IDE, простейший проект, как помигать светодиодом и т.п. Что там такого, что нельзя выразить текстом с картинками, а непременно требует видеозаписи процесса? Вот страница с книжками и методичками. Информации для быстрого старта достаточно. У меня от этих МК не осталось негативных впечатлений: обычные МК на ядре Cortex-M3. Ничего особенного. Да, без изюминки, без вау-эффекта. Так и в том же STM32F103 ничего такого нет. До недавнего времени лишь цена и доступность в любом ларьке были его основными достоинствами.
  4. А какое развитие вам нужно? Вот серия STM32F10x она не тупиковая? У ней будет развитие? Какое? Что в данном контексте значит развитие? Есть у Миландра несколько МК на одном ядре (серия 1986ВЕ9х ), более того, на одном кристалле. Просто в разных корпусах, с разным количеством разваренных на выводы корпуса контактных площадок кристалла. Если они могут удовлетворить требования к вашей аппаратуре - вы их используете. Если нет - то нет, ищите что-то другое. Какое нужно развитие? Для чего? Завтра они сделают другой МК, на другом ядре с использованием тех же периферийных блоков. Это развитие, которое вы хотели? Так оно есть - 1986ВК018, например. Или есть у них МК на ядре RISK-V.
  5. Так и я не говорил, что вы это говорили. Я это про себя. Порог входа стандартный для любого МК с ядром Cortex M0/0+/1/3. МК разных производителей (и даже от одного производителя) отличаются набором и устройством периферии. Это нормально. И её в любом случае придется изучать на уровне регистров и битовых полей по RM. Только не говорите ничего про CubeMX - вас тут за это заклюют. Обвинят в радиолюбительстве, некомпетенции, отсутствии профессионального подхода и ардуинофилии. Я не столь радикален, но считаю, что начинать знакомство с новым МК следует именно с RM, а не с графических кодогенераторов. Прежде чем дать ребёнку калькулятор, он должен выучить таблицу умножения и научиться считать в столбик.
  6. 180 нм. Огласите, пожалуйста, весь список российских фабрик, обладающих оборудованием для производства микросхем по таким нормам? Лично мне известен только один - Микрон. И все его мощности загружены... билетами для общественного транспорта. Он полностью подсел на эту продукцию и слазить с неё не собирается. Контрактным производством для своего конкурента, с которым у него совсем не дружеские отношения, точнее, многолетняя вражда, заниматься точно не будет. Не путайте Ангстрем и Ангстрем-Т. Это разные конторы. Сейчас, оглядываясь назад, и вспоминая все те случаи, когда мне хотелось сказать, что в их МК баг и они пидарасы, а я Дартаньян, я понимаю, что в 99% случаев это были мои ошибки, моя невнимательность, неопытность. Оставшийся 1% приходится на ошибки, описанные в Errata и ошибки в SPL, которые впоследствии исправили. Так что Дартаньяном я точно не был. Такая вот печальная правда.
  7. Защитный козырёк или экран от воды - чем не навесная деталь?
  8. Именно. Без понимания этого в программировании МК не обойтись. Начните с чего-нибудь простого. Или вот хороший цикл статей для начинающих. И книжка, как дополнение к этому курсу.
  9. Про С++ на МК я бы посоветовал посмотреть эти статьи, но это не для вашего нынещнего уровня. Сейчас вы там ничего не поймете. Пока изучайте язык и простейшие способы работы с регистрами периферии МК через указатели на структуры (CMSIS-стиль). А HAL, Cube-MX и прочие генераторы кода по функциональной схеме - отложите в сторону. С ними вы ничему не научитесь.
  10. Судя по вашим вопросам, вам просто язык надо узнать сначала. Так что начните хотя бы с этого. Найдите там главу про конструкторы и изучите. Тогда вопрос по реализации конструктора обретет ответ. Но появится много других.
  11. Реализация - описание тела функции, заключенное в блок (скобки { } ). Для конструктора класса её нет, хотя он вызывается. Какой код генерировать для конструктора - компилятор не знает. От вас требуется написать его. Очевидно, взять не думая там, где вы взяли этот код. Кстати, там, откуда вы его взяли, класс тоже объявляется в файле main.cpp, или это ваша инициатива?
  12. Нарисуйте электрическую схему для одного знакоместа. Разрисуйте его внутренности до уровня отдельных светодиодов каждого сегмента. Рассчитайте ток коллектора транзистора в цепи общего катода одного знакоместа. Рассчитайте токи каждого светодиода (сегмента) для случая отображения символа "1" и "8". Для расчета предположите, что общий ток катода всего знакоместа делится между всеми горящими сегментами поровну.
  13. Там чуть сложнее. Они поменяли ряд имен макросов, функций, типов и т.д. Но старые можно оставить в действии, если определен этот макрос. Можно сделать поиск по всему проекту и увидеть, что чем там подменяется, когда он определён. Да, было в версии 1.5.3. Именно такое для ВЕ4 - extern { . Т.е. ошибка была и там, ещё в версии 1.5.3. Если посмотреть все прочие аналогичные файлы для других МК Миландра из пака, то там эта строка написана правильно extern "C" { . Там никаких ошибок нет. Почему тогда, с паком версии 1.5.3 у вас ошибок не было, а сейчас они вдруг появились - не могу сказать. Лично я вообще не понимаю смысла квалификатора extern "C" применительно к именам типов и макросов. Это можно смело убрать и ничего не изменится. Данный квалификатор имеет смысл лишь применительно к объявлению функций (прототипам функций). По отношению к именам макросов, типов и даже объектов (переменные, константы встроенных и пользовательских типов) это бессмысленно. Что это говорит компилятору? Что этот тип является типом Си? Или что этот макрос - это Си-макрос? Или что эта переменная - это Си-переменная? Вобщем, глупость какая-то, которую нужно просто убрать. Напишите запрос в техподдержку Миландра, они должны оперативно исправить это.
  14. Закомментируйте строку #define MDR_LEGACY_SUPPORT 153 в файле MDR32F9Qx_config.h Все связанные с ним предупреждения уйдут. Останутся только ошибки. В файле MDR1986BE4.h в строке 22 должно быть extern "C" { а не extern { как сейчас. Исправьте и проверьте. Ошибки должны уйти.
  15. Для начала приведите в порядок дерево проекта. Там не должно быть категории CMSIS - у вас там нет никаких компонентов. Убериье её, раз не используете. Исключите файл .sct - это скрипт линкера, а не файл исходного кода. Уберите из дерева все явно включенные туда файлы-заголовки .h - им там не место. Они не являются самостоятельными единицами трансляции. Они сами автоматически подключатся к тем исходникам, куда они включены директивой #include. Они будут видны в разворачивающемся списке под соответствующими исходниками, если развернуть его нажатием на "+".