Универсальный внешний накопитель для всех 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

Содержание

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

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

Раздел: Основы схемотехники Название: Уроки по микроэлектронике. Урок 2 часть 1

Урок-консультация по материалам книги "Самоучитель разработчика устройств на микроконтроллерах AVR". Консультацию ведет автор книги Белов Александр. Урок 2. Триггеры, счетчики, регистры, таймеры, дешифраторы, мультиплексоры, простейшая память. Подробнее >>>

Автор: Александр Белов

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

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

Раздел: Основы схемотехники Название: Уроки по микроэлектронике. Урок 2 часть 2

Урок-консультация по материалам книги "Самоучитель разработчика устройств на микроконтроллерах AVR". Консультацию ведет автор книги Белов Александр. Урок 2. Триггеры, счетчики, регистры, таймеры, дешифраторы, мультиплексоры, простейшая память. Подробнее >>>

Автор: Александр Белов

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

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

Раздел: Основы схемотехники Название: Уроки по микроэлектронике. Урок 3 часть 1

Удаленный урок-консультация по материалам книги "Самоучитель разработчика устройств на микроконтроллерах AVR". Консультацию ведет автор книги Белов Александр. Урок 3. Типовая схема микропроцессорного устройства. Подробнее >>>

Автор: Александр Белов

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

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

Раздел: Основы схемотехники Название: Уроки по микроэлектронике. Урок 3 часть 2

Удаленный урок-консультация по материалам книги "Самоучитель разработчика устройств на микроконтроллерах AVR". Консультацию ведет автор книги Белов Александр. Урок 3. Типовая схема микропроцессорного устройства. Подробнее >>>

Автор: Александр Белов

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

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

Раздел: Основы схемотехники Название: Уроки по микроэлектронике. Урок 2 часть 3

Удаленный урок-консультация по материалам книги "Самоучитель разработчика устройств на микроконтроллерах AVR". Консультацию ведет автор книги Белов Александр. Урок 3. Типовая схема микропроцессорного устройства. Подробнее >>>

Автор: Александр Белов

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

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

Раздел: Основы схемотехники Название: Уроки по микроэлектронике. Урок 4 часть 1

Удаленный урок-консультация по материалам книги "Самоучитель разработчика устройств на микроконтроллерах AVR". Консультацию через Skype ведет автор книги Белов Александр. Урок 4. Тема: команды микропроцессора, система команд, виды команд, виды адресации. Подробнее >>>

Автор: Александр Белов

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

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

Раздел: Основы схемотехники Название: Уроки по микроэлектронике. Урок 4 часть 2

Удаленный урок-консультация по материалам книги "Самоучитель разработчика устройств на микроконтроллерах AVR". Консультацию через Skype ведет автор книги Белов Александр. Урок 4. Тема: команды микропроцессора, система команд, виды команд, виды адресации. Подробнее >>>

Автор: Александр Белов

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

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

Раздел: Основы схемотехники Название: Уроки по микроэлектронике. Урок 4 часть 3

Удаленный урок-консультация по материалам книги "Самоучитель разработчика устройств на микроконтроллерах AVR". Консультацию через Skype ведет автор книги Белов Александр. Урок 4. Тема: команды микропроцессора, система команд, виды команд, виды адресации. Подробнее >>>

Автор: Александр Белов

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

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

Раздел: Основы схемотехники Название: Уроки по микроэлектронике. Урок 5 часть 1

Удаленный урок-консультация по материалам книги "Самоучитель разработчика устройств на микроконтроллерах AVR". Консультацию через Skype ведет автор книги Белов Александр. Урок 5 (часть 1). Тема: Система прерываний микропроцессора, прямой доступ к памяти. Подробнее >>>

Автор: Александр Белов

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

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

Раздел: Основы схемотехники Название: Уроки по микроэлектронике. Урок 5 часть 2

Удаленный урок-консультация по материалам книги "Самоучитель разработчика устройств на микроконтроллерах AVR". Консультацию через Skype ведет автор книги Белов Александр. Урок 5 (часть 1). Тема: Система прерываний микропроцессора, прямой доступ к памяти. Подробнее >>>

Автор: Александр Белов

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

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

Раздел: Основы схемотехники Название: Уроки по микроэлектронике. Урок 5 часть 3

Удаленный урок-консультация по материалам книги "Самоучитель разработчика устройств на микроконтроллерах AVR". Консультацию через Skype ведет автор книги Белов Александр. Урок 5 (часть 1). Тема: Система прерываний микропроцессора, прямой доступ к памяти. Подробнее >>>

Автор: Александр Белов

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

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

Раздел: Программирование МК AVR Название: Программирование микроконтроллеров с нуля

Обзор микроконтроллеров ATMEL на ядре AVR. Типы корпусов. Микроконтроллер ATmega8515, Выводы, Программатор. Подключаем USB программатор и нагрузку. Записываем программу в микроконтроллер. Прошиваем микроконтроллер через LPT порт. Стартовые наборы для изучения микроконтроллеров. Подробнее >>>

Автор: Константин Кубриков

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

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

Раздел: Программирование МК AVR Название: Программирование микроконтроллеров Atmel. Первые шаги

В видео представлены этапы разработки и программирования микроконтроллеров фирмы Atmel. Материал будет полезен начинающим любителям электроники. Подробнее >>>

Автор: Андрей Чиж

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

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

Раздел: Программирование МК AVR Название: Программирование микроконтроллеров (AVRka.ru)

Весь материал разбит на 10 уроков. В каждом уроке автор рассматривает различные аспекты и тонкости программирования микроконтроллеров Atmel. Подробнее >>>

Автор: Алексей Коробейников

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

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

Раздел: Программирование МК AVR Название: AVR-Микроконтроллеры, экспресс курс (часть [1/2])

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

Автор: ffliar

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

Дата добавления: 25. 06.2013

Раздел: Программирование МК AVR Название: AVR-Микроконтроллеры, экспресс курс (часть [2/2])

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

Автор: ffliar

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

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

Раздел: Программирование МК AVR Название: Как перенести проект из AVR Studio 4 в Atmel Studio 6. 0 (Урок 1)

Серия уроков по изучению программы AVR Studio 6.0. Создаем первую программу . Переносим раннее созданный проект из AVR Studio4 в Atmel Studio 6.0. Первая программа. Подробнее >>>

Автор: Александр Писанец

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

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

Раздел: Программирование МК AVR Название: Микроконтроллеры avr для начинающих в Atmel Studio

Avr для начинающих по программированию в Atmel Studio. Расcматриваем коментарии в AVR Studio. Обучаем русскому языку AVR Studio 6.0 Подробнее >>>

Автор: Александр Писанец

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

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

Раздел: Программирование МК AVR Название: AVR для начинающих "Учимся отлаживать проект в программе Atmel Studio (Урок 3)"

Avr для начинающих по программированию в AVR Studio. Урок будет полезен кто программирует на микроконтроллерах AVR. Тема данного урока 'разбераем работу avr studio simulator'. Подробнее >>>

Автор: Александр Писанец

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

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

Раздел: Программирование МК AVR Название: Программирование avr (Урок 4)

Avr для начинающих по программированию avr в Atmel Studio. Урок будет полезен кто начинает осваивать программирование avr . Тема данного урока 'разбираем работу avr studio симулятор' (Часть 2) Подробнее >>>

Автор: Александр Писанец

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

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

Раздел: Программирование МК AVR Название: Программирование avr микроконтроллеров в среде Atmel Studio

Программирование avr микроконтроллеров в среде Atmel Studio. Разбираем возможности Atmel Studio шаг за шагом. Подробнее >>>

Автор: Александр Писанец

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

Дата добавления: 25. 06.2013

Раздел: Программирование МК AVR Название: Программирование микроконтроллеров avr в Atmel Studio

Программирование микроконтроллеров avr в Atmel Studio. Видео урок для начинающих AVR Programming"Учимся создавать библиотеки в Atmel Studio". Подробнее >>>

Автор: Александр Писанец

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

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

Раздел: Программирование МК AVR Название: Программирование avr для начинающих в программе Atmel Studio

Программирование avr в программе Atmel Studio. Видео будет полезно для начинающих осваивать микроконтроллеры фирмы Atmel. Тема видео урока "как загрузить hex. файл и считать с микропроцессора". Подробнее >>>

Автор: Александр Писанец

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

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

Раздел: Конструирование Название: Изготовление печатных плат в домашних условиях (ч-1)

Изготовление печатных плат в домашних условиях: - лужение сплавом Розе, - изготовление переходника SMD(SOIC) - DIP Подробнее >>>

Автор: Telek2000

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

Дата добавления: 25. 06.2013

Раздел: Конструирование Название: Изготовление печатных плат в домашних условиях (ч-2)

Изготовление печатных плат в домашних условиях: - лужение сплавом Розе, - изготовление переходника SMD(SOIC) - DIP Подробнее >>>

Автор: Telek2000

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

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

Раздел: Программирование МК AVR Название: Внешние прерывания в микроконтроллерах

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

Автор: Константин Кубриков

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

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

Раздел: Программирование МК AVR Название: Программирование на си для микроконтроллеры avr ( c для avr "операторы цикла")

Видео уроки по программированию для начинающих avr микроконтроллеры на си. В программе atmel studio или avr studio. Тема видео урока "операторы цикла" Подробнее >>>

Автор: Александр Писанец

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

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

Раздел: Программирование МК AVR Название: Программирование микроконтроллеров "Урок 1"

Программирование avr микроконтроллеров для начинающих. Тема урока: что такое байт, бит, системы исчисления. Подробнее >>>

Автор: Александр Писанец

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

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

Раздел: Программирование МК AVR Название: Микроконтроллеры avr для начинающих "Урок 2"

Avr микроконтроллеры для начинающих программировать в программе AtmelStudio. Зажигаем светодиод. Тема видео урока : порты ввода вывода в микроконтроллере atmega 16. Подробнее >>>

Автор: Александр Писанец

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

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

Раздел: Программирование МК AVR Название: Программирование микроконтроллеров для начинающих "Урок 3"

Микроконтроллеры AVR для начинающих. Урок 3 тема: Битовые операции и особенности компилятора в atmel studio. Подробнее >>>

Автор: Александр Писанец

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

Дата добавления: 13. 10.2014

Раздел: Программирование МК AVR Название: Микроконтроллеры avr фирмы Atmel для начинающих "Урок 4"

Avr микроконтроллеры программирование для начинающих в программе Atmel Studio.Тема урока : "как работает прерывания в микроконтроллере atmega 16. Общие понятия для начинающих программировать микроконтроллеры. Подробнее >>>

Автор: Александр Писанец

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

Дата добавления: 13. 10.2014

Раздел: Программирование МК AVR Название: Программирование avr микроконтроллеров в среде Atmel Studio "Урок7" - таймер

Программирование микроконтроллеров avr для начинающих в среде Atmel Studio.Тема урока: Таймер Т0 нормальный режим и сброс при совпадении в Atmega 16. Данные уроки нацелены на аудиторию начинающих программировать контроллеры avr фирмы Atmel. Уроки помогут разобраться с внутренней периферией микроконтроллера Atmega 16. Все примеры рассмотрены в программе Atmel Studio. Подробнее >>>

Автор: Александр Писанец

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

Дата добавления: 13. 10.2014

Раздел: Программирование МК AVR Название: Программирование микроконтроллеров avr для начинающих "Урок 8"

Avr микроконтроллеры для начинающих в программе Atmel Studio . Teма урока: бегущий светодиод на Atmega 16 без использования delay. Разберемся как делать свои паузы с помощью таймера. Подробнее >>>

Автор: Александр Писанец

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

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

Раздел: Программирование МК AVR Название: Микроконтроллеры avr для начинающих "Урок9" атомарные операции

Программирование микроконтроллеров avr для начинающих. В данном видео уроке рассмотрим что такое атомарные операции в программе atmel studio. И с помощью простого примера рассмотрим нюансы связаны с ними. Подробнее >>>

Автор: Александр Писанец

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

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

Раздел: Программирование МК AVR Название: Программирование микроконтроллеров "Урок10" LED индикатор на Atmege

Программирование микроконтроллеров avr для начинающих. Тема: Подключение семисегментного индикатора LED к микроконтроллеру Atmega 16. Подробнее >>>

Автор: Александр Писанец

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

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

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

- GreenChip.com.ua

В этом учебном курсе по avr я постарался описать все самое основное для начинающих программировать микроконтроллеры avr. Все примеры построены на микроконтроллере atmega8. Это значит, что для повторения всех уроков вам понадобится всего один МК.
читать дальше >>
В предыдущем уроке мы научились мигать светодиодом. Этот урок ненамного сложнее, здесь мы научимся мигать 7 светодиодами. Но не просто семь светодиодов, а семисегментный индикатор.
читать дальше >>
Научившись мигать светодиодом, вам, наверное, захочется подключить к микроконтроллеру что-то более информативное, например Lcd дисплей.Как это сделать? Да всё, как всегда, очень просто. Символьный ЖКИ мы подружим сегодня с нашим старым знакомым ATmega8. Для этого нам потребуется сам Lcd, я использовал знакосинтезирующий ЖКИ 16x2, и микроконтроллер atmega8.
читать дальше >>
Часто бывает потребность замерять напряжения. Для этих целей в микроконтроллере есть АЦП (аналого-цифровой преобразователь). АЦП - это устройство, которое преобразует аналоговый сигнал в его цифровое представление. На вход АЦП подается аналоговый сигнал, а на выходе мы получаем эквивалентный цифровой сигнал.
читать дальше >>
Когда я еще начинал изучать микроконтроллеры, мне захотелось сделать часовой таймер, чтобы управлять нагрузкой переменного тока. Честно признаюсь, я хотел попробовать включать телевизор только с 7 до 8 часов, а все остальное время он должен был быть отключен. Устройство я сделал, но так его и не применил...
читать дальше >>
Наверное вы не раз задавались вопросом как можно регулировать мощность потребителя например управлять яркостью светодиода или регулировать обороты двигателя. Самый простой способ последовательно нагрузке например светодиоду включить резистор, но ведь он будет греться и забирать драгоценную энергию, и чем мощней светодиод тем сильней будет греться наш резистор, такой вариант не для нас. А что если светодиод очень быстро включать и выключать, при этом меняя длительность включений при константной частоте. Например включать светодиод на 0,2 мимисекунди каждую милисекунду, то светодиод засветится но не на полную яркость, аналогично с двигателем, включать движок на 30 секунд каждую минуту, то двигатель раскрутится, но не на полную скорость — относительно большой вес ротора сгладит рывки от включающегося двигателя, а сопротивление от трения не будет его притормаживать. Таким образом увеличив частоту, двигатель будет крутится на половину своей мощности.
читать дальше >>
Для связи микроконтроллера со своим старшим братом - ПК, можно использовать интерфейсы передачи данных, но так как я учебный курс по AVR стараюсь построить на микроконтроллере mega8, то предпочтительней всего для связи с ПК использовать интерфейс USART. Нет, можно, конечно, заюзать и USB, но USART в mega8 реализован аппаратно, это значит что нам не придется вручную реализовывать логику передачи данных, мы просто запишем и отправим данные, а самим процессом отправки уже будет рулить МК аппаратно.
читать дальше >>
Интерфейс SPI широко применяется для обмена данными в микроконтроллерной технике и наверное самый популярный на сегодняшний день из последовательных интерфейсов. Основные характеристики SPI это простота использования, небольшая длина передающих проводов, и высокая скорость передачи данных. В микроконтроллер atmega8 spi реализован аппаратно, именно его мы используем для записи прошивки в мк. Особенность SPI заключается в том что есть одно ведущее (Master) и одно или несколько ведомых (Slave) Рассмотрим пример передачи данных между двумя микроконтроллерами, первый будет ведущий второй ведомый.
читать дальше >>
1  2  >>

Урок 0 - Уроки по AVR микроконтроллерам - Начинающим - Каталог статей

Урок 0. Программирование микроконтроллеров. Программатор.

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

Конечно же  программатор, без него тяжеловато. 

Где его взять? Можно купить или собрать. Первый вариант самый простой, второй - гораздо интересней:-)

Перепробовав огромное количество вариантов, остановился вот на такой схеме: 

 

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

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

Собирается это все на микросхеме FT232RL- это преобразователь USB  в RS-232. (COM)

И ставится буфер 74HC244. Как защита и чтобы программатор отпускал нам RESET. Без буфера приходиться каждый раз после программирования вытаскивать проводки, чтоб контроллер запустился.(Иногда бывает что сам запускается).

Тут уж ваше решение, ставить буфер или нет.

  

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

Развел плату,

 вытравил, собрал. Вот что получилось:

 

Это конечно уже готовый, отлаженный вариант. А вот тренировочный вариант. Изрядно измученный:-) Под конец сожженный феном (не специально).

При наладке начались косяки. Программа упорно не хотела запускаться. Перекинувшись матом с компом, полез шерстить просторы интернета. На одном из форумов нашел причину. Оказывается нужны дополнительные компоненты от компании Natioanl Instruments. Полез к ним, пришлось даже регистрироваться, но помогло. 

Запускаю значит программу, настраиваю все как просят. Подключаю провода для программирования к микроконтроллеру и.... (Снова куча мата) Говорит программатор не найден. Проверяю монтаж! Все правильно! Пропаиваю все ножки микросхем, подключаю, нажимаю кнопку в программе и... опять она меня шлет на.. проверку. Повторив все шаги снова и снова, вспомнил про запасную микруху. Выпаял старую, впаял новую. И как вы думаете, что произошло??? Конечно же заработало:-) Как оказалось позже та микруха была спаленной. Наигравшись с макетом, пошел делать рабочий инструмент.        

Теперь наверное опишу сборку и наладку подробней.

Принципиальная схема есть в архиве, разведенная плата в Sprint Layout'е там же. Можно развести по своему, будет даже плюсом. 

На плате 7 ножек.

 

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

MISO, MOSI, RESET, SCK - наш интерфейс для программирования.

VCC, GND - это питание. Можно подавать питание на устройства прямо с программатора. 

Есть ножки под джампер, им мы переключаем напряжение программирования: 5 вольт или 3,3 вольта.

Разводим плату или используем разводку в архиве, изготавливаем, напаиваем, проверяем правильность монтажа. Все отлично? Тогда втыкаем USB и смотрим, если все правильно с FT232RL, то должно определиться новое устройство.

Дожидаемся когда все "дрова" установятся, заходим в Диспетчер задач и проверяем. В разделе Порты (COM и LPT) появится наш COM порт.

Это еще не все! Необходимо настроить нашу FT-шку. Для этого открываем программу FT_PROG из архива.

Находим кнопку SCAN & PARSE, тыкаем ее.  

Все мы подключились к FT-шки. Настроим теперь параметры.

Переходим на вкладку USB_Config_Descriptor и выставляем значение Max Bus Power = 500:

Теперь нам надо обозвать наш программатор. Переходим на USB_String_Descriptors и пишем в поле Product Description своё название.

Теперь переходим на Hardware_Specific – IO_Controls и устанавливаем в поле С4 значение CLK6: Делается это для того, что бы наш программатор выдавал частоту 6 МГц. 

Осталось запрограммировать наши настройки в FT. Нажимаем кнопочку Program Device. В появившемся окне ставим галочку на нашем устройстве и жмем кнопку Program.

Все залили, закрываем все лишнее и открываем SinaProg. Но перед этим установите дополнительные компоненты от NI. LabVIEW 8.5 Run-Time Engine

Запустили SinaProg.

Работать с программой просто: 

  • Выбираем нужный нам микроконтроллер;
  • Выбираем программатор, в нашем случае это будит USBbit;
  • Выбираем скорость. Со скоростью тут интересный ситуэшн. Для Mega16 выбираем самую максимальную скорость.(3000000). Для Tiny2313 от 1200 до 38400. Если поставить скорость больше 38400, начинаются глюки. Остальные контроллеры не проверял. Методом научного тыка со временем вычислится:-)
  • Нажимаем кнопку Search.
Из лога видно что программатор определился и определил микроконтроллер. 

И это хорошо, открываем нужным нам hex-файл и нажимаем Program  в разделе Flash.

Файлы урока:

Устройства на микроконтроллерах avr своими руками

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

Данный раздел посвящен такой современной теме, как микроконтроллеры. В настоящее время без микроконтроллеров, не обходится практически ни одно современное устройство. Если у вас возникли какие-либо вопросы по теме микроконтроллеров, их программированию и т.п., то вы можете посетить форумы: МК для начинающих, AVR-форум, PIC-форум, Arduino и Raspberry Pi, STM32/ARM-форум, программаторы, периферия, ПЛИС, где на ваши вопросы постараются ответить грамотные специалисты и участники форума.

Микроконтроллеры для начинающих:
  • Микроконтроллеры AVR для начинающих. Часть 1 — знакомство с семейством AVR
  • Микроконтроллеры AVR для начинающих. Часть 2 — программаторы и прошивка. Работа с PonyProg
  • Микроконтроллеры AVR для начинающих. Часть 3 — работа с CodeVision AVR
  • Книга по программированию микроконтроллеров AVR
  • Видеокурс (8 уроков, плюс задачи) по AVR с авторской темой поддержки на форуме
  • Обучающее видео по микроконтроллерам для начинающих
  • AVR на C — просто?
  • AVR на C — просто? Часть 2
  • AVR на C — просто? Часть 3
  • AVR на C — просто? Часть 4
  • Фьюзы микроконтроллеров AVR – как и с чем их едят
  • Учимся создавать устройства на микроконтроллерах: «светофор»
  • Учимся создавать устройства на микроконтроллерах: «индикатор заряда аккумулятора»
  • Идеальная программа на С для МК, попробуем написать
  • Идеальная программа на С для МК — продолжение
  • Написание программ на С в Code Vision AVR для контроллеров не имеющих ОЗУ
  • Timer/Counter for AVR для начинающих
  • ШИМ на микроконтроллере Attiny13
  • ШИМ контроллер на МК Attiny2313 (управление вентилятором)
  • ШИМ-регулятор на микроконтроллере ATmega8515
  • Регулятор яркости (ШИМ) для светодиодного драйвера или велофары
  • PWM или ШИМ (широтно импульсная модуляция) на AVR для новичков. Часть 1
  • PWM или ШИМ на AVR для новичков. Часть 2 — программный ШИМ
  • Программный ШИМ на STM8L
  • Работы MCP3421 АЦП 18 бит с микроконтроллером ATmega32
  • Отладочная плата на AT89S52 или изучаем МК с нуля
  • Счётчик с памятью на Attiny2313
  • Управление 595 сдвиговыми регистрами при помощи AVR по SPI
  • Включение и выключение приборов одной кнопкой
  • Включение и выключение устройств одной кнопкой
  • Подключение светодиодов к AVR
  • mikroPascal for AVR. Урок 1. Введение
  • mikroPascal for AVR. Урок 2. АЦП, UART и отображение
  • mikroPascal for AVR. Урок 3. Еще раз UART а также немного о прерываниях
  • mikroPascal for AVR. Урок 4. Прерывания, прерывания и еще раз прерывания. Таймеры
  • mikroPascal for AVR. Урок 5. Использование OneWire. Встроенная библиотека
  • mikroPascal for AVR. Урок 6. Снова работа с OneWire. Расширенная библиотека
  • mikroPascal for AVR. Урок 7. Аппаратный ШИМ
  • mikroPascal for AVR. Урок 8. Программный ШИМ
  • Урок по PWM (ШИМ) для mikroPascal for AVR
  • Урок по mikropascal for AVR.I2C
  • AvrStudio 4. Библиотека для AVR. Модуль для I2C или TWI
  • Algorithm Builder. Урок 1 — Введение
  • Algorithm Builder. Урок 2 — О создании первой программы
  • Работа с I2C и SPI на примере часов реального времени PCA2129T
  • Библиотека для управления несколькими 1Wire устройствами при топологии точка-точка
  • Расширение количества портов микроконтролера PIC18 через SPI-интерфейс
  • AvrStudio 4. CMSIS для AVR. Структура для GPIO
  • PSoC. Глава 0. Введение. Первый пример
  • PSoC. Глава 1. ADC
  • PSoC. Глава 2. UART
  • PSoC. Глава 3. DAC и UART RX линия
  • PSoC. Глава 4. Таймеры и глобальные прерывания
  • Начинаем работать с FPGA или ПЛИС это просто. Часть 1
  • Начинаем работать с FPGA или ПЛИС это просто. Часть 2
  • Внутреннее устройство ПЛИС (FPGA)
  • FPGA. Просто о сложном — Философия написания конфигураций для ПЛИС
  • FPGA. Просто о сложном — Создание проекта в Quartus II. Сравнение VHDL и Verilog
  • Начинаем работать с микроконтроллерами MSP430 от фирмы Texas Instruments
  • Проект виртуального СОМ порта для отладочной платы STM32h207
  • SYS/BIOS: операционная система реального времени для микроконтроллеров MSP430
Уроки по STM32, ARM:
  • IAR и STM32 CORTEX M0. Часть 0x00 (пустой треп и отмазки)
  • IAR и STM32 CORTEX M0. Часть 0x01. Подготовка платформы IAR
  • IAR и STM32 CORTEX M0. Часть 0x02, Начинаем пайку!
  • IAR и STM32 CORTEX M0. Часть 0x03, Программируем без программатора
  • IAR и STM32 CORTEX M0. Часть 0x04 Автоматизация прошивки IAR
  • IAR и STM32 CORTEX M0. Часть 0x05, GPIO — входит и выходит…
  • ARM – это просто (часть 1)
  • ARM – это просто (часть 2)
  • ARM – это просто (часть 3)
  • STM8. Урок 1. Настройки среды ST Visual Develop
  • STM8. Урок 2. Тактирование контроллера
  • STM8. Урок 3. Описание GPIO и библиотека SPL
  • STM8. Урок 4. Настройка таймера 4. Прерывания таймера
  • STM8. Cosmic ошибка компилятора «FlexLM No such feature exists»
  • STM32 старт с CMSIS
  • STM32 простой и быстрый старт с CooCox CoIDE
  • ARM. STM32 быстрый старт
  • STM32. Урок 1. Выбор отладочной платы
  • STM32. Урок 2. Порты ввода/вывода
  • STM32. Урок 3. UART
  • STM32. Урок 4. Basic timers
  • STM32. Урок 5. Подключение LCD дисплея Wh2602
  • STM32F4. Урок 1 — управление светодиодами
  • STM32F4. Урок 2 — нажатие кнопки
  • STM32F4. Урок 3 — цифровые выходы
  • STM32F4. Урок 4 — цифровые входы
  • STM32F4. Урок 5 — работа с АЦП
  • STM32F4. Урок 6 — работа с дисплеем ST7783
  • STM32F4. Урок 7 — Графическая библиотека для дисплея ST7783
  • STM32F4. Урок 8 — Библиотека шрифтов для дисплея ST7783
  • STM32F4. Урок 9 — Тачскрин ADS7843
  • STM32F4. Урок 10 — Программные таймер и счетчик
  • STM32F4. Урок 11 — Генератор случайных чисел
  • STM32F4. Урок 12 — UART
  • STM32F4. Урок 13 — Работа с SD-картой
  • STM32F4. Урок 14 — АЦП с использованием DMA
  • STM32F4. Урок 15 — Низкоуровневый SPI
  • STM32F4. Урок 16 — Работа с ЦАП MAX5250 по SPI
  • STM32F4. Урок 17 — Управление LIS302DL через SPI
  • STM32F4. Урок 18 — Низкоуровневый I2C
  • STM32F4. Урок 19 — Работа с EEprom M24C02 по I2C
  • STM32F4. Урок 20 — Отображение изображения с SD-карты
  • STM32F4. Урок 21 — АЦП в групповом режиме
  • STM32F4. Урок 22 — Системная проверка
  • STM32F4. Урок 23 — Работа с ЦАП
  • STM32F4. Урок 24 — Работа с ЦАП через DMA
  • STM32F4. Урок 25 — Работа с ШИМ
  • STM32F4. Урок 26 — Передача данных АЦП на ПК
  • STM32F4. Урок 27 — Подключение камеры OV9655
  • STM32F4. Урок 28 — Работа с внешними прерываниями
  • STM32F4. Урок 29 — Работа с PS2-клавиатурой
  • STM32F4. Урок 30 — Работа с PS2-мышкой
  • STM32F4. Урок 31 — Использование USB-OTG как виртуальный COM-порт
  • STM32F4. Урок 32 — Использование USB-OTG в режиме MSC_HOST
  • STM32F4. Урок 33 — Работа с дисплеем SSD1289
  • STM32F4. Урок 34 — Подключение символьного LCD-дисплея 16х2 (HD44780)
  • USB FLASH. Введение и часть 1 — Работа с AT45DB161D
  • USB FLASH. Часть 2 — Периферия USB в STM32F0
  • USB FLASH. Часть 3 — Заключительная. Протокол SCSI
  • FAT32 на STM32
  • Управление текстовыми командами (USART на STM32)
  • Обработка нажатия пользовательской кнопки, используя внешние прерывания
  • Подключение матричной клавиатуры к STM32F4Discovery
  • Библиотека матричной клавиатуры для STM32F4 Discovery
  • Библиотека HD44780 4 строки по 20 символов для STM32
  • Зажигаем на TLC5940
  • IAR EWARM. STM32F030F4P6. Микроконтроллер отсутствует в списке…
  • STM32F030. Не блокирующая реализация I2C
  • Nucleo-F411RE USB-ADC
  • Работаем с LabVIEW на примере STM32
Уроки по AVR (BASCOM-AVR):
  • Урок 1. Что такое AVR микроконтроллер?
  • Урок 2. Программатор AVR микроконтроллеров
  • Урок 3. Отладочная плата для AVR микроконтроллера Attiy13
  • Урок 4. Порты вывода в микроконтроллере Attiy13
  • Урок 5. Программирование AVR микроконтроллеров
  • Урок 6. Первая конструкция на микроконтроллере AVR
  • Урок 7. Работа с ЖК индикатором на контроллере HD44780 и его аналогах
  • Урок 8. Ввод информации в МК. Подключение кнопки к МК BASCOM-AVR
  • Урок 9. Работа с АЦП на примере ATtiny13 в BASCOM-AVR
  • Урок 10. Работа с UART интерфейсом
  • Урок 11. Работаем с DS1307 микросхемой часов реального времени
  • Урок 12. Работа с компьютерной PS/2 клавиатурой в BASCOM-AVR
  • Урок 13. Аппаратная ШИМ на микроконтроллере
  • Урок 14. Программный UART в BASCOM-AVR
  • Урок 15. Работа с датчиком температуры DS18B20 в BASCOM-AVR
  • Урок 16. Работа с энкодером в BASCOM-AVR
  • Урок 17. Использование бутлоадера в BASCOM-AVR
  • Урок 18. Работа с дисплеем от Nokia 3310
  • Урок 19. Работа с ультразвуковым датчиком расстояния HC-SR04 в BASCOM-AVR
  • Урок 20. Подключение семисегментного индикатора по трём проводам (74HC595)
  • Урок 21. BASCOM-AVR и Arduino
Схемы и устройства на микроконтроллерах:
  • Мини цифровая паяльная станция
  • Цифровая паяльная станция своими руками DSS-1
  • Цифровая паяльная станция 4 в 1 (DSS-2.1)
  • Станция для монтажа и демонтажа BGA и других SMD радио компонентов
  • Зарядное устройство-анализатор NiMh/NiCd аккумуляторов
  • Интеллектуальное зарядное устройство NiMh/NiCd аккумуляторов
  • Тестер АА аккумуляторов
  • Индикатор состояния заряда 12В аккумулятора
  • Два микроконтроллерных регулятора мощности
  • Автосвет — управление внешними световыми приборами авто
  • Бортовой тахометр на PIC16C84
  • Велокомпьютер на PIC16F628A и 4-разрядном LED индикаторе
  • Велокомпьютер своими руками
  • Wi-Fi модули ESP8266 и AVR микроконтроллер
  • Связь МК при помощи RF модулей
  • Радиосвязь между двумя микроконтроллерами с применением RF-модулей
  • Интерфейс связи между GSM модулем SIM300 и микроконтроллером AVR ATmega32
  • Отправка и получение SMS, используя GSM модуль SIM300
  • Как связать микроконтроллер и компьютер по каналу RS-232
  • Радиоуправление тремя нагрузками на «RF модулях» с применением микроконтроллеров
  • Устройство радиоуправления на 12 команд
  • Устройство радиоуправления (радиоключ) на 3 команды
  • Устройство ДУ на 12 команд повышенной мощности
  • Электронные весы на базе HX711
  • Ультразвуковой контроль уровня воды на микроконтроллере 8051
  • Ультразвуковой дальномер
  • Мини радар, измеритель скорости
  • Связь по Bluetooth между STM32 и Android
  • GPS приемник своими руками на модуле EB-500 и AVR
  • Портативный GPS Data Logger
  • Акселерометр ADXL345
  • Акселерометр и гироскоп MPU6050
  • Тестер концентрации алкогольных паров на AVR
  • Простой электронный компас
  • Простейший ландромат
  • Интеллектуальный ландромат
  • Один купюроприемник и четыре аттракциона
  • Простой торговый автомат своими руками
  • Сопряжение с компьютером цифрового мультиметра серии 830
  • Электронный кодовый замок на ATmega8
  • Кодовый замок на PIC16F628A
  • Индикация места ключа (Часть1)
  • Индикация места ключа (Часть 2)
  • Кодовый замок
  • Переговорное устройство и хаб
  • RFID считыватель транспондеров TIRIS от Texas Instruments
  • Считыватель электронных ключей iButton (DS1990) на МК ATtiny2313
  • Электронный замок с ключами iButton
  • Охранное устройство с ключами iButton и датчиком удара
  • Датчик движения на PIC-микроконтроллере с применением PIR-сенсора
  • Охранное устройство с оповещением по телефонной линии
  • Охранное устройство «Лазерная растяжка»
  • Устройство многокомандного дистанционного управления для проведения пиротехнических шоу
  • Модуль автономного сброса
  • 4-х канальный контроллер нагрузок с управлением по UART
  • Контроллер 8 нагрузок на ATtiny13 с управлением по UART
  • USB устройство ввода-вывода на PIC18F4550 с 16 цифровыми I/O и 8 аналоговыми входами
  • Дата-логгер (регистратор аналоговых данных)
  • Устройство ввода вывода
  • USB Device
  • COM-терминал
  • Подключение и запуск мотора от FDD (JCM5044)
  • Простой тестер униполярных шаговых двигателей на ATtiny2313 и ULN2004
  • Микрошаговый драйвер из старого принтера на микроконтроллере ATmega32
  • Управление двумя шаговыми двигателями по UART
  • Датчик оборотов двигателя для контроллера
  • Отладочная плата для устройств на МК Atmega8/48/88/168/328
  • Отладочная плата для микроконтроллеров ATtiny13/15
  • Универсальная основа для контроллера с графическим интерфейсом на ATmega8 c OLED дисплеем
  • Простая отладочная плата на ATTINY2313
  • Отладочная плата AT90USB162
  • PIC16F877A — Отладочная плата
  • Набор для разработки на основе микроконтроллера PIC18F4520
  • Универсальная отладочная плата для AVR
  • Контроль 15-ти контактов одним входом PIC-микроконтроллера
  • Дисплейно-клавиатурный драйвер TM1638
  • Подключаем PS/2 клавиатуру к PIC
  • Подключение PS/2, AT клавиатуры к микроконтроллеру Attiny2313
  • Интерфейсная плата для связи клавиатуры PS2 с LCD-дисплеем на МК PICAXE
  • Клавиатурный датчик кода Морзе (PS/2 и PIC16F628A)
  • ABCom — компьютер на ATmega1284P
  • Электронные аксессуары для игры S. T.A.L.K.E.R.
  • Электронная игра «Светодиодные наперстки»
  • Экономичные игральные кости на PIC12F629
  • Электронная игральная кость на ATtiny 2313
  • Игровая консоль на STM32 и LCD Nokia 5110
  • Игровая видеоконсоль на AVR AVGA
  • Контроллер кнопок для игры Brein Ring v2.0
  • USB шутка
  • USB шутка 2
  • Игра «разминируй бомбу»
  • Руль, джойстик и геймпад с обратной связью (Force Feedback)
  • Микроконтроллерный вирус и антивирус
  • USB Password Keeper
  • Почему одни микроконтроллеры надежнее других
  • Переходник ATmega8 TQFP в DIP
  • Вспомогательные модули для отладочных плат
  • Разгон ATmega328 (30 МГц)
Освещение, LED, ЖКИ и LCD:
  • Устройство мультимедиа (Multimedia device)
  • Простой тачскрин (touch screen) интерфейс на PIC
  • Сенсорный модуль на AVR
  • Простой тач-сенсор на AVR
  • Работаем с ЖКИ. Часть 1
  • Работаем с ЖКИ. Часть 2
  • LCD Wh2602B компании Winstar
  • Обзор IPS дисплея 80х160 точек с контроллером ST7735
  • Обзор дисплея 128х160 точек с контроллером ST7735
  • Подключение и использование LCD Nokia 3310 (5110) к AVR-микроконтроллеру
  • Генератор отрицательного напряжения для дисплея 1602 и подобных
  • Небольшой тест OLED дисплея Winstar WEH001602ALPP5N
  • Подключаем LCD от Siemens C75 и ME75 к STM32
  • Работа с дисплеем LPH8731-3C от телефонов Siemens
  • Особенности работы с дисплеем LPH9157-2
  • Библиотека для дисплея LPH9135
  • Библиотека для символьного дисплея на базе HD44780
  • TFT дисплей 3. 2 с открытым исходным кодом
  • Подключаем дисплей Nokia1616 к BASCOM-AVR
  • Подключение графического ЖК-дисплея 128х64 KS0108 к AT89C52
  • Переходник ЖКИ HD44780 в UART
  • Устройство отображения информации на LCD-дисплее 16×2 с контролером HD44780
  • Электронная метка с ЖКИ на микроконтроллере
  • Подключение LCD-дисплея ST7565 к микроконтроллеру MSP430
  • SSD1331 RGB OLED дисплей
  • Программная реализация интерфейса управления TM1640 на ATmega
  • Советчик в кармане
  • Нет ЖКИ-драйвера – есть калькулятор!
  • Электронная читалка своими руками на микроконтроллере ATmega32
  • Подключение семисегментного индикатора по UART на ATtiny13
  • Динамическая индикация на светодиодных 7-сегментных индикаторах с программной регулировкой яркости
  • Еще раз о динамической индикации на LED-индикаторах
  • Подключение 4-разрядного LED индикатора всего к 4 портам микроконтроллера
  • Управление RGB-прожекторами
  • Простая мигалка на RGB светодиоде с использованием МК ATtiny2313 (ATtiny13)
  • Управление светодиодами WS2813 с адресацией с помощью ATtiny
  • Управление RGB светодиодом
  • Бегущая строка на PIC16F877 на 20 матрицах 8х8 или 160х8 пикселей
  • Бегущая строка 8×80 LED на PIC16F628
  • Бегущая строка 8×80 с набором текста на клавиатуре (PIC16F628)
  • Бегущая строка на PIC контроллере
  • Бегущая строка на ATmega168
  • Светодиодная гирлянда на микроконтроллере
  • Простая светодиодная гирлянда на МК Attiny13
  • POV — Светодиодная подсветка велосипедных колес на MSP430
  • Бегущая строка с механической разверткой
  • DMX512 Контроллер на 40 каналов
  • PixelPOI
  • Светодиодная матрица – МОДЖЕТ
  • Эффект Fade Out для LED при помощи ШИМ (PIC)
  • 3-х канальный ШИМ регулятор на Attiny2313
  • ШИМ-регулятор на AVR
  • Регулятор яркости подсветки на датчике Bh2750
  • Светофор своими руками
  • Устройство имитации работы светофора на микроконтроллере PIC16F84A
  • Светофор на PIC12F629 с «неправильной» программой
  • Светофор на ATtiny13
  • Имитация светофора
  • Управление светодиодом на МК Attiny13
  • Эффект горящей свечи на ATTiny
  • АЦП на TINY13 и 16 светодиодов
  • Новогодняя лампа-ночник из RGB-светодиодов на плате LaunchPad MSP-EXP430, управляемая ИК-пультом
  • Ночник на микроконтроллере
  • ИК пульт на MSP430 Lanchpad
  • Доработка китайского налобного фонарика
  • LED светильник с ШИМ и таймером
  • Контроллер люстры с 6 лампами
  • Адаптер двухканального светового шнура
  • Контроллер двухцветного светового шнура Flexilight
  • Прокачай свой монитор. Собери интерактивную фоновую подсветку
Аудио:
  • Анализатор свиста на Cortex-M4 или включение нагрузки по свистку
  • Передача звука по радиоканалу с использованием кодека Speex
  • Визуализация аудио сигнала на Nokia 3310 LCD
  • Аудио анализатор спектра на Atmega32
  • Простой SD аудио-плеер
  • MMC/SD WAV стерео плеер на ATmega32 с пультом управления от ТВ
  • SD WAV плеер с управлением по UART
  • Воспроизведение видео на цветном ЖК-дисплее Nokia с помощью 8 битного AVR микроконтроллера Atmega32
  • Вторая жизнь Creative Sound Blaster
  • MP3 плеер своими руками
  • Воспроизведение нот на PIC
  • Воспроизведение звука на PIC
  • Пианино на микроконтроллере PIC18F4550
  • Эффект эхо (echo) на микроконтроллере Atmega32
  • MMC/SD диктофон на PIC16F877A
  • Музыкальный звонок с тайной кнопкой
  • Музыкальный звонок на МК Attiny13
  • Музыкальный звонок с возможностью замены мелодий без использования программатора
  • Музыкальный звонок, который умеет всё (Z80)
  • Дверной звонок
Часы и таймеры:
  • Часы на газоразрядных индикаторах
  • Часы на газоразрядных индикаторах V2. 0
  • Nixie Clock «King Size»
  • Электронные часы-будильник на газоразрядных индикаторах и МК
  • Часы на газоразрядных индикаторах с ATmega8
  • Часы в стиле стимпанк на газоразрядных индикаторах
  • Наручные часы на ГРИ (по проекту Bars)
  • Многофункциональные часы-термостат с дистанционным управлением
  • Музыкальные часы с термометрами на PIC16F873A
  • Шахматные часы — сувенир
  • Многофункциональные наручные LED часы
  • Говорящие часы
  • Часы/календарь на МК ATTiny2313 и RTC DS1305
  • Часы на DS3231 и AVR-микроконтроллере
  • Часы на PCA21125 и AVR-микроконтроллере
  • Часы на PIC16F877A
  • Часы на PIC16F628A и FYQ3641A
  • Часы на PIC-микроконтроллере
  • Часы с автоматической регулировкой яркости, сенсорными кнопками и т.д.
  • Часы на Attiny2313
  • LED часы на Attiny2313 и DS1307
  • Часы на ATtiny2313, DS1307 и ЖКИ индикаторе 8*2
  • Часы с несколькими функциями на AVR
  • Будильник радио
  • Часы-будильник с термометром
  • Часы — календарь
  • Говорящие часы — термометр с календарем
  • Цифровые часы на RTC DS12C887 и 8051
  • RTC на STM8L-Discovery
  • Библиотека для работы с шиной I2C и с часами реального времени PCF8583
  • Часы на PCF8523 и AVR-микроконтроллере
  • Часы-бомба или Detonator Clock
  • Двоичные часики на ATmega8
  • Простые бинарные часы
  • USB счетчик посещений на микроконтроллере AVR ATtiny25
  • Система автоматической подачи звонков на AVR
  • Реле времени
  • Таймер 0…9999 секунд для засветки фоторезиста на ATtiny13
  • Бытовой таймер на PIC-микроконтроллере
  • Простой таймер на PIC16F84A
  • Таймер на PIC
  • Таймер обратного отсчёта на МК Attiny2313
  • Таймер обратного отсчета на МК ATmega8 + ЖКИ 8х2 или 16х1
  • Таймер обратного отсчета на 0-9999 секунд на PIC12F683
  • Многофункциональный циклический таймер
  • Устанавливаем в корпус многофункциональный циклический таймер
Измерение температуры, термостаты и терморегуляторы на микроконтроллерах:
  • Метеостанция на STM32
  • Комнатная метеостанция
  • WiFi ESP8266 — новый шаг в проектировании домашних устройств с беспроводным интерфейсом
  • Беспроводной измеритель температуры и влажности с USB-интерфейсом
  • Измеритель влажности и температуры
  • Датчик температуры и относительной влажности с адаптивной регулировкой яркости индикатора
  • Простой измеритель температуры
  • LCD-термометр
  • USB термометр
  • Bluetooth термометр
  • Bluetooth термометр на AVR (Arduino)
  • Термометр на PIC
  • Термометр на датчике SE97B и AVR-микроконтроллере
  • Цифровой термометр на датчике LM75AD
  • Подключение датчика температуры окружающей среды DS18B20 к микроконтроллеру
  • Термометр на DS18B20
  • Термореле с цифровым датчиком температуры
  • Сдвоенный цифровой термометр на ATmega8 и DS18B20
  • Простой термометр для дома с двумя датчиками DS18B20
  • Термометр на МК Attiny13 и датчике DS18B20
  • Необычный термометр на ATtiny13 и DS18B20
  • Декоративный термометр на микроконтроллере
  • Термометр на AT89C2051 и DS18B20
  • Универсальный двухканальный термометр на AVR
  • Многоточечный термометр
  • Термометр на STM8L-Discovery
  • XControl
  • LAN Control — система удаленного управления через локальную сеть, интернет и ПДУ
  • Электронный термостат и сигнализатор температуры на PIC16C84
  • Термостат на PIC16F877A и LCD NOKIA 3310
  • Простой терморегулятор
  • Терморегулятор с предварительной установкой 4-х температур контроля для термометра помещения
  • Терморегулятор на PIC
  • Программируемый термостабилизатор
  • Барометр на AVR
  • Часы, термометр, термостат, будильник, система удалённого управления
  • Часы + термометр на PIC16F628A и LED индикаторах
Измерения, генераторы:
  • 30В вольтметр на MSP430
  • Многоканальный дистанционный вольтметр
  • Малогабаритный частотомер-цифровая шкала до 200 МГц с ЖКИ дисплеем
  • Частотомер до 16 МГц на микроконтроллере
  • Самодельный осциллограф на микроконтроллере AVR
  • Осциллографический пробник на ATmega8
  • Цифровой LCD-осциллограф
  • USB-осциллограф
  • Генератор сигналов на МК ATtiny2313
  • Функциональный DDS-генератор
  • DDS генератор
  • Определитель цвета
  • Цифровой дозиметр Гамма_1
Программаторы, восстановление МК, прошивка:
  • Клон AVR JTAG ICE
  • Китайский JTAG ICE для AVR и установка драйверов
  • Клон PICkit 2
  • PURPIC, переносной клон PICkit2
  • Простой USB программатор PIC
  • Простейший программатор для PIC
  • Простой программатор PIC-контроллеров с использованием PicPgm
  • Программатор для PIC-контроллеров
  • Сохранение калибровочной константы для контроллеров PIC 12F629 и 12F675
  • Как сделать простой программатор для PIC-ов и AVR-ов
  • Программатор для микроконтроллеров AT89C51/52/55
  • Простой программатор
  • USBasp — USB программатор для микроконтроллеров Atmel AVR
  • Доработка программатора USBasp
  • VUSBTiny программатор
  • Универсальный USB-программатор
  • Адаптер ZIF SOIC для программатора
  • Универсальный адаптер-программатор
  • Универсальный адаптер для Atmel STK500
  • Компактный программатор USBTiny-MkII SLIM (клон AVRISP-MKII)
  • Программатор ATtiny84 USBtiny AVR ISP
  • AVR-программатор ULTI-SP
  • USB программатор микроконтроллеров AVR и AT89S, совместимый с AVR910
  • Программатор Громова для ATmega8A-PU
  • AVR-программатор на PIC
  • Универсальный программатор
  • Исправление фузов AVR
  • Устройство оживления микроконтроллеров Atmel
  • SinaProg + ATmega328P исправляем прошивку фьюзов
  • Программатор для КР573РФ5
  • Внутрисхемное программирование и отладка микроконтроллеров Microchip
  • Программирование микроконтроллеров AVR в Ubuntu
  • Программирование микроконтроллеров AVR в Ubuntu-2 (GUI)
  • STM32F4DISCOVERY: Работа с ARM Cortex M4
This entry was posted in Ремонт. Bookmark the permalink.

Что можно сделать с 6-контактным микроконтроллером?

Atmel анонсировала свои 6-контактные микроконтроллеры ATtiny10 в апреле 2009 года, а в конце ноября 2009 года компания представила ATtiny4, ATtiny5 и ATtiny9, которые имеют те же выводы и функции, что и устройство ATtiny10. Все эти микроконтроллеры включают стандартный центральный процессор (ЦП) AVR. Все процессоры работают в диапазоне от 1,8 до 5,5 В, и они незначительно различаются, как указано ниже:

  • ATtiny4: 512 байт Flash, 32 байта SRAM, один 16-битный счетчик / таймер с каналами PWM, аналоговый компаратор.
  • ATtiny5: То же, что и ATtiny4, но включает АЦП.
  • ATtiny9: То же, что и ATtiny4, но с 1 Кбайт Flash.
  • ATtiny10: То же, что и ATtiny4, но с 1 Кбайт флэш-памяти и АЦП.

Как вы понимаете, контакты ввода-вывода переполнены. Один штифт имеет следующее обозначение:

.

PCINT1 / TPICLK / CLKI / ICP0 / OC0B / ADC1 / AIN1

Это означает выбор:

  • PCINT1: Прерывание смены контакта 0, источник 1
  • TPICLK: часы последовательного программирования
  • CLKI: входной сигнал таймера / счетчика 0 для внешних часов
  • OC0B: Timer / Counter0 Compare Match B Output (таймер / счетчик 0, выход сравнения B)
  • ADC1: вход АЦП, канал 1
  • AIN1: аналоговый компаратор, отрицательный вход

Но что можно сделать с таким маленьким MCU? Atmel отметила, что цены на 5000 устройств начинаются с 0 долларов США.34 каждый, поэтому низкая стоимость должна сделать этот чип привлекательным для многих потребительских устройств. В статье на веб-сайте Atmel описан домашний термостат. Я мог бы создать умный дверной звонок: быстро нажмите на него, и он издаст нормальный звонок. Нажмите на нее в течение двух секунд, и он создаст другое кольцо, чтобы объявить кого-то своим другом. Дважды быстро нажмите на нее, и получится «семейное» кольцо. Даже с четырьмя контактами ввода-вывода микросхема все еще могла служить контроллером серво- или шагового двигателя с последовательным входом.

Для 168-страничного руководства для семейства ATtiny посетите: www.atmel.com/dyn/resources/prod_documents/doc8127.pdf.

Все микроконтроллеры tinyAVR используют стандартные средства разработки микроконтроллеров AVR. Atmel бесплатно предоставляет интегрированную среду разработки AVR Studio через веб-сайт компании: www.atmel.com/AVRStudio.

Если вы хотите изучить семейство ATtiny, Atmel предлагает пакет STK600-ATTINY10, который содержит платы адаптеров для устройств ATtiny4 / 5/9/10. Эти платы подключаются к стартовому набору STK600 и системе разработки для микроконтроллеров AVR и AVR32 Flash.–Jon Titus

Выбор платы Arduino - платформа Arduino

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

Микроконтроллер (MCU): Микроконтроллер - это сердце (или, точнее, мозг) платы Arduino. Плата для разработки Arduino основана на микроконтроллерах AVR разных типов, каждый из которых имеет различные функции и особенности.

Входное напряжение: Это рекомендуемый диапазон входного напряжения для платы. Плата может быть рассчитана на немного более высокое максимальное напряжение, но это безопасный рабочий диапазон. Следует иметь в виду, что многие из имеющихся у нас Li-Po аккумуляторов имеют напряжение 3,7 В, а это означает, что любая плата с входным напряжением, включая 3,7 В, может питаться напрямую от одного из наших блоков аккумуляторов Li-Po.

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

Тактовая частота: Это рабочая частота микроконтроллера, связанная со скоростью, с которой он может выполнять команды. Хотя есть редкие исключения, большинство микроконтроллеров ATmega, работающих от 3 В, будут работать на частоте 8 МГц, тогда как большинство микроконтроллеров, работающих при 5 В, будут работать на частоте 16 МГц.Тактовая частота Arduino может быть разделена для экономии энергии с помощью нескольких приемов, если вы знаете, что делаете.

Цифровой ввод / вывод: Это количество выводов цифрового ввода / вывода (I / O), которые расположены на плате Arduino. Каждый из них может быть настроен как вход или выход. Некоторые из них поддерживают ШИМ, а некоторые используются в качестве контактов для последовательной связи.

Аналоговые входы: Это количество контактов аналогового входа, доступных на плате Arduino.Аналоговые контакты помечены буквой «A», за которой следует их номер. Они позволяют считывать аналоговые значения с помощью аналого-цифрового преобразователя (АЦП) в микросхеме ATMega. Аналоговые входы также могут быть сконфигурированы как дополнительные цифровые входы / выходы, если вам это нужно!

PWM: Это количество цифровых выводов ввода / вывода, которые способны производить широтно-импульсную модуляцию. (ШИМ) сигнал. Сигнал ШИМ подобен аналоговому выходу; он позволяет вашей Arduino «имитировать» аналоговое напряжение между нулем и системным напряжением.

UART: Это количество отдельных последовательных линий связи, которые может поддерживать ваша плата Arduino.На большинстве плат Arduino цифровые выводы ввода / вывода 0 и 1 дублируют ваши последовательные выводы отправки и получения и используются совместно с последовательным портом программирования. Некоторые платы Arduino имеют несколько UART и могут одновременно поддерживать несколько последовательных портов. На всех платах Arduino есть хотя бы один UART для программирования, но некоторые из них не разбиты на доступные контакты.

Флэш-память: Это объем памяти программ, доступный микросхеме для хранения вашего эскиза. Не вся эта память доступна, так как крошечная часть занята загрузчиком (обычно между 0.5 и 2КБ).

Интерфейс программирования: Вот как вы подключаете плату Arduino к компьютеру для программирования. Некоторые платы имеют встроенный разъем USB, поэтому все, что вам нужно сделать, это подключить их к кабелю USB. У других есть доступный заголовок, чтобы вы могли подключить переходник FTDI Basic или кабель FTDI. Как и в Mini, на других платах для программирования есть разъемы для последовательного порта, но они несовместимы с разъемом FTDI. Любая плата Arduino со встроенным разъемом USB также имеет другое оборудование, которое обеспечивает преобразование последовательного интерфейса в USB.Однако некоторым платам не требуется дополнительное оборудование, поскольку их микроконтроллеры имеют встроенную поддержку USB.

Введение в микроконтроллеры - начало

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

Быстрые ссылки

Целевая аудитория

Эта серия руководств предназначена для студентов, любителей, программистов и разработчиков оборудования, которые хотят изучить основы программирования микроконтроллеров или восполнить пробелы в своих знаниях о таком программировании. Это руководство не научит вас программированию в целом, хотя в нем будут обсуждаться методы программирования, представляющие особый интерес для микроконтроллеров. Этот учебник также не научит вас проектированию оборудования, но продемонстрирует проблемы с оборудованием, с которыми обычно сталкиваются при использовании микроконтроллеров.Я надеюсь, что он поможет новичку понять, что такое микроконтроллер (микроконтроллер), какие возможности он обычно имеет и как использовать эти возможности. Он будет идти с самого начала - как подключить и запрограммировать микроконтроллер, чтобы он мигал и светился (версия микроконтроллера программы «Hello World»), через различные функции и периферийные устройства, обычно присутствующие на микроконтроллере, такие как прерывания, таймеры / счетчики, UART, SPI, I2C, ADC, DAC, PWM, сторожевой таймер и т. д. В нем также будут рассмотрены общие темы, такие как устранение ошибок входов, фильтрация значений АЦП, управление ЖК-дисплеями символов и другие подобные рутинные операции.

Caveat Lector

Каждое правило имеет одно много исключений. Это относится практически ко всему, что вы прочитаете в этом руководстве. Если вы читаете здесь «X», не думайте, что это означает «X и только X, во всех возможных ситуациях, без исключений или оговорок, сейчас и навсегда». Разработчики микроконтроллеров придумали много разных, интересных, а иногда и просто причудливых способов решения задач. И как пользователь микроконтроллера и программист вы тоже можете придумать много разных и интересных способов делать что-то. По моему опыту, учитывая N-шаговую программу, вероятно, существуют как минимум N-квадраты способов ее написания. Цель этого руководства - попытаться дать вам прочную основу для программирования микроконтроллеров, а не быть исчерпывающей энциклопедией в данной области. Для каждой примерной программы я постараюсь написать ее простым и понятным способом, и позволю вам обнаружить свои собственные хитрые приемы в дальнейшем.

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

Что такое встроенное программирование?

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

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

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

Что такое встроенная система?

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

Некоторые примеры встроенных систем:

• Сигнализация / охранная система

• Автомобильный круиз-контроль

• Термостат отопления / кондиционирования

• Микроволновая печь

• Контроллер противоскольжения

• Контроллер светофора

• Торговый автомат

• Газовый насос

• Судоку для портативных устройств

• Контроллер системы полива

• Поющая настенная рыба (или эквивалент этого подарочного сезона)

• Мультикоптер

• Осциллограф

• Марсоход

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

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

Чем отличается встроенное программирование?

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

Еще одно отличие от компьютеров общего назначения состоит в том, что большинство (но не все) встроенных систем весьма ограничены по сравнению с предыдущими. Микрокомпьютеры, используемые во встроенных системах, могут иметь объем программной памяти от нескольких тысяч до нескольких сотен тысяч байтов, а не гигабайт на настольном компьютере, и обычно имеют даже меньше памяти данных (ОЗУ), чем память программ. Кроме того, ЦП часто представляет собой 8- и 16-разрядные устройства меньшего размера, в отличие от 32-разрядных и более крупных устройств, имеющихся в настольных компьютерах (хотя небольшие 32-разрядные микроконтроллеры сейчас стоят меньше доллара в умеренных количествах, что удивительно).Меньший размер слова ЦП означает, среди прочего, что программе потребуется больше инструкций (и, следовательно, больше тактовых циклов), чем эквивалентной программе, работающей на ЦП с большим размером слова. И, наконец, скорость, с которой работают микроконтроллеры меньшего размера, намного меньше скорости, с которой работает ПК. Типичные тактовые частоты микроконтроллера меньшего размера составляют от 1 до 200 МГц, а не тактовые частоты ПК.

В чем разница между микрокомпьютером, микропроцессором и микроконтроллером?

Под микропроцессором обычно понимается однокристальный центральный процессор (ЦП), при этом ЦП является «мозгом» компьютера - частью компьютера, которая выполняет программные инструкции.Микрокомпьютер - это любой компьютер, построенный на базе микропроцессора, вместе с памятью программ и данных, а также устройствами ввода-вывода и другими периферийными устройствами по мере необходимости. Микроконтроллер (в этом руководстве часто сокращается до микроконтроллера) - это одночиповое устройство, в которое встроен не только микропроцессор, но и тот же самый чип, энергонезависимая память программ (ПЗУ) и энергозависимая память данных (ОЗУ), а также полезные периферийные устройства. такие как универсальный ввод / вывод (GPIO), таймеры и каналы последовательной связи. Отсюда следует, что все микроконтроллеры являются микрокомпьютерами, но не все микрокомпьютеры используют микроконтроллеры.

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

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

Что такое N-битный процессор / микропроцессор / микроконтроллер?

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

По объему 8-битные микроконтроллеры являются самым большим сегментом рынка встраиваемых систем. Многим приложениям просто не нужно больше мощности, и никогда не будет. 16-разрядные устройства более мощные, но они зажаты между 8-разрядными устройствами на нижнем уровне и 32-разрядными устройствами на верхнем уровне. 32-битные устройства относятся к верхнему пределу встраиваемого оборудования для всех, кроме самых сложных или высокопроизводительных, конструкций, но они постоянно снижаются в цене.

Какие семейства микроконтроллеров используются в этих руководствах?

Чтобы дать краткий обзор различных разновидностей доступных микроконтроллеров, это руководство будет написано вокруг одного 8-битного семейства (Atmel AVR) и одного 32-битного семейства (архитектура ARM Cortex M3 в форме STM32 семья).Эти два семейства были выбраны, чтобы дать довольно широкое представление об устройствах и подходах, используемых в мире микроконтроллеров. Первые несколько примеров программного обеспечения будут написаны на языке ассемблера для каждого из этих семейств, а также на C. После этого примеры будут написаны только на C.

.

Что еще требуется для этих руководств?

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

Что касается тестового оборудования, цифровые мультиметры действительно дешевы, и нет оправдания, чтобы не иметь его.В таких местах, как Harbour Freight, они иногда продаются за несколько долларов. Другой элемент оборудования, который должен быть у любого инженера по встроенным системам, - это приличный осциллограф. Не паникуйте, для этих руководств не требуется объема. Однако, если вам удастся заполучить такой, вы узнаете больше и сэкономите много времени в сделке. Прицелы USB дают хорошую отдачу, как и некоторые области импорта (или, конечно, рабочие б / у области). В конце прошлого года я угостил себя красивым прицелом Agilent с огромным (для меня) экраном, и каждый раз, когда я им пользуюсь, я рад, что потратил деньги.

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

АРН

• Оборудование: плата Atmel STK-500 с установленным ATmega8515

• Инструменты: Atmel Studio 6 (бесплатно)

ARM Cortex M3

• Оборудование: STM32VLDiscovery Board, установленная на специальной стыковочной плате

• Инструменты: Rowley Crossworks (150 долларов США за персональную лицензию - предлагается IAR Embedded Workbench Kickstart Edition для бесплатного набора инструментов)

Какой язык программирования?

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

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

Также обратите внимание, что термин «язык ассемблера» часто сокращается в этом руководстве и в других местах до «asm» или «ASM».

Как работает встроенная программа?

Прежде чем говорить о встроенном программировании, это хорошее место, чтобы дать краткий обзор того, как встроенная программа запускается и работает. Предполагая, что вы создали программный файл и загрузили его в программную память микроконтроллера (все шаги, о которых мы поговорим более подробно позже), хорошие вещи происходят, когда вы либо включаете устройство, либо нажимаете кнопку RESET.Когда микроконтроллер выходит из состояния сброса в результате любого действия, он всегда будет переходить в определенную ячейку памяти, как определено производителем, чтобы начать выполнение любого кода, найденного там или указанного там. Иногда эта ячейка памяти содержит код напрямую; например после выхода из состояния сброса выполнение программы начинается с адреса программы 0. В других случаях фиксированная ячейка памяти является вектором, ячейкой, которая содержит фактический адрес начала программы; например после выхода из состояния сброса контроллер загрузит свой программный счетчик значением, найденным по адресу программы 0xFFFE, и, таким образом, начнет выполнение кода по адресу, находящемуся в ячейках 0xFFFE и 0xFFFF (при условии, что адрес программы 16 бит, сохраненный в 2 байтах).В первом случае вам нужно будет убедиться, что ваша программа загрузилась по указанному адресу запуска, а во втором случае вы загрузите свою программу везде, где память программы была размещена в адресном пространстве контроллера, и вам нужно будет сделать убедитесь, что затем вы загрузите этот стартовый адрес в вектор адресов сброса. Обратите внимание, что выбор метода запуска не зависит от вас, он будет встроен в конструкцию выбранного вами микроконтроллера. AVR использует первый метод, а Cortex M3 - второй.

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

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

Примечание к примерам программ

Каждый раздел учебника будет включать несколько коротких примеров программ. Примеры начнутся с простейших концепций и добавят некоторые концепции в каждую последующую программу. Попутно некоторые комментарии будут обрезаны, чтобы попытаться уменьшить визуальный беспорядок и сосредоточить внимание на представленных новых концепциях. Например, комментарии о том, что «этот бит / порт / адрес необходимо настроить для вашего конкретного оборудования», в конечном итоге исчезнут, потому что к тому времени вы должны знать, что e.грамм. если я обсуждаю светодиодный выход на PORTA, бит 0, а на вашем оборудовании вы используете светодиод на PORTB, бит 7, вы внесете это изменение соответствующим образом. Или когда я упоминаю в первых программах, что после инструкции «ret», что вам лучше сначала настроить стек, через некоторое время этот комментарий и другие подобные комментарии исчезнут.

Что дальше?

Перед тем, как мы перейдем к нашей первой программе микроконтроллера, мигающему светодиодному индикатору «Hello World», нам необходимо осветить дополнительные детали, касающиеся конструкции и работы микроконтроллеров.Это будет предметом следующего урока этой серии.

Вам также может понравиться ... (продвигаемый контент)

Fab Academy 2020 - Lim Eng Hwa Lucas

Fab Academy 2020 - Lim Eng Hwa Lucas

Fab Academy 2020
04. Производство электроники


Назначение:

    Групповое задание:
  • характеризует правила проектирования для вашего процесса производства печатных плат

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


Обучающая неделя 4:

На этой неделе задание состоит в том, чтобы создать нашего собственного ISP (внутрисистемного программиста), именуемого « FabISP », что означает «Fab (-able) ISP».Поэтому вместо покупки коммерческого интернет-провайдера мы можем изготовить в FabLab простого USB-провайдера, который будут стоит всего несколько долларов. Этот FabISP, который, в свою очередь, будет использоваться для программирования микроконтроллеров на наших электронных платах, которые мы собираемся делать.

На этой неделе задание состоит не в том, чтобы «спроектировать» провайдера, а использовать один из «предопределенных» дизайнов с сайта класса Fab Academy. Я подписан на Учебник Брайана FabTinyISP с сайта класса и с использованием его дизайна.

Я новичок в электронике, и мне потребовалось некоторое время, чтобы понять основы электроники (все термины, компоненты и т. Д.), Пайку, комплектование печатной платы и программирование.

Результатом обучения на этой неделе является ознакомление с печатными платами и процессом их изготовления, которые включают следующее:
- Программное обеспечение для печатных плат: например, mobs и Autodesk EAGLE
- основы проектирования электронных схем, дорожек, контактных площадок и т. Д.
- Процесс изготовления печатных плат : что такое gcode, основы фрезерного станка для печатных плат (ЧПУ), что такое ЧПУ (что означает компьютерное числовое управление), тип используемых концевых фрез и v-бит, материал печатной платы и т. д.
- "набивка" платы который представляет собой процесс размещения компонентов на плате
- типы SMD и пайка SMD (устройства для поверхностного монтажа)
- схема тестирования цифровым мультиметром
- программирование и тестирование FabTinyISP


FabISP

Интернет-провайдер см. «Системный программист».Проще говоря, это объясняется как USB-устройство, которое устанавливается между компьютером и целевой платой (целевая плата оснащена микросхемой микроконтроллера AVR, на которой вы хотели бы программировать). Его основная цель отправить ваш согласованный исходный код для микросхемы AVR на целевой плате через последовательное соединение (или последовательный протокол) между ISP и целевой платой.

Ссылка: Википедия: внутрисистемное программирование

FabISP - это небольшой интернет-провайдер USB, который отличается простотой конструкции и может быть легко изготовлен в Fab Lab.Обычно плата односторонняя и состоит из различных компонентов поверхностного монтажа (SMD). MCU (или микроконтроллер), который я использую, - это Atmel. ATTiny 45. MCU - это микросхема с центральным процессором, встроенной памятью и другими программируемыми периферийными устройствами ввода / вывода. Остальные компоненты (например, резисторы и т. Д.) Имеют размер корпуса "1206".

Ссылка:
Википедия: Микроконтроллеры
Википедия: Микроконтроллеры AVR
ATtiny45 Лист данных с Microchip.com
Википедия: Atmel AVR Сравнительная таблица ATtiny

Краткое руководство по изготовлению печатной платы:
РУКОВОДСТВО: ЗАЧЕМ ТРАВЛЯТЬ ПП, КОГДА МОЖНО ФРЕЗЕРОВАТЬ?

Тест линии

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

Линейный тест распечатывает следы от 1 до 20 мил и используется для проверки работоспособности режущего инструмента, а также его настроек. Рисунок разделен на три части: несколько дорожек менее 1 мил, затем несколько дорожек менее 10 мил и несколько дорожек. менее 20 мил. 1 мил равен одной тысячной дюйма (0,001 дюйма).

1. Я загрузил трассировку " linetest.png " с сайта класса и импортировал в модов .

2.Заходим в "моды". Щелкните правой кнопкой мыши и выберите «Programs» -> «Open Server Program» -> «Roland» -> «mil» -> «MDX-20» -> «PCB png»

3. Импортируйте файл PNG в моды. мобы автоматически получают разрешение dpi из файла PNG, которое составляет 5000 dpi.
(Примечание: другой способ проверить разрешение PNG - vai GIMP -> Изображение -> Свойство изображения -> посмотрите и разделите «высоту в пикселях» на «высоту в дюймах», и вы получите те же 5000 dpi.)

4.Настройки модов:
Диаметр инструмента: 0,1 мм (0,00393 дюйма) (

Глубина резания: 0,6 мм (или 0,02362 дюйма))
Номер смещения = 1
Примечания: Я использовал v-бит 0,1 мм под углом 10 градусов (что известно в качестве `` гравировальной насадки ''), за ней следует V-образная насадка 0,1 мм под углом 30 градусов и концевая насадка 0,4 мм.

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

Щелкните правой кнопкой мыши поле «Вывод» в «Просмотр пути к инструменту» -> Откройте «локальный модуль» -> Откройте файл «Путь к G-коду (мм)»

6. Соедините путь "View Toolpath" с "path to G-code (mm)"

Настройка gcode:
скорость резки: 20 мм / с
Скорость шпинделя: 10000 об / мин

7. Щелкните правой кнопкой мыши поле «Выход» в «Путь к G-коду» -> Открыть «Серверный модуль» -> «Файл» - > «Сохранить»

8. Соедините путь «Путь к G-коду» с «Сохранить файл»

9.Нажмите «Рассчитать» в «mil raster 2D» и сохраните gcode (файл .nc) на USB-накопитель, который будет использоваться для травления на машине StepCarft 420 PCB

Результат показал, что использование концевой фрезы 0,4 мм обеспечивает лучшее резание, чем использование бит 0,1 мм V (сверла с V-образной формой под углом 30 градусов). PS: Линейный тест концевой фрезы 0,4 мм был изготовлен г-ном Стивеном, нашим местным инструктором Fab Lab.

Начало работы: использование Autodesk EAGLE для создания файлов gcode для фрезерного станка для печатных плат

1.Прочтите руководство Brian FabTinyISP. Учебник Брайана также доступен на веб-сайте Fab Academic Tutorial в разделе «Неделя 4: Электроника. Производство »учебный раздел.

2. Я загрузил файл «traces png», а также файлы «outline png» «FabTinyISP labeled board diagram» на сайт класса. Указано разрешение 1000 точек на дюйм.

3. Я скачал " Autodesk EAGLE 9.3.1 "образовательная версия для Windows (64-разрядная) с веб-сайта Autodesk Education Community. Eagle - это бесплатное программное обеспечение для проектирования печатных плат для в образовательных целях и сроком действия 3 года. EAGLE требуется идентификатор Autodesk для входа в систему.

Примечание:
- Путь установки по умолчанию для EAGLE "C: \ EAGLE 9.3.1"
- Требуется дисковое пространство: около 530 МБ
- Хранение файлов проекта EAGLE по умолчанию: " C: \ Users \ {UserName} \ documents папка \ eagle \ projects "

4. Запустите Autodesk EAGLE на панели управления Eagle, создайте новый проект под названием « FabTinyISP » и создайте новую доску.

5. Поскольку EAGLE не импортирует файл PNG напрямую, он импортирует только файл BMP. Поэтому необходимо использовать Microsoft Paint и конвертировать в файлы «Монохромные растровые изображения», так как изображения только черно-белые. Двухцветный цветной файл BMP легче импортировать в ОРЕЛ.

Примечание. Если изображения не находятся в «горизонтальной ориентации», я поверну изображение так, чтобы оно было горизонтальным, чтобы я мог горизонтально разместить материал печатной платы в вырезанном отверстии на расходной плате фрезерного станка для печатных плат (ЧПУ) в Fab Лаборатория.

6. Импортируйте файл растрового изображения

7. Поскольку белый цвет - это следы, как видно в файле PNG / BMP, выберите белый цвет, который будет импортирован и преобразован EAGLE в следы / линии

8. Выберите «дюйм» в качестве единицы и установите для «Точек на дюйм» значение , 1000 точек на дюйм, , поскольку это разрешение было предоставлено на сайте класса. Нажмите «ОК» и запустите сценарий импорта. PS: Если разрешение не указано, вы можете получить реолюцию, используя GIMP-> Свойство изображения или импортируйте файл PNG в мобов.Введите «1» в поле «Выбрать начальный слой для 1-го выбора цвета», и это будет импортировать следы на EAGLE «Layer 1 - Top», который является слоем (верхний рисунок).

9. Визуально проверьте дизайн FabTinyISP и удалите лишний текст / объекты из (например, в нижнем левом углу) дизайна.

10. Я импортировал схему и добавил текст «Lucas» на мою доску FabTinyISP с помощью инструмента EAGLE Text.
После размещения текстового объекта -> переместите указатель мыши в исходную точку (крест) текстового объекта -> щелкните правой кнопкой мыши -> Свойства -> измените размер шрифта на нужный размер -> проверьте шрифт тип "Вектор" вместо "Пропорциональный шрифт" для гравировка текста.

11. [Необязательно] Запустите DRC (проверку правил проектирования), чтобы убедиться, что введенный мной текст в порядке, перед отправкой на фрезерование. Ниже приведен мой персональный дизайн платы FabISP в Eagle.

12. Сохраните дизайн платы. Путь по умолчанию для EAGLE: "{username} \ Documents \ eagle \ projects \"

13. Повторите те же шаги, показанные выше, чтобы создать новый дизайн платы для контура FabTinyISP.
Импортируйте «контурный» дизайн (настройка dpi - 1000dpi), используя на этот раз настройку по умолчанию, EAGLE импортирует слой по умолчанию, который равен «200» для импорта BMP.

14. Переключитесь на EAGLE «Layer 16-Milling» и используйте инструмент линии, чтобы нарисовать контур для FabTinyISP, используя ширину линии 0,8 мм, так как вы будете использовать более крупную концевую фрезу для прорезания материала печатной платы. Используйте команду редактора EAGLE "Milter" для создания кривые углы.


Совет: если контур представляет собой прямоугольную форму, такую ​​как дизайн «linetest», вы можете просто нарисовать / выгравировать контур с помощью диаграммы трассировки, не создавая новый дизайн платы для контура, и использовать режущий инструмент «ручной нож» для резки снаружи прямоугольная форма.

Файл:
Файл платы My FabTinyISP в EAGLE:
myfabtinyisp trace brd
myfabtinyisp outline brd

Преобразование печатной платы

в код gcode

15. Я загрузил плагин pcb-gcode для EAGLE с https://github.com/febtop/pcb-gcode, чтобы преобразовать дизайн моей платы EAGLE в gcode. Я извлек файлы во вновь созданную папку называется "ulps" внутри папки программного обеспечения EAGLE Например. «C: \ EAGLE 9.3.1 \ ulps \ pcb-gcode-3.6.2.4» вместо извлечения в ulps внутри папки по умолчанию «Users \ My Documents \ eagle \ ulps».

Pcb-to-gcode - это программа на языке пользователя (ULP) для EAGLE, разработанная John T. Johnson Software LLC. Pcb-gcode ulp генерирует необходимый файл "gcode" для "механического травления" печатной платы с использованием любого стандартного фрезерного станка с ЧПУ (или маршрутизатора) для вырезать следы из меди на плате. Для получения дополнительной информации см. «Pcb-gcode-3.6.2.4 / docs / pcbgcode.pdf». Однако обратите внимание, что этот плагин является очень старой программой и может иметь проблемы несовместимости с последней версией EAGLE.

16. Перейдите в Панель управления Eagle -> Параметры -> Каталоги -> Установить программы на языке пользователя -> перейдите в папку pcb-gcode и добавьте путь (например, "; $ EAGLEDIR \ ulps \ pcb-gcode-3.6. 2.4 ") за путем по умолчанию" $ HOME \ EAGLE \ ulps ". Это тоже заявлено в документации.


17. В EAGEL Broad Design -> перейдите в Главное меню -> Файл -> выберите каталог pcb-gcode -> выберите «pcb-gcode-setup.ulp "и запустить сценарий надстройки пользователя

18. В окне ulp pcb-gcode щелкните вкладку «Машина», чтобы просмотреть параметры машины, и установите единицы измерения « миллиметры », что является стандартным форматом измерения в Сингапуре. затем измените настройки. Затем я перешел на первый экран это вкладка «Генерация» и настройте параметр. Я выбрал «разовый проход». Когда все в порядке, я нажал «Принято и сделай мою плату», чтобы сгенерировать файл gcode для фрезерования.

Некоторые машинные настройки pcb-gcode ulp:
Z High : 12,7 мм (высота, позволяющая очистить любые препятствия, такие как зажимы или приспособления, удерживающие плату внизу)
Z Up : 2,54 мм (высота для фрезерной коронки для подъема и перемещения из одного места в другое)
Z Down : -0,15 (Глубина в доске, которую инструмент должен прорезать при травлении)
Глубина сверления : -1,5 (Глубина просверливания / прорезания платы печатной платы. ( Толщина моей печатной платы FR1 составляет 1.Толщина 5 мм)

Смена инструмента : X-0, Y-0, Z-25,4 мм (положение, в которое нужно переместиться при замене фрезы (инструмента))
Диаметр инструмента. : 0,1 мм (диаметр фрезы (инструмента), используемой для травления). PS: Фактический диаметр инструмента может быть больше 0,4, но программа pcb-to-gcode выдаст ошибку при установке диаметра инструмента, отличного от 0,1 мм
Скорость подачи: Etch : 20 (скорость травления x - y), 75 ( для травления оси z)
Скорость подачи: Mil : 20 (скорость фрезерования x - y), 75 (для фрезерования оси z)
Создать верхние контуры - Создать g-код для верхнего травления, чтобы вырезать дорожки, колодки, на верхней стороне доски.
Генерировать глубину фрезерования - Генерировать G-код для фрезерования, насколько глубоко прорезать доску.
Однопроходный : При включении режущий инструмент сделает только один проход. Снимите этот флажок, чтобы настроить режущий инструмент так, чтобы он мог каждый раз делать несколько проходов вокруг дорожек на увеличивающемся расстоянии, например. используется для создания более широкий зазор от следов для облегчения пайки.

19.Наблюдайте за всплывающим окном предварительного просмотра pcb-gcode, обратите внимание на любые контактные площадки или следы, которые могут быть слишком близко друг к другу, образуя нежелательный «мост», линии, которые могут быть слишком толстыми, соприкасаются / сталкиваются друг с другом и т. Д.

Устранение неполадок:
  • Средство предварительного просмотра ulp pcb-gcode требует для запуска javaw.exe. Таким образом, вы можете вручную добавить каталог «javaw.exe» в системный путь.

20.Файл gcode сохраняется в папке по умолчанию C: \ Users \ {username} \ Document \ eagle \ {myproject} (например, «C: \ Users \ Lucas \ Documents \ eagle \ projects \ FabTinyISP»). Находим файл " myfabtinyisp_lucaslim.top.etch.gcode " "и копируем на флэш-накопитель для загрузки на ПК, подключенный к фрезерному станку с ЧПУ STEPCRAFT (фрезерный станок).

21. Для «контура»: в pcb-gcode выберите «генерировать глубину фрезерования» и установите, как правило, половину диаметра используемого инструмента, поэтому установите «0.41 ". Вручную изменил сгенерированный файл gcode, чтобы он имел несколько проходов, используя постепенное увеличение глубина 0,41 после каждого прохода. Последний проход должен быть на глубину 1,5, что соответствует моей печатной плате.

Файл:
Мой файл gcode FabTinyISP:
myfabtinyisp отслеживает gcode
myfabtinyisp outline gcode


Моделирование с помощью CAMotics

22. У меня есть два файла gcode, один для трассировок и один для контуров.Что касается контура, то он состоит из нескольких проходов и увеличивается по глубине.

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


Фрезерование платы FabTinyISP

23. Fab Lab @ T1442 имеет настольный фрезерный станок для печатных плат (ЧПУ) STEPCRAFT 420 (или также известный как маршрутизатор) для фрезерования моей печатной платы, а г-н Стивен, мой инструктор Fab Lab, научил меня использовать фрезерный станок для печатных плат. .

STEPCTAFT 420 Фрезерный станок для печатных плат (ЧПУ):

Я использую V-образную коронку 0,1 мм (V-образную гравировальную коронку) под углом 10 градусов. Причина в том, что V-образная насадка предположительно должна быть жестче, чем концевая фреза, и я могу получить более широкий срез, разрезав ее немного глубже.

В качестве материала печатной платы используется односторонний ламинированный медный слой FR1 75x50 мм (CCL), который представляет собой тонкий слой меди (для гравировки печатных плат) поверх непроводящей фенольной смолы.

Фрезы для следов : 0.V-образная насадка 1 мм под углом 10 градусов
Фреза для фрезерования контура : концевая фреза 0,8 мм
Материал печатной платы : Печатная плата FR1, односторонняя медная ламинированная (CCL), 75x50 мм. Толщина 1,5 мм.

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

25. Я использовал двустороннюю ленту, чтобы прикрепить плату печатной платы к жертвенной плате.

26.Загрузите файл gcode «fabisp.top.etch.tap» в программу STEPCRAFT.

27. Сначала я откалибровал оси x и y. Чтобы ускорить перемещение фрезы в нужное положение, я установил скорость подачи задания на «40%» и установил движение в «Непрерывный» режим. Я оставлю калибровку оси Z на потом, в виде Я хочу сначала "напечатать" мои следы.

28. Я «распечатал» свой рисунок, чтобы убедиться, что сверло неожиданно не выйдет из предполагаемой зоны фрезерования и не ударится по чему-либо.Это делается путем настройки оси Z (высоты) на высоту над ближайшим препятствием, над стороной. металлический рельс

29. Я продолжил калибровку оси Z, используя аксессуар Stepcraft Z zero. который теперь работает быстрее, иначе старый способ - положить тонкий лист бумаги и медленно опустить бит вниз, чтобы коснуться бумаги.

30. Начинаем фрезеровать дорожки для платы FabTinyISP.

31.Фрезерование контура платы FabTinyISP

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

33. Мой размолотый FabTinyISP.


Проверка моей платы FabTinyISP перед "набивкой" платы

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


Паяльная электроника

Пайка просто означает выделение тепла с помощью источника электричества для расплавления металла (припоя), чтобы соединить две вещи вместе, чтобы сформировать соединение.

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

Паяльная станция : паяльник HAKKO FX-950 с регулируемой температурой (производство Япония)
Припой (материал) для «начинки» : 0.Диаметр 015 дюймов (0,3 мм), 63% олова, 37% свинца, 1,2% флюса, припой
Припой (материал), используемый для USB-разъема : диаметр 0,028 дюйма (0,71 мм), 60% олова, 40% свинца, 2.2% Флюс, припой
Безопасность при пайке : Пайка в хорошо вентилируемом помещении. Ношение безопасного стекла
Температура пайки : от 275 до 300 градусов Цельсия (необходимо проверить паяльник, поскольку показания температуры на паяльной станции могут быть неточными)

Мой инструктор передал мне набор для практики пайки, чтобы начать практиковаться в пайке компонентов SMD (устройств поверхностного монтажа) различного типа; начиная практиковаться на «1206» компонентах, затем на «0805», затем на «0603» и остальном.«1206» относится к их упаковке / размеру 0,12 дюйма на 0,06 дюйма.


Практика пайки


«Набивка платы FabISP»

Компоненты, подлежащие пайке непосредственно на поверхности платы, известны как SMD (устройства для поверхностного монтажа). "Пакет" SMD равен "1206", что означает, что их размер равен 0.12 дюймов x 0,06 дюйма, что является намного большим размером SMD.

Компоненты для моего FabTinyISP в упаковке «1206»:

1x ATtiny45
2 резистора 1 кОм
2 резистора 499 Ом
2 резистора 49 Ом
2 стабилитрона 3,3 В
1x красный светодиод
1x зеленый светодиод
1x 100 нФ 2 шт. заголовок

Компоненты для 6-контактного кабеля ISP:

35. Мое обучение пайке SMD:

- Среда для пайки : ярко освещенный рабочий стол, хорошо вентилируемый рабочий стол
- Паяльная проволока : для пайки SMD я использовал разбавитель 0.Паяльная проволока 4 мм / 0,5 мм. Выводы с сердечником из флюса (канифольный сердечник).
- Температура пайки : от 250 до 300 градусов, но проверьте, что жало паяльника нагрето до температуры, ненадолго поместив припой на жало, чтобы увидеть, расплавляется ли он, припой должен плавиться немедленно
Время пайки :
- Нанесите наконечник на медную площадку и ножку компонента, чтобы немного нагреть их. Посчитайте «одна тысяча», «две тысячи». Затем подайте припой к стыку, сосчитайте «три тысячи», «четыре тысячи», затем удалите железо.
- Паяйте быстро, так как длительное время и чрезмерный нагрев может повредить компоненты.
- Используйте сторону жала паяльника (а не острие паяльного жала), чтобы коснуться медной площадки на печатной плате и ножки компонента, чтобы немного нагреть их. Расположите наконечник таким образом, чтобы обеспечить максимальный контакт поверхности наконечника. а также подушечку и ножку. Затем пропустите через него припой. Паяльная проволока должна легко плавиться и стечь по ножке на контактную площадку.
- Количество припоя : меньше - лучше, старайтесь использовать меньше припоя для соединений
- Что припаять первым : Сначала я припаял "ATtiny45".Потом перешел к пайке резисторов, потом остальных.
- Удаление припайки : Я припаял светодиодные диоды в неправильной ориентации, предполагая, что маркировка «T» на светодиодном диоде представляет «катод», и мне пришлось распаять светодиодные диоды. Распайка, удерживая пинцетом составная часть который вы хотите снять, и поднимите его со стола. Затем поднесите термофен к суставам при температуре, скажем, 300 градусов по Цельсию, и через некоторое время FabTinyISP упадет на стол.

- Этапы :
1. Положите оба моих локтя на стол, а не поднимайте руки вверх во время пайки, это предотвратит быстрое утомление обеих моих рук.

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

3. Подготовьте жало паяльника:
- Проверочное жало перед пайкой, оно должно быть серебристого или блестящего.Загрязненный наконечник трудно припаять.
- Перед пайкой нам нужно подготовить жало, что также называется «тонировкой» жала. «Лудить» жало паяльника - это расплавление припоя на жало паяльника. Когда вы кладете металл на металл, это называется «тонировка». Этот легкий слой припоя помогает предотвращают окисление на наконечнике и облегчают растекание припоя. После тонировки очистите наконечник, протерев наконечник о латунную губку или губку для пайки. Наконечник будет выглядеть блестящим. После лужения сразу приступаем к пайке.Уборка осуществляется нанести припой на наконечник и очистить его металлической губкой.
Повторно залуживайте и перидо очищайте наконечник.

Примечание:
Резисторы:
Поскольку существует несколько разных резисторов, мне нужно проверить правильный код резисторов, которые будут использоваться. Резисторы
Номинал:
R1, R6: 1 кОм (Код: 1001)
R2, R5: 499 Ом (Код: 4990)
R3, R4: 49 Ом (Код: 49R9)

Диоды (стабилитроны, а также светодиодные диоды):
Диод имеет две клеммы (или контакты), и эти клеммы «поляризованы».Положительный конец диода называется «анодом», а отрицательный конец - «катодом».

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

Перемычка:
J1 служит для временного соединения двух контактных площадок.

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

36.Воспользуйтесь "ручкой для рисования" и сделайте отметку на 6-контактном штыре, чтобы обозначить контакт 1.

37. Мой готовый FabTinyISP немного тонок и болтается при вставке в порт USB, поэтому я вырезал по форме FabTinyISP и вставил под FabTinyISP.

Изготовление ISP 6-контактного кабеля

Вставьте один конец ленты в 6-контактный контактный разъем и используйте зажим, чтобы плотно зажать ленту и клемму. Затем сделайте разметку, чтобы указать контакт 1 на обоих концах 6-контактных клемм

Тестирование платы (на короткое замыкание)

1.Сделайте визуальный осмотр платы, чтобы выявить проблемы, соединения холодной пайки, отсутствующие компоненты или компоненты, установленные в неправильной ориентации и т. Д. «Переработайте», если необходимо.
2. Затем с помощью цифрового мультиметра проверьте тракт на отсутствие короткого замыкания. Проверка путей VCC или GND с его компонентами вдоль этого пути. При необходимости «доработайте».

Краткое описание использования цифрового мультиметра доступно на 7 неделе - неделе электронного дизайна.

Понимание программирования AVR и набор инструментов

AVR (для программирования FabTinyISP)

Мы используем либо микроконтроллер AVR (или микросхему AVR), известный как ATTiny44A или ATTiny45 в классе.

Прежде чем мы начнем программировать микроконтроллер AVR, нам нужно получить / установить несколько программных инструментов, прошивок и / или библиотек. Эти программные инструменты представляют собой отдельное автономное программное обеспечение и не объединены в одно целое.Они относятся к как «набор инструментов» для программирования микроконтроллера AVR.

«Цепочка инструментов», таким образом, относится к набору (или коллекции) инструментов / библиотек от написания программы до программирования микроконтроллера AVR. Сюда входят компилятор, ассемблер, компоновщик, а также стандартные библиотеки C и математические библиотеки.

Базовый обзор Toolchain:
1. [Writting Code] Напишите исходный код (например, на языке программирования c) с помощью простого текстового редактора

2. [Compile] Скомпилируйте исходный код в машинный код с помощью компилятора с открытым исходным кодом. Машинный код относится к сгенерированному шестнадцатеричному файлу.
(я использую компилятор « avr-gcc »)
(в командной строке введите «avr-gcc --help» для получения дополнительной информации)

3. [Flash Programming] Использование программного обеспечения для загрузки ( avrdude ) для отправки машинного кода целевой микросхеме AVR, которая хранит инструкции в своей энергонезависимой флэш-памяти. Этот процесс также известен как «Flash-программирование», поскольку мы передача кода во флеш-память на микросхеме AVR.
(микросхема AVR работает только с файлом .hex, который является машинным кодом)
(PS: в командной строке введите «avrdude -h» для получения дополнительной информации)
(флэш-память микросхемы AVR аналогична BIOS в компьютере)

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

.

Исходный код

Компилятор (avr-gcc)

Флэш-программирование (avrdude)

Чип AVR запускает код

Программирование моего FabTinyISP

1.Я следил за учебником Брайана на сайте класса, чтобы узнать, как программировать мой FabISP. Поскольку я все еще новичок в Linux, я решил использовать набор инструментов установка для Windows.

2. Загрузите WinAVR с веб-сайта SourceForge https://sourceforge.net/projects/winavr/. WinAVR будет установлен в "C: \ WinAVR-20100110"
Примечание. Дополнительную информацию о WinAVR см. В «WinAVR-user-manual.html», расположенном в папке WinAVR-20100110.

3.Во время установки WinAVR автоматически добавляется к «переменной среды или системному пути», чтобы операционная система могла легко найти исполняемые программы avrdude.

4. Откройте «Командную строку (Windows)» и введите «avrdude», и вы увидите, что это все еще более старая версия «avrdude (версия 5.10)». Я загрузил последнюю версию avrdude 6.3 с http://savannah.nongnu.org/projects/avrdude и распаковал ее на свой диск C: \.

5. Измените переменную среды для системного пути и установите avrdude ver 6.3 путь перемещен выше "WinAVR". Снова введите «avrdude» в командной строке, и теперь она покажет версию 6.3.
Например. : Системный путь -> C: \ avrdude-6.3-mingw32 выше C: \ WinAVR-20100110 \ bin и C: \ WinAVR-20100110 \ utils \ bin

6. Загрузите и установите «Программатор AVR и драйвер интерфейса SPI для Windows» с https://learn.adafruit.com/usbtinyisp/drivers.

7. Я подключил свой FabTinyISP к другому (работающему) FabISP, позаимствованному у моего инструктора Fab Lab.Обратитесь к конструкции платы Брайана, убедитесь, что лента кабеля правильно подключена, например. подключите контакт 1 FabISP к контакту 1 FabTinyISP. Потом подключаю в мою записную книжку. ОС Windows обнаружит USB-программатор FabISP и отобразит устройство на экране «Диспетчер устройств» в Панели управления Windows.

8. Убедиться, что avrdude и мой FabISP правильно подключены и могут общаться друг с другом. Я набрал " avrdude -c usbtiny -p t45 ", чтобы проверить.

avrdude -c usbtiny -p t45

Синтаксис: avrdude -c {программист: например. usbtiny} -p {Микросхема AVR на целевой плате: например. t44}

Вы можете запустить следующую команду, чтобы отобразить список поддерживаемых программаторов / микросхем AVR от avrdude.

avrdude -c? // отображаем список программистов
avrdude -p? // выводим список микросхем AVR

9.Загрузите прошивку FabISP (firmware_45.zip) с сайта класса. Распакуйте zip-файл в папку, например «C: \ FabTinyISP Firmware».

10. Перейдите в папку с прошивкой ( C: \ FabTinyISP Firmware \ ) и откройте « makefile », чтобы посмотреть. Вверху приведено краткое введение в различные команды make . В простом объяснении makefile используется для упрощенного выполнения различных отдельных задач (или инструкций), он похож на один файл, содержащий все общие задачи (или инструкции), которые вы можете запустить.

11. Я запустил команду "make", чтобы скомпилировать исходный код (который написан на C) и, наконец, сгенерировать файл .hex. Обратите внимание на использование " avr-gcc "

12. Я выполнил команду "make flash", чтобы прошить целевой чип (FabTinyISP). Обратите внимание на использование « avrdude для передачи шестнадцатеричного файла на целевую плату».

13. Я выполнил команду "сделать предохранители", чтобы запрограммировать биты предохранителей на целевом чипе (FabTinyISP)

14.Я выполнил команду "make rstdisbl", чтобы сгорел предохранитель сброса на целевом чипе (FabTinyISP).

15. Чтобы убедиться, что я запрограммировал свой FabISP. Я отключил другой программатор FabISP и подключил свой FabTinyISP к ноутбуку. В диспетчере устройств Windows я увидел, что мой компьютер распознал FabTinyISP.

16. Тестирование моего FabTinyISP путем подключения к другому FabISP (Примечание: целевой FabISP должен находиться в программируемом режиме, что означает, что его перемычка не должна разъединяться) и подключения моего FabTinyISP к USB-порту моего ноутбука.Затем запустите команда « avrdude -c usbtiny -p t44 ». Результат показывает, что мой FabTinyISP готов!

17. Отсоедините «J1», удалив припой. Это предотвратит случайную запись в FabTinyISP в будущем.


Отражение:

Поскольку я новичок в мире электроники, я нахожу этот недельный урок и задание сложным и сложным.К счастью, мои инструкторы Fab Lab, мистер Стивен и мистер Родни, были очень терпеливыми и добрыми, чтобы научить меня и направлять меня.

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

Изучение всех параметров процесса травления также заняло у меня некоторое время.

Я дважды порезал палец острым концом v-бит 0,1 мм (10 градусов). Один раз при смене v-бит на машине Stepcraft, другой раз при извлечении v-бит из коробки для синицы, помещая палец на кончик / верхнюю часть пластиковую крышку и достаем ее (v-бит) из коробки.

Всегда держите v-образную насадку за стороны при извлечении v-образной насадки из коробки и не касайтесь кончика / верхней части пластиковой крышки

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

Наверх


Начало работы с микроконтроллерами AVR®

Это серия видео и практических занятий, посвященных основам разработки микроконтроллеров AVR ® . Проекты разрабатываются с нуля с использованием таблицы данных, AVR LibC и более поздних примечаний к приложениям в качестве основных справочных материалов по программированию (START не используется).
В серии видео представлены несколько периферийных устройств AVR, включая GPIO, таймер / счетчик, USART и ADC. В процессе обучение развивается в направлении создания примера приложения, которое производит выборку аналогового светового датчика с помощью АЦП, а затем пропорционально обновляет рабочий цикл ШИМ на основе показаний датчика АЦП. Затем усредненное значение датчика отправляется через USART на терминал ПК.

Автономное обучение можно загрузить как «Указание по применению AN17644 - Начало работы с микроконтроллером AVR» , которое содержит следующие проекты:

  1. Включить светодиод на кнопке
  2. Уменьшите яркость светодиода с помощью ШИМ, используя TC1
  3. Канал АЦП считывает каждые 500 мс и LED0 переключается
  4. Оптимизация энергопотребления и спящий режим

Вы также можете получить доступ к этому обучению из базы данных Atmel START.
Atmel Start Project - Начало работы с микроконтроллером AVR

Этот тренинг является комбинированным решением вышеупомянутых проектов. В этом комбинированном решении добавлен код оптимизации мощности, спящий режим выбран как POWERDOWN, ADC channel0 считывается, а PWM генерируется на PB1 с использованием TC1.

После инициализации периферийных устройств устройство переходит в спящий режим и выходит из спящего режима при прерывании PB7 смены вывода. При нажатии SW0 (PB7) на ATmega328PB устройство выходит из спящего режима, затем считывает ADC channel0 и ждет 10 секунд.В это время наблюдается затемнение светодиода на PB1 (подключите PB1 к PB5 на ATmega328PB Xplained Mini). Через 10 секунд устройство снова перейдет в спящий режим.

ПОДДЕРЖИВАЕМЫЙ ОЦЕНОЧНЫЙ КОМПЛЕКТ

  • ATmega328PB Xplained Mini

ЗАПУСК ДЕМО ПРОЕКТА

  1. Щелкните «Загрузить пакет» и сохраните файл .atzip.
  2. Импортируйте файл .atzip в Atmel Studio 7, файл > Импорт> Atmel Start Project .
  3. Выполните сборку и загрузите на поддерживаемую оценочную плату.
  4. На ATmega328PB Xplained Mini подключите PB1 к PB5, так как LED0 подключен к PB5. Затем подключите PC0 к 3V3, так как PC0 является каналом 0 АЦП.
  5. Устройство переходит в спящий режим.
  6. Нажмите «SW0» на ATmega328PB Xplained Mini, чтобы вывести устройство из спящего режима. Считывается канал АЦП, затем подождите 10 секунд. Наблюдайте за тем, как светодиод гаснет в течение 10 секунд.
  7. Через 10 секунд устройство снова переходит в спящий режим. В спящем режиме затемнение светодиода не наблюдается, так как в спящем режиме POWERDOWN TC1 также останавливается.

Аппаратный взлом: извлечение прошивки из микроконтроллеров Atmel

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

В этой первой части мы рассмотрим микроконтроллер Atmel Atmega2561. Чтобы получить доступ к прошивке микроконтроллеров Atmel, мы будем читать данные напрямую с контроллера через последовательный интерфейс программирования (SPI). Для этого требуются следующие инструменты и программное обеспечение:

Используя Bus Pirate в сочетании с программным обеспечением с открытым исходным кодом avrdude , микропрограмму микроконтроллера Atmel AVR можно извлечь из флэш-памяти микроконтроллера через SPI. Приложение avrdude можно скачать здесь.

Стандартная прошивка Bus Pirate должна работать нормально, если вы не извлекаете флеш-память из определенных микроконтроллеров Atmel, таких как ATmega 2560 и 2561. Прошивка Bus Pirate может иметь проблемы с извлечением памяти выше 128 КБ на ATmega 2560-2561. Чтобы решить эту проблему, вам необходимо установить прошивку STK500v2 на Bus Pirate. Прошивка STK500v2 превратит Bus Pirate в клон отладчика AVR. Прошивку для этого можно скачать здесь, а инструкции по обновлению прошивки Bus Pirate можно найти на этом веб-сайте.

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

На этом этапе таблица данных пригодится для определения распиновки микроконтроллера.Используя таблицу данных Atmega2561, вам нужно будет определить и найти контакты SPI «Power» и «Ground».

  • MOSI = последовательный вход главного выхода
  • MISO = Главный вход с последовательным выходом
  • SCLM = последовательные часы
  • RESET = Сброс микроконтроллера
  • GND = Земля
  • В постоянного тока = напряжение обычно 3,3 В постоянного тока

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


Источник изображения

После этого вы можете подключить Bus Pirate к портам SPI чипа:

Atmega2561 Автобус Пиратский
Штифт SCK 11 SCLK
Контакт MOSI 12 MOSI
MISO контакт 13 MISO
Пин сброса 20 CS
Контакт 21 Vcc Vcc 3.3vdc
GND контакт 22 GCC

После подключения вы можете использовать приложение avrdude для извлечения флэш-памяти из микроконтроллера ATmega 2561, используя следующую команду:

avrdude -p m2561 -c stk500v2 e -P / dev / ttyUSB0 -u flash: r: flash.bin: r

Для микроконтроллера Atmel AVR используется переключатель -p . Коммутатор -c идентифицирует устройство интерфейса SPI, -P указывает на расположение устройства Bus Pirate - в этом случае он подключен к системе как ttyUSB0 - и, наконец, -u сообщает avrdude извлечь во флеш-память и запишите его во флеш-память.мусорное ведро.

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

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

Нужна помощь в обеспечении безопасности вашего Интернета вещей? Узнайте больше о наших услугах по тестированию безопасности Интернета вещей.
Начать

Все, что вам нужно знать- (Часть 1/46)

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

Рис. 1: Блок-схема, показывающая архитектуру микроконтроллера AVR

]]>

Означает ли это, что микроконтроллер - это другое название компьютера…? Ответ - нет! Компьютер, с одной стороны, предназначен для выполнения всех задач общего назначения на одной машине, например, вы можете использовать компьютер для запуска программного обеспечения для выполнения вычислений, или вы можете использовать компьютер для хранения какого-либо мультимедийного файла или для доступа в Интернет через браузер, в то время как микроконтроллеры предназначены для выполнения только определенных задач, например, e.g., автоматическое выключение кондиционера, когда температура в помещении упадет до определенного предела, и повторное включение, когда температура поднимется выше определенного предела.

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

История АРН

AVR был разработан в 1996 году корпорацией Atmel. Архитектура AVR была разработана Альф-Эгилем Богеном и Вегардом Волланом. AVR получил свое название от своих разработчиков и означает A lf-Egil Bogen V egard Wollan R ISC микроконтроллер , также известный как A dvanced V irtual R ISC. AT90S8515 был первым микроконтроллером, основанным на архитектуре AVR , однако первым микроконтроллером, появившимся на коммерческом рынке, стал AT90S1200 в 1997 году.

Микроконтроллеры AVR доступны в трех категориях:

1. TinyAVR - Меньше памяти, небольшой размер, подходит только для более простых приложений

2. MegaAVR - это самые популярные из них, имеющие хороший объем памяти (до 256 КБ), большее количество встроенных периферийных устройств и подходящие для умеренных и сложных приложений.

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

В следующей таблице сравниваются микроконтроллеры упомянутой выше серии AVR:

Название серии

Штыри

Флэш-память

Особенность

TinyAVR

6-32

0,5-8 КБ

Маленький

MegaAVR

28-100

4-256 КБ

Расширенная периферия

XmegaAVR

44-100

16-384КБ

DMA, система событий включена

Важность AVR

Что особенного в AVR?

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

8051

ПИК

АРН

СКОРОСТЬ

Медленная

Умеренная

Быстро

ПАМЯТЬ

Малый

Большой

Большой

АРХИТЕКТУРА

CISC

RISC

RISC

АЦП

Отсутствует

Встроенный

Встроенный

Таймеры

Встроенный

Встроенный

Встроенный

Каналы ШИМ

Отсутствует

Встроенный

Встроенный

AVR - это 8-битный микроконтроллер, принадлежащий к семейству компьютеров с сокращенным набором команд ( RISC ).В архитектуре RISC набор команд компьютера не только меньше по количеству, но также проще и быстрее в работе. Другой тип категоризации - это CISC (компьютеры со сложным набором команд). Щелкните здесь, чтобы узнать о различиях между RISC и CISC. Мы рассмотрим это подробнее, когда узнаем об архитектуре микроконтроллеров AVR в следующем разделе.

Давайте посмотрим, что все это значит. Что такое 8 бит? Это означает, что микроконтроллер может передавать и принимать 8-битные данные.Доступные регистры ввода / вывода 8-битные. Контроллеры семейства AVR имеют архитектуру на основе регистров, что означает, что оба операнда для операции хранятся в регистре, а результат операции также сохраняется в регистре. На следующем рисунке показан простой пример выполнения операции ИЛИ между двумя входными регистрами и сохранения значения в выходном регистре.

Рис. 2: Блок-схема, показывающая простой пример выполнения операции ИЛИ между двумя входными регистрами и сохранения значения в выходном регистре

]]>

CPU принимает значения из двух входных регистров INPUT-1 и INPUT-2, выполняет логическую операцию и сохраняет значение в регистре OUTPUT.Все это происходит за 1 цикл выполнения.

В нашем путешествии с AVR мы будем работать над микроконтроллером Atmega16, который представляет собой 40-контактную ИС и принадлежит к категории megaAVR семейства AVR. Некоторые особенности Atmega16:

· 16 КБ флэш-памяти

· 1 КБ SRAM

· 512 байт EEPROM

· Доступен в 40-контактном DIP

· 8-канальный 10-разрядный АЦП

· Два 8-битных таймера / счетчика

· Один 16-битный таймер / счетчик

· 4 канала ШИМ

· Системный программист (ISP)

· Последовательный USART

· Интерфейс SPI

· Цифро-аналоговый компаратор.

Архитектура АРН

Микроконтроллеры AVR основаны на усовершенствованной архитектуре RISC и состоят из 32 x 8-битных рабочих регистров общего назначения. В течение одного такта AVR может принимать входные данные из двух регистров общего назначения и помещать их в ALU для выполнения запрошенной операции и передавать результат обратно в произвольный регистр. ALU может выполнять как арифметические, так и логические операции

по входам из регистра или между регистром и константой.Операции с одним регистром, такие как взятие дополнения, также могут выполняться в ALU. Мы видим, что AVR не имеет регистра, как аккумулятор, как в семействе микроконтроллеров 8051; операции могут выполняться между любыми регистрами и могут храниться в любом из них.

AVR следует формату Гарвардской архитектуры, в котором процессор оснащен отдельной памятью и шинами для информации о Программе и данных. Здесь, когда инструкция выполняется, следующая инструкция предварительно выбирается из памяти программ.

Рис. 3: Блок-схема архитектуры памяти в AVR

]]>

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

Существует две разновидности микроконтроллера Atmega16:

1. Atmega16 : - Диапазон рабочих частот 0 - 16 МГц.

2. Atmega16L : - Диапазон рабочих частот 0-8 МГц.

Если мы используем кристалл 8 МГц = 8 x 10 6 Гц = 8 миллионов циклов, тогда AVR может выполнить 8 миллионов инструкций.

Соглашение об именах.!

AT обозначает производителя Atmel, Mega означает, что микроконтроллер принадлежит к категории MegaAVR, 16 обозначает память контроллера, которая составляет 16 КБ.

Рис. 4: Соглашение об именах микроконтроллера AVR

]]>

Архитектурная схема: Atmega16

Следующие пункты объясняют строительные блоки архитектуры Atmega16 :

· Порты ввода-вывода : Atmega16 имеет четыре (PORTA, PORTB, PORTC и PORTD) 8-битных портов ввода-вывода .

· Внутренний калиброванный осциллятор : Atmega16 оснащен внутренним генератором для управления часами.По умолчанию Atmega16 настроен на работу с внутренним откалиброванным генератором с частотой 1 МГц. Максимальная частота внутреннего генератора 8 МГц. В качестве альтернативы ATmega16 может работать с внешним кварцевым генератором с максимальной частотой 16 МГц. В этом случае вам нужно изменить биты предохранителей. (Биты-предохранители будут объяснены в отдельном руководстве).

· Рис. 5: Блок-схема, поясняющая архитектуру AVR

]]>

Интерфейс АЦП : Atmega16 оснащен 8-канальным АЦП (аналого-цифровой преобразователь , ) с разрешением 10 бит.АЦП считывает аналоговый вход, например, вход датчика, и преобразует его в цифровую информацию, понятную микроконтроллеру.

· Таймеры / счетчики : Atmega16 состоит из двух 8-битных и одного 16-битного таймера / счетчика. Таймеры полезны для создания точных действий, например, для создания временных задержек между двумя операциями.

· Сторожевой таймер : Сторожевой таймер присутствует с внутренним генератором.Сторожевой таймер непрерывно отслеживает и сбрасывает контроллер, если код застревает при выполнении любого действия дольше определенного интервала времени.

· Прерывания : Atmega16 состоит из 21 источника прерываний, четыре из которых являются внешними. Остальные - внутренние прерывания, которые поддерживают периферийные устройства, такие как USART, ADC, таймеры и т. Д.

· USART : Универсальный синхронный и асинхронный интерфейс приемника и передатчика доступен для взаимодействия с внешним устройством, способным к последовательной связи (передача данных бит за битом).

·

Архитектура продолжение

Регистры общего назначения : Atmega16 оснащена 32 регистрами общего назначения, которые напрямую связаны с арифметическим логическим устройством (ALU) процессора.

· Память : Atmega16 состоит из трех различных разделов памяти:

1. Flash EEPROM : Flash EEPROM или простая флэш-память используется для хранения программы, выгруженной или записанной пользователем на микроконтроллер.Его можно легко стереть электрически как единое целое. Флэш-память энергонезависима, т. Е. Сохраняет программу даже при отключении питания. Atmega16 доступен с 16 КБ встроенной программируемой Flash EEPROM.

2. Байт-адресуемая EEPROM : Это также энергонезависимая память, используемая для хранения данных, таких как значения определенных переменных. Atmega16 имеет 512 байт EEPROM, эта память может быть полезна для хранения кода блокировки, если мы разрабатываем такое приложение, как электронный дверной замок.

3. SRAM : Статическая оперативная память, это энергозависимая память микроконтроллера, т.е. данные теряются при отключении питания. Atmega16 имеет 1 КБ внутренней SRAM. Небольшая часть SRAM предназначена для регистров общего назначения, используемых ЦП, а часть - для периферийных подсистем микроконтроллера.

· ISP : Семейство контроллеров AVR имеет В системной программируемой флэш-памяти , которую можно программировать, не удаляя ИС из схемы, ISP позволяет перепрограммировать контроллер, пока он находится в схеме приложения.

· SPI : Последовательный периферийный интерфейс , порт SPI используется для последовательной связи между двумя устройствами на общем источнике синхронизации. Скорость передачи данных SPI больше, чем у USART.

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

· ЦАП : Atmega16 также оснащена интерфейсом цифро-аналогового преобразователя (ЦАП), который может использоваться для обратного действия, выполняемого АЦП. ЦАП можно использовать, когда необходимо преобразовать цифровой сигнал в аналоговый.

Семейство MegaAVR

Различные микроконтроллеры серии MegaAVR:

ATmega8 и Atmega32 являются другими членами контроллеров серии MegaAVR.По архитектуре они очень похожи на ATmega16. Контроллеры MegaAVR с низким энергопотреблением также доступны на рынках. В следующей таблице показано сравнение между различными членами семейства MegaAVR:

Название детали

ПЗУ

RAM

EEPROM

Контакты ввода / вывода

Таймер

Прерывания

Эксплуатация Напряжение

Рабочая частота

Упаковка

ATmega8

8 КБ

1 КБ

512B

23

3

19

4.5-5,5 В

0-16 МГц

28

ATmega8L

8 КБ

1 КБ

512B

23

3

19

2,7-5,5 В

0-8 МГц

28

ATmega16

16 КБ

1 КБ

512B

32

3

21

4.5-5,5 В

0-16 МГц

40

ATmega16L

16 КБ

1 КБ

512B

32

3

21

2,7-5,5 В

0-8 МГц

40

ATmega32

32 КБ

2 КБ

1 КБ

32

3

21

4.

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

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