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

Содержание

Самое простое устройство на микроконтроллере

Микроконтроллеры / Создание устройств /

Разработка устройств на микроконтроллерах

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

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

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

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

Пример устройства на микроконтроллере

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

Для опытов возьмём один из самых дешёвых микроконтроллеров – ATtiny13A, о котором я уже немало поведал на этом сайте.

Самая простая схема на микроконтроллере

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

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

Конечно, это всё достаточно примитивно. Однако в давние времена, когда я занимался (в том числе) и обслуживанием систем сигнализации, мы использовали такие самодельные “датчики”. Например, обматывали решётку на окне тонким проводом и подключали его в шлейф прибора сигнализации. Если злодей выдернет решётку – провод порвётся и сигнализация сработает.

Ну а теперь к схеме.

Микроконтроллер ATtiny13A по умолчанию использует внутренний генератор на 9,6 МГц (это следует из документации, и я писал об этом здесь). И если нас такое решение устраивает (а нас оно устраивает), то это означает, что никаких внешних цепей для задания тактовой частоты нам не потребуется.

Микроконтроллер ATtiny13A выпускается в нескольких корпусах. Будем считать, что у нас корпус 8PDIP/SOIC (подробнее об этом здесь). Тогда схема будет такой:

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

На схеме SA1 может быть либо охранным датчиком, либо просто тонким проводом, обмотанным, например, вокруг какого-то охраняемого предмета. При обрыве провода (или размыкании контакта) сигнализация “срабатывает” и светодиод загорается.

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

Простая программа микроконтроллера

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

Итак, пройдём путь от создания проекта до написания программы.

Запускаем среду разработки AVRStudio 4 и видим окно:

Нажимаем кнопку NEW PROJECT. Откроется окно:

Здесь можно выбрать вид проекта – на ассемблере или на Си, задать имя проекта и выбрать каталог для файлов проекта.

ВНИМАНИЕ!
В пути к файлу не должно быть русских букв. То есть если вы сохраните проект в папку МОИ_ПРОГРАММЫ, то программа не скомпилируется, так как AVR Studio 4 может не понять путь с русскими буквами.

Мы будем писать программу на ассемблере. Проект назовём myprog.

Теперь можно нажать кнопку ДАЛЕЕ (NEXT).

В следующем окне надо выбрать отладочную платформу и тип микроконтроллера:

Выберем AVR Simulator. Ну и поскольку у нас микроконтроллер ATtiny13A, то выберем ATtiny13

. Затем нажимаем FINISH.

Ну вот. Проект создан. Редактор исходного кода открыт. Теперь можно приступить к написанию программы. Она может быть примерно такой:


; Сообщить ассемблеру модель микроконтроллера
.device ATtiny13A
.nolist
; Подключить файл с объявлениями для ATtiny13A
.include "tn13def.inc"  
.list

; Инициализация
Init:
  ; PB0 - вход, остальные - выходы
  LDI R16,  0b11111110
  OUT DDRB, R16
  ; Включить подтяжку для PB0
  LDI R16,  0b00000001
  OUT PortB, R16

; Начало программы
Start:
  SBIS PinB,  0   ; Проверить датчик
  SBI  PortB, 1   ; Если обрыв, то включить светодиод
  SBIC PinB,  0   ; Проверить датчик
  CBI  PortB, 1   ; Если замкнут, то погасить светодиод
  
RJMP Start
; Возвращаемся к началу программы

При инициализации мы определяем, какие выводы будут входами, а какие – выходами. Если в бит регистра DDRB записать 0, то соответствующий вывод порта В будет входом, если 1 – выходом.

У нас к выводу РВ0 подключен датчик, следовательно, РВ0 будет входом. К выводу РВ1 подключен светодиод, значит, РВ1 будет выходом. Неиспользуемые выводы лучше всегда делать выходами (хотя здесь у каждого свои предпочтения).

С помощью команды LDI мы записываем число в регистр R16, который используем как временную переменную. Это необходимо, потому что команда OUT не может записать в регистр DDRB непосредственное значение.

Далее мы включаем подтягивающий резистор для вывода РВ0. Для этого в регистр

PortB надо в соответствующий бит записать 1.

Ну а далее начинается программа.

Сначала выполняем команду SBIS. Эта команда проверяет указанный вход. И если на этом входе 1, то следующая команда НЕ БУДЕТ выполнена. То есть в этом коде:


SBIS PinB,  0 
SBI  PortB, 1 
SBIC ...

мы проверяем РВ0. Если там единица, то мы переходим к команде SBIC. Если же ноль (датчик разомкнут – сигнализация сработала), то выполняем команду SBI, которая устанавливает указанный выход (то есть в нашем случае зажигает светодиод, подавая напряжение на вывод РВ1).

Затем выполняем команду SBIC. Эта команда также проверяет указанный вход. Но если на этом входе 0, то следующая команда не будет выполнена. Если же 1 (контакты датчика замкнуты), то будет выполнена команда

CBI, которая обнуляет указанный вывод. То есть на РВ1 будет подан 0, и светодиод погаснет.

Таким образам исполняется наш простой алгоритм: если датчик “не сработал” (контакт замкнут), то светодиод не горит. Если контакты разомкнулись, то светодиод светится.

На этом пока всё. Если что-то осталось непонятно – посмотрите видео в начале статьи.



Микроконтроллеры для ЧАЙНИКОВ

Бесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее…


Схема электронного секундомера на микроконтроллере AT89C4051

Большинство лабораторий и учебных заведений нуждаются в точных секундомерах для измерения времени. Этот простой проект фокусируется на построении секундомера с точностью до 0,01 секунды. Секундомер можно использовать для спортивных событий, подключив датчик через разъем CON2.

Схема и работа электронного секундомера

Принципиальная схема прецизионного секундомера показана ниже. Она построена на стабилизаторе напряжения 7805 (IC1), микроконтроллере AT89C4051 (IC2), 4-разрядном 7-сегментном дисплее с общим анодом (DIS1) и нескольких дополнительных компонентах.

Схема питается от сети 220В с помощью понижающего трансформатора X1 (на схеме не показан). С выход X1 (7,5В-0-7,5В) переменное напряжение выпрямляется диодами D1 и D2 и сглаживается конденсаторами C1 и C4.

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

Микроконтроллер (IC2) работает на частоте 12МГц. Это достигается за счет подключения кварца 12МГц к выводам XTAL1 и XTAL2 IC2.

Конденсатор C5 и резистор R8 составляют часть схемы сброса для IC2 при включении. Кнопка S2 используется для ручного сброса IC2 и сброса счетчика на ноль. Кнопка S3 используется для запуска и остановки секундомера. 4-разрядный 7-сегментный дисплей работает в режиме мультиплексированния.

Когда переключатель S1 замкнут, дисплей DIS1 указывает 00.00. При нажатии кнопки S3, на DIS1 отображается отсчет до момента отпускания S3. Максимальный отсчет времени составляет 99,99 секунд.

Программное обеспечение написано на языке C и скомпилировано с использованием программного обеспечения Keil μVision V5. Задержка на языке C зависит от компилятора. Иногда может потребоваться небольшая коррекция в цикле задержки для точной калибровки.

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

Блок питания 0…30 В / 3A

Набор для сборки регулируемого блока питания…

Конструкция и тестирование

Рисунок печатной платы с односторонним расположением компонентов приведен ниже.

После пайки всех компонентов, запрограммируйте микроконтроллер AT89C4051 и поместите его на печатную плату с использованием панельки. Подайте питание с помощью S1. Убедитесь, что на индикаторе отображается 00.00. Если этого нет, то проверьте схему на предмет ошибок.

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

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

Скачать прошивку секундомера (33,5 KiB, скачано: 353)

EFY 05/2017

Простая электронная нагрузка на микроконтроллере Attiny45/85. Схема

Это простая электронная фиктивная нагрузка постоянного тока построена на микроконтроллере Attiny45/85. Данное устройство может быть отличным инструментом в лаборатории радиолюбителя.

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

Оборудование

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

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

Операционный усилитель LMV358 сравнивает это значение с целевым значением, которое задается с помощью 10-виткового потенциометра на 10 кОм и резистора на 100 кОм, управляя затвором полевого MOSFET-транзистора (IRL540N) с логическим уровнем. Транзистор IRL540N в свою очередь управляет током.

Ток, измеренный на шунте, также усиливается вторым операционным усилителем и измеряется АЦП ATtiny. Напряжение измеряется с помощью делителя напряжения. Температура MOSFET-транзистора измеряется термистором 10кОм 3950B NTC. При необходимости можно включать вентилятор через дополнительный MOSFET-транзистор.

Программное обеспечение

Измерения

Для максимально точного измерения с максимальным разрешением используются как напряжение питания 5 В, так и два внутренних опорных напряжения, подключенных к АЦП ATtiny. Сначала измеряются напряжение питания и опорное напряжение 2,56 В с использованием опорного напряжения 1,1 В и вычисляются соответствующие калибровочные коэффициенты.

Для каждого очередного измерения сначала проверяется, какое из трех опорных напряжений (5 В, 2,56 В или 1,1 В) наиболее подходит. Затем это значение используется для измерения с помощью АЦП микроконтроллера.

Тестер транзисторов / ESR-метр / генератор

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

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

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

Точность определения энергии и мощности

Для определения энергии и электрического заряда (емкости) используется внутренний генератор ATtiny. Точность внутреннего генератора составляет +/-10% при заводской калибровке. Точность можно улучшить до +/- 2% или лучше с помощью ручной калибровки.

Реализация I²C OLED

Реализация I²C протокола основана на грубом методе передачи битов. Он был специально разработан для ограниченных ресурсами ATtiny10 и ATtiny13, но он также работает с некоторыми другими AVR (включая ATtiny25 / 45/85). Функции OLED адаптированы для модуля SSD1306 OLED, но их можно легко изменить для использования с другими модулями. В целях экономии ресурсов реализованы только основные функции, необходимые для этого устройства.

Компиляция и загрузка с использованием Arduino IDE

  • Убедитесь, что вы установили ATtinyCore.
  • Перейдите в раздел Инструменты -> Плата ->> ATtinyCore>> и выберите ATtiny25/45/85 (без загрузчика).
  • Перейдите в раздел Инструменты и выберите следующие параметры платы:
  1. Chip: ATtiny45 или 85 (в зависимости от вашего чипа)
  2. Clock: 8 MHz (внутренний)
  3. Millis/Micros: disabled
  4. B.O.D.Level: B.O.D. enabled (2.7V)
  5. Остальное оставьте в настройках по умолчанию
  • Подключите программатор к компьютеру и к разъему ICSP на плате
  • Перейдите в раздел Инструменты -> Программатор> и выберите свой ISP-программатор (например, USBasp ).
  • Перейдите в раздел Инструменты -> Записать загрузчик.
  • Откройте скетч Load.ino и нажмите «Загрузить».

Использование

  • Поверните потенциометр полностью против часовой стрелки.
  • Подключите устройство через разъем Micro-USB к источнику питания 5 В.
  • Подключите тестовый источник питания к клемме блока. Обратите внимание на правильную полярность!
  • Поверните потенциометр по часовой стрелке, чтобы выбрать нужный ток нагрузки.

Калибровка

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

Как откалибровать:

  • Установите в скетче для ULCAL и ILCAL значение «1», скомпилируйте и загрузите код.
  • Выберите стабильное входное напряжение около 5 В и поворачивайте потенциометр, пока на дисплее не отобразится ток около 0,7 А. Измерьте напряжение и ток с помощью надежного мультиметра.

Рассчитайте коэффициенты калибровки следующим образом:

  • ULCAL = напряжение, измеренное мультиметром / напряжение, отображаемое на OLED.
  • ILCAL = ток, измеренный мультиметром / ток, отображаемый на OLED-экране.
  • Установите значения ULCAL и ILCAL в скетче, скомпилируйте и снова загрузите.

Меры предосторожности

  • Используйте хороший радиатор с вентилятором на 5В для силового MOSFET-транзистора!
  • Будьте осторожны с нагрузками высокой мощности!
  • Перед подключением нагрузки всегда поворачивайте потенциометр против часовой стрелки до упора!
  • Максимальный ток нагрузки составляет 4,5А, однако для небольших напряжений он может быть меньше. Не превышайте максимальное напряжение 26В!

Скачать файлы проекта (99,9 KiB, скачано: 96)

Схема кодового замка с энкодером на микроконтроллере ATtiny2313

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

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

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

 

 

Микроконтроллер управляет работой 7-сегментного светодиодного индикатора (с общим анодом) в режиме мультиплексирования. Катоды светодиодного дисплея подключены через токоограничивающие резисторы непосредственно к PORTB микроконтроллера, а четыре анода — через транзисторные PNP ключи (BC560) — к PORTD. Управление замком происходит посредством реле К1, которое управляется транзистором VT1 (BC547). Диод VD1 (1N4148) предназначен для защиты транзистора от напряжения самоиндукции при отключении реле.

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

Код замка по умолчанию «0000». Этот код мы можем аварийно восстановить путем короткого замыкания вывода № 5 микроконтроллера на массу питания при включении устройства.

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

Магнитный держатель печатной платы

Прочная металлическая основа с порошковым покрытием, четыре гибкие руч…

Прежде всего, был введен режим настройки, который можно запустить только при включении устройства нажатием кнопки, встроенной в энкодер. Режим настройки позволяет установить время активации реле (0…5 секунд), сопровождающее разблокировку / блокировку кодового замка.

В случае установки времени 0 сек реле остается все время включенным после закрытия замка и выключенным после разблокировки. В случае установки значения в диапазоне 1…5 сек реле включается на время, соответствующее настройке (1…5 сек) при каждом закрытии / открытии нашего кодового замка.

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

После нажатия кнопки энкодера переходим в режим ввода секретного кода, чтобы закрыть замок. Это сопровождается миганием первой цифры справа, которую мы можем изменить, вращая энкодер (в диапазоне «0» … «9», «A» … «F»).

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

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

Эти шаги повторяем 4 раза, до ввода всего кода. После этого замок будет зарыт (будет соответствующая реакция реле), код будет записан в энергонезависимую память EEPROM микроконтроллера и устройство перейдет в режим ожидания. Факт блокировки замка сигнализируется свечением десятичной точки в 0 позиции дисплея даже во время ожидания.

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

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

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

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

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

  • dEF — Восстановление кода по умолчанию, т. е.,, 0000″.
  • Err — Код введен неверно.
  • OPEn — Замок открыт (правильно введенный код).
  • cLOSE — Замок закрыт.

Скачать прошивку (1,5 KiB, скачано: 366)

Автомобильный тахометр на AVR микроконтроллере ATtiny2313 – Схемы на AVR – Микроконтроллеры AVR – Микроконтроллеры



Данное устройство представляет собой неплохой тахометр, предел его измерений составляет 100 – 9990 об/мин. Точность измерения – ± 3 об/мин. Но для лучшего восприятия данные округляются. Данный прибор стоит у меня на авто – Таврия. Также устанавливалась на Chevrolet Cavalier, ВАЗ-2109, мотоцикл ЯВА-350 12-ти вольтовый, скутер Honda Lead 90.

Присутствуют две входных цепи:

  • вывод 6 (PD2) – вход прерывания INT0. Этот вход используется для измерения количества оборотов двигателя.
  • вывод 11 (PD6). Этот вход используется для уменьшения яркости индикаторов при включении габаритов на авто.

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

Печатная плата

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

FUSES выставлены в проекте, но если кто-то шьёт не из CodeVisionAVR, то повторю их тут:

В проекте в 17-й строке есть следующее определение:

17  #define byBladeCnt 2 //1- две катушки, 2 - одна катушка, 4 - мотоцикл...

Для советских автомобилей и авто с распределительной системой зажигания этот параметр будет 2. Для систем зажигания с двумя катушками (как в ВАЗ-2110) – 1. На мотоцикле и мопеде (2-х тактная система зажигания) этот параметр равен 4. Устройство работает уже более двух лет без каких либо проблем на моей машине, да и остальные не жалуются… Скачать (8.1 Kb)

Поделись с друзьями в социальных сетях

Реклама


Похожие материалы:

ЦИФРОВОЙ МЕТАЛЛОИСКАТЕЛЬ НА AVR МИКРОКОНТРОЛЛЕРЕ – 21 Декабря 2014 – Блог

ПРОСТОЙ ЦИФРОВОЙ МЕТАЛЛОИСКАТЕЛЬ НА AVR МИКРОКОНТРОЛЛЕРЕ

источник: indikatop.ru

Начну с пред истории. ..
Вскапывая огород, один знакомый человек нашел старинную монету 1600-сотого года. И говорит, мол “был бы металлоискатель…и т.д.”  Я недолго думая и не капаясь в интернете в поисках истины начал делать свой проект, так сказать буквально на коленках. За основу взята задумка из набора Мастер КИТ, название: “Металлоискатель по принципу частотомера”.
В этой статье хочу представить Вашему вниманию мой проект “Металлоискатель на микроконтроллере AVR”. Данный проект несложен для самостоятельного изготовления и содержит минимум деталей для нормального функционирования устройства.

Схема простого маталлоискателя на микроконтроллере AVR показана на рисунке ниже:

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

* монета 1 копейка ————5см;
* монета 5 копеек ————  10см;
* крышка от консервации — 25см;
* ведро металлическое —-   ~45см;

 

Внешний вид цифрового металлоискателя на микроконтроллере AVR

Конструкция:
Печатная плата металлоискателя выполнена из одностороннего фольгированного стеклотекстолита методом ЛУТ (Лазерно-Утюжной технологии:). Разъем для внутрисхемного программирования я сделал прямо на плате, чтобы не изворачиваться с вытаскиванием микроконтроллера, во избежание погнутых и поломанных выводов. Транзистор КТ3102 с любым буквенным индексом, он работает в режиме ключа и коэффициент усиления неважен, так же возможна замена транзистора на другой аналогичный N-P-N. Микроконтроллер ATmega8-16Mhz можно тактировать от внутреннего RC-генератора на максимальной частоте, при этом быстродействие в динамическом режиме может заметно ухудшиться, поэтому рекомендую все-таки поставить кварцевый резонатор.

Светодиод VD1 – красный , служит для питания дисплея от 3-х вольт, хотя его можно не ставить, а подключить напрямую. Дисплей работает и от 5В, но при этом длительная работа не гарантируется. Если применить 4 пальчиковые аккумулятора с суммарным напряжением 4,8В , то стабилизатор 78L05 можно не ставить, конденсатор C1 естественно тоже. Конденсатор для поисковой катушки нужно использовать с малым ТКЕ, желательно поставить тантал. При не подходящем конденсаторе значения на дисплее будут сильно “скакать”. Я использовал конденсатор типа “зеленый приплюснутый бочонок” залитый чем-то похожим на зеленый эпоксидный клей. 

Выдрал его из китайского радиоприемника (по моему). Емкость данного конденсатора не критична, рекомендуемая 0.01-0.05 мкФ , от этого зависит поисковая частота датчика. Катушку я мотал на 3-х литровой банке 80-120 витков, проводом 0,2-0,5 (тоже не критично). После намотки катушки на банку, снял и туго замотал ее скотчем для жесткости. Затем обязательно сверху намотать экран из медной или алюминиевой фольги. Намотка должна быть без просветов, с плотно прилегающими к друг-другу витками. От экрана делается отвод из медной проволоки, который припаивается затем к минусу источника питания. Конструкция поисковой катушки должна быть максимально жесткой, поэтому я свою засунул в распиленную пластиковую водопроводную трубу, и дополнительно обмотал скотчем.

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

 

Скачать прошивку микроконтроллера AVR для этого металло-детектора 

 

 

Базовый микроконтроллерный блок для РIС16F84А | Микроконтроллеры

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

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

Вариант такого блока для популярного микроконтроллера PIC16F84A приведен на рис. 1.

Весь блок собран на печатной плате из стеклотекстолита, фольгированного с одной стороны, что упрощает его повторение. Размеры платы — 65×55 мм. На рис. 2 показана печатная плата блока, на рис. 3 — расположение элементов.

Микроконтроллер с кварцевым резонатором и стабилизатор включены по типовым схемам. Диапазон питающего напряжения – +6. ..12 В.

Разъем ввода-вывода Х4 имеет 10 контактов, восемь из которых напрямую подключены к порту В микроконтроллера. Два оставшихся контакта предназначены для питания внешних модулей, используемых совместно с базовым блоком. При необходимости питание можно взять с разъема Х7. Использование винтовых контактов дает большие возможности, чем подключение с помощью пайки или штыревых разъемов.

Драйвер RS-232 предназначен для подключения блока к персональному компьютеру. В качестве драйвера применена микросхема МАХ232. Для реализации интерфейса используются три линии порта А:

  • PORTA 0 — RxD — передача данных;
  • PORTA 1 — TxD — прием данных;
  • PORTA 2 — CTS — служебная линия порта.

Линия CTS может использоваться для передачи сигнала готовности микроконтроллера к приему данных. Ее необходимость обусловлена отсутствием в PIC16F84 модуля UART. Реализация этого модуля полностью программная. В простейшем случае для организации приема-передачи достаточно использовать 45 ячеек памяти микроконтроллера и шесть регистров общего назначения [2].

Оставшиеся две линии порта А используются в качестве шины I2С. Ее наличие позволяет использовать совместно с микроконтроллером большой перечень устройств, оснащенных этим интерфейсом. Непосредственно на плате блока предусмотрено место для дополнительной микросхемы, имеющей восемь выводов, например ПЗУ 24LC16, часов PCF8583P, термометра DS1621. Так как эти микросхемы отличаются расположением выводов, на плате предусмотрено специальное поле. Используя это поле, путем монтажа перемычек можно подготовить к работе любую микросхему. На принципиальной схеме и схеме расположения элементов на печатной плате перемычки показаны в варианте для микросхемы 24LC64 при нулевом slave-адресе. В случае необходимости включения нескольких устройств, работающих по шине I2С, можно использовать отдельный разъем Х2. Реализация алгоритма шины I2С также программная [2].

Для удобства отладки устройств с использованием блока на плате предусмотрен разъем внутреннего программирования Х5 (IDC10M). Все проводники, используемые для программирования, за исключением общего провода, имеют разрыв. При прошивке контроллера разъем программатора подключается к контактам 1—5 разъема Х5. Для работы устройства в нормальном режиме в разъем вставляется заглушка, изготовленная из ответной части IDC10F с помощью замыкания проводников, подключаемых к контактам 2-9, 3-8, 4-7, 5-6 разъема Х5. Если программирование не требуется, на плату можно установить перемычки.

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

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

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

ЛИТЕРАТУРА
1. Ю. Мартышевский, А. Киселев. Макетная плата для освоения PIC-микроконтроллеров фирмы Microchip. — Схемотехника, 2003, № 12, с. 35—38.
2. К. Тавернье. РIС-микроконтроллеры. Практика применения. Пер. с фр. — М.: ДМКПресс, 2002.
Илья Сошин, г. Лысьва Пермской обл.

Что такое микроконтроллер? Как это работает ?

Микроконтроллер – это интегральная схема (ИС), которая представляет собой небольшой, недорогой и автономный компьютер, предназначенный для решения конкретной задачи во встроенных системах. Проще говоря, микроконтроллер (MCU или Microcontroller Unit) – это небольшой компьютер, интегрированный в один чип. Мы также можем объяснить это как программируемый кремниевый чип, который управляется тактовой частотой, основан на регистрах, принимает ввод и обеспечивает вывод после его обработки в соответствии с инструкциями, хранящимися в памяти.

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

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

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

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

Внутри микроконтроллера

Как мы объясняли выше, в микроконтроллер встроены различные элементы, такие как ЦП, ОЗУ, ПЗУ и т. Д.

CPU

ЦП

аналогичен процессору в компьютере, который в основном состоит из арифметико-логического блока (ALU), блока управления и массива регистров. Как видно из названия, ALU выполняет все арифметические и логические операции с данными, полученными от устройств ввода или памяти.Массив регистров состоит из ряда регистров, таких как аккумулятор (A), B, C, D и т. Д., Которые действуют как временные ячейки памяти быстрого доступа для обработки данных. Как видно из названия, блок управления управляет потоком инструкций и данных в системе.

RAM

RAM означает оперативную память. Подобно компьютеру, ОЗУ используется для динамического хранения данных, пока микроконтроллер выполняет инструкции. Это энергозависимая память, это означает, что при отключении питания все данные пропадают.

ПЗУ или программная память

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

Порты ввода-вывода (I / Os)

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

имеют несколько выводов ввода / вывода общего назначения (GPIO), которые можно настроить как вывод ввода или вывода путем записи в определенные регистры конфигурации.Эти выводы могут считывать или записывать ВЫСОКОЕ или НИЗКОЕ состояние с / на свои выводы, что позволяет взаимодействовать с внешним миром.

Часы

Микроконтроллеру требуются часы, поскольку он выполняется и управляется последовательной логикой, как объяснено выше. Источник синхронизации может быть внешним, например кварцевым генератором, или внутренним, например, RC-генератором. У разных микроконтроллеров будут разные варианты тактирования. Некоторые продвинутые микроконтроллеры даже имеют внутреннюю схему ФАПЧ (ФАПЧ) или ФАПЧ (ФАПЧ) для увеличения тактовой частоты до более высоких частот.

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

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

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

  • UART, SPI, I2C для последовательной связи.
  • Таймеры / счетчики
  • Модули захвата / сравнения / ШИМ
  • Аналого-цифровой преобразователь

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

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

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

На рынке доступны разные микроконтроллеры, произведенные разными компаниями.

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

Серия микроконтроллеров

8051 – одна из самых популярных микроконтроллеров общего назначения. Впервые он изготовлен Intel. В настоящее время мы можем видеть множество клонов микроконтроллеров 8051 с разницей в ОЗУ, ПЗУ, периферийных устройствах и т. Д., Изготовленных разными компаниями, такими как Atmel, Texas Instruments, Philips, Infineon и т. Д.Микроконтроллеры серии 8051 популярны среди любителей и в образовательных целях.

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

PIC расшифровывается как Peripheral Interface Controller. Это серия микроконтроллеров, производимых Microchip Inc., она популярна среди профессионалов, студентов и любителей электроники. Он недорогой и широко доступен на рынке, а также имеет 8-битную, 16-битную и 32-битную архитектуры.

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

ARM расшифровывается как Advanced RISC Machine, это микроконтроллер компьютера с сокращенным набором команд (RISC).Микроконтроллеры ARM пользуются наибольшей популярностью у профессионалов. Микроконтроллеры ARM производятся разными компаниями, такими как NXP Semiconductors, STMicroelectronics, Microchip Inc., Atmel и др.

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

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

широко распространены среди любителей и студентов. Микроконтроллеры AVR разработаны Atmel, позже приобретены Microchip. В популярных платах Arduino используется микроконтроллер AVR.

Малый размер

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

Низкая стоимость

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

очень дешевы по сравнению с микропроцессорами, поскольку микроконтроллер имеет меньше ОЗУ, ПЗУ и периферийных устройств, встроенных в один чип.

Меньше энергопотребление

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

Как использовать простой микроконтроллер (PIC10F200) – Часть…

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

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

Некоторые из них действительно впечатляют, и первое, что приходит в голову, – «Как?!? Как люди могут уместить это всего в 1 КБ кода? »

Итак, я принял вызов и решил попробовать сделать что-то подобное сам, и то, что я нашел, было потрясающим. Управляете светодиодами и зуммером? – Нет ничего проще! Сделать термометр? – Ага! Радиоуправляемый робот? Робот избегает препятствий? Робот следует за линией? – Почему нет?

Если вы уже заинтригованы, то эта серия для вас.Я сделал это для тех, кто хочет глубже узнать, как все устроено. Для тех, кто хочет понять, что скрывается под функциями Arduino digitalRead и digitalWrite, кому интересно, как устройства взаимодействуют друг с другом, – тем, кто хочет знать, как реализован код на низком уровне .

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

Обзор микроконтроллера PIC10F200

Для простого микроконтроллера я остановился на микроконтроллере PIC10F200. Это самый примитивный микроконтроллер, который все еще находится в производстве и его легко купить. Это 8-битный микроконтроллер и один из самых дешевых микроконтроллеров. Этот микроконтроллер поставляется в нескольких корпусах – чрезвычайно крошечный бесштыревой DFN8 (2×3 мм), достаточно крошечный корпус SOT23 (3×2,5 мм) с подключенными контактами и удобный для прототипирования DIP8 (см.рис.1). Таким образом, это может быть либо 8-контактный микроконтроллер, либо 6-контактный микроконтроллер, хотя у 8-контактных вариантов есть два контакта, которые не используются.

Рисунок 1 – Пакеты микроконтроллеров PIC10F200

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

Цена на микроконтроллер PIC10F200 варьируется от 0 долларов.25 (в пакете SOT23) примерно до 0,6 доллара (в пакете DIP). Вы можете купить его напрямую на сайте Microchip, или у какого-либо официального дистрибьютора, такого как OnlineComponents, Digikey, Mouser и т. Д., Или в интернет-магазинах, таких как eBay, Aliexpress и т. Д. Вы рискуете обратиться к неавторизованному дистрибьютору, например Aliexpress, но если вы просто делаете это для хобби или для того, чтобы учиться, это не будет концом света, если это не сработает – просто разочарование. Однако, если вы планируете продавать свой продукт или просто хотите большего спокойствия, пожалуйста, , пожалуйста, , используйте авторизованный источник.Это сделает жизнь каждого лучше.

Характеристики PIC10F200

Микроконтроллер PIC10F200 имеет только 256 слов флэш-памяти, что позволяет записывать в него всего 256 команд. Для сравнения: ATMega328P, установленный в микроконтроллере Arduino Uno, имеет 32 Кбайт флеш-памяти, что позволяет записывать в него до 32768 команд. Это в 128 раз больше памяти! Но что, если я скажу, что вы можете контролировать по крайней мере половину щитов Arduino с помощью этого крошечного PIC10F200? Невероятный? Но это правда, и я вам покажу!

Ассемблерный язык программирования

С самого начала хочу вас предупредить, что для написания компактного кода мы будем использовать ассемблер.Не позволяйте этому вас напугать, обещаю, это не будет так сложно. Микроконтроллер PIC10F200, который мы будем использовать, имеет всего 33 инструкции по сборке, и вам обычно понадобится менее 20 из них. Легкий! Итак, иметь опыт программирования было бы неплохо, но в дальнейшем нет необходимости.

Итак, зачем сборка? Какая польза от его использования? Язык ассемблера – это язык низкого уровня, поэтому вы пишете код как можно ближе к собственному коду микроконтроллеров, машинному коду. Это дает преимущества как в размере кода, так и в скорости выполнения.Например, простая программа мигания светодиодом для Arduino расходует 930 байт памяти кода (вы можете проверить это самостоятельно, загрузив и скомпилировав пример Blink). Для сравнения: та же программа для PIC10F200, написанная на языке ассемблера, использует всего 15 слов кодовой памяти, что в 62 раза компактнее! Если вы не поняли, Arduino обычно производит очень неоптимизированный и чрезмерный код. Это цена за простоту использования. Другая цена – замедление выполнения кода, потому что микроконтроллеру нужно выполнять множество ненужных команд и тратить на них время.Другие микроконтроллеры и языки программирования могут быть значительно более эффективными, чем Arduino, но ассемблер почти всегда является наиболее эффективным кодом для запуска.

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

Смысл этой серии не только в том, чтобы показать, как все работает на более низком уровне, но и в том, что Arduino в некоторых случаях является чрезмерно избыточным и может быть заменен микроконтроллером за 0,25 доллара США. И я хочу показать вам, как это сделать.

Завершив введение, в следующих руководствах по микроконтроллерам я дам вам всю информацию, необходимую для работы с микроконтроллером PIC10F200, включая все необходимое оборудование и его использование – все, кроме самого микроконтроллера.После этого я дам вам примеры кода с подробным объяснением того, как они работают. Я надеюсь, что эти статьи заложат фундамент знаний, необходимых вам для разработки собственных устройств с использованием PIC10F200, а также вдохновят вас и побудят к этому. Если вы что-то делаете, напишите нам сообщение с фотографией того, что вы сделали, чтобы мы могли поделиться этим в наших социальных сетях! А пока перейдем к следующему руководству по микроконтроллеру.

Как создать свою собственную плату микроконтроллера STM32

В этом пошаговом руководстве вы узнаете, как создать свою собственную плату микроконтроллера на основе популярного микроконтроллера STM32 от ST Microelectronics.

Опубликовано Джон Тил

Я разделю весь процесс проектирования на три основных этапа:

ШАГ 1 – Проектирование системы
ШАГ 2 – Проектирование схемотехники
ШАГ 3 – Проектирование компоновки печатной платы

Шаг 1 – Система / Эскизный проект

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

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

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

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

Блок-схема

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

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

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

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

Блок-схема системного уровня. Блоки желтого цвета включены в это начальное руководство.

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

Выбрать микроконтроллер

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

Если вы регулярно читаете этот блог, то знаете, что я большой поклонник микроконтроллеров ARM Cortex-M. Микроконтроллеры Arm Cortex-M – несомненно, самая популярная линейка микроконтроллеров, используемых в коммерческих электронных продуктах. Они используются в десятках миллиардов устройств.

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

от Microchip (включая Atmel) могут доминировать на рынке производителей, но Arm доминирует на рынке коммерческих продуктов.

Arm не производит чипы напрямую. Вместо этого они разрабатывают архитектуры процессоров, которые затем лицензируются и производятся другими производителями микросхем, включая ST, NXP, Microchip, Texas Instruments, Silicon Labs, Cypress и Nordic.

ARM Cortex-M – это 32-битная архитектура, которая является фантастическим выбором для более ресурсоемких задач по сравнению с тем, что доступно на более старых 8-битных микроконтроллерах, таких как ядра 8051, PIC и AVR.

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

Arm бывают разных уровней производительности, включая Cortex-M0, M0 +, M1, M3, M4 и M7.Некоторые версии доступны с блоком с плавающей запятой (FPU) и обозначены буквой F в номере модели, например Cortex-M4F.

Одним из самых больших преимуществ процессоров Arm Cortex-M является их низкая цена при требуемом уровне производительности. Фактически, даже если для вашего приложения достаточно 8-битного микроконтроллера, вы все равно должны рассмотреть 32-битный микроконтроллер Cortex-M.

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

STM32 от ST Microelectronics – моя любимая линейка микроконтроллеров ARM Cortex-M.

Хотя многие производители микросхем предлагают микроконтроллеры Cortex-M, мне больше всего нравится серия STM32 от ST Microelectronics. Линия микроконтроллеров STM32 довольно обширна и предлагает практически любые функции и уровень производительности, которые вам когда-либо понадобятся.Строку STM32 можно разбить на несколько подсерий, как показано в Таблице 1 ниже.

Серия STM32 Cortex-Mx Макс. Частота (МГц) Производительность (DMIPS)
F0 M0 48 38
F1 M3 72 61
F3 M4 72 90
F2 M3 120 150
F4 M4 180 225
F7 M7 216 462
H7 M7 400 856
L0 M0 32 26
L1 M3 32 33
L4 M4 80 100
L4 + M4 120 150

Таблица 1: Сравнение различных вариантов микроконтроллера STM32

Подсерия STM32F – это их стандартная линейка микроконтроллеров (в отличие от подсерии STM32L, которая специально ориентирована на более низкое энергопотребление).STM32F0 имеет самую низкую цену, но также и самую низкую производительность. На ступень выше в производительности – подсерии F1, за которыми следуют F3, F2, F4, F7 и, наконец, H7.

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

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

Я выбрал STM32F042, потому что он предлагает умеренную производительность, хорошее количество контактов GPIO и различные последовательные протоколы, включая UART, I2C, SPI и USB. Это микроконтроллер STM32 довольно начального уровня, всего с 32 контактами, но с большим набором функций.Более продвинутые версии поставляются с 216 контактами, что было бы довольно сложно для вводного руководства.

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

Шаг 2 – Схема проектирования

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

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

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

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

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

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

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

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

Конденсаторы

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

Начнем с размещения конденсатора 4,7 мкФ на входном контакте линейного регулятора. Это входное напряжение 5 В постоянного тока, поступающее от внешнего зарядного устройства USB. Это напряжение подается на линейный регулятор TLV70233, который понижает напряжение до 3,3 В, поскольку на микроконтроллер может подаваться только максимум 3,6 В.

Другой 4.Конденсатор емкостью 7 мкФ ставится на выходе стабилизатора как можно ближе к выводу. Этот конденсатор служит для накопления заряда для питания переходных нагрузок и стабилизации внутреннего контура обратной связи регулятора. Без выходного конденсатора большинство регуляторов начнут колебаться.

ПРИМЕЧАНИЕ: Обязательно загрузите бесплатное руководство в формате PDF 15 шагов для разработки нового электронного оборудования .

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

В таблице данных для STM32F042 рекомендуется разместить конденсатор емкостью 4,7 мкФ и 100 нФ рядом с каждым из двух выводов VDD (выводы входного питания). Также рекомендуется разместить развязывающие конденсаторы емкостью 1 мкФ и 10 нФ рядом с выводом VDDA.

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

Обратите внимание, что вы обычно видите два размера конденсатора, указанные вместе для целей развязки. Например, конденсаторы 4,7 мкФ и 100 нФ.

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

Распиновка микроконтроллера

Хотя STM32F042 предлагает широкий спектр функций, таких как интерфейсы связи UART, I2C, SPI и USB, вы не найдете ни одной из этих функций, обозначенных на распиновке микроконтроллера.Это связано с тем, что большинство микроконтроллеров назначают различные функции каждому выводу, чтобы уменьшить количество требуемых выводов.

Распиновка микроконтроллера STM32F042 в 32-выводном выводном корпусе LQFP.

Например, на STM32F042 вывод 9 помечен как PA3, что означает, что это вывод GPIO. При запуске эта функция автоматически назначается этому контакту. Но есть и альтернативные функции, которые можно указать в программе прошивки.

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

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

Часы

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

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

Основным недостатком RC-генератора является точность. Резисторы и конденсаторы (особенно встроенные в микрочип) значительно различаются от блока к блоку, что приводит к изменению частоты генератора. Температура также существенно влияет на точность.

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

Разъем для программирования

Программирование STM32 выполняется с помощью одного из двух протоколов: JTAG или Serial Wire Debug (SWD). Более продвинутые версии STM32 (STM32F1 и выше) предлагают программные интерфейсы как JTAG, так и SWD. Подсерия STM32F0 предлагает только более простой интерфейс программирования SWD, поэтому мы сосредоточимся на этом в этом руководстве.

Интерфейс SWD требует всего 5 контактов. Это SWDIO (ввод / вывод данных), SWCLK (тактовый сигнал), NRST (сигнал сброса), VDD (напряжение питания) и заземление.

К сожалению, программатор ST-LINK, который вы будете использовать для программирования STM32, использует 20-контактный разъем JTAG (с функцией SWD). Этот разъем довольно большой и не подходит для небольших плат.

Вместо этого вы можете использовать плату адаптера с 20-контактного на 10-контактный разъем, такую ​​как эта от Adafruit, чтобы вы могли использовать на своей плате 10-контактный разъем меньшего размера.

В этом руководстве мы будем использовать 10-контактный разъем. Если это все еще слишком велико для вашего проекта, вы всегда можете использовать 5-контактный разъем и перемычки от 20-контактного выхода программатора для подключения только 5 линий, необходимых для программирования SWD.

Мощность

Последняя часть схемы, которую мы рассмотрим, – это силовая часть. Микроконтроллер STM32 может питаться напряжением питания от 2,0 до 3,6 В. Если у вас нет источника переменного тока, вам понадобится встроенный регулятор, обеспечивающий соответствующее напряжение питания.

Для этой конструкции мы будем питать плату от внешнего зарядного устройства USB, которое выдает 5 В постоянного тока. Затем это напряжение подается на линейный регулятор напряжения (TLV70233 от Texas Instruments), который понижает его до стабильного 3,3 В.

Для STM32 требуется максимум 24 мА при условии, что ни один из выводов GPIO не потребляет ток (каждый вывод GPIO может подавать до 25 мА). Абсолютный максимальный ток, который когда-либо понадобится STM32, составляет 120 мА, если предположить, что различные выводы GPIO являются источниками тока.

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

Проверка правил электрооборудования

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

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

Шаг 3 – Дизайн макета печатной платы (PCB)

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

Размещение компонентов

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

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

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

Размещение критических компонентов в этой первоначальной конструкции: микроконтроллер (U1), регулятор (U2), разъем micro USB (J1) и разъем для программирования (JTAG-1).

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

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

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

Размещение всех критических компонентов (U1, U2, J1 и JTAG-1) и пассивных компонентов (конденсаторов).

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

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

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

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

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

Стек слоев печатной платы

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

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

Количество проводящих слоев всегда четное, поэтому вы можете получить плату с 2,4,6,8,10,12 проводящими слоями. Для большинства дизайнов потребуется 4-6 слоев, а для более сложных дизайнов может потребоваться 8 или более слоев.

Маршрут

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

Для автоматической маршрутизации в DipTrace вы просто выбираете Route -> Run Autorouter , и программное обеспечение автоматически выполнит всю маршрутизацию.

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

Разводка печатной платы (черные дорожки на верхнем слое, серые дорожки на нижнем слое)

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

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

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

Via # 1 – это классический сквозной переход, via # 2 – слепой переход, а via # 3 – скрытый переход.

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

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

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

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

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

Производители печатных плат

позволяют вам выбирать различную толщину проводящего слоя, обычно измеряемую в унциях на квадратный фут (oz / ft 2 ), но также измеряемую в миллиметрах (мил – одна тысячная дюйма) или миллиметрах.

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

Очевидно, это намного больше, чем нам нужно, и я мог бы легко сузить линии снабжения. В первом уроке я показал, что абсолютный максимальный ток, необходимый для STM32F042, составляет 120 мА.Возможно, что удивительно, но для работы в 120 мА нам нужна дорожка шириной всего 0,635 мил!

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

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

Наконец, в калькуляторе вы заметите, что требования к внутренним и внешним слоям различаются. Для этого простого двухслойного дизайна оба слоя являются внешними, поэтому нам нужно использовать « Results for External Layers in Air ».

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

Завершенный макет печатной платы (PCB) для этого начального руководства.

Проверка

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

Существует два типа проверки: проверка правил проектирования (DRC) и схематическое сравнение.

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

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

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

В DipTrace вы определяете правила проектирования, выбирая Проверка-> Правила проектирования . После того, как все правила были правильно определены, вы можете запустить DRC, выбрав Verification-> Check Design Rules.

После того, как вы убедились, что компоновка вашей печатной платы соответствует всем правилам проектирования, пришло время проверить, соответствует ли конструкция вашей печатной платы вашей принципиальной схеме. Для этого в DipTrace вы просто выбираете Verification-> Compare to Schematic .

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

Создание герберов

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

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

Формат Gerber выводит каждый слой проекта печатной платы в виде отдельного файла. Сгенерированные слои – это намного больше, чем просто проводящие слои вашей платы. Некоторые из этих слоев включают:

1) Слои шелка – включает текст и обозначения компонентов.

2) Сборочные слои – Аналогично шелковым слоям, но с особыми инструкциями по сборке.

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

4) Слои паяльной пасты – Используется для точного размещения паяльной пасты в местах, где будет происходить пайка.

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

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

Когда у вас есть Gerbers, файл Pick-and-Place и файл сверления, вы можете отправить эти файлы в любой магазин прототипов или изготовителя для производства вашей платы.

Сводка

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

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

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

Другой контент, который вам может понравиться:

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

– это здорово, но не пропустите обычную электронику


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

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

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

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

Много маленьких огней

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

Вьетнамки и RC-схемы

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

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

RC-цепи бывают двух типов: интеграторы и дифференциаторы. Когда напряжение подается на RC-цепь, конденсатор «наполняется» энергией. Затем, когда напряжение снимается, резистор «разряжает» конденсатор. Время, необходимое для «заполнения» и «слива» конденсатора, может быть измерено в секундах и называется постоянной времени RC. Изменение номиналов конденсатора или резистора позволяет регулировать постоянную времени RC. Настоящая разница между интегратором и дифференциатором заключается в том, как ведет себя выходной сигнал.Эти различия показаны на рис. 1 .

РИСУНОК 1. Различия между интегратором и дифференциатором.


Используя триггер и RC-схему, вы можете создать базовую схему, которая будет попеременно мигать двумя светодиодами. Я использовал тип RS (RESET – SET), потому что это самый простой триггер и он идеально подходит для моих нужд. Я использовал RC-схему дифференциатора, потому что она имеет лучший выход для запуска цифровых логических схем.Если вы добавите несколько светодиодов и больше резисторов, у вас будет схема, которая будет попеременно мигать двумя светодиодами. Эта схема показана на рис. 2 .

РИСУНОК 2. Триггер, попеременно мигающий двумя светодиодами.


NAND Gates

Логические схемы, которые я использовал для создания триггера RS, являются вентилями NAND. Вы можете узнать больше о логических элементах NAND, а также о многих других основах цифровой электроники здесь . На данный момент, однако, достаточно понять, что выход логического элемента И-НЕ становится высоким только тогда, когда его два входа имеют низкий уровень.Итак, когда вы впервые подаете питание на схему (, рис. 2, ), один из двух вентилей NAND (в зависимости от того, какой из них быстрее) установит высокий уровень на выходе.

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

Использование схемы

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

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

Реле температуры

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

Датчик температуры

Первое, что вам нужно для считывания конкретной температуры, – это датчик температуры. Температурные датчики обычно могут считывать диапазон от -50 ° F до более 300 ° F. Большинство из них дает выходное напряжение, которое линейно пропорционально температуре зонда. Эти датчики уже откалиброваны и имеют гарантированную точность. Некоторые читают температуру в градусах Фаренгейта, а другие – в градусах Цельсия. Я решил поэкспериментировать с LM34DZ. Он может работать при напряжении питания от 5 до 30 вольт и измерять температуру от 32 ° F до 212 ° F.Каждая степень изменения изменяет выходную мощность на 10 мВ.

Компаратор

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

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

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

Собираем вместе

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

РИСУНОК 3. Цепь реле температуры.


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

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

Пример

Вот пример того, как это сделать.Допустим, вы хотите знать, когда он достигает 100 ° снаружи. Первым делом нужно прочитать вывод LM34 при комнатной температуре. Допустим, ваш вольтметр показывает 2,34 вольт при температуре 72 °. Теперь представьте разницу между двумя температурами, которая составляет 28 °. Умножьте это число на 0,01 (изменение 10 мВ для каждой степени изменения), и вы получите 0,28. Затем добавьте это число к 2,34, и вы получите 2,62. Это то, на что должно быть установлено ваше опорное напряжение. Регулируйте потенциометр до тех пор, пока на выходе не будет 2.62 вольта, а затем остановитесь. Ваш переключатель температуры готов к работе.

Пробуем

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

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

Просто как пирог

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

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

Для начала прочтите книгу Nuts & Volts и возьмите пару книг по основам электроники. Некоторые из лучших, которые я нашел для начинающих, – это книги Форреста Мима.Мой старый и побитый, но когда я экспериментирую, он всегда рядом. Как я уже сказал в начале статьи – микроконтроллеры – это здорово! Постарайтесь не использовать их как костыль, а вместо этого используйте обычную электронику, которая существует уже много лет.

Удачного строительства проекта! NV


Об авторе

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

Circuit Debugger – обзор

1.

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

2.

Заголовок PIM для подключения альтернативного микроконтроллера PIC18,

3.

82 Внутренний отладчик 907 4.

Разъем программатора / отладчика PICkit 3,

5.

Потенциометр для аналогового входа,

6.

Переключатель сброса,

7.

Разъем универсальной последовательной шины RS232 (USB),

8.

PIC18LF2450 для преобразователя RS232 к USB),

9.

Кристалл для PIC18LF2450 (12 МГц),

10.

Девятиконтактный разъем RS232,

11.

Перемычка J13 для разводки Последовательная связь RS232 с портом USB или гнездом RS232,

12.

Перемычка J4 для программирования основного микроконтроллера или PIC18LF2450,

13.

Переключатель S4 для выбора основного микроконтроллера в качестве установленного PIC18F8722 или модуля PIM,

14.
Индикация питания

излучающий диод (светодиод),

15.

JP1 для отключения восьми светодиодов,

16.

светодиодов,

17.

Кристалл 32,768 кГц (для Таймера 1),

18.

Кнопочные переключатели S1 и S2,

19.

Аналоговый датчик температуры MPC9701A,

20.

25LC256 электрически стираемая программируемая постоянная память (EEPROM),

83

Перемычка JP2 для включения / выключения EEPROM,

22.

Перемычка JP3 для включения / выключения ЖК-дисплея,

23.

Кристалл для главного микроконтроллера (10 МГц),

24.

Разъем дочерней платы PICtail,

25.

Расширитель ввода / вывода для ЖК-дисплея,

26.

Область пользовательского прототипа,

27.

ЖК-дисплей,

83 907 .

Перемычка J2 для выбора между 3,3 и 5 В (по умолчанию напряжение V DD составляет +5 В),

29.

Перемычка J14 для использования с PIM.

Что такое микроконтроллер PIC? Что это может делать?

PDF-ФАЙЛ – НАЖМИТЕ ЗДЕСЬ ДЛЯ ПЕЧАТИ РАБОЧЕЙ ТАБЛИЦЫ
Видео на YouTube – Введение в микроконтроллеры PIC
ПОС микроконтроллеры (программируемые контроллеры интерфейса), электронные схемы, которые можно запрограммировать для выполнения широкого круга задач.Они можно запрограммировать на таймеры или на управление производственной линией и многое другое. более. Они присутствуют в большинстве электронных устройств, таких как системы сигнализации, компьютерные системы управления, телефоны, практически любое электронное устройство. Существует много типов микроконтроллеров PIC, хотя, вероятно, самые лучшие из них входит в линейку программируемых микроконтроллеров GENIE. Эти запрограммирован и смоделирован программным обеспечением Circuit Wizard.
ПОС Микроконтроллеры относительно дешевы и могут быть куплены в готовом виде. схем или в виде комплектов, которые могут быть собраны пользователем.
Вам понадобится компьютер для запуска программного обеспечения, такого как Circuit Wizard, позволяющего программировать PIC схема микроконтроллера. Достаточно дешевый компьютер с низкими характеристиками должен легко запускать программное обеспечение. Компьютеру потребуется последовательный порт или USB. порт. Используется для подключения компьютера к схеме микроконтроллера.
Программное обеспечение, такое как Genie Студию дизайна можно скачать бесплатно.Его можно использовать для программирования схемы микроконтроллера. Это позволяет программисту моделировать перед загрузкой в ​​ИС микроконтроллера PIC (интегрированный Схема).
Моделирование программы на экране позволяет программисту исправлять неисправности и изменять программу.
Программа довольно проста в узнать, как это основано на блок-схеме. У каждого «квадрата» блок-схемы есть цель. и заменяет многочисленные строки текстового программного кода.Это означает, что программа может быть написана довольно быстро, с меньшим количеством ошибок.
USB-кабель для подключения компьютер на программируемую схему, позволяющую передавать программу к микросхеме микроконтроллера PIC.
Когда программа была смоделирована и работает, загружается в схему микроконтроллера ПОС.USB-кабель можно отключить, и можно использовать схему микроконтроллера независимо. На диаграмме ниже показано, что Совет проекта GENIE программируется программным обеспечением Circuit Wizard (рекомендуемое программное обеспечение для программирование схем микроконтроллера).
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ CIRCUIT WIZARD
Программа Circuit Wizard имеет основные преимущества перед бесплатными загрузками.Это «простая в использовании» электроника. пакет программного обеспечения. Схемы от простых до сложных, могут быть построены на экране и смоделировано. Это означает, что схемы можно тестировать до того, как они будут изготовлено.

Circuit Wizard также позволяет использовать ряд GENIE Схемы микроконтроллеров / проектные платы, которые нужно «перетащить» на экран, из меню. Входы и выходы могут быть добавлены с помощью дополнительных меню. Потом, схему микроконтроллера GENIE / плату проекта можно запрограммировать, используя Меню блок-схемы Circuit Wizard.Его можно полностью протестировать / смоделировать на экран и неисправности устранены или внесены изменения. Это программное обеспечение сильно рекомендуется при разработке и производстве программируемых микроконтроллеров. схемы.

ЦЕПЬ МИКРОКОНТРОЛЛЕРА GENIE
(ВВЕРХУ) ПРОГРАММИРУЕТСЯ С ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
CIRCUIT WIZARD
SIMPLE GENIE ЦЕПЬ МИКРОКОНТРОЛЛЕРА
СОЗДАЕТСЯ НА ЭКРАНЕ С ИСПОЛЬЗОВАНИЕМ МАСТЕРА ЦЕПИ
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ВЫБРАТЬ УКАЗАТЕЛЬ PIC-MICROCONTROLLER, СТРАНИЦА

LDK Experiment 6: Microcontroller Circuits

Введение

Добро пожаловать в эксперимент 6 LilyPad Design Kit, в котором вы погрузитесь в разработку и создание схемы микроконтроллера.

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

Рекомендуемая литература

Прежде чем мы начнем, вот несколько ресурсов, которые могут оказаться полезными:

Предыдущие руководства по LDK
Другие соответствующие учебные пособия

Соберите материалы

Для начала вам понадобятся эти детали.Если вы используете Lilypad Design Kit, значит, все они у вас уже есть!

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

Положительных следов

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

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

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

Завяжите узел и обрежьте нить перед следующим шагом.

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

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

Отрицательные следы

Это финишная прямая! Отрицательной стороной этой схемы будет одна длинная дорожка, поэтому убедитесь, что ваша нить достаточно длинная!

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

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

Вот оно! Вставьте аккумулятор положительной стороной вверх в держатель аккумулятора и включите переключатель.

Как это работает

Каждый индикатор будет вести себя по-разному. Контакт 0 вызовет затухание “дыхания”. На контакте 1 будет мигать шаблон сердцебиения. Контакт 2 будет мигать и гаснет. И контакт 3 будет отображать случайное мерцание. Это отличные примеры лишь нескольких световых эффектов, которых можно добиться с помощью кода Arduino. Когда вы будете готовы начать программировать для себя, вы найдете код, используемый на этой плате, на странице продукта LilyTiny в разделе «Документы»

Лили Твинкл

Если вам нравится схема LilyTiny и вы хотите попробовать другой предварительно запрограммированный микроконтроллер, обратите внимание на LilyTwinkle! Это та же самая плата, которую вы только что использовали, но с другим кодом.Это означает, что вы будете подключать огни одинаково, но вместо того, чтобы выполнять 4 разных поведения, все они будут отображать мерцающий эффект вместе. Милый!

Примеры проектов

Посмотрите эти крутые проекты, сделанные с использованием этой схемы:

Ресурсы и дальнейшее развитие

Хотите сделать больше с вашими досками LilyTiny и LilyTwinkle? Существует множество руководств, которые помогут и вдохновят вас добиваться больших результатов на наших маленьких досках!

.

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

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