Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

main

main

Здравствуйте!

   Меня зовут Ceливaнoв Мaкcим. И если Вас интересует электроника, программирование и микроконтроллеры, и Вы хотите пополнить свой багаж знаний в этих областях, то, Вы попали на нужную страницу! 
   Вот уже почти 7 лет, я занимаюсь разработкой электронных устройств на микроконтроллерах. Сначала это было просто хобби, продолжение моего увлечения электроникой еще с детства. Разрабатывал и собирал всю электронику самостоятельно: от идеи до рабочей платы. Никогда не нравилось повторять чужие схемы из журналов или из интернета. Всегда доставляло удовольствие проектирование собственных устройств, с теми функциями, которые нужны мне, а не которые навязывает автор статьи. Все устройства собирал в основном для себя, иногда для знакомых и родственников. А c 2008 года я начал выполнять и индивидуальные заказы.

И с тех пор это еще и дополнительный источник дохода.

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

  А сегодня я готов поделиться всем своим личным опытом создания и отладки устройств на микроконтроллерах. И я с гордостью хочу представить Вам мой авторский обучающий видеокурс по программированию микроконтроллеров!

Для кого этот курс?

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

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

   Курс будет полезен и тем, кто уже собирает простенькие (а может и не очень) схемы на микроконтроллерах, но плохо понимает суть того как микроконтроллер работает и как взаимодействует с внешними устройствами.

Что Вы узнаете, изучив мой курс?

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

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

   Познакомитесь с популярными протоколами обмена: RS232, UART, I2C, SPI, 1-WIRE, Манчестерский код, кодирование без возврата к нулю.
   И обращаю внимание, что почти все протоколы будут реализованы программно, то есть в программе будет прописано, в какой момент времени какой уровень сигнала необходимо установить на выводах микроконтроллера, что бы передать либо логическую единицу, либо логический ноль.

   Благодаря программной реализации протоколов, у Вас появиться очень четкое понимание того, как организованы протоколы обмена данными на самом низком уровне и по какой логике происходит построение протоколов обмена!             Более того, Вам вполне по силам будет создать свой собственный протокол обмена!

   Вы научитесь использовать различные средства отладки и программирования: от программы виртуального моделирования электронных схем до логического анализатора. Без этих средств сегодня не обходиться ни один серьезный разработчик.

   Для того, что бы лучше понимать работу микроконтроллера, я научу Вас программировать на самом низкоуровневом языке – на Assembler’е . Почему на ассемблере, а не на Си? Потому что Ассемблер, в отличие от более высокоуровнего языка Си,  дает намного более глубокое понимание работы микроконтроллера. Изучение языка ассемблера дает программисту одно очень важное преимущество – он глубже начинает понимать принцип работы программ, написанных на любых других языках.

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

Но самое главное, что Вы приобретете – это бесценный практический опыт! Потому что все что мы будем изучать, мы ТУТ ЖЕ ПОСЛЕ ИЗУЧЕНИЯ, БУДЕМ ПРОДЕЛЫВАТЬ НА ПРАКТИКЕ!

А какие преимущества у обучающего курса?

   Благодаря видео урокам, Вы будете отслеживать каждое мое действие, которое я буду сопровождать подробными комментариями, и Вам не составит труда все проделанное повторить уже самостоятельно.

Эффективность обучения по видео урокам НА ПОРЯДОК превышает все другие формы обучения! Как будто, рядом с Вами сидит преподаватель и разъясняет, почему он делает все так, а не иначе.

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

   Материал в курсе, по большей части, ориентирован на практику программирования микроконтроллеров. То есть, почти вся теория в обязательном порядке будет закреплена на практике. А как известно, самый лучший способ понять теорию – это применить ее на практике.

   Такого объема информации на одном диске вы не найдете больше нигде. Здесь есть почти ВСЕ, что бы успешно не только начать осваивать программирование микроконтроллеров, но и значительно дальше других продвинуться в понимании того, как работает вся современная электроника.

Еще никогда изучение такой сложной темы, как микроконтроллеры не было таким простым!

    Только представьте себе: сегодня вы кое-что знаете (или почти ничего не знаете) о том, как проектируются и создаются устройства на микроконтроллерах. А всего через месяц после начала изучения курса (хотя я уверен, что и раньше), вы не только сможете самостоятельно писать и отлаживать программы для ваших устройств, но и разрабатывать принципиальные схемы, подбирать нужные компоненты, грамотно проектировать печатные платы и подключать различные внешние модули и устройства.
    Другими словами, всего за месяц я научу вас выполнять полный цикл производства готового изделия: от идеи до работающего устройства.

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

Что значит уровня «средней квалификации»?

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

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

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

   Устройство, принимающее команды с обычного пульта дистанционного управления и осуществляющее управление различными устройствами (двигателями, освещением, нагревательными приборами и др.) по заранее заданным алгоритмам.

И еще раз повторюсь: Самое главное – это не то, что Вы сможете собрать подобную электронику на микроконтроллерах, а то, что Вы получите ОЧЕНЬ ГЛУБОКОЕ и ЧЁТКОЕ понимание того, как все это работает!

Благодаря глубокому пониманию работы мик​роконтроллеров и различных протоколов обмена данными Вы на порядок лучше будете разбираться в современной электронике, чем те, кто программирует на высокоуровневых языках типа Си, Pascal или вообще использует arduino.

А какие темы будут рассмотрены в курсе?

Всего на диске записано 109 видеоуроков общей продолжительностью 60 часов!

    Все темы я условно разбил на семь разделов. Вот краткое содержание этих разделов и скриншоты из некоторых видеоуроков:

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

   Краткий обзор современных микроконтроллеров и средств программирования. Выбор микроконтроллера для изучения.

   Краткое ознакомление с архитектурой и командами микроконтроллеров AVR. Разбор файла описаний микроконтроллера. Написание первой программы. Трансляция программы и получение файла прошивки.
   Разбор содержимого файла прошивки и коррекция работы программы при помощи редактирования отдельных байтов hex-файла.
   Подробный разбор среды программирования AVR Studio и среды отладки AVR Simulator. Обзор программы PROTEUS.

   Подробное изучение архитектуры и команд микроконтроллеров AVR. Регистр статуса. Стековая память. Понятие «срыва стека» и программные ошибки, приводящие к этому явлению. Прерывания микроконтроллера. Внешние и внутренние прерывания. Механизм сохранения адреса возврата в стековой памяти.
   Представление отрицательных двоичных чисел. Понятие дополнения до 2, дополнения до 1, дополнительного кода и обратного кода.
   Управление портами ввода-вывода. Считывание и запись байтов из памяти программ и памяти данных. Выражения языка ассемблера, макроопределения ассемблера и подключение библиотечных файлов.

   Байты конфигурационных ячеек. Выбор и настройка источника тактирования микроконтроллера. Конфигурирование FUSE-бит микроконтроллера на примере нескольких программаторов.
   Защита памяти программ и EEPROM памяти от считывания и перезаписи.
   Подключение внешних электронных компонентов к микроконтроллеру. Обзор наиболее интересных электронных компонентов и модулей. Элементы внешней «обвязки» микроконтроллера и их влияние на стабильность работы.
Основные правила трассировки печатных плат.

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

   Матричный способ опроса группы механических контактов.
   Модуль USART микроконтроллера. Конфигурирование модуля на режим асинхронной передачи данных. Связь микроконтроллера и компьютера. Обмен данными через USB.
   Виды энкодеров. Подключение инкрементного энкодера к микроконтроллеру.
   Жидкокристаллический символьный индикатор на базе контроллера HD44780. Подключение индикатора к микроконтроллеру. Программная библиотека для управления индикатором.
   Прием данных, передаваемых по инфракрасному каналу связи. Виды протоколов передачи. Универсальный алгоритм дешифрации принятых посылок.

   Шина SPI. Теория передачи данных по SPI в четырех режимах работы. Программная эмуляция шины. Flash-карты памяти формата SD и SDHC. Подключение карт памяти к микроконтроллеру. Чтение и запись данных в посекторном режиме.
   Шина I2C. Теория обмена данными по шине. Программная эмуляция протокола I2C. Микросхема часов реального времени. Считывание и запись байт данных. Вывод считанных данных на индикатор.
   Шина 1-WIRE. Теория обмена данными по шине 1-WIRE. Программная эмуляция работы шины. Микросхемы класса iButton. Считывание ID кода микросхем и вывод на индикатор. Микросхема температурного датчика. Команды транспортного и сетевого уровней. Запуск процесса преобразования температуры, считывание и преобразование байт данных. Программный подсчет контрольной суммы CRC-8. Понятие полиномного генератора. Программная реализация полиномного генератора.

Вот некоторые отзывы от тех, кто изучил мой курс


Некоторые из отзывов я специально просил оставить, а другие я взял из переписки через e-mail.


Если захотите оставить отзыв о курсе, то я его тоже опубликую.

“Не так давно решил расширить свои навыки и изучить МК. Довольно долго искал качественный самоучитель, но, скажу честно, осваивать с нуля эту сферу было не так легко, поскольку все самоучители написаны для людей, которым для полного понимания изложенного необходимо знать электронику на уровне не ниже “среднего” в интернете попал на страничку данного курса и почитав информацию решился (хотя в начале цена немного испугала). Если коротко, то ЭТО ПОТРЯСАЮЩЕ! Когда я просмотрел первые уроки, то был просто ошеломлен. Проделана гигантская работа! Информация по каждому разделу разжевывается так четко и подробно, что не понять просто нереально Кроме того, что подробнейшим образом рассмотрены все аспекты программирования МК автор не оставляет без внимания смежные темы, что я считаю одним из важнейших особенностей данного пособия Не пожалел ни копейки и до сих пор удивляюсь этому фантастическому по объему труду Советую всем кто интересуется данной тематикой – это безусловно лучшее пособие на данный момент! Максим оказывает качественную поддержку давая исчерпывающие ответы на все вопросы по электронной почте. Огромная благодарность
создателю!” 

Инженер-энергетик,

аспирант ГНУ “НИИ ВИЭСХ- Руцкой Андрей

“Уважаемый Максим! Никогда не думал что обучение может
приносить такое удовольствие. Я человек который в основном работал с периферией и цель моя была вовсе не программирование (в отличии от моего друга о котором я писал раньше). Но тот заряд, который я уже получил лишь пройдя 30% обучения превзошел мои ожидания и за это Вам огромное спасибо! Вы открыли мне глаза не то, что я раньше игнорировал и теперь понимаю что делал это зря. Хоть и сейчас придерживаюсь мнения что программирование это удел помешанных, очень умных и влюбленных в свое дело людей Вам частично удалось убедить меня что это очень интересно!
Замете – это только 30%. Вы доказали это не сложно, у Вас просто
талант учителя.

Игорь, Украина.

Из переписки по е-mail

“Моя работа состоит в ремонте и обслуживании компьютеров и
периферийных устройств. Но меня давно — интересовали
микроконтроллеры, и несколько лет назад я реализовал несколько простых проектов. Когда после долгого перерыва понадобилось срочно решить простую задачу, все забуксовало. Я с крайним сожалением понял, что знания по программированию улетучились из моей головы. Потратить неизвестно сколько времени на повторное изучение или отказаться от проекта? Оба вариант никуда не годились! В первый раз у меня ушло несколько месяцев на изучение микроконтроллеров…

К счастью, мне посчастливилось приобрести курс Максима
«Программирование микроконтроллеров для начинающих». И я понял, что мне крупно повезло! Потратив около 30 часов на изучение части курса и повторение материала, я восполнил пробелы и восстановил четкую картину в своей голове. И примерно за столько же отладил программу и сделал макет проекта. Задача была решена быстро!

Надо прямо сказать, что программирование контроллеров – дело не из простых. Нужно не только подружить программу и «железо» микроконтроллера, но и добиться согласованной работы с периферией.
Это при том, что в книгах и даташитах могут быть ошибки и неточности!
Так что порог вхождения в эту область довольно высок.
К счастью, курс Максима сильно понижает этот порог и делает
программирование контроллеров гораздо более доступным. В курсе очень много информации из самых разных областей, связанных с микроконтроллерами. Кроме того, у Максима несомненный педагогический талант – объяснять сложные вещи просто. Это дорогого стоит! Есть немало «учителей», которые не столько объясняют, сколько гордятся своими знаниями. И, ко всему прочему, курсеще и недорогой.
Где еще такой найдешь? Аналогов ему действительно нет.

Спасибо за курс, Максим!“

Виктор Геронда, 

Россия.

“В процессе трудовой деятельности у нас возникла необходимость автоматизировать некоторые процессы. И если бы это был единичный случай, то никаких проблем бы не возникло. Можно было бы заказать схемку у профессионала и вопрос был бы решен. Но, к сожалению, одним случаем дело не ограничивалось, а постоянно заказывать все новые и новые разработки было не выгодно.
Мне когда-то приходилось сталкиваться с паянием схем, но дело было давно, и многое я уже подзабыл. Кроме того, мне никогда не приходилось сталкиваться с икроконтроллерами. Поэтому я полез в интернет и попытался разобраться во всем самостоятельно.
И чем больше я читал, тем страшнее становилось. Я начал понимать, что программирование микроконтроллеров – это тёмный лес. И тут мне повезло – я случайно наткнулся на этот курс.
Когда я прочитал аннотацию к курсу я понял, что это то, что мне
нужно, причём достаточно недорого. Весь курс стоил дешевле
стоимости одной разработки схемы контроллера, заказанной у
профессионалов! Курс был приобретен.
И оказалось, что объем учебных материалов и их качество превзошли все мои ожидания. Автор – профессионал высокого класса, очень подробно рассказывает о всех тонкостях работы с
микроконтроллерами. Благодаря ему я достаточно быстро разобрался в работе этих замечательных микросхем и за месяц сделал свой первый проект.
В курсе очень много дополнительных справочных материалов,
благодаря которым практически любой человек, у которого есть для этого желание, может стать профессиональным программистом микроконтроллеров и создателем на их основе различных схем автоматов для любого производства.

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

Максим, спасибо тебе большое

Александр Лаврентьев, 

Россия.

Сомневаетесь, нужен ли Вам этот курс?

   Без всякого стеснения могу сказать, что данный курс уникален, и аналогов ему нет. Запись всех видеоуроков у меня по времени заняло 1 год. В этот курс я вложил весь свой опыт и очень много сил, тщательно разжевывая каждую деталь, но при этом, стараясь не впадать в крайности и не зацикливаться на объяснении очевидных вещей.
   Отличительной особенностью этого видеокурса является очень глубокий подход к изучению работы микроконтроллеров на уровне их архитектуры и очень глубокое изучение протоколов обмена данными на уровне отдельных сигналов.
   Кроме того что значительная часть курса посвящена программной составляющей конструирования устройств на микроконтроллерах, так же немало времени уделяется и аппаратной составляющей: подбору электронных компонентов, составлению принципиальной схемы и правильной трассировке печатной платы.
   Конечно, при изучении такой сложной темы, как низкоуровневое программирование микроконтроллеров, не может не возникнуть вопросов.
   И поэтому каждый покупатель курса получает возможность обращаться ко мне со всеми возникающими вопросами по материалам видеокурса.
   Где Вы еще сможете получить бесплатные консультации по самому широкому кругу вопросов, связанных с программированием микроконтроллеров?

Для тех, кто “в теме”

   Мне иногда задают вопросы вроде такого: “Я знаком с микроконтроллерами AVR и умею писать программы на ассемблере для этих микроконтроллеров. Узнаю ли я что-нибудь нового из вашего курса?”
   Для того что бы уважаемый посетитель этой страницы смог самостоятельно ответить на этот вопрос, чуть ниже я привожу пример небольшой программы на ассемблере для микроконтроллеров AVR.
   Если Вы разбираетесь в том, как работает эта программа, то в плане понимания работы микроконтроллера, скорее всего, ничего нового не узнаете.

01  /*
02  Для МК tiny2313, mega8, mega88, mega48, mega16, mega32 и других,
03  где spl = 0x3D и ОЗУ начинается с 0x60
04  */
05
06  .cseg
07  .org  0x00
08            ldi R31,low(m0)
09            ldi R30,byte1((m0>>1) + 1)
10            sts 0x10,R30
11            eor R15,R15
12            lpm
13            sts 0x5F,R0
14            rjmp PC+(m0 – 8)                                ;Переход на строку 18
15  m1:   .dw 0x00,(main)+1,0xFF
16
17  .org  0x100
18  m0:    out 0x3D,R16
19            ldi R30,byte1((m1+1)*2)
20            ldi R31,byte2((-(m1+1)*2) – 1)
21            sbc R15,R31
22            sts 0x1F,R15
23            pop R16
24            pop R16
25            pop R16
26
27            lpm
28            sts 0x86,R0
29            adiw R30:R31,1
30            lpm
31            sts 0x85,R0
32            ret    ;Переход на строку 35
33
34  main: nop
35            inc R16
36  .db     “эПереход на main”                           ;Переход на строку 34
37  /*В последней строке в двойных кавычках прописать
38  русскими буквами “эПереход на main”*/

А можно ли посмотреть фрагменты из видеоуроков?

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

Нажимая кнопку OK, вы разрешаете использование файлов cookie

Микроконтроллеры для начинающих. Часть 52. Таймеры | Разумный мир

Закончив первый учебный проект мы почувствовали, что со счетом времени надо что то делать. Использование машинных циклов слишком неудобно. Мало того, что этот метод зависит от тактовой частоты, так в STM8 еще и последовательность расположения команд влияние оказывает. Кроме того, даже простая модификация программы может изменить длительность выполнения основного цикла, что вносит еще большую сумятицу. Да и микроконтроллер вынужден большую часть времени проводить в бесполезных циклах ожидания. А ведь мог бы заняться чем то полезным, или просто заснуть экономя энергию батареи (при питании от батареи).

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

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

Что такое таймер?

В общем и целом, изначально, это устройство для отсчета требуемых интервалов времени. То есть, мы устанавливаем требуемый временной интервал и запускаем таймер. Когда заданное время (с момента запуска таймера) истечет, таймер “сработает” выдав какой либо сигнал.

Здесь сразу возникают вопросы, что считать, и как считать?

Что будем считать?

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

В микроконтроллере такой обычно есть – системный тактовый генератор. Да, он не всегда использует кварцевый резонатор (мы это видели в учебном проекте бегущих огней). Но все таки этот источник использовать имеет смысл. Правда тут есть одна тонкость, связанная с режимами энергосбережения. Если системный тактовый генератор останавливается в режимах сна, то и наш таймер работать не будет.

Кроме того, можно использовать внешний источник импульсов. Это может что угодно, например, TCXO. Главное, что это внешний источник импульсов, не зависящий от микроконтроллера. А значит, он не будет остановлен во время засыпания микроконтроллера и таймер может продолжить работу.

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

Как будем считать?

Для счета импульсов вполне разумно использовать счетчик. Именно счетчики лежат в основе таймеров в микроконтроллерах. И опять возникают вопросы, какова разрядность счетчика и каково направление счета?

Мы рассматриваем 8-битные микроконтроллеры, поэтому естественной разрядностью счетчика будет 8. Но такой разрядности может оказаться недостаточно, поэтому в микроконтроллерах обычно ест и 8-разрядные, и 16-разрядные таймеры.

А если и этого не хватает? Наращивать разрядность? И да, и нет. В большинстве случаев на входе счетчика стоит предварительный делитель, или предделитель. Который в документации обычно называется prescaler.

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

Счетчики, как всем известно, могут работать в двух направлениях. Увеличивая, инкрементируя (+1), или уменьшая, декрементируя (-1), свое содержимое. А могут быть и реверсивными, меняя направление счета в процессе работы.

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

Первый вариант построения таймера – базовый таймер

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

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

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

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

Если счетчик работает в направлении увеличения, то на его выходе возникает сигнал переполнения OF (overflow), а если в направлении уменьшения, то сигнал опустошения UF (underflow). Эти сигналы возникают при переходе счетчика через 0. Мультиплексор, стоящий после счетчика, выбирает один из этих сигналов, в зависимости от направления счета (DIR), для формирования сигнала TE – событие таймера.

Три возможных источника импульсов для счета, которые мы ранее рассматривали, выбираются мультиплексором. Main CLK это системный тактовый сигнал, а TI это вход внешнего сигнала. Сигнал с выбранного источника поступает на предварительный делитель.

При этом, дополнительный мультиплексор позволяет выбрать, нужно ли использовать делитель. Выход этого мультиплексора и является тактовым сигналом (CLK) для счетчика таймера.

Я специально использовал обозначения отличные от тех, которые используются в документации на рассматриваемые микроконтроллеры. Так как мы пока рассматриваем таймеры в самом общем виде.

Совершенно не обязательно в реальном таймере реального микроконтроллера есть все эти элементы. Но именно так, в общем случае, устроены их таймеры, которые называют базовыми.

Незапланированный бонус – расширенные функциональные возможности базового таймера

А теперь о небольшом “бонусе”, который изначально нами не предполагался, если рассматривать таймер только как устройство отсчета временных интервалов. Вход Tin совершенно не обязательно использовать как источник импульсов времени! Мы можем подавать на него любые импульсы, например, с датчика прохождения объекта по ленте конвейера. Тогда таймер будет считать эти объекты, а событие таймера может использоваться, например, в качестве признака “коробка полная”.

Итак, мы получили не просто таймер, а таймер-счетчик. И можем использовать его не только для отсчета временных интервалов. Но и для подсчета чего угодно! И для определения наполнения/опустошения чего либо на объекте автоматизации. Или для отсчета нужной дозы, например, лекарства. Или для определения того, что мы залили в бак автомобиля оплаченное клиентом АЗС количество топлива. Всего и не перечислить.

Расширяем функциональность для измерения интервалов времени. Захват.

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

Тут нужно сделать небольшое уточнение. Да, в большинстве случаев мы можем остановить таймер сбросив/установив специальный бит в управляющем регистре. Но то ли это, что нам требуется? Даже если останов таймера просто отключает поступление импульсов счета, а не отключает питание таймера.

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

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

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

Даже функциональная схема показана очень упрощенно. В данном случае мы добавили управляющий вход (вывод TG – Timer Gate) и мультиплексор, который позволяет выбрать источник сигнала управляющего прохождением счетных импульсов.

Для сигнала TG, для разных микроконтроллеров, можно задать работу по уровню (0 или 1) или по фронту (нарастающий спадающий). Я не стал показывать на иллюстрации, как это делается. Для нас это не важно, в данном случае.

Внутренние сигналы EV1 и EV2 это формируемые модулями микроконтроллера сигналы, их может быть разное количество. И для них тоже можно задать различные условия, как и для TG. Эти сигналы соответствуют каким то событиям, которые фиксируются модулями микроконтроллера. Например, изменение состояния вывода порта. Или превышение порогового уровня напряжения на аналоговом входе.

Таким образом, становится возможным, например, определение емкости конденсатора измерением времени его заряда или разряда. Или размера предмета, проезжающего по ленте конвейера мимо датчика, что можно использовать для сортировки.

На этой иллюстрации есть еще одно упрощение. Дело в том, что задание периода счета (через TG) это одно, а вот останов счета по событию, которое может быть кратковременным, это немного другое. Поэтому управление поступлением импульсов счета не ограничивается одним элементом И. Оно сложнее, и может включать в себя триггеры. Более подробно все условия и их обработку мы будем рассматривать в последующих статьях, для каждого семейства микроконтроллеров в отдельности.

Два варианта обработки событий

Выше мы рассмотрели решение, при котором таймер останавливает счет при наступлении события. Это позволяет легко прочитать остановленный счетчик таймера. Но такой останов не всегда приемлем. Иногда нужно продолжить счет, или перезапустить таймер.

Такой вариант тоже возможен, просто нужно добавить еще один регистр, в который и будет копироваться содержимое счетчика таймера при наступлении события. Вместо остановки счета. Примерно так.

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

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

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

Захват (capture)

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

В документации это часто называют захватом события. Такой способ использования таймера может описываться или в разделах описания собственно таймера, или в разделах описаний других модулей, которые и генерируют события. Например, в микроконтроллере может быть отдельный модуль Capture/Compare/PWM, который в своей работе используется один из таймеров.

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

Что происходит после окончания счета

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

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

В большинстве случаев, как мы уже знаем, счетчики таймеров работают в сторону увеличения. Давайте рассмотрим 8-битный таймер, в который загрузили байт 0xC5 (десятичное 197). С каждым импульсом счета содержимое счетчика будет увеличиваться на 1. И через 58 импульсов счетчик будет равен 0xFF. А еще через один импульс он переполнится и и будет сформировано событие таймера (TE).

Но таймер при этом не остановится, а продолжит счет. И следующее событие таймера возникнет через 256 импульсов. Для 16 битного таймера, разумеется, через 65536 импульсов.

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

При этом в период будет входить и время переустановки начального значения счетчика. А это снижает точность формирования периодических временных интервалов.

Расширяем функциональность формирования интервалов времени. Сравнение.

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

Функциональная схема части таймера обеспечивающая формирование периодических временных интервалов. Иллюстрация моя

Функциональная схема части таймера обеспечивающая формирование периодических временных интервалов. Иллюстрация моя

Я показал лишь часть таймера, так нас, в данном случае, не интересует формирование импульсов счета. Здесь есть уже знакомый нам счетчик таймера TMR_CNT. Регистр TMR_RR (Reload Register), в который записывается максимальное значение счетчика таймера для формирования заданного временного интервала. И компаратор (цифровой), который сравнивает содержимое счетчика и регистра TMR_RR.

В данном случае принято, что таймер может считать только вверх, а начальное значение счетчика равно 0. Как только счетчик таймера достигнет записанного в TMR_RR значения, он будет сброшен на 0 и сформируется событие таймера. И счет начнется с начала.

Например, для уже рассматриваемого нами примера 8-битного таймера и временного интервала 59 импульсов, нам достаточно записать в TMR_RR значение 59 и таймер будет автоматически отсчитывать периодические интервалы времени из 59 импульсов.

Вот такое сравнение с содержимого счетчика и дополнительного регистра и дало название режиму работы – сравнение (compare). И точно так же, как в случае режима захвата, таймер может быть лишь частью отдельного модуля, например, того самого Capture/Compare/PWM.

Можно сэкономить один регистр если вспомнить, что режимы захвата и сравнения не могут использоваться одновременно. А значит, в качестве EV_CNT и TMR_RR моно использовать один и тот же аппаратный регистр. И так действительно делают.

Альтернативные режимы сравнения и автоперезагрузки

Таймер может работать не на увеличение, а на уменьшение. В этом случае содержимое TMR_RR будет автоматически записываться в счетчик таймера, как начальное значение. При этом для нашего примера с временным интервалом из 59 импульсов ничего не изменится. Абсолютно ничего. Хотя схемотехника модуля будет иная. Зачем это нужно?

Это влияет на момент синхронизации сигнала таймера и других модулей микроконтроллера. Например, на модуль ШИМ. Когда мы до него доберемся, мы и рассмотрим этот момент более подробно.

Возможен и режим, когда таймер сначала считает от 0 до значения в TMR_RR, а потом направление счета меняется и таймер начинает считать вниз, до 0. И так до бесконечности, с постоянной сменой направления счета. Этот режим возможен далеко не во всех микроконтроллерах. И мы тоже рассмотрим его подробнее при знакомстве с модулями ШИМ.

Дополнительные усовершенствования

Рассмотреть все варианты дело не такое простое. Да и особого смысла не имеет. Но все таки одно дополнение хочу затронуть. Мы можем установить еще один делитель, но уже после таймера. Поэтому его называют postscaler. Этот делитель может использоваться для формирования сигнала TE не на каждое переполнение таймера, а лишь через определенное их число. Иногда этот делитель называют счетчиком повторений.

Такой счетчик повторений может оказаться полезным, если нужно сформировать определенное количество одинаковых импульсов. И мы обязательно познакомимся с этим делителем/счетчиком повторений при рассмотрении реализации таймеров в конкретных моделях микроконтроллеров.

Заключение

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

До новых встреч!

мир электроники – Начинающим о AVR микроконтроллерах

Общие понятия и основы программирования

Этот раздел посвящен микроконтроллерам семейства AVR: общие понятия, структура, основы программирования и так далее.

Здесь мы постараемся разобраться с принципом работы микроконтроллеров, его отдельными блоками, периферийными устройствами, прерываниями, памятью, таймерами, портами ввода-вывода и так далее…

Возможно что по-началу все эти вышеперечисленные понятия и покажутся вам “китайской грамотой”, но при детальном изучении на самом деле все это довольно просто, и мы постараемся все это наглядно пояснить.

Итак, материалы раздела:

Введение

Общие сведения о AVR микроконтроллерах
Архитектура AVR микроконтроллера
Строение и характеристики AVR микроконтроллеров
Дребезг контактов. Что это такое и как с ним бороться
Функция RESET в AVR микроконтроллерах
Что такое фьюзы AVR микроконтроллеров
Что такое протоколы в AVR микроконтроллерах
Что такое прерывания в AVR микроконтроллерах
Порты ввода-вывода AVR микроконтроллера
Отладочная плата для микроконтроллера Attiy13

Программирование AVR микроконтроллеров для начинающих

Программирование для начинающих. часть1
Программирование для начинающих. часть 2
Программирование для начинающих. часть3
Видеокурс по программированию AVR микроконтроллеров для начинающих
Простые проекты на AVR микроконтроллерах
Простые проекты на AVR микроконтроллерах. продолжение

Софт для программирования микроконтроллеров

Программа CodeVisionAVR
Программа UniProf
ISIS Proteus 7.7 SP2

Литература по микроконтроллерам

Микроконтроллеры AVR семейства Tiny и Mega фирмы ATMEL
Применение микроконтроллеров AVR
Самоучитель разработчика устройств на микроконтроллерах AVR
Микроконтроллер AVR вводный курс
Микроконтроллер это просто
Микроконтроллеры AVR для начинающих

6 лучших плат микроконтроллеров для всех уровней • Оки Доки

Микроконтроллеры в основном следуют аналогичным конструкциям. Они имеют ограниченную встроенную память, работают с низким энергопотреблением и оснащены набором выводов ввода-вывода общего назначения (GPIO), которые обычно программируются через кабель USB.

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

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

1. Лучший микроконтроллер для начинающих


Arduino Uno R3

Arduino Uno R3

Arduino Uno R3
Купить сейчас на Amazon $ 20,49

Если у вас есть интерес к микроконтроллерам, вы почти наверняка слышали об Arduino. Они популяризировали хобби-оборудование с открытым исходным кодом со своим набором плат для разработки и независимой средой разработки (IDE) для их кодирования.

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

Makeblock mBot Robot Kit

Makeblock mBot Robot Kit
Купить сейчас на Amazon $ 69,99

Подожди, это не похоже на плату микроконтроллера!

Ну, у mBot Robot Kit в качестве мозга есть микроконтроллер. Его дизайн делает его идеальным для обучения детей робототехнике без необходимости иметь дело со сложным кодом. Визуальный код блока, собранный в приложении Blocky, передается на плату через Bluetooth, чтобы повлиять на поведение робота.

Вы можете купить микроконтроллер отдельно от набора роботов, но почему бы вам? Роботы самые лучшие!

Этот комплект охватывает все, от создания роботов до основ программирования. Для представления микроконтроллеров молодой аудитории нет ничего лучше!

3. Лучший микроконтроллер для программистов


STM32 F3 Discovery

STMicroelectronics STM32 F3 Discovery

STMicroelectronics STM32 F3 Discovery
Купить сейчас на Amazon $ 20,94

Плата STM32 F3 Discovery представляет собой микроконтроллер на основе ARM Cortex-M4 для экспериментов со всеми аспектами аппаратного программирования. Плата оснащена встроенным детектором движения, трехосным гироскопом, датчиком линейного ускорения и датчиком магнитного поля.

Есть также восемь светодиодов в круглом расположении. Обратите внимание, что эта плата требует отдельного адаптера FTDI для связи с компьютерами через USB. Если вы не уверены, что это такое, то мы использовали его в нашем собственном руководстве по Arduino для связи с чипом ATMega328P.

Обучение программированию F3 Discovery является более глубоким процессом, чем многие другие микроконтроллеры. К счастью, есть библиотеки, которые делают этот процесс более доступным, и многие учебные пособия начинаются с основ. Наряду с использованием языка программирования C ++, доска является предметом Книги Открытий; руководство по началу работы по внедрению языка программирования Rust.

4. Лучший микроконтроллер для носимых


Adafruit Gemma M0

Adafruit Gemma M0

Adafruit Gemma M0
Купить сейчас на Amazon $ 9,99

Благодаря тому, что микроконтроллеры сочетают в себе расширенный контроль над светодиодами и другими компонентами с небольшими форм-факторами и низкими требованиями к мощности, неудивительно, что они проявляются в дизайне костюмов и косплее. Плата Gemma M0 от Adafruit представляет собой микроконтроллер размером с монету, идеально подходящий для подключения светодиодов или других компонентов с помощью проводящей резьбы. Кроме того, вы можете использовать встроенный светодиод RGB DotStar.

Чип ATSAMD21E18 (попробуйте сказать, что спешите) — это шаг вперед по сравнению с обычными встроенными контроллерами для микроконтроллеров этого типа. В то время как вы можете использовать стандартный Arduino типа C ++, плата поставляется с предустановленной CircuitPython для программирования на Python и собственным USB-соединением, которого обычно нет на других платах этого типа.

5. Лучший микроконтроллер для питания


Teensy 3.2

Teensy 3.2

Teensy 3.2
Купить сейчас на Amazon $ 26,22

Для необработанной мощности в крошечном форм-факторе линейка Teensy 3.2 считается лучшей. 32-разрядный микропроцессор ARM Cortex запускает кольца практически на любой другой плате. Помимо скорости, Teensy имеет аудиоинтеграцию I2C и несколько высококачественных аналого-цифровых преобразователей (АЦП).

Каждый вывод на Teensy настраивается как прерывание, и платы работают с 64 КБ ОЗУ и 256 КБ флеш-памяти. Все это совместимо с Arduino IDE с использованием библиотеки Teensyduino, и, если вам недостаточно 28 выводов Teensy 3.2, 48-контактные разъемы Teensy 3.5 и 3.6 доступны на веб-сайте PJRC.

Mbed LPC1768 Совет по развитию

Mbed LPC1768 Совет по развитию
Купить сейчас на Amazon $ 145,15

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

Хорошим примером платы прямо на границе между потребителем и промышленностью является Совет по развитию Mbed LPC1768. Эта доска — скачок в качестве и инструментах, и цена отражает это. Mbed предоставляет онлайн-IDE для оборудования и библиотеки для выполнения задач с помощью выводов GPIO и встроенных светодиодов.

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

Маленькие Доски, Большие Планы

Этот список должен помочь вам принять обоснованное решение о том, какой микроконтроллер подходит именно вам. Это, однако, ни в коем случае не является исчерпывающим, и пропускает отличные платы, как Arduino, убивающий NodeMCU.

На какой бы плате вы ни остановились, микроконтроллеры — это идеальный способ сочетать электронику и кодирование. Любой из этих проектов для начинающих Arduino

15 отличных проектов Arduino для начинающих

15 отличных проектов Arduino для начинающих
Заинтересованы в Arduino, но не знаете, с чего начать? Вот некоторые из наших лучших проектов Arduino для начинающих!
Прочитайте больше
поможет вам справиться с обоими!

Кредит изображения: Ha4ipiri / Depositphotos

Узнайте больше о: Arduino, советы по покупке, электроника, Raspberry Pi.

Лучшие приставки IPTV в 2019 году

Программирование микроконтроллеров для начинающих

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

Типы микроконтроллеров

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

Как осуществляется программирование микроконтроллеров?

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

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

Аппаратные отличия разных типов микроконтроллера

Особое внимание при выборе микроконтроллеров следует уделить аппаратным отличиям моделей одного ряда. Прежде всего обратите внимание на возможность перезаписи информации на МК. Данная функция позволяет проводить множество экспериментов с одним и тем же МК. Следует также обратить внимание на число выводов и их предназначение. Не стоит обделять вниманием и частоту работы кристалла, используемого в основе схемы. Частота характеризует количество операций, выполняемых микроконтроллером в единицу времени.

При анализе основных характеристик, а также объема памяти, используемой в МК, может показаться, что на микроконтроллерах нельзя сделать ничего толкового. Однако это мнение в корне неверно. Следует учитывать, что для изучения основ программирования микроконтроллеров не требуется приобретать самую лучшую технику. Для начала подойдет что-то простенькое, потом можно попробовать поэкспериментировать с чем-то более мощным.

Языки программирования для МК

Для программирования микроконтроллеров чаще всего используется два языка программирования: ассемблер и C/C++. У каждого из них есть свои плюсы и минусы. Ассемблер дает возможность выполнить программирование МК тонко и качественно. Особенно это важно в случае нехватки оперативной памяти. Однако изучение данного языка требует больших усилий, а на написание программы уйдет много времени. По этой причине чаще для создания разработок на основе микроконтроллеров используются языки программирования С и C++.

Они более понятны. По своей структуре и виду они больше похожи на человеческую речь. Также данные языки программирования отличаются хорошо проработанным функционалом, что дает возможность легко взаимодействовать с аппаратной частью разрабатываемого устройства. Несмотря на все явные преимущества ассемблера, объемные программы чаще создают на С/С++. В отдельных случаях, когда используемое оперативное пространство не является критичным параметром, можно попробовать объединить данные языки. Многие среды разработки для языков программирования C/C++ дают возможность устанавливать в программу вставки кода на языке Ассемблер.

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

Заключение

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

назначение, описание Не работает программатор через com port

Для людей, которые любят конструировать радиоэлектронные приборы, рано или поздно возникает необходимость использовать в своих разработках микроконтроллеры. Применение этих устройств открывает огромные возможности перед радиоинженером. Микроконтроллеры выпускают всего несколько фирм, лидерами являются – Microchip Technology, ATMEL, ARM Limited. Особенностью таких устройств является необходимость их прошивки. Вот для этого и требуются программаторы. Существует много типов этих приборов, можно приобрести фирменный, а можно сделать своими руками. Если вы выбрали второй вариант, лучше всего воспользоваться готовым и проверенным решением, таким как программатор Громова. Устройство достаточно простое, собрать его под силу даже новичку.

СОМ(AVR)-программатор Громова

СОМ-программатор несложен в изготовлении. При условии применения альтернативного режима «СОМовского» порта Bitbang становится ненужным преобразование в SPI, который необходим для программирования. Останется только согласовать уровни сигналов в СОМ-порте, от -12В, +12В к 0В и +5В. Для этого и предназначена схема программатора для AVR-контроллеров. На фото ниже показан программатор Громова.

Для того чтобы приступить к сборке прибора, нам понадобятся:


Как видите все очень просто, этим и ценится программатор Громова.

Для работы этого устройства необходима программа и тестовая прошивка микроконтроллера.

По такому же принципу можно собрать и программатор usb, но схема такого устройства несколько сложнее.

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

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



Для подключения к компьютеру лучше воспользоваться фабричным кабелем для COM порта. Со второго конца кабеля разъем при этом отрезается. Если все же кто-то будет пользоваться для подключения не кабелем, а одним разъемом СОМ с припаянными проводками, то рекомендую длину проводков делать не более полуметра. Дело в том, что фабричный кабель идет экранированный, а на проводки будут наводиться помехи.



По этой же причине, длина проводков идущих с программатора на программируемый микроконтроллер, должна быть не более 10-15 См. Диоды я взял импульсные КД 522. Распиновку разъема можно легко найти в интернете, либо воспользоваться для подключения следующей схемой:


Обе схемы, и первая, и вторая одинаковые.

Программатор может работать с разными оболочками для прошивания. Например, с PonyProg2000, UniProf и avrdude. Я предпочитаю UniProf. У неё простой интерфейс, на русском языке, на скрине ниже изображено окно, которое открывается после запуска программы:



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



Выкладываю несколько фото, сделанных во время сборки программатора:



Фото платы со стороны пайки выводов:



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

Для того чтобы прошить микроконтроллер в 95% случаев хватает последовательного программатора. Самым простым является «5 проводков» для LPT порта. Но схема эта не надежна. Но самым большим минусом этого программатора является отсутствие LPT порта на новых компьютерах.

Программатор Громова — это практически теже 5 проводков, только для COM-порта. Схема эта в десятки раз надежнее,. Автором этого программатора является Генадий Громов, создатель Algorithm Builder . Вот его схема:

И так надо 3 диода,любые, например кд522 или 1N4148. 7 резисторов на 1 кОм.

вот пример платы, сразу скажу что там резисторы на 10кОм, но все равно работает, вам все таки рекомендую делать по схеме.

ну еще я использую щуп для корпусов SO8

Для программирования используется программа UniProf от Николаева

UNIPROF – это ISP (in system programming) программатор для AV R микроконтроллеров (смотрите список слева). Имеет встроенные модули отладочного обмена, позволяющие при помощи того же самого шлейфа, при помощи которого программировали, производить realtime отладку программы (подробнее об отладке). (далее – просто программатор). Программатор позволяет:

  • Читать/писать/сравнивать FLASH память программ и EEPROM;
  • Чтение/запись/сравнение FLASH возможно в указанных границах;
  • Читать/писать fuse и lock биты;
  • Читать настроечные байты OSCCAL и при необходимости помещать их в буфер EEPROM или FLASH;
  • Вручную корректировать содержимое окна EEPROM и перемещать блоки FLASH;
  • Работает с файлами в форматах HEX, BIN и generic;
  • Возможна подача любой команды протокола обмена “вручную”;
  • Режим “тормоз” для низких тактовых;

Схема программатора и программа ниже во вложении

Вложения

Программатор Громова является простым и недорогим в изготовлении устройством, работающим через COM порт. Имеет большую надежность чем программаторы работающие с LPT портом, который при небрежном обращении очень легко привести в неисправное состояние.
Предназначенный для программирования микроконтроллеров фирмы Atmel. Принцип роботы программатора заключается в согласовании уровней между программируемым микроконтроллером и COM портом компьютера. Работает с программами и avrdude. Разработчик схемы программатора является Геннадий Громов. Сайт автора: http://algrom.net/russian.html

Принципиальная схема программатора Громова


Двухсторонняя печатная плата


Разводка печатной платы сделана EAGLE CAD. Если дорожки не достаточно широкие или еще что-то не так, в проекте можно все откорректировать под себя.

Для изготовления программатора понадобятся:

1. Разъем гнездо на кабель DB-9F(9 pin).


2. Корпус DP-9C (9 pin).


3. Изготовленная двухсторонняя печатная плата. Толщина текстолита 1 мм.


4. SMD-резисторы 7 шт. типоразмера 0805, мощностью 0.125 Вт, номиналом 1кОм.


5. Диоды 3 шт. любые импульсные со временем восстановления не более 50 нс. в корпусе SOD-80. Я использую диоды LL4148.


6. Провод или шлейф для последующего подключения к микроконтроллеру.


Установленная плата программатор внутри корпуса будет выглядеть вот так


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

Видео к статье:

Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL, то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам. К примеру, платка с одним двадцатиногим микроконтроллером с парой резисторов и диодов в качестве обвязки, стоит как «самолет». Поэтому остро встал вопрос о самостоятельной сборке программатора. После долгого изучения наработок радиолюбителей со стажем, было решено собрать хорошо зарекомендовавший себя программатор USBASP, мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48). Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку.

Автором данного программатора является немец Thomas Fichl, страничка его разработки со схемами, файлами печатных плат и драйверами.
Раз решено было собрать миниатюрный программатор, то перерисовал схему под микроконтроллер Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в корпусе DIP):

Перемычка J1 применяется, в случае если необходимо прошить микроконтроллер с тактовой частотой ниже 1,5МГц. Кстати, эту перемычку вообще можно исключить, посадив 25 ногу МК на землю. Тогда программатор будет всегда работать на пониженной частоте. Лично для себя отметил, что программирование на пониженной скорости на доли секунды дольше, и поэтому теперь перемычку не дёргаю, а постоянно шью с ней.
Стабилитроны D1 и D2 служат для согласования уровней между программатором и USB шиной, без них работать будет, но далеко не на всех компьютерах.
Светодиод blue показывает наличие готовности к программированию схемы, red загорается во время программирования. Контакты для программирования выведены на разъем IDC-06, распиновка соответствует стандарту ATMEL для 6-ти пинового ISP разъема:

На этот разъем выведены контакты для питания программируемых устройств, здесь оно берется напрямую с USB порта компьютера, поэтому нужно быть внимательным и не допускать кз. Этот же разъем применяется и для программирования управляющего микроконтроллера, для этого достаточно соединить выводы Reset на разъеме и на мк (см. красный пунктир на схеме). В авторской схеме это делается джампером, но я не стал загромождать плату и убрал его. Для единичной прошивки хватит и простой проволочной перемычки. Плата получилась двухсторонняя, размерами 45х18 мм.

Разъем для программирования и перемычка для снижения скорости работы программатора вынесены на торец устройства, это очень удобно

Прошивка управляющего микроконтроллера
Итак, после сборки устройства осталось самое важное – прошить управляющий микроконтроллер. Для этих целей хорошо подходят друзья у которых остались компьютеры с LPT портом:) Простейший программатор на пяти проводках для AVR
Микроконтроллер можно прошивать с разъема программирования, соединив выводы Reset микроконтроллера (29 нога) и разъема. Прошивка существует для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, так как поддержка версии под Atmega48 прекращена и последняя версия прошивки датируется 2009 годом. А версии под 8-й и 88-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку берем на странице немца. Для заливки управляющей программы в микроконтроллер я использовал программу PonyProg. При программировании необходимо завести кристалл на работу от внешнего источника тактирования на 12 МГц. Скрин программы с настройками fuse перемычек в PonyProg:

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

Установка драйвера
Установка велась на машину с системой Windows 7 и никаких проблем не возникло. При первом подключении к компьютеру выйдет сообщение об обнаружении нового устройства, с предложением установки драйвера. Выбираем установку из указанного места:

Мигом появится окно с предупреждением о том, что устанавливаемый драйвер не имеет цифровой подписи у мелкомягких:

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

Все, теперь программатор готов к работе.

Khazama AVR Programmer
Для работы c программатором я выбрал прошивальщик Khazama AVR Programmer . Замечательная программка, с минималистичным интерфейсом.

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

Запись фьюзов в память мк, как можно догадаться, осуществляется при нажатии кнопки Write All. Кнопка Save сохраняет текущую конфигурацию, а Load возвращает сохраненную. Правда я так и не смог придумать практического применения этих кнопок. Кнопка Default предназначена для записи стандартной конфигурации фьюзов, такой, с какой микроконтроллеры идут с завода (обычно это 1МГц от внутреннего RC).
В общем, за все время пользования этим программатором, он показал себя с наилучшей стороны в плане стабильности и скорости работы. Он без проблем заработал как на древнем стационарном пк так и на новом ноутбуке.

Скачать файл печатной платы в SprintLayout можно по

Примеры программирования микроконтроллеров, создание схем на микроконтроллерах, микроконтроллеры для начинающих

Новостная лента

Microchip расширяет экосистему Arduino-совместимой отладочной платформы chipKIT

Компания Microchip сообщила о расширении экосистемы отладочной платформы chipKIT. В состав Arduino-совместимой платформы chipKIT вошла высокоинтегрированная отладочная плата с Wi-Fi модулем и плата расширения для управления электродвигателями, разработанные компанией Digilent. Подробнее >>>

Источник: http://www.rlocman.ru

Просмотров: 28590

Дата добавления: 02.10.2014

MicroView – супер миниатюрная Arduino-совместимая отладочная плата с OLED дисплеем

На портале Kickstarter представлен проект супер миниатюрной отладочной платформы Arduino, выполненной в форм-факторе 16-выводного корпуса DIP и имеющей встроенный OLED дисплей с разрешением 64×48 точек. Несмотря на то, что отладочная плата является полностью завершенным решением, она может устанавливаться на макетную плату или непосредственно впаиваться в печатную плату для расширения функционала и управления внешней периферией. Подробнее >>>

Источник: http://www.rlocman.ru

Просмотров: 27934

Дата добавления: 17.04.2014

Размеры самого миниатюрного в мире ARM-микроконтроллера Freescale сократила еще на 15%

Freescale Semiconductor совершила новый технологический прорыв, добавив к семейству Kinetis самый миниатюрный и энергоэффективный в мире 32-разрядный микроконтроллер Kinetis KL03 с архитектурой ARM. Основанный на микроконтроллере предыдущего поколения Kinetis KL02, новый прибор получил дополнительную периферию, стал намного проще в использовании, и при этом сократился в размерах до 1.6 × 2.0 мм. Подробнее >>>

Источник: http://www.rlocman.ru

Просмотров: 1871

Дата добавления: 17.04.2014

Как вырастить микросхему с помощью белка

Без кремния немыслимо производство полупроводников, где он буквально нарасхват. При этом, естественно, большое значение имеют чистота вещества и строение кристаллов кремниевых соединений. Исследователи из Университета Лидса (Великобритания) предлагают способ выращивания таких кристаллов с помощью молекулярной биологии. По их мнению, это позволит создавать электронные микросхемы более высокого качества. Подробнее >>>

Источник: http://www.newscientist.com/

Просмотров: 3019

Дата добавления: 06.03.2014

Открытие нового раздела на сайте MCULAB.RU

На нашем сайте открыт новый раздел. Раздел посвящён моделированию различных схем по сопряжению микроконтроллеров и датчиков. Освещается схемотехника подключения к МК внешних устройств. В данной области до сих пор отсутствует систематизация, поэтому сделана попытка создать банк типовых решений, который в дальнейшем может дополняться, уточняться, расширяться. Подробнее >>>

Источник: /

Просмотров: 129718

Дата добавления: 04.02.2014

На сайте представлены примеры программирования, которые будут полезны как для опытного разработчика схем на микроконтроллерах, так и для новичка. Особо рассматривается программирование микроконтроллеров для начинающих пользователей. Программные примеры программирования разбиты на различные разделы. Основную массу составляют примеры программирования микроконтроллеров avr и микроконтроллеров microchip. Пользователю предлагается познакомиться с различными примерами программирования и различными средами программирования: MicroLab, AVRStudio, MikroC, FloweCode. Представлены схемы на микроконтроллерах ведущих производителей: PIC и AVR. Рассматривается огромное количество схем для начинающих разработчиков. Если Вы начинающий радиолюбитель, то для Вас мы приготовили раздел микроконтроллеры для начинающих.

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

В основе языков программирования микроконтроллеров лежат классические языки для компьютеров. Единственным отличием становится ориентированность на работу со встроенными периферийными устройствами. Архитектура микроконтроллеров требует, например, наличия битово-ориентированных команд. Последние выполняют работу с отдельными линиями портов ввода/вывода или флагами регистров. Подобные команды отсутствуют в большинстве крупных архитектур. Например, ядро ARM, активно применяемое в микроконтроллерах, не содержит битовых команд, вследствие чего разработчикам пришлось создавать специальные методы битового доступа.

Популярное в разделе “MikroC”

Популярное в разделе “FloweCode”

Популярное в разделе “MicroLab”

Популярное в разделе “AVR Studio”

Популярное в разделе “Теоретические основы эл-ки”

Популярное в разделе “Основы МП техники”

Популярное в разделе “Аналоговый и цифровой сигнал”

Популярное в разделе “Цифровая схемотехника”

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

Выбор языка программирования зависит от множества факторов. В первую очередь, типо решаемых задач и необходимым качеством кода. Если Вы ведёте разработку малых по объёму и несложных программ, то можно использовать практически любой язык. Для компактного кода подойдет Ассемблер, а если ставятся серьезные задачи, то альтернативы С/С++ практически нет. Также необходимо учитывать доступность компилятора. В итоге самым универсальным решением можно назвать связку Ассемблера и C/C++. Для простого освоения языков, можно воспользоваться примерами программ для микроконтроллера. Использование примеров программирования упростит и ускорит процесс освоения программирования микроконтроллеров.

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

Как выбрать микроконтроллер (для начинающих)

Много месяцев назад, когда я был в отпуске, я болтал с фантастическими людьми, стоящими за SnapEDA о моих очень самоуверенных мыслях о том, как выбрать микроконтроллер (кроме того: если вы разработчик оборудования и никогда не использовали SnapEDA – зарегистрируйтесь бесплатно и наблюдайте, как ваша жизнь мгновенно становится проще). Они кратко написали об этих мыслях в своих 10 лучших микроконтроллеров Почта.

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

При выборе микроконтроллера следует учитывать множество факторов, но проблема в том, что их обычно СЛИШКОМ много, и легко попасть в ситуацию «аналитического паралича».

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

Предостережения

Чтобы предупредить обо всем заранее … Все, о чем я говорю, связано со стандартной игрой IoT / Wearables – в каждой отрасли есть свои требования, которые иногда выходят за рамки, но я собираюсь обобщить.Например, многое из того, что я собираюсь упомянуть, может быть перевернуто с ног на голову в аэрокосмической или военной сфере (на самом деле, это последнее утверждение на 100% верно), но я просто сосредотачиваюсь на том, на что трачу больше всего. моего времени.

Я также назвал этот пост «Как выбрать микроконтроллер. (для начинающих) ”По уважительной причине. Если вы знаете, что делаете, вы поймете, что есть гораздо больше нюансов, о которых нужно подумать, когда вам нужно выбрать электростанцию ​​для вашего дизайна … Но я бы сказал, что 80% типичных дизайнов можно выбрать, как я Обсудили ниже, и все будет хорошо.

РЕДАКТИРОВАТЬ: Основываясь на некоторых комментариях на этой странице и на HackerNews Мне кажется, что мое использование слова «для начинающих» было немного чрезмерным.

Смысл того, что я имел в виду, был похож на людей, которые немного раньше работали с аппаратным обеспечением и микроконтроллерами (возможно, даже в школе) и, возможно, думали о том, чтобы выложить свою первую плату – или отойти от Arduino. Мир. Хорошим примером могут быть молодые стартапы, а также разработчики оборудования / прошивки младшего / среднего уровня.

Если вы никогда не слышали о некоторых из этих аббревиатур (UART / SPI / I2C) – тогда это будет трудное чтение. В этом случае я бы рекомендовал начать с Ардуино и заканчивая день (мои любимые Крошечный доски). Существует невероятное сообщество и почти безграничное количество ресурсов, которые помогут вам начать работу.

Если вам нужна операционная система (Linux), используйте Raspberry Pi по тем же причинам, что и Arduino.

Хотя ради этого:

  • MCU: Блок микроконтроллера – Тема сообщения.
  • Спецификация: Ведомость материалов – Список компонентов / сборок (и количества), которые вам понадобятся для создания продукта.
  • UART: Универсальный асинхронный приемник / передатчик
    • (Обычно) низкоскоростной двухточечный последовательный интерфейс, используемый для связи между компонентами (например, MCU с модемами, модулями GPS, Bluetooth) или для обеспечения связи вне платы (например, MCU с компьютером через последовательный порт)
  • SPI: Последовательный периферийный интерфейс
    • (Обычно) высокоскоростная последовательная шина, используемая для связи на малых расстояниях (внутри платы) между микроконтроллерами и периферийными устройствами (например,грамм. акселерометр). Выделенная линия выбора микросхемы используется для выбора конкретного периферийного устройства для связи с MCU.
  • I2C: Межинтегральная схема – (обычно) среднескоростная шина связи с несколькими ведущими и несколькими периферийными устройствами, используемая для связи на малых расстояниях (внутри платы). Адреса устройств используются для связи с периферийным устройством.
  • BLE: Bluetooth с низким энергопотреблением – Стандарт беспроводной связи, предназначенный для связи точка-точка между центральным устройством (например,грамм. телефон) и периферийное устройство (например, датчик сердечного ритма). Я не буду идти дальше, так как я мог бы написать книгу, используя все сокращения Bluetooth.

Возможно, сейчас самое время упомянуть одну из первых книг, которые я когда-либо читал по дизайну оборудования (на самом деле моя любимая) – Искусство электроники .

Соображения по оборудованию

Основной

Если нужно спросить, придерживайтесь ARM. По сути, обсуждение вращается вокруг M0 / M0 + против M3 против M4.

Самый простой способ взглянуть на это – получить более мощные микросхемы с более высокими числами, но с более высоким энергопотреблением.Итак – нужна ли вам скорость вычислений? Или малая мощность? Кроме того, M4, как правило, дороже (и имеют больше флэш-памяти / памяти), а M0 стоят дешевле.

Примечание. Если у вас есть «специальная» сердцевина, вам нужно сравнить яблоки с яблоками. Итак, STM32L1 против STM32F1 Это несправедливое сравнение стоимости и энергопотребления, потому что серия L специально разработана для более низкой мощности, а серия F более чувствительна к стоимости. Так что мои вопиющие обобщения не всегда применимы к этим случаям.

Еще одно быстрое разбиение: если вам нужна обработка с плавающей запятой, вы, вероятно, будете использовать M4. Если вам нужен простой маршрутизатор данных (например, считывание с датчиков, отправка по BLE или Wi-Fi, включение некоторых светодиодов, без реальной обработки данных), вы, вероятно, будете использовать M0 +. Что-то среднее, скорее всего, будет M3.

Я только что нашел это отличное изображение из АнандТех что должно помочь расширить этот последний пункт.

Скорость

Как и в случае с размером ядра, я обычно объединяю все в категории «маломощный» и «быстрый» и рассматриваю их как взаимоисключающие.Огромный отказ, но он работает достаточно хорошо, как и в моих предыдущих пунктах.

Средняя цена

Резюме: Цены договорные. Но для прогнозов они все равно нужны.

Проверить Octopart для приблизительного представления о вашем объеме. По крайней мере, это полезно для сравнения если не с точной ценой, то «дороже чем» и «дешевле чем».

Рулевая рубка, в которой я пытаюсь работать, стоит 1-2 доллара, так что это дает вам представление о том, чем я занимаюсь – мне не нужны эти сумасшедшие процессоры A7.Довольно часто это срабатывает, потому что я выбираю другие датчики / компоненты для разгрузки некоторой обработки или разрабатываю аналоговые схемы для обработки фильтрации. Обычно приводит к более дешевому дизайну (но иногда менее расширяемому – пока не было реальной проблемой).

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

Потребляемая мощность

Как указывалось ранее, выбранный вами Core сильно влияет на энергопотребление.Если вы действительно заинтересованы в малом энергопотреблении, но все же нуждаетесь в вычислительной мощности, возможно, вам придется купить специальный микроконтроллер (например, серию STM32L), но у вас не может быть всего этого, поэтому рассчитывайте заплатить за это больше.

Но это только один общий показатель бюджета мощности – энергопотребление во время работы (мкА / МГц) против энергопотребления в спящем режиме.

Невероятно важный и упускаемый из виду аспект энергопотребления – это набор периферийных устройств, доступных в каждом состоянии низкого энергопотребления.

Например, можете ли вы использовать DMA / PWM / DAC в спящем режиме? Я обнаружил на недавнем кипарисе PROC4 BLE проект, что я не мог поддерживать ЦАП в режиме глубокого сна, хотя документы предполагали, что это должно быть возможно. Это означало, что без обходного пути мне пришлось бы держать ЦП в активном состоянии и на довольно значительном уровне мощности только для того, чтобы поддерживать выход ЦАП на одном из контактов. Разница в режимах мощности составляла от микроампер до миллиампер – очень существенная (в 1000 раз только для ЦАП).

Кроме того, не выполняйте гипероптимизацию, если она вам не нужна. Всегда ли устройство включено и запитано ли оно от сети? Тогда сосредоточьтесь на стоимости и производительности микроконтроллера – пропустите разговор о питании.

Дополнение к этому также относится к конструкциям с батарейным питанием. Если ваша спецификация требует, чтобы устройство работало в течение 1 недели перед подзарядкой, спроектируйте его так, чтобы оно работало за 2–3 недели до подзарядки, чтобы учесть неэффективность, возникающую со временем. НЕ проектируйте его так, чтобы он прослужил 6 месяцев – потому что вы платите за весь дополнительный срок службы либо за счет спецификации, либо за счет исследований и разработок, и это, вероятно, не добавит ценности продукту.

Периферийные устройства

Как правило, я провожу большую часть своего времени, глядя на микроконтроллеры, периферийные устройства (и такие необычные вещи, как, есть ли в этом микроконтроллере встроенный RTC, поэтому мне не нужно покупать внешний). Эта добавленная стоимость очень важна для меня и облегчает мою жизнь.

Обычно ответы на вопросы здесь являются частью ваших требований. Вам нужен SPI / I2C / UART / и т. Д.?

У Atmel есть несколько микросхем с общими «блоками последовательной связи», которые позволяют вам выбирать каждый из них, что кажется довольно крутым.Cypress в основном позволяет вам наложить любую функциональность на любой пин, что намного круче.

Однако и здесь есть свои нюансы. Например, мне требовалось устройство с поддержкой USB, которое могло бы работать с I2C / UART / SPI и около 20 GPIO. Мне он тоже был нужен за 1 доллар. Это легко обнаружить, НО, что USB-способность имеет тенденцию быть USB в периферийном режиме, а не в режиме хоста (поскольку здесь вам нужно устройство USB OTG).

Для микроконтроллеров USB OTG вы планируете добавить как минимум еще 1 доллар. В моей ситуации, в частности, мне требовалось одно периферийное USB-устройство и одно USB-OTG, поэтому я столкнулся с проблемой… Доплачиваю ли я дополнительно и сохраняю только 1 тип MCU в моем дизайне, или я предпочитаю самую низкую стоимость спецификации в пользу необходимо поддерживать 2 разных микроконтроллера.Ага, решение непростое.

В данном случае мы просто полностью отказались от требований USB, и нам никогда не приходилось принимать это решение!

Совет от профессионалов: всегда добавляйте 1 UART в дополнение к тому, сколько требуется для вашего дизайна – это можно использовать в качестве CLI / логгера, и это абсолютно бесценно.

Упаковка

Мех …

48, 64, 100… Все сводится к количеству вводов-выводов, необходимых для GPIO, I2C, SPI, АЦП, ЦАП и т. Д. Упаковка – это скорее результат требований, чем то, о чем нужно активно думать.Для простоты выберите наименьшее количество контактов, которое удовлетворяет вашим требованиям к вводу-выводу (плюс немного подстраховаться с помощью пары дополнительных GPIO для изменения требований или отладки).

Я думаю, единственное, что здесь нужно учитывать, – это искать ли вы BGA против QFN против… Моя основная рекомендация – держаться подальше от BGA, потому что на них невероятно сложно отладить плохие соединения (невозможно сделать визуально).

Соображения по программному обеспечению

Старые школьные разработчики сочтут меня болваном, но мне нравятся хорошие IDE, платформы, совместимые с компилятором GCC, и разная поддержка программного обеспечения, например STCube или Cypress’s Создатель PSOC .

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

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

Служба поддержки

В частности… Документация, поддержка производителя и примеры сообщества.

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

Поддержка производителя – это хорошо, но поддержка сообщества – это то место, где вы слышите о настоящих проблемах и всех грязных секретах.

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

И прежде чем кто-нибудь засмеется над этим подходом, я хотел бы, чтобы они потратили 12–16 недель на общение с ST о недавно обнаруженных ошибках в своих чипах, а затем сказали мне, что этот подход не лучше, безопаснее и эффективнее по времени.

Фактор горя

Сколько горя причинит мне этот чип?

Это может быть больше связано с датчиками и коммуникационными модулями (например, BLE), но, например, сколько внешних компонентов мне нужно для запуска и работы этого модуля. Или, может быть, сколько шаблонного кода мне нужно, чтобы он заработал? Насколько актуальны примеры для этого чипа?

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

Я просто хочу знать, что с этим чипом мне стало легче, а не труднее.Кажется очевидным, но на самом деле это не так.

И последнее, но не менее важное: размер Flash.

Это невероятно важно (также должно быть в рамках «аппаратных соображений»), и я оставил его напоследок, поскольку это не так просто, как думают люди.

По мере увеличения размера вспышки обычно увеличивается количество контактов и цена, поэтому все взаимосвязано (например, найдите мне микроконтроллер флэш-памяти 32k со 144 контактами – этого не произойдет). SRAM тоже имеет значение, но я обычно немного махаю рукой, предполагая, что если мое приложение умещается во флэш-памяти, я заставлю его работать в выделенной оперативной памяти.

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

Если вы используете RTOS (например, FreeRTOS ), ожидайте, что эти требования немного вырастут, так как выполнение всех операций требует больше места и оперативной памяти. Однако, возвращаясь к хорошему набору инструментов – используя STCube (или аналогичный) для подготовки ваших задач, очередей и семафоров – он может вычислить минимально необходимую кучу до времени компиляции, так что у вас есть немедленная базовая оценка того, какой размер RAM вам нужен.

Затем удвойте это

Одна вещь, о которой часто забывают… Беспроводные обновления.

Допустим, вы можете выполнять обновления OTA с помощью Wi-Fi или Bluetooth … Хорошо, хорошо, а где будет находиться это приложение для резервного копирования?

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

Итак, теперь вам нужно иметь место на MCU для вашего приложения, а также ваш загрузчик (обычно небольшой), а затем, если вы храните приложение резервного копирования в своем MCU, вам нужно удвоить размер приложения, чтобы получить общий размер флэш-памяти. .

Некоторые люди обходятся без этого, сначала стирая основное приложение, а затем помещая свое новое приложение в это пространство (Nordic называет это Приложения «единый банк» в их BLE-компонентах).

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

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

Благодаря двойному банку в случае сбоя обновления их устройство все еще работает на 100%, но только с предыдущей версией.

Наконец-то … я не фанат СТ

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

Кроме того, STCube великолепен, и я добился успеха, используя бесплатный Системная рабочая среда IDE / компилятор (без ограничений по размеру кода).

Но, как я уже упоминал в других сообщениях, мне жаль всех, кому приходится напрямую взаимодействовать с ST для получения поддержки, потому что гарантировано, что в результате ваш проект будет отставать от графика на 6-12 недель.

Мое изображение функции Трехъядерный процессор Infineon устройство, с которым я скоро поиграюсь – но это в основном для автомобильных приложений (и стоит дорого).

Я много слышал о Freescale (эээ… NXP) Kinetis линейку продуктов, но я использовал ее всего пару раз.

Я сделал несколько приложений, используя Atmel’s (эээ… Microchip’s) SAM D серия, которая была в порядке. Откровенно говоря, предложения Атмела меня не слишком впечатлили.

В противном случае многие проекты переходят (переехали) на использование микроконтроллеров, встроенных в устройства BLE или Wifi (что я тоже предпочитаю из соображений стоимости).Cypress’s PSOC / PROC BLE и Nordic’s NRF52 линии являются хорошими примерами этого.

Просто остерегайтесь некоторых необычных проблем, которые могут возникнуть при использовании встроенных микроконтроллеров. Например, убедитесь, что вы хорошо понимаете, как базовый RF-стек и код вашего приложения распределяют рабочую нагрузку (с временным интервалом? Управляемым прерываниями?). Кроме того, будьте осторожны, чтобы код вашего приложения не мешал базовому стеку (например, длинный цикл жесткого опроса или доступ к флэш-памяти, которые могут повлиять на синхронизацию стека BLE).

В любом случае, это все для меня на этой неделе – на следующей неделе, та ценовая напыщенная речь, которую я обещал!

Как узнать о микроконтроллерах? | от Pallav Aggarwal

Плата на базе STM32F051, разработанная с использованием Altium

Многие студенты-инженеры и инженеры тратят слишком много времени, спрашивая, какой микроконтроллер (MCU) лучше всего подходит для изучения. Я предлагаю выбрать любой и начать, а не просто спрашивать.

Цель этой статьи – дать направление новичку, как начать, какие все темы следует осветить во время изучения микроконтроллеров.

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

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

Справочная книга: Микроконтроллер 8051 и встроенные системы: использование сборки и C Мухаммеда Али Мазиди (автор) для основных MCU и концепций программирования. Я ссылался на ту же книгу в 2003–2005 годах, когда проходил обучение в Emtech Foundation, Нью-Дели, под руководством г-на Навина Кумара. Позже моими лучшими наставниками стали Google, YouTube сайты :). Вам также следует изучить основы программирования на C, прежде чем приступить к практическим занятиям.Предлагаю всеми любимый на все времена Let Us C Яшаванта Канеткара (Автор).

Теперь выберите любую макетную плату микроконтроллера по вашему выбору. Если мне нужно выбрать, я возьму любую плату STMicroelectronics STM32 Discovery или Microchip плату разработки микроконтроллеров серии PIC16 / 18F , поскольку они вполне доступны по цене и дают вам доступ к возможностям ввода-вывода / интерфейсов с бортовой программатор и отладчик. Вам нужно будет купить другие модули для других интерфейсов, если они еще не доступны на плате разработки MCU.

Изображение предоставлено: Поиск изображений Google

Теперь изучите каждый из следующих основных интерфейсов один за другим (схема приложения и программирование). Для каждого интерфейса я упомянул несколько примеров устройств, которые можно использовать для обучения, я бы посоветовал вам связать их все:

  • GPIO (вывод – медленный, быстрый, ввод – объединение, прерывание) – светодиоды, зуммер , Клавиши, матричная клавиатура, поворотный кодировщик, сегментный дисплей, символьный ЖК-дисплей, графический ЖК-дисплей, цветной TFT-дисплей.
  • Аналого-цифровой преобразователь (АЦП) – считывание напряжения с потенциометра, LM35, LDR и т. Д.
  • I2C – EEPROM, RTC, датчики акселерометра и т. Д.
  • SPI – FLASH / FRAM память, дисплеи на основе SPI, такие как графический ЖК-дисплей, TFT-дисплей.
  • UART – отправка и получение данных на / с ПК (RS232), RS485, GSM / GPRS-модем, модуль WiFi, модуль GPS и т. Д.
  • PWM – Двигатель постоянного тока с использованием H-моста, RGB-светодиода.

После того, как вы приобрели опыт работы с вышеуказанными интерфейсами, вам следует перейти к расширенным интерфейсам (возможно, потребуется использовать ОС), таким как использование DMA, SDIO для интерфейса карты SD / MMC, USB-клиента для связи с ПК, USB-хоста для подключения других USB-устройства, такие как клавиатура, флешка и т. Д., Ethernet, файловая система (FAT32 и т. Д.), Интерфейс командной строки и т. Д.

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

Если вам понравилась моя статья, поддержите меня аплодисментами и поделитесь с друзьями, чтобы они тоже могли ее прочитать.

Еще несколько полезных статей по проектированию встроенных систем доступны здесь.

Я работаю над еще несколькими интересными статьями, поэтому я призываю вас подписаться на меня, вы будете уведомлены, как только будет опубликована новая статья.

Спасибо за внимание. Удачного обучения!

Руководство по микроконтроллерам для начинающих «Adafruit Industries – Создатели, хакеры, художники, дизайнеры и инженеры!

Очень удобное руководство от jenfoxbot обсуждает многие из десятков микроконтроллеров, доступных для людей, интересующихся интерактивной электроникой. Она начинает с вопроса «Что такое микроконтроллер?»

Микроконтроллер – это «простой компьютер», который выполняет одну программу в цикле.Они предназначены для выполнения одной конкретной задачи.

Затем помогает понять различия между микроконтроллерами и Raspberry Pi и другими компьютерами.

Наконец, она обсуждает 10 наиболее распространенных плат, включая Adafruit Circuit Playground Express, Adafruit Flora и Gemma.

Ознакомьтесь с этим Руководством, чтобы узнать больше.

(Ред .: Не рекомендую надолго прикреплять доски к коже, может быть, пришить одну из удобных для шитья к костюму или использовать сумку для переноски ??)

Прекратите макетирование и пайку – немедленно приступайте к изготовлению! Площадка Adafruit Circuit Playground забита светодиодами, датчиками, кнопками, зажимами из кожи аллигатора и многим другим.Создавайте проекты с помощью Circuit Playground за несколько минут с помощью сайта программирования MakeCode с функцией перетаскивания, изучайте информатику с помощью класса CS Discoveries на code.org, переходите в CircuitPython, чтобы изучать Python и оборудование вместе, TinyGO или даже использовать Arduino IDE. Circuit Playground Express – это новейшая и лучшая плата Circuit Playground с поддержкой CircuitPython, MakeCode и Arduino. Он имеет мощный процессор, 10 NeoPixels, мини-динамик, инфракрасный прием и передачу, две кнопки, переключатель, 14 зажимов из кожи аллигатора и множество датчиков: емкостное прикосновение, ИК-приближение, температуру, свет, движение и звук.Вас ждет целый мир электроники и программирования, и он умещается на ладони.

Присоединяйтесь к 30 000+ создателей на каналах Discord Adafruit и станьте частью сообщества! http://adafru.it/discord

Хотите поделиться замечательным проектом? Выставка Electronics Show and Tell проходит каждую среду в 19:00 по восточноевропейскому времени! Чтобы присоединиться, перейдите на YouTube и посмотрите чат в прямом эфире шоу – мы разместим ссылку там.

Присоединяйтесь к нам каждую среду вечером в 20:00 по восточноевропейскому времени на «Спроси инженера»!

Подпишитесь на Adafruit в Instagram, чтобы узнавать о совершенно секретных новых продуктах, о кулуарах и многом другом https: // www.instagram.com/adafruit/

CircuitPython – Самый простой способ программирования микроконтроллеров – CircuitPython.org

Получайте единственную ежедневную рассылку без спама о носимых устройствах, ведении делопроизводства, электронных советах и ​​многом другом! Подпишитесь на AdafruitDaily.com!

Пока комментариев нет.

Извините, форма комментария в настоящее время закрыта.

Руководство для начинающих по созданию электроники с помощью микроконтроллеров – TechPatio

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

Что такое микроконтроллеры?

Микроконтроллер – это простой компьютер на печатной плате. Общие примеры микроконтроллеров включают Raspberry Pi и Arduino. В Интернете можно найти множество электронных устройств, в которых эти устройства используются в качестве ядра. Например, вы можете купить на Amazon игровые консоли, способные играть в ретро-игры с помощью эмуляции на Raspberry Pi.

Более сложные микроконтроллеры находят множество промышленных и производственных применений.

Что с ними делать?

Есть несколько ограничений на то, что вы можете делать с микроконтроллерами. Единственный реальный предел – это ваше воображение. Если вы покупаете готовый микроконтроллер, такой как Raspberry Pi, вы ограничены тем, что он может делать. Однако вы можете разработать свои собственные микроконтроллеры и сделать их на заказ.

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

Что нужно для начала?

Raspberry Pi – самый популярный стартовый комплект для знакомства с микроконтроллерами. На рынке есть и другие. Некоторые из этих других вариантов более специализированы.Разработчики Raspberry Pi планировали сделать его микроконтроллером более общего назначения, который мог бы работать под управлением Linux.

Если вы собираетесь использовать Raspberry Pi в качестве отправной точки, вам также необходимо научиться программировать. Если у вас нет опыта программирования, Code Academy – отличное место для начала. Они предлагают множество языков и предоставляют подробную информацию о вариантах использования для каждого из них.

Дальнейшее развитие

У вас всегда есть возможность серьезно отнестись к созданию электроники.Вы можете заказать практически все через Интернет и даже изготовить компоненты по индивидуальному заказу. Возможности того, что вы можете делать с микроконтроллерами, практически безграничны. Вы даже можете превратить это из хобби в основу законного бизнеса. У людей, которые умеют проектировать микроконтроллеры, есть множество бизнес-возможностей.

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

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

Нравится:

Нравится Загрузка …

Связанные

Теги: Электроника, Микрочип, Микроконтроллер

[fbcomments]

Что такое микроконтроллер 8051?

Микроконтроллеры: Это программируемая интегральная схема (ИС), которая состоит из небольшого ЦП, ОЗУ и контактов ввода / вывода.Микроконтроллеры (MCU) широко используются во многих устройствах.

CPU: Он выполняет обработку и считается разумом микроконтроллера. Давая инструкции MCU, можно связываться с выводами ввода / вывода и управлять ими в соответствии с потребностями.

Память: В ней хранятся инструкции и данные, необходимые микроконтроллеру.

Шина: Он действует как среда связи между компонентами для передачи данных.

8051 Микроконтроллер

После того, как в 1980 году корпорация Intel разработала первый микроконтроллер 8051, было создано несколько мощных вариантов с добавлением АЦП, операционных усилителей и многого другого.Наряду с этим микроконтроллер 8051 имел 16-битную адресную шину для передачи данных, сопровождаемую 8-битной шиной данных для передачи данных для конкретных приложений.

Текущий микроконтроллер относится к 8-битному семейству микроконтроллеров и имеет 128 КБ ОЗУ, 4 КБ ПЗУ, 4 порта, 2 таймера и 1 последовательный порт на одном кристалле. Эти микросхемы легко запрограммировать на языке ассемблера.

Приложение

Микроконтроллеры 8051 широко используются во встроенных системах, аэронавтике, космической технике, системах управления транспортом, робототехнике, связи, автомобилестроении и во многих различных областях.

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

Распиновка и функции микроконтроллера 8051

8051 поставляется в двухрядном корпусе (DIP) и состоит из 40 контактов, то есть 20 контактов с обеих сторон MCU (как показано на рисунке ниже). Все эти 40 контактов предназначены для различных целей и функций ввода / вывода, таких как аналоговое / цифровое чтение-запись, прерывания и последовательная связь.

Схема выводов микроконтроллера 8051

Контакты 1-8: Они называются выводами порта 1 и используются для выполнения простых операций ввода-вывода. Эти выводы можно настроить, изменив их логическое состояние на 0 или 1.

Контакт 9: Он известен как контакт сброса для сброса микроконтроллера. Этот вывод можно использовать для прекращения работы микроконтроллера.

Контакт 10-17: Они называются контактами порта 3. Подобно контактам порта 1, контакты порта 3 используются в качестве универсального порта ввода-вывода вместе с выполнением еще нескольких функций, как описано ниже:

П3.0 (RXD): Это последовательный вывод для приема данных. Он используется для установления последовательной связи для приема данных через входной сигнал.

P3.1 (TXD): Это также последовательный контакт. Он используется для передачи данных через выходной сигнал через последовательный порт.

P3.2 и P3.3: Эти выводы используются для внешних аппаратных прерываний.

P3.4 и P3.5 (T0 и T1): Это выводы таймера, которые могут быть соединены с 16-битным счетчиком.

P3.6: Это контакт записи в память для записи данных во внешнюю память.

P3.7: Это вывод чтения внешней памяти для чтения данных из внешней памяти.

Контакты 18 и 19: Это контакты для внешних генераторов и могут быть подключены к кварцевым генераторам для обеспечения внешней тактовой частоты.

Контакт 20: Это контакт заземления (GND) для подключения заземляющего (отрицательного) провода датчиков и модулей, используемых с микроконтроллером.

Контакты с 21 по 28: Они называются контактами порта 2. Они двунаправленные и используются для взаимодействия внешней памяти с микроконтроллером

.

Вывод 29: Этот вывод известен как включение хранилища программ (PSEN). Он используется для чтения из внешней памяти.

Вывод 30: Этот вывод известен как включение фиксации адреса (ALE). Он используется для различения адресов нескольких ячеек памяти.

Контакт 31: Этот контакт известен как вход внешнего входа (внешний доступ).Он используется для включения и отключения интерфейса внешней памяти.

Контакт 32 – Контакт 39: Это контакты порта 0. Они также двунаправленные и используются как порт ввода-вывода.

Контакт 40 (VCC): Это контакт для подачи питания на цепи с + 5В.

8051 Архитектура

8051 обрабатывает 8-битные данные и является 8-битным микроконтроллером. Вот блок-схема, показывающая архитектуру микроконтроллера. Согласно ему, 8051 состоит из ЦП, ОЗУ, флэш-памяти (EEPROM) и ввода-вывода.

Блок-схема микроконтроллера 8051 (Изображение предоставлено Wikipedia)

Их периферийные устройства обмениваются данными с помощью внутренней шины данных, которая является 8-битной шиной данных.

Характеристики микроконтроллера 8051:

  • 8-битный ЦП с двумя регистрами A (ACC или аккумулятор) и B
  • Внутренняя флэш-память 8 КБ
  • 32 ввода / вывода
  • Внутреннее ОЗУ 256 байт
  • 8-битный указатель стека
  • 16-битный счетчик программ и указатель данных (DPTR)
  • Два 16-битных таймера, T0 и T1
  • Два внешних и три внутренних прерывания
  • Генератор и тактовая схема
  • Передатчик приемника последовательных данных

Микроконтроллер

для начинающих – projectiot123 Технологический информационный веб-сайт по всему миру

[otw_is sidebar = otw-sidebar-1] Я очень рад начать новую серию статей, в которых я расскажу о мельчайших деталях микроконтроллеров, о том, что такое микроконтроллер, разнице между микроконтроллером и микропроцессорами и, что наиболее важно, об обширных приложениях микроконтроллера.В этой серии статей я постараюсь осветить все подробности микроконтроллеров, касающиеся прошивки и оборудования.

Итак, расслабьтесь, продолжайте читать и наслаждайтесь обучением.

Введение в микроконтроллер:

Если вы увлекаетесь электроникой, вы, должно быть, слышали слово «микроконтроллер» и хотите узнать больше о микроконтроллере, поэтому вы здесь J. Но не волнуйтесь, я буду проще. Итак, самое простое определение микроконтроллера, которое я пришел, состоит в том, что микроконтроллер – это устройство, которое запускает программу для выполнения определенной задачи; задача может заключаться в управлении двигателем, включении и выключении светодиодов или управлении реле и т. д.Думаю о программе! Программа представляет собой набор инструкций, который хранится в памяти кода микроконтроллера, и при включении микроконтроллера он выполняет эту программу и выполняет функцию, изображенную в программе. Большинству из вас должно быть интересно, как программа выполняется в микроконтроллере. Это самый интересный вопрос, который мне когда-либо задавали J. Но пока мы не будем вдаваться в подробности обсуждения выполнения программы, но я бы хотел Я хочу сказать вам, что формальное слово, используемое для описания процесса выполнения программы, – это цикл выполнения.Если кому-то интересно, они могут посмотреть, но я бы посоветовал сначала прочитать эту статью.

Микроконтроллер имеет различные периферийные устройства, доступные на микросхеме, по периферии он ремонтирует различное оборудование, изготовленное на микроконтроллере для различных приложений, например, рассмотрим следующее:

Таймеры:

Схема таймера в микроконтроллере, который является периферийным устройством, используемым для генерации сигнала ШИМ, является одним из важных периферийных устройств.

Прерывания:

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

Сброс при включении питания (PoR):

Еще одним важным периферийным устройством, доступным на микроконтроллере, является схема сброса при включении питания (POR).Это важная схема, в некоторых микроконтроллерах встроена функция Power on Reset, а некоторым приходится полагаться на внешнюю схему Power on Reset, но большинство современных микроконтроллеров имеют встроенную функцию Power on Reset. Я не буду вдаваться в подробности схемы Power on Reset на этом этапе, но следует упомянуть, что схема Power on Reset обеспечивает успешное включение питания микроконтроллера, если схема Power on Reset не смогла сыграть свою роль, тогда микроконтроллер загрузится успешно.

Перегрев Сброс (BoR):

Brown out Reset – еще одно важное периферийное устройство микроконтроллеров; большинство современных микроконтроллеров оснащены схемой сброса неисправности (BOR). Это периферийное устройство обеспечивает безопасную работу микроконтроллера в условиях низкого напряжения.

Интер интегральная схема (I2C):

Как известно большинству из нас, наиболее популярными приложениями микроконтроллера являются встроенные системы.Во встраиваемых приложениях разработчик оборудования обычно сталкивался с ситуацией, когда ему нужно было позволить двум устройствам обмениваться данными. В настоящее время микроконтроллеры оснащены периферийными устройствами для последовательной связи, которые позволяют микроконтроллеру взаимодействовать с другими ИС или модулями. Одним из самых популярных периферийных устройств последовательной связи, доступных в микроконтроллерах, является шина I2C. Шина I2C – это двухпроводная система, один провод используется для отправки / приема данных, а второй – тактовый сигнал, который используется для синхронизации связи.
[otw_is sidebar = otw-sidebar-2]

Универсальный асинхронный приемник / передатчик (UART):

UART – еще одно популярное коммуникационное периферийное устройство, доступное в микроконтроллере, поскольку название предполагает, что UART реализует асинхронную последовательную связь. UART использует два провода: один для отправки данных, другой – для приема.

Последовательный периферийный интерфейс (SPI):

Как и I2C, SPI (последовательный периферийный интерфейс) – это периферийное устройство для синхронной последовательной связи, которое также доступно на большинстве микроконтроллеров.

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

Типы микроконтроллеров: Микроконтроллеры

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

Три самых популярных типа микроконтроллеров:

  • Микроконтроллер AVR.
  • PIC микроконтроллер.
  • Микроконтроллер
  • STM.

Эти микроконтроллеры выпускаются разными производителями и имеют свои сходства и различия. Микроконтроллер разделяет большинство функций, например, все вышеупомянутые типы микроконтроллеров имеют шину Inter Integrated Circuit (I2C), все они имеют последовательный периферийный интерфейс (SPI), все они имеют UART, и другие периферийные устройства также являются общими для этих микроконтроллеров.Основное различие между микроконтроллерами заключается в наборе команд, все вышеупомянутые типы микроконтроллеров имеют уникальный набор команд, поэтому программа, написанная для одного типа микроконтроллера, не может работать на другом типе микроконтроллеров. Одно из основных сходств этих микроконтроллеров заключается в том, что все они основаны на кортексе ARM (Advanced Reduced Instruction Set Computing Machine).

На следующем рисунке показана распиновка микроконтроллера ATMEGA 32.

Программирование микроконтроллера:

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

Микроконтроллер можно запрограммировать различными способами, например, можно запрограммировать микроконтроллер с помощью преобразователя USB в UART, некоторые микроконтроллеры можно запрограммировать с помощью ISP (в системном программировании), некоторые микроконтроллеры также можно запрограммировать с помощью SWD (последовательного интерфейса). Отладка) интерфейс.Аналогичным образом некоторые микроконтроллеры можно программировать с помощью JTAG. Программа для микроконтроллера пишется в редакторе, затем компилируется с помощью компилятора и затем загружается во флэш-память микроконтроллера с помощью соответствующего программного обеспечения. В настоящее время программисты используют интегрированную среду разработки (IDE) для программирования микроконтроллеров, которые включают редактор, компилятор и программист под одной крышей.
[otw_is sidebar = otw-sidebar-2] На следующем рисунке показан переход FTDI, преобразователь USB в последовательный порт, эта коммутационная плата используется для программирования микроконтроллера через UART.

Еще одно устройство программирования – PICKIT, которое используется как системный программатор для программирования микроконтроллера.

Позвольте нам сейчас кратко коснуться цикла выполнения. Как я уже говорил, программа представляет собой набор инструкций, этот набор инструкций при загрузке в микроконтроллер находится в памяти кода микроконтроллера. Каждая ячейка памяти кодовой памяти восьмиразрядного микроконтроллера может хранить байт (8 бит), и ей назначается уникальный адрес. Когда микроконтроллер начинает выполнять программу, программный счетчик микроконтроллера указывает на местоположение адреса кода, а затем извлекает биты, хранящиеся в этом месте.Затем эти двоичные данные вводятся в декодер команд, который декодирует инструкции и позволяет микроконтроллеру выполнить намеченную задачу. Здесь важно отметить, что максимальный размер кода, который может хранить микроконтроллер, зависит от счетчика программ. Кто-нибудь может сказать, как это сделать, войдите в поле для комментариев и позвольте нам обсудить.

Применения микроконтроллеров:

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

Микроконтроллеры

могут быть подключены к другим модулям и, таким образом, найти применение в других областях. Например, если к микроконтроллеру подключен модуль Wi-Fi, он используется в продуктах IoT, например, рассмотрим систему мониторинга теплицы, которая является продуктом с поддержкой Интернета вещей, где микроконтроллер взаимодействует с различными датчиками и собирает информацию об условиях окружающей среды в теплице. . Затем эта информация загружается в URL-адрес модуля WiFi, подключенного к микроконтроллеру.Точно так же система наблюдения – это тоже продукт IoT, основанный на микроконтроллере, подключенном к модулю WiFi.

Подобно модулю WiFi, микроконтроллер при взаимодействии с модулем с поддержкой BLE (Bluetooth Low Energy) открывает новые возможности для продуктов. Например, микроконтроллер, соединенный с чипом BLE, находит приложения, носимые продукты, портативные продукты для мониторинга состояния здоровья. Одно из самых популярных приложений Bluetooth Low Energy – это маяки.

Микроконтроллер

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

Блок-схема микроконтроллера:

Как упоминалось во вводной главе, микроконтроллер имеет несколько периферийных устройств, каждое из которых имеет уникальный набор приложений. Давайте теперь посмотрим на архитектурную блок-схему микроконтроллера.
[otw_is sidebar = otw-sidebar-3] Подробная архитектурная блок-схема микроконтроллера AVR показана на следующем рисунке:

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

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

Полное пошаговое руководство по микроконтроллеру для начинающих

Связанные

Платы и наборы для микропроцессоров

для начинающих для детей и подростков | Tech Age Kids

2013, 13,3d печать, 5,3DTin, 2, аксессуары, 1, мероприятия, 1, adafruit, 1, приключенческие игры, 1, amazon, 12, amazon fire, 2, amazon prime, 1, android , 6, злые птицы, 1, анимация, 6, анки, 1, приложение, 18, игрушка приложения, 4, игрушки приложения, 8, приложения, 1, яблоко, 1, приложения, 25, arcbotics, 1, архитектура, 4, arckit, 9, arduino, 33, арт, 1, искусственный интеллект, 5, космонавты, 2, астрономия, 1, дополненная реальность, 11, автомат, 1, награды, 1, боевые боты, 2, боевые роботы, 2, перед сном, 1, большие дети, 99, большие планшеты, 1, bigtrak, 1, велосипед, 1, двоичный, 1, день рождения, 4, битбокс, 1, черная пятница, 2, блочно, 1, ведение блога, 1, bloxels, 1, bluetooth , 2, настольные игры, 7, книги, 34, логическая коробка, 1, макет, 2, кирпичи, 1, brixo, 1, руководство по покупке, 5, камера, 4, камеры, 1, карточная игра, 1, карьера, 2 , catroid, 1, праздник, 1, сотовый телефон, 1, ces, 2, химия, 2, шахматы, 1, рождество, 42, кубики схемы, 1, игровая площадка, 8, писец схемы, 10, уборка, 1, лазание, 1, кодовые клубы, 1, столбец кода, 1, ошибка кода, 1, кодировщик, 2, кодирование, 169, когнитивное обучение, 1, общение, 1, сравнение, 1, соревнование / проблемы, 9, вычислительное мышление ing, 3, компьютер, 2, компьютерные игры, 1, информатика, 2, компьютерное зрение, 2, компьютеры, 1, вычисления, 1, кондуктивный пластилин, 2, подключенные игрушки, 7, строительство, 40, разговорный ai, 1, cozmo, 1, ремесло, 34, резак для рукоделия, 3, креативное мышление, 1, творчество, 3, вязание крючком, 1, краудфандинг, 119, css, 1, детеныши, 1, любопытство, 1, любопытная фишка, 1, киберпонедельник, 1, папы, 1, данные, 1, сделки, 4, притоны, 2, дизайн, 10, процесс проектирования, 1, дизайн-мышление, 7, цифровое воспитание, 2, цифровые навыки, 13, инвалидность, 1, бесконечность диснея, 1 , dog tech, 1, dolls, 2, drawing, 2, drones, 2, duinokit, 1, earth day, 1, Easter, 4, ebooks, 11, eco, 1, edblocks, 1, edison, 5, edtech, 1 , образование, 79, египет, 1, электричество, 1, электронные домашние животные, 2, электронные игрушки, 2, электроника, 141, комплект электроники, 3, комплекты электроники, 1, электроника, 1, элементарный, 1, elenco, 2, энергия , 1, инженерия, 17, развлечения, 1, электронная книга, 1, электронные книги, 6, безопасность, 1, побег из комнаты, 1, событие, 21, электронная почта, 1, упражнение, 4, семья, 12, семейные технологии, 2, день отца, 1, фестиваль кода, 1, фантастика, 1, фитнес-трекер, 2, флотилия, 3, блок-схемы, 1, флаттербай фея, 1, полет, 1, сила пробуждение, 2, форс-пятница, 2, будущее, 2, гаджеты, 36, игры, 35, игровая консоль, 2, игровые консоли, 8, игры, 3, руководство по подаркам, 53, подарки, 12, девушки, 23, раздача, 4, светиться в темноте, 1, google, 1, грейс хоппер, 1, роща, 1, hackaball, 2, hacksoton, 1, хэллоуин, 12, костюмы на хэллоуин, 1, оборудование, 2, наушники, 1, здоровье, 1 , hexbug, 3, hexbug aquabots, 1, проект hexbug, 1, старшая школа, 1, история, 26, дом, 1, домашнее обучение, 2, домашнее обучение, 4, горячие игрушки, 7, час кода, 3, html, 4, гуманоид, 4, ICT, 1, покупка приложений, 1, indiegogo, 13, отраслевое событие, 9, innotab, 5, innotab 3,3, innotab 3s, 1, доступ в Интернет, 1, интервью, 1, изобретение, 4, ios, 3, IoT, 4, ipad, 7, ipad mini, 1, iphone, 2, жаккард, 1, япония, 1, java, 1, javascript, 5, k’nex, 7, k’nex robotics, 1, кано, 8, клавиатура, 1, кикстартер, 91, дети, 3, разжечь, 5, разжечь огонь, 8, комплект, 2, комплекты, 5, коду, 1, кубо, 1, принтер этикеток, 1, языки, 1, портативный компьютер, 1, ноутбуки, 1, последняя минута, 1, прыжок, 1, чехарда, 2, leappad, 7, leappad 2,3, leappad ultra, 3, leappad2,1, leapreader, 1, обучение, 5, учебные ресурсы, 5, обучающий планшет, 2, обучающие планшеты, 9, светодиоды, 2, lego, 36, lego boos t, 1, цепные реакции lego, 1, lego mindstorms ev3,5, силовые функции lego, 2, lego technic, 5, lego wedo, 2, давайте начнем кодировать, 1, огни, 1, искатели света, 1, маленькие дети, 110 , littlebits, 16, logiblocs, 1, логика, 3, логическое мышление, 4, ткацкий станок, 1, машины, 1, магнитный, 1, make it, 2, makeblock, 16, makedo, 1, maker, 6, makey makey, 6, make, 54, mardles, 1, mars, 1, марсоход, 1, marty, 1, math, 3, maths, 1, mbot, 6, mbot ranger, 1, me arm, 1, meccano, 6, meccanoid , 5, меканоид 2.0,1, слияние vr, 1, мяуза, 1, майкл фарадей, 1, micro: бит, 9, микробит, 6, микроконтроллер, 5, микроскоп, 1, microsoft, 2, средняя школа, 6, миль келли, 1, mindstorms, 3, minecraft, 21, моды minecraft, 1, смешанная реальность, 1, мобильный, 1, модульная электроника, 2, университет монстров, 1, азбука Морзе, 2, день матери, 4, захват движения, 1, моторы, 2 , mover kit, 3, movie, 1, movies, 4, mu, 1, mu toys, 1, munzee, 1, music, 10, my first robot, 2, национальный день собаки, 1, природа, 1, новый год, 1, новости, 169, кодирование новостей, 1, никола тесла, 1, nintendo, 2, переключатель nintendo, 3, ohbot, 3, олли, 3, в сети, 1, мнение, 19, оригами, 1, osmo, 4 , на открытом воздухе, 13, уя, 1, ozobot, 10, papercraft, 3, родительский контроль, 2, воспитание детей, 34, попугай, 1, ПК, 1, люди, 8, зоотовары, 2, домашние животные, 3, телефон, 1 , фотография, 1, фотон, 1, физика, 3, день пи, 1, выбор, 2, pimoroni, 1, pinoccio, 1, набор пикселей, 1, pixelart, 4, play, 2, playstation 4,3, плезмо, 1, карманный код, 1, карманные деньги, 1, покемон, 4, покемон го, 4, опрос, 1, предварительный заказ, 1, дети дошкольного возраста, 1, предыстория, 1, дошкольники, 41, начальная школа, 41, для печати, 1, продукты, 34, профессор эйнштейн, 1, программирование, 15, проект, 102, проекты, 11 , головоломки, 4, питон, 10, гонки, 1, raspberry pi, 29, чтение, 12, reivew, 1, дистанционное управление, 1, исследование, 3, ресурс, 34, ресурсы, 2, ретро, ​​2, обзор, 219 , права, 1, робот, 10, робот-собака, 1, робот-рыба, 1, войны роботов, 3, ROBOTERRA, 1, робототехника, 1, робототехника, 32, роботы, 140, ролевые модели, 1, ролевая игра, 1, ромо, 1, ромотив, 1, корень, 1, ровер, 1, безопасность, 2, sam labs, 6, samuel morse, 1, песочница, 1, школы, 3, наука, 16, царапина, 44, скретчер, 2, время экрана, 2, без экрана, 15, экраны, 1, датчики, 5, сервоприводы, 1, simbrix, 7, навыки, 1, skylanders, 3, нагнетатели skylanders, 1, сила обмена skylanders, 1, умные ручки, 1, смартфон , 1, умные часы, 1, схемы привязки, 2, социальные сети, 1, солнечная энергия, 2, пайка, 2, sonic pi, 1, sony koov, 1, звук, 3, пробел, 8, спарки, 2, динамик, 3, синтез речи, 1, сферо, 12, сферо мини, 1, паук, 2, звездные войны, 6, звезды, 1, STEAM, 1, стержень, 10, стикбот, 1, остановка движения, 2, студия остановки движения, 1, хранилище, 1, история, 2, соломенные пчелы, 2, студенты, 1, подписка, 5, подписки, 1, sugru, 1, лето, 7, swift, 1, планшет, 2, планшеты, 23, материальное кодирование, 2 , технология, 3, технический век, 1, техническое ремесло, 4, технология плохая, 7, технология хорошо, 4, технические игрушки, 21, технологии спасут нас, 10, технологии, 2, технологии спасут нас, 3, подростки, 61, teknikio, 3, tekno, 1, teksta, 1, tenka labs, 1, тесла , 1, текстиль, 1, thames & kosmos, 2, экстраординарные, 1, тимбернерс ли, 1, tinkercad, 1, tinybop, 3, toddlers, 8, toot-toot, 1, top pick, 4, touch, 1 , игрушка, 1, игрушки, 5, путешествия, 1, TV, 1, tween, 1, tweens, 118, tynker, 2, typing, 1, ux, 1, cars, 1, videos, 3, view-master, 1 , просмотры, 10, виртуальная реальность, 8, голосовые помощники, 1, распознавание голоса, 2, vtech, 8, веб, 2, веб-сайты, 1, Wi-Fi, 1, Wi-Fi, 2, Wi-Fi, 2, окна 8,1, чудо-мастерская, 9, вауви, 2, письмо, 7, письмо.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *