Профиль пользователя заблокирован сроком с 30 декабря 2015 г. и навсегда по причине: Подозрение на взлом аккаунта
Ответы пользователя по тегу Микроконтроллеры
  • Stm32 SPL или Регистры?

    @Eddy_Em
    Для инициализации и не требовательных к скорости выполнения участков — opencm3, для критических вещей — регистры. Иного не дано.

    HAL/Qube ни в коем случае не использовать.
    Ответ написан
    Комментировать
  • Как создать сеть микроконтроллеров на CAN шине?

    @Eddy_Em
    AVR - прошлый век. Советую в сторону STM32 посмотреть. Кстати, если нужно хорошо сэкономить, то можно вместо STM32 подобрать более дешевый STM8, у них тоже есть эдакий CAN (правда, не полноценный).
    Плюс еще понадобится преобразователь уровней, но этого добра на ибее/али навалом.
    Вот для связи с компьютером придется либо дорогущий PCI'ный CAN-контроллер покупать (с ними, кстати, большая проблема: обычно разработчик выкладывает модули для очень древних ядер, поэтому если не умеете писать/править модули ядра, эту идею лучше сразу отбросить), либо сделать самому на основе того же STM32 переходник USB<->CAN. Еще один вариант: сделать мастер-контроллер с ethernet, на котором будет вертеться веб-морда. Втыкаем его в wifi-рутер и с любого устройства с wifi можем смотреть состояние системы.
    Ответ написан
  • Какой микроконтроллер подойдет для системы интеллектуальных игр?

    @Eddy_Em
    STM8 запросто хватит. Но приятней с 32-битными иметь дело, поэтому рекомендую STM32. Для данной задачи даже копеечный STM32F030 подойдет. С другой стороны, если нужно делать все это массово и даже копейка экономии имеет решающее значение, дешевле STM8S003 не найти.
    Ответ написан
    3 комментария
  • Поясните правила 57 и 58 в MISRA C. Почему break, continue - плохо?

    @Eddy_Em
    Бред из разряда "goto - это плохо". Уж для мелкоконтроллеров goto - очень даже нормально. А в обработке КА и всяких условий просто необходимы break, continue, goto...
    Ответ написан
    3 комментария
  • Как сделать простую многозадачность на Си?

    @Eddy_Em
    Я подобные вещи элементарно реализую как КА. В основном цикле проверяются все флаги, если какой-то установлен, выполняются определенные действия. Большинство "медленных" задач выносится на DMA или прерывания, чтобы обеспечить минимальные задержки в основном цикле.
    Ответ написан
    2 комментария
  • Можно ли (китайским) st-link'ом программировать "Минимальные модули для ардуино" (на стм32)?

    @Eddy_Em
    Да. Но проще через bootloader. Переходник USB<->UART стоит $1, а st-link стоит $5. Если разницы нет, зачем платить больше?
    P.S. Поосторожней со слишком дешевыми st-link'ами: уже неоднократно было замечено (см. хоть тот же kazus.ru), что там вместо STM32F103 впаивается что-то вроде F100, из-за чего прошивалка работает некорректно или вообще не работает).
    Ответ написан
    1 комментарий
  • Возможно ли использовать язык D для программирования микроконтроллеров и манипуляторов?

    @Eddy_Em
    Можно и гвозди глазом забивать…
    Ответ написан
    Комментировать
  • Можно ли полностью перейти на Linux?

    @Eddy_Em
    Программирую микроконтроллеры под линуксом. Мастдайку не использую вообще. ЧЯДНТ?

    P.S. Что ж за мелкоконтроллеры такие хитрые, которые в линуксе невозможно программировать?
    Ответ написан
    8 комментариев
  • Что необходимо знать чтобы понять что здесь (на картинке)?

    @Eddy_Em
    Элементарно уметь читать.
    Ответ написан
    Комментировать
  • STM32F103. Что находится в регистре DR до окончания преобразования?

    @Eddy_Em
    а возиться с ПДП ради десятка сэмплов глупо

    Что за чушь? Я даже для одного преобразования ПДП использую: циклический буфер из 9 значений, который заполняется потихоньку. Как только мне необходимо получить значение в АЦП, делаю медианную фильтрацию этого буфера и получаю более-менее гладкое значение.
    И вообще, не надо париться. В DR "мусора" нет. Проверено: скажем, в хронометре для даунхилла я просто запускаю непрерывное преобразование, которое через ПДП обновляет значения разных каналов АЦП, а когда нужно, напрямую эти значения беру. В аналогичной штуке, где нужен был лишь 1 канал, я просто напрямую к DR обращался!
    Ответ написан
    Комментировать
  • Книга для новичка в микроконтроллерах?

    @Eddy_Em
    Даташит и reference manual.
    Ответ написан
    Комментировать
  • Выбор микроконтроллера?

    @Eddy_Em
    Неправильно советуют. STM32 дешевле и функциональней.
    А вообще, смотря что за задача. Возможно, 30-центового (!!!) STM8S003 за глаза хватит.
    Ответ написан
  • Реально ли сделать 16-канальный VU-meter на одном контроллере?

    @Eddy_Em
    Берете мультиплексор с низким Ron (например, NX3L4051), на него заводите каналы и подключаете к АЦП. Можно использовать хитрую схему с перекоммутацией для избавления от собственного сопротивления проводов и мультиплексоров.
    При грамотной разводке вполне можно честных 18 бит из 24-битного внешнего АЦП получить.
    Ответ написан
  • Как настроить ШИМ для сервопривода в STM32?

    @Eddy_Em
    1. Выбросить "куб"!
    2. Выбросить SPL, HAL и прочую мерзость!
    3. Читать reference manual до прояснения!

    "Сам" чип ничего делать не будет, пока не сконфигурировать его. Если и дальше пользоваться "кубом", то совсем плохо будет с логикой.

    72МГц — нормальная внутренняя тактовая частота для, скажем, STM32F1xx. Какой чип? Плясать от этого надо.
    Открываем reference manual в разделе RCC и читаем. Скажем, у STM32F1xx TIM2 тактируется от APB1. APB1 — от AHB, а тот — напрямую от SYSCLK. Если тактировать от внешнего кварца на 8МГц, то нужно в конфигурации в качестве входа для PLL выбрать HSE, а в качестве входа SYSCLK — PLL (кстати, при тактировании от внутренней RC-цепочки максимальная частота SYSCLK будет 36МГц) и выставить нужным образом предделители AHB, APB1 и TIM2_PSC. Еще нужно не забыть разрешить тактирование всей этой периферии.

    Если предделители AHB и APB1 выставить в 1, а множитель PLL — в 9, то получим 72МГц на входе тактирования TIM2. Если регистр TIM2_PSC выставить в 6, то частота будет делиться на 7 — получится "кривое" число.

    Что такое 50Гц ШИМа? Частота повторения импульсов? Если так, то нужно плясать от требуемой точности коэффициента заполнения. Если нужен ШИМ на 50Гц с восьмибитным заполнением, то частота таймера должна быть в 256 раз больше, чем 50Гц, т.е. составлять 12800Гц. При тактировании TIM2 напрямую, т.е. 72МГц, в TIM2_PSC надо будет записать число 5624 — тогда его частота будет ровно 12800Гц. В TIM2_ARR запишем 255, а в TIM2_CCRx (x зависит от того, какая нога выбрана выходом ШИМ и как к ней подключен таймер) будем писать число от 0 до 255 в зависимости от требуемого заполнения.
    Ответ написан
    5 комментариев
  • IDE для разработки под микроконтроллеры?

    @Eddy_Em
    Рекомендую geany.
    Ответ написан
    Комментировать
  • Как отправлять AT команды с STM32 на Fona?

    @Eddy_Em
    Я думаю, данный вопрос надо в категории "JOB" задавать. Потому как автор явно не в состоянии что-то сделать самостоятельно. Уж такая-то элементарщина, как UART, настраивается как два пальца об асфальт!
    Ответ написан
    Комментировать
  • МК, полевик и светодиодная лента?

    @Eddy_Em
    Советую поискать нормальные низкоомные полевики или даже ключи верхнего плеча.
    Навскидку из болтающихся у меня даташитов: BTS6133D (ключ верх.) — 10мОм, 8А номинального тока (в ту же степь: IPS5451, ...); FQP30N06L (логические уровни) — 35мОм, 32А (в ту же степь: IRLML6244, IFP50N06...).
    Поищите по каталогу farnell, что вас больше устраивает по требуемым нагрузкам и цене.

    P.S. Если нужно не просто включать-выключать, но еще и ШИМить, то нужно обязательно обращать внимание и на емкость затвора, чтобы не спалить микроконтроллер высокими токами или не спалить сам мосфет, держа его в линейном режиме.
    Ответ написан
  • Что нужно чтобы изучить в электронике и программировании микроконтроллеров для трудоустройства?

    @Eddy_Em
    Хотел бы я знать... Умею разводить схемы в кикаде, немного знаком с аналоговой электроникой, чуть лучше - с цифровой. Погромировал для пиков, STM8, STM32. Но вот что нужно, чтобы трудоустроиться в железячной области, сказать не могу. Да и вряд ли кто скажет: у каждого работодателя свои заморочки и свои требования. Кому-то хватит такого рукожопого, как я, а кому-то мегамонстр нужен...
    Ответ написан
    Комментировать
  • Как реализовать до 40 ШИМ выходов с микроконтроллера?

    @Eddy_Em
    Для светодиодов необязательно аппаратный ШИМ использовать, там и софтового за глаза хватит → нужно лишь взять микроконтроллер с достаточным количеством ног.
    Я бы сделал так: основной таймер спокойненько щелкает, а в прерывании декрементирует все 40 счетчиков (массив), ищет нулевые значения, инвертирует соответствующие ноги и обновляет значение в счетчике. Т.е. понадобятся: массив из 40 счетчиков для таймера, массив из 40 значений для выхода == 1, массив для 40 значений для выхода == 0, массив из 40 флагов (это шустрей будет, чем битовые маски использовать, хотя, конечно, на 100-200Гц ШИМа все равно) для определения, откуда при обнулении счетчика заносить значение.

    Если нужно обеспечить частоту не хуже 100Гц с восьмибитным разрешением, то нам нужно будет настроить таймер на 25600Гц. За одно прерывание нужно будет обработать не меньше 40 значений, т.е. потратить, скажем, 1-2 тысячи тактов. Следовательно, простецкого STM32 на 72МГц (с кварцем 16МГц) за глаза хватит. А то и чего-нибудь послабее...
    Ответ написан
    Комментировать
  • Считыватель + обычный ключ от домофона, возможно?

    @Eddy_Em
    Да, есть схемы. И на ибее я что-то подобное готовое видел с памятью на несколько ключей.
    Ответ написан
    Комментировать