Вы хотите освоить современную область электроники и научиться программировать микроконтроллеры?

И не просто научиться программировать, а научиться ПОНИМАТЬ как микроконтроллеры работают НА УРОВНЕ МАШИННЫХ КОДОВ И ОТДЕЛЬНЫХ ЭЛЕКТРИЧЕСКИХ СИГНАЛОВ

Здесь Есть Все, что бы Самому Начать Разрабатывать Собственные Электронные Устройства на Микроконтроллерах

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

 

Меня зовут Ceливaнoв Мaкcим. И если Вас интересует электроника, программирование и микроконтроллеры, и Вы хотите пополнить свой багаж знаний в этих областях, то, Вы попали на нужную страницу!

 

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

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

Кто пробовал, тот меня поймет.

 

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

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

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

 

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

 

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

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

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

 

 

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

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

 

 

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

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

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

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

 

 

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

 

 

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

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

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

 

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

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

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

 

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

 

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

 

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

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

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

 

Но,

 

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

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

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

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

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

 

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

 

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

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

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

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

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

 

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

Теоретические основы микроконтроллеров. Отличие микроконтроллеров от процессоров, компьютеров, микрокомпьютеров и промышленных контроллеров.

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

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

Краткое ознакомление с архитектурой и командами микроконтроллеров AVR. Разбор файла описаний микроконтроллера. Написание первой программы. Трансляция программы и получение файла прошивки.

Разбор содержимого файла прошивки и коррекция работы программы при помощи редактирования отдельных байтов hex-файла.

Подробный разбор среды программирования AVR Studio и среды отладки AVR Simulator. Обзор программы PROTEUS.

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

Представление отрицательных двоичных чисел. Понятие дополнения до 2, дополнения до 1, дополнительного кода и обратного кода.

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

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

Представление отрицательных двоичных чисел. Понятие дополнения до 2, дополнения до 1, дополнительного кода и обратного кода.

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

Работа с 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

“... у Вас просто талант учителя.”

“...хочу сказать ОГРОМНОЕ спасибо за ваш труд и основательный подход! Очень редко встречаются люди,

которым важна суть процессов, а не поверхностное знание - а вы еще и курс сделали! Премного благодарен!”

 

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

 

Дмитрий, Россия.

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

“... спасибо за глубину изложения в видео... ”

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

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

И чем больше я читал, тем страшнее становилось. Я начал понимать, что программирование микроконтроллеров - это тёмный лес. И тут мне повезло - я случайно наткнулся на этот курс.

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

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

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

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

 

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

 

 

Александр Лаврентьев, Россия.

"Автор — профессионал высокого класса... "

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

Без всякого стеснения могу сказать, что данный курс уникален, и аналогов ему нет. Запись всех видеоуроков у меня по времени заняло 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"*/

Программа написана для ассемблера среды AVR Studio (Atmel Studio). Выполнение начинается со строки 8. В строке 14 происходит переход на строку 18. Далее подряд выполняются команды в строках с 18 по 32. В строке 32 происходит переход на строку 35. Последующее выполнение программы происходит в бесконечном цикле в строках 34, 35 и 36.

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

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

Связаться с автором можно либо по телефону +7 917 791 06 54, либо через e-mail: support@mastercpu.ru или через форму обратной связи (справа на странице)

Данное учебное пособие предназначено исключительно для частного пользования. Учебное пособие запрещено к приобретению в коллективное пользование.

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