Автомобильные устройства на микроконтроллерах: Цифровой тахометр на AVR микроконтроллере (ATtiny2313)

Содержание

На микроконтроллере » Автосхемы, схемы для авто, своими руками

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

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

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

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

Вариант 1 — Коммутация по минусу. (с применением N-канальных транзисторов) 1) «коммутация по минусу», т.е такой вариант при котором один питающий провод лампы соединен с +12В аккумулятора (источника питания), а второй провод коммутирует ток через лампу тем самым включает ее. В данном варианте будет подаваться минус. Для таких схем нужно применять N-канальные полевые транзисторы в качестве выходных ключей.

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

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

Изначально в Lifan Smily (да и не только) режим работы заднего дворника — единственный, и называется он «всегда махать». Особенно негативно воспринимается такой режим в наступивший сезон дождей, когда на заднем стекле собираются капли, но в недостаточном для одного прохода дворника количестве. Так, приходится либо слушать скрип резины по стеклу, либо изображать робота и периодически включать-выключать дворник.

Немного доработал схему реле времени задержки включения освещения салона для автомобиля Форд (схема разрабатывалась для вполне конкретного автомобиля, как замена штатного реле Ford 85GG-13C718-AA, но была успешно установлена в отечественную «классику»).

Уже не первый раз проскакивают такие поделки. Но почему-то люди жмуться на прошивки. Хотя в большинстве своём они основаны на проекте elmchan «Simple SD Audio Player with an 8-pin IC». Исходниник не открывают аргументируя, что пришлось исправлять проект, что в у меня качество лучше… и т. д. Короче взяли open source проект, собрали, и выдаёте за своё.

Итак. Микроконтроллер Attiny 13- так сказать сердце данного устройства. С его прошивкой долго мучился, никак не мог прошить.Ни 5ю проводками через LPT, ни прогромматором Громова. Компьютер просто не видит контроллер и все.

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

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

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

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

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

На микроконтроллере » Страница 2 » Автосхемы, схемы для авто, своими руками

Устройство предназначено для автоматического включения и отключения дневных ходовых огней (ДХО) при начале движения и остановке. Собрано на простом и дешевом микроконтроллере PIC12F629. Имеет звуковую сигнализацю и другие полезные мелочи.

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

Продолжаем делать полезные маленькие устройства для электроники автомобиля. Данный девайс позволяет управлять одной кнопкой двумя разными нагрузками. Например подогрев зеркал — подогрев заднего стекла и т.п. Работа устройства проста: короткое нажатие — одно действие, длительное нажатие — другое.

Разработал чисто электронный плавный розжиг ламп на паре мосфетов IRFH9310 и генераторе ШИМ ATTiny13А. Схема подключения усовершенствовал, размер стал гораздо меньше.

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

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

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

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

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

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

Это, вероятно, случалось с каждым из нас: вы едете в своем автомобиле и вдруг желтая лампочка «Check Engine» загорается на приборной панели как тревожное предупреждение о том, что возникли какие-то проблемы с двигателем.

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

Требования предъявляемые к ДХО уже всем известны, в связи с этим и было разработано, ну и изготовлено тоже, данное устройство (далее будем называть его автомат)

Бортовой компьютер для автомобиля — схема, печатная плата и программа микроконтроллера имеется.

ATMEL: микроконтроллеры для автопрома — Компоненты и технологии

Для применения в автомобильной промышленности ATMEL выпускает высокотемпературные версии контроллеров. На рис. 1 представлена информация о выпускаемых и готовящихся к выпуску «автомобильных» AVR–контроллерах.

Следует отметить, что это не «отобранные» стандартные кристаллы, а микросхемы с вновь разработанной топологией. Первыми «автомобильными» AVR–контроллерами c диапазоном рабочих температур –40…+125 °C стали ATtiny45 и ATmega88. В настоящее время выпускается более 10 типов контроллеров, а вышеназванные — доступны в исполнении до +150 °C. Теперь эти микросхемы можно размещать в автоматических коробках передач и непосредственно на двигателе для обработки информации от датчиков и управления впрыском. Все «автомобильные» AVRмикроконтроллеры соответствуют стандарту
ISO–TS–16949 и прошли сертификационные испытания по нормам AEC–Q100.

Рис. 1. «Автомобильные» AVR контроллеры

ATMEL выпускает четыре градации «автомобильных» AVR–контроллеров, отличающиеся максимальной рабочей температурой:

  • Grade 3: –40…+85 °C, индекс в названии микросхемы — Т;
  • Grade 2: –40…+105 °C, индекс в названии микросхемы — Т1;
  • Grade 1: –40…+125 °C, индекс в названии микросхемы — Z;
  • Grade 0: –40…+150 °C, индекс в названии микросхемы — Т2.

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

Таблица. Основные параметры AVR контроллеров для применения в автомобильной промышленности

НазваниеСтатусFlash, кбайтEEPROM, байтSRAM, байтЧисло вх./вых.Интерфейс LINИнтерфейс UART/USARTИнтерфейс USIИнтерфейс SPIТаймеры, 8 битТаймеры, 12/16 битКаналы ШИМЧисло входов АЦПМакс. частота, МГцТип корпусаТемпературный диапазон, °C
ATtiny24P212812812S 1USI114816MLF20/SOIC14–40…+125
ATtiny25P21281286S 1USI2 4416MLF20/SOIC8–40…+125
ATtiny44I425625612S 1USI114816MLF20/SOIC14–40…+125
ATtiny45P42562566S 1USI2 4416MLF20/SOIC8–40…+125
ATtiny84P851251212S 1USI114816MLF20/SOIC8–40…+125
ATtiny85P85125126S 1USI2 4416MLF20/SOIC8–40…+125
ATmega48P425651223S1 1+USART216816TQFP/MLF32–40…+125
ATmega88P85121K23S1 1+USART216816TQFP/MLF32–40…+150
ATmega164PP165121K32S2 1+USART216816TQFP/MLF44–40…+125
ATmega168P165121K23S1 1+USART216816TQFP/MLF32–40…+150
ATmega324PP321K2K32S2 1+USART216816TQFP/MLF44–40…+125
ATmega328PI321K2K23—1 1+USART216816TQFP/MLF32–40…+125
ATmega644PP642K4K32S2 1+USART216816TQFP/MLF44–40…+125
ATmega16M1I161K2K32H1 1116+41116TQFP/QFN32–40…+150
ATmega32C1I321K2K32H1 11141116TQFP/QFN32–40…+150
ATmega32M1I321K2K32H1 1116+41116TQFP/QFN32–40…+150
ATmega64C1I642K4K32H1 11141116TQFP/QFN32–40…+150
ATmega64M1I642K4K32H1 1116+41116TQFP/QFN32–40…+150
ATmega169PI165121K54—1 1+USI214816TQFP/QFN64–40…+125
AT90CAN32P321K2K53S2 1226+2816TQFP/MLF64–40…+125
AT90CAN64P642K4K53S2 1226+2816TQFP/MLF64–40…+125
AT90CAN128P1284K4K53S2 1226+2816TQFP/MLF64–40…+125

Изготовители современных автомобилей добавляют в свои новые модели различные электронные системы для повышения удобства и безопасности эксплуатации. Каждая такая система управляется микроконтроллером, который принимает и обрабатывает информацию от датчиков и выдает команды на соответствующие двигатели и соленоиды. Эти периферийные контроллеры связаны с центральным компьютером посредством бортовой сети. Наиболее распространенной бортовой сетью является CAN (Controller Area Network). На самом деле, в автомобиле приходится использовать две сети, первую для обслуживания ответственных узлов, таких как антиблокировочная система или подушки безопасности, и вторую для работы с сервисными системами — климат–контролем или освещением в салоне. Использование высокоскоростной шины CAN, поддерживающей режим multi–master, во втором случае не является оптимальным решением. Здесь находит применение шина LIN (Local Interconnect Network).

Микроконтроллеры с шиной CAN ATMEL выпускает практически во всех сериях — AT89, AT90, AT91, также запланирован выпуск CAN–контроллера в серии AVR32. Первые AVR–микроконтроллеры с шиной CAN — это AT90CAN128. Они имеют на кристалле Flash–память объемом 128 кбайт, оперативную память 4 кбайта, а также богатый набор цифровой и аналоговой периферии. Внешняя шина адреса/данных позволяет подключать к контроллеру дополнительные устройства, а также увеличивать объем оперативной памяти. Позднее ATMEL выпустила еще два контроллера, имеющие такой же корпус, но меньший объем памяти.

LIN — дешевая низкоскоростная шина (скорость 20 кбит/с), использующая для межсоединений однопроводную линию связи. Микроконтроллеры с шиной LIN появились в линейке продукции ATMEL сравнительно недавно. Это объясняется тем, что обмен по шине LIN в AVR–микроконтроллерах можно организовать, используя интерфейс UART или USI и внешний LIN–трансивер ATA6660 или ATA6662. Структурная схема представлена на рис. 2.

Рис. 2. Структурная схема LIN трансивера ATA6662

В современном автомобиле многие устройства могут управляться по интерфейсу LIN. Ниже — неполный перечень:

  • прием данных от датчиков;
  • фары;
  • стеклоочистители;
  • люк;
  • дверные модули;
  • климат–контроль;
  • электрорегулировка кресла;
  • заряд аккумулятора и т. д.

Стратегия ATMEL в области применения LIN–интерфейса — выпуск микросхем повышенной степени интеграции, причем как со стороны Master–устройства, так и со стороны Slave–устройств. На рис. 3 в графическом виде показана тенденция к увеличению степени интеграции периферийных LIN–микросхем.

Рис. 3. Сводная диаграмма периферийных LIN микросхем

Из диаграммы видно, что старшие микросхемы — ATA6823/33/34, системные базовые кристаллы (LIN System Basic Chip, SBC) включают даже драйвер для прямого управления внешними полевыми транзисторами.

На основе кристалла SBC, микросхемы ATA6624 и кристалла AVR–микроконтроллера ATmega88/168 ATMEL выпустила микросхему класса «система–в–корпусе» (System–In–Package, SIP) — ATA6612/6613. Эта микросхема упакована в корпус QFN48 и представляет собой компактное законченное однокристальное решение для создания типового LIN–узла.

Структурная схема ATA6612/13 представлена на рис. 4.

Рис. 4. Структурная схема ATA6612/13

В 2008 году ATMEL выпустила новую группу контроллеров для автомобильного применения — ATmega32M1/ATmega32С1. Эти контроллеры наряду с интерфейсом CAN имеют аппаратный LIN–интерфейс, что позволяет использовать их в системах управления моторами по интерфейсу CAN и LIN. Микросхема ATmega32M1 интересна тем, что содержит многоканальный ШИМ–контроллер с тремя парами комплементарных выходов, а это позволяет непосредственно управлять трехканальным драйвером трехфазного бесколлекторного двигателя постоянного тока, например ATA6834. На рис. 5 показана схема построения системы управления бесколлекторным двигателем постоянного тока на основе ATmega32M1 и ATA6834.

Рис. 5. Функциональная схема модуля управления двигателем на ATmega32M1

Общие технические характеристики ATmega32M1/ATmega32C1:
  • аппаратный LIN/UART–контроллер с подстройкой частоты;
  • аппаратный контроллер CAN;
  • интерфейс SPI Master/Slave;
  • 8–разрядный таймер–счетчик;
  • 16–разрядный таймер–счетчик;
  • 10–разрядный АЦП, 120 ksps 11 одиночных входов/3 дифференциальных входа;
  • 10–разрядный ЦАП;
  • термодатчик;
  • четыре аналоговых компаратора;
  • корпус QFN32 и QFP32;
  • диапазон рабочих температур –40…+150 °C.
Специальные технические характеристики ATmega32M1:
  • 12–разрядный ШИМ–контроллер;
  • ФАПЧ–умножитель до 64 МГц;
  • шесть комплементарных ШИМ–выходов;
  • защита от сквозного тока;
  • синхронизация с ADC;
  • быстрый аварийный останов.

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

Не остаются в стороне от автомобильных приложений и 32–разрядные AVR–микроконтроллеры. Один из уже выпускаемых контроллеров, AT32UC3A0512 — прошел сертификацию для автоприменений, и целая линейка AVR32–контроллеров готовится к проведению сертификации. На рис. 6 представлена информация о выпускаемых и готовящихся к выпуску «автомобильных» контроллерах AVR32 семейств UC3A и UC3B.

Рис. 6. Контроллеры AVR32 для автомобильных приложений

Таким образом, корпорация ATMEL предлагает весьма широкий выбор электронных компонентов для использования в экстремальных условиях, в частности, в автомобильных применениях. На смену выпускающимся в течение долгого времени 4–разрядным микроконтроллерам MARC4 приходят более скоростные и высокоинтегрированные 8– и 32–разрядные кристаллы и модули. Наращивание номенклатуры «автомобильных» контроллеров подтверждает серьезность намерений ATMEL расширить свои позиции на мировом рынке автомобильной электроники.

Литература

  1. Материалы семинара ATMEL в Лас–Вегасе, апрель 2008 года.
  2. Описания микросхем и примеры их использования, www.atmel.com
  3. Королев Н., Шабынин А. Архитектура AVR: развитие вширь и вглубь. Часть 1 // Компоненты и технологии. 2007. № 2.
  4. Русскоязычные материалы по теме: www.argussoft.ru/atmel, www.argussoft.ru/as-tools

Схемы для авто, самодельная автомобильная электроника


Красно-зеленый стоп-сигнал для автомобиля на светодиодной ленте

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

0 112 0

Дополнительное управление автомобильными сигналами поворота

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

0 101 0

Светодиодные ДХО со встроенными дополнительными сигналами поворота

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

1 30 0

Самодельный амперметр для автомобиля

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

0 485 0

Схема фонаря на светодиодной ленте для внутреннего салона автомобиля

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

0 211 0

Электронные датчики открывания дверей для автомобиля

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

1 223 0

Самодельная светодиодная подсветка для замка зажигания автомобиля

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

0 148 0

Блок управления электромотором стеклоочистителя в авто

Блок предназначен для плавного регулирования частоты прерывания работы стекоочистителей автомобиля. Регулировка осуществляется при помощи переменного резистора R4 в пределах от одной до десяти секунд. На элементах D1.1 и D1.2 сделан мультивибратор, частоту выходных импульсов которого можно …

1 167 0

Устройство напоминания о включении фар с записью звука

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

0 186 0

Превращаем светодиодный фонарик в автомобильный стробоскоп

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

Схемы на микроконтроллерах, самодельные устройства и программаторы (Страница 2)


Схемы двух телеграфных E-CW-ключей на МК PIC12F675

Две схемы самодельных телеграфных ключей E-CW, которые выполнены на микроконтроллерах PIC12F675. Несколько необычное название телеграфного ключа E-CW родилось в процессе написания статьи и поиска автором описаний аналогичных устройств в Интернете. Как правило, большая часть статей имела названия …

1 167 0

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

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

1 305 0

Самодельный генератор качающейся частоты (ГКЧ) с индикатором АЧХ

Схема самодельного генератора качающейся частоты (ГКЧ) с жидкокристаллическим индикатором АЧХ. Этот прибор создан на базе двух конструкций — функционального генератора и карманного осциллографа, описания которых опубликованы ранее в нашем журнале. С его помощью можно определить резонансную частоту …

1 686 0

Дублирующий электронный счетчик показаний использования воды (PIC16F84A)

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

1 179 0

Схема светодиодного куба 5x5x5, описание и конструкция (на МК PIC16F877A)

Схема сборки светодиодного куба 5x5x5 своими руками, ее основа — микроконтроллер PIC16F877A, куб трехмерный, содержит 5 уровней по 25 светодиодов. Автор этой статьи предлагает несложный по схеме вариант. В нём реализованы десять сменяющихся циклически придуманных автором световых эффектов плюс . ..

1 138 0

Дистанционное управление на ИК-лучах (Arduino UNO)

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

0 113 0

Таймер для насоса отопления на микроконтроллере (Arduino UNO)

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

1 127 0

Управление дачным декоративным фонтаном на Arduino UNO

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

0 110 0

Регулятор яркости системы освещения на трех светодиодных лентах (Arduino UNO)

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

1 111 0

Самодельный измеритель ёмкости конденсаторов на МК (ATtiny2313)

Ссылки | Любительские конструкции на микроконтроллерах

На этой странице выложены ссылки на ресурсы со схожей тематикой.

http://easyelectronics.ru — по моему мнению один из лучших сайтов микроконтроллерной направленности. Материал изложен очень доходчиво.

http://avrdevices.ru — интересные устройства на микроконтроллерах. Анализ и опыт применения разнообразных  узлов и микросхем.

ARV Research

http://avr.nikolaew.org — сайт простейшего программатора АВР

http://www.getchip.net — готовые решения для проектов AVR, а также пример красивого оформления блога.

http://avrproject.ru — проекты на микроконтроллерах AVR

http://www.lockdog.ru  — личный блог, где автор пишет о своих разработках. Основной упор делается на подключение различных дисплеев и робототехнику.

http://chipenable.ru — электроника, микроконтроллеры, программирование.

http://samou4ka.net — электронные устройства и микроконтроллеры

http://www.servodroid.ru -робототехника для начинающих своими руками

http://radioelektr.ru — микроконтроллеры AVR, программирование и не только.

?нформация по ремонту электронной аппаратуры. Большое количество принципиальных схем , справочники ,статьи .Форум для всех и закрытый для СЦ РБ..

http://easystm32.ru — STM32 — это просто

http://yysup. narod.ru — Схемы на микроконтроллерах, программы на Ассемблере. Только авторский контент.

— Радиотехника студентам, инженерам и радиолюбителям по старым учебникам «Основы радиотехники». Cтруктурно сайт выполнен как алфавитный предметный указатель.

http://smartelectronix.biz/ — Домашняя страничка нашего коллеги Eddy 71, где он представляет свои конструкции на PIC — контроллерах и без них. Работы не громоздкие, а скажем так: практично-автомобильно-бытовые полезные усовершенствования.


— Паятель.net — статьи и простые схемы, конструкции для начинающих и профессионалов.

А здесь я покупаю радиодетали:

http://www.dealextreme.com — …. чудный китайский интернет-магазин, неоднократно описанный на моём сайте

Типы микроконтроллеров — Списки приложений микроконтроллеров

Типы микроконтроллеров: Микроконтроллер — это небольшой компьютер на единой интегральной и архитектурной схеме. В современной терминологии это называется микроконтроллером, потому что у них время выполнения порядка микросекунд. Хотя скорость программирования микроконтроллеров с годами увеличивалась, но название прижилось. Что касается контроллера, то микроконтроллер состоит из микропроцессора, RAM, ROM и некоторых дополнительных периферийных устройств.

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

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

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

Функции микроконтроллера

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

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

Преимущества

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

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

    1. Мобильные телефоны
    2. Автомобили
    3. Камеры
    4. Приборы
    5. Компьютерные системы
    6. Охранная сигнализация
    7. Электронные измерительные приборы
    8. Микро духовка.

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

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

    PIC Stands for Peripheral Interface Controller — это разновидность компонентов микроконтроллера, которые использовались в разработке электроники, компьютерной робототехники и подобных устройств.Несмотря на то, что PIC был произведен по технологии Microchip и основан на архитектуре аппаратных вычислений, здесь код и данные помещаются в отдельные регистры для увеличения ввода и вывода. Pic имеет встроенную память данных, шину данных и специальный микропроцессор для подготовки всех целей и методов ввода-вывода.

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

    ARM означает Advanced RISC Machine. Это наиболее популярное программирование микроконтроллеров в мире цифровых встроенных систем, и большинство отраслей предпочитают только микроконтроллеры ARM, поскольку они содержат важные функции для реализации продуктов с превосходным внешним видом.Это чувствительное к стоимости и высокопроизводительное устройство, которое использовалось в широком диапазоне приложений, таких как системы управления промышленными приборами, беспроводные сети и датчики, автомобильные кузовные системы и т. Д.

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

    Intel создала 8051 микроконтроллер в 1981 году. Это 8-битный микроконтроллер. Он состоит из 40-контактного DIP (Dual inline package), 4 Кбайт для хранения ПЗУ и 128 байт памяти для хранения 2, 16-битного таймера. Он состоит из четырех параллельных 8-битных портов, которые могут быть как программируемыми, так и адресуемыми в соответствии со спецификацией.

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

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

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

    MSP расшифровывается как Mixed Signal Processor.Это семья из Texas Instruments. Построенный на базе 16-битного ЦП, MSP разработан для недорогих и, соответственно, встроенных операторов с низким энергопотреблением. Внешний вид контроллера напрямую связан с 16-битной шиной данных, семью режимами адресации и уменьшенным набором инструкций, что позволяет использовать более короткий и плотный программный код для быстрой работы.

    Линейка микроконтроллеров — это микросхема, которая выполняет программы для управления другим устройством или машинами. Это микроустройство, которое используется для управления другими устройствами, поэтому оно называется «Программирование микроконтроллеров».

    Building многоразовые драйверы устройств для микроконтроллеров

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

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

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

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

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


    Рисунок 1 — Многоуровневая организация

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

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

    Доступны программные API, которые могут служить отправной точкой. Можно принять форматы, используемые ядром Linux, библиотеками Arduino, AUTOSAR или пользовательским API-интерфейсом драйвера, который представляет собой смесь. Это не имеет значения при условии, что формат хорошо документирован и используется на всех платформах и в проектах.
    Полезно определить API для общих и полезных функций для каждого из периферийных устройств. Каждое периферийное устройство потребует функции инициализации в дополнение к функциям, которые позволяют периферийному устройству выполнять свои функции.Например, в листинге 1 показан возможный интерфейс для драйвера цифрового ввода / вывода. Он состоит из функции инициализации, чтения, записи и переключения.


    Листинг 1 — API цифрового ввода / вывода

    Последовательный периферийный интерфейс (SPI) и API EEPROM можно найти ниже в листинге 2 и листинге 3. Это примеры интерфейсов, которые будут использоваться в этой статье.


    Листинг 2 — API последовательного периферийного интерфейса


    Листинг 3 — EEPROM API

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

    Следует отметить, что uint8, uint16 и uint32 — это соответственно uint8_t, uint16_t и uint32_t. Автор обнаружил, что это довольно очевидно, и постоянное написание _t после каждого типа не имеет никакой дополнительной ценности. Это открыто для личной интерпретации, но это соглашение, которое будет использоваться в остальной части этого документа.

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

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

    Концепция массивов указателей — это относительно простой метод отображения на периферийное устройство. Идея состоит в том, чтобы создать массив, в котором каждый индекс массива является указателем на периферийный регистр определенного типа. Например, для микроконтроллера с несколькими портами GPIO массив указателей должен быть настроен для доступа к регистрам направления каждого из доступных портов (листинг 4).Другой массив указателей будет настроен для доступа к регистрам ввода и вывода. Каждый тип регистра будет связан со своим собственным массивом указателей.


    Листинг 4: Массив указателей для GPIO

    Важно обратить внимание на способ объявления массива указателей. Массив указателей portsddr — это постоянный указатель на изменчивый uint16. Обратите внимание, что объявление определяется справа налево. Указатель на регистр является постоянным указателем, но объявление его как изменчивого uint16 уведомляет компилятор о том, что указанное значение может измениться само по себе без взаимодействия со стороны программного обеспечения.

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

    Для настройки регистра периода каждого таймера потребуется только простая запись в соответствующий индекс канала массива указателей периода. Затем индекс массива указателей становится индексом доступа к каналу.Например, индекс массива указателей 0 будет связан с таймером 1; индекс массива указателей 1 будет связан с таймером 2.

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


    Листинг 5: Цикл инициализации таймера

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

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

    Таблица конфигурации — это именно то, на что она похожа; это набор каналов и значений, которые используются для настройки периферийного устройства.Самый полезный способ определения таблицы конфигурации — это создать структуру typedef, которая содержит все необходимые поля для настройки каждого канала. Начните с изучения интересующих периферийных регистров. Например, проверка периферийного устройства таймера может привести к определению, что необходимые поля, которые должны быть включены в таблицу конфигурации, — это поля канала, периода и управления. Затем элементы таблицы могут быть определены структурой, показанной в листинге 6.


    Листинг 6: Определение таблицы конфигурации

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


    Листинг 7: Определения канала таймера

    В листинге 7 для создания имен каналов используется перечисление typedef. Поскольку перечисления начинаются с 0 (в любом случае в C), TIMER1 может использоваться для доступа к индексу 0 массива, который содержит информацию о TIMER1. NUM_TIMERS затем содержит значение количества доступных таймеров. Это можно использовать при инициализации драйвера для сквозного прохождения и настройки каждого канала до NUM_TIMERS.

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


    Листинг 8: Пример таблицы конфигурации для 2 таймеров

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

    Конструкция драйвера цифрового ввода / вывода
    Универсальный ввод / вывод или цифровой ввод / вывод являются одними из наиболее важных периферийных устройств в каждом микроконтроллере. Однако в большинстве приложений выяснение того, как конфигурируются контакты устройств, может быть кошмаром.Обычно они конфигурируются, как показано в листинге 9, за исключением того, что вместо отображения только четырех регистров их сотни! Этот тип определения был хорош, когда устройства имели только 8-битные порты, а на каждое устройство было только один или два порта. Однако сегодня микроконтроллеры могут иметь 100 контактов, которые необходимо настроить. Вот почему мы собираемся изучить подход к отображению контактов с использованием массивов указателей. В конце этого раздела вы обнаружите, что этот метод намного проще определить конфигурацию штифта после того, как работа будет выполнена заранее.


    Листинг 9: Пример конфигурации ввода / вывода

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

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


    Листинг 10: Структура конфигурации цифрового ввода / вывода

    После разработки списка параметров конфигурации единственная часть, отсутствующая перед заполнением таблицы, — это определения каналов. Эти определения могут начинаться как общий список, такой как PORTA_0, PORTA_1 и т. Д .; однако, оказавшись в приложении, гораздо удобнее пометить каналы полезными обозначениями.Например, LED_RED, LED_BLUE заменит общую метку, чтобы разработчик точно знал, какой вывод обрабатывается. Пример определения канала можно найти в листинге 11 в виде перечисления typedef.


    Листинг 11: Типы цифровых каналов ввода / вывода

    СТРАНИЦА 5

    После того, как каналы были определены, можно легко создать таблицу конфигурации. Создайте массив констант типа Dio_ConfigType и затем начните заполнять, как должен быть настроен каждый канал (вывод).Например, для канала LED_RED вывод должен быть настроен как цифровой вывод с направлением OUTPUT и начальным состоянием HIGH. Функция вывода, конечно, будет установлена ​​на GPIO. Полный пример таблицы конфигурации можно увидеть в Листинге 12.


    Листинг 12: Пример таблицы конфигурации цифровых входов / выходов

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


    Листинг 13: Карты памяти массива указателей для цифрового ввода / вывода

    После хорошей подготовки функция инициализации наконец готова к написанию. Это относительно просто. В функцию передается указатель на таблицу конфигурации. Для настройки каждого из выводов используется простой цикл. Во время каждого прохода считывается каждое значение конфигурации, и на основе значения настраивается регистр. В листинге 14 показано, как каждое из значений конфигурации записывается в регистры.Как видите, этот код прост и его легко использовать повторно. Единственное изменение состоит в том, что массив указателей необходимо обновить для правильных регистров. Могут потребоваться незначительные изменения в настройке аналоговых выводов, но до тех пор, пока соблюдается API, код приложения можно повторно использовать от одного процессора к другому.


    Листинг 14: Пример функции цифровой инициализации 1/0

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


    Листинг 15: Определение драйвера цифрового ввода / вывода

    Использование этой функции очень простое. Просто передайте один из каналов DioChannelType, например LED_RED. Функция может вызываться с частотой 500 мс. В листинге 16 показано, как можно использовать другие функции вместе с Dio_ToggleChannel.


    Листинг 16: Функции цифрового ввода / вывода

    Дизайн драйвера последовательного периферийного интерфейса (SPI)
    Последовательный периферийный интерфейс (SPI) является широко используемым интерфейсом. Он состоит из трех линий связи в дополнение к линии выбора микросхемы. Он часто используется для связи с EEPROM, SD-картами и многими другими периферийными устройствами. Большинство интерфейсов SPI могут достигать скорости более 4 Мбит / с.
    Как и в случае с драйвером цифрового ввода-вывода, первым шагом к разработке драйвера SPI будет разработка таблицы конфигурации.Пример структуры конфигурации можно найти в Листинге 16.


    Листинг 16: Определения таблицы конфигурации SPI

    Джейкоб Бенинго — сертифицированный специалист по разработке программного обеспечения (CSDP), который специализируется на разработке и проектировании качественных и надежных встроенных систем. В качестве консультанта Джейкоб работал в различных отраслях, включая автомобильную, бытовую, оборонную, медицинскую и космическую. Ему нравится разрабатывать программное обеспечение в реальном времени с использованием новейших технологий, чтобы не только быстро и эффективно создавать код, но и надежно.Джейкоб участвовал в многочисленных проектах по разработке оборудования, включая навигационные системы, получившие награду Best of CES. Его основная цель — разработать эффективные технологии, которые революционизируют то, как мы работаем. Он написал технические статьи по методам проектирования встраиваемых систем и читал курсы по программируемым устройствам, загрузчикам и методам программного обеспечения на технических конференциях. Он имеет степень бакалавра инженерии и физики Университета Центрального Мичигана и степень магистра инженерии космических систем в Университете Мичигана.

    Эта статья была ранее опубликована в журнале EDN Magazine, дочернем издании Embedded.com.

    Продолжить чтение

    Простое руководство по микроконтроллерам — x-engineer.org

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

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

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

    Изображение: PIC18F Microcontroller
    Кредит: Microchip

    Микроконтроллеры подходят для различных приложений, от простых алгоритмов управления до полностью интегрированных систем, включающих различные протоколы связи (USB, Ethernet, CAN), а также сенсорное управление и ЖК-дисплей. Любое электронное устройство, имеющее датчик, пользовательский интерфейс, управляемый привод или дисплей, скорее всего, также содержит микроконтроллер .

    Микроконтроллеры классифицируются по функциям нескольких параметров. Один из них — это размер блока данных . Исходя из этого критерия, мы можем иметь: 8-, 16- или 32-битных микроконтроллеров . 8-битный микроконтроллер выделяет 8 бит памяти (1 байт) для большинства своих блоков данных.

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

    Изображение: Обзор 8-битных микроконтроллеров PIC
    Кредит: Microchip

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

    • Центральный процессор (ЦП)
    • Память программ
    • Данные Память
    • Внутренняя Генератор
    • Таймеры / счетчики
    • Порты ввода-вывода (выводы)

    Все вышеперечисленные компоненты интегрированы в один микрочип .

    Центральный процессор (ЦП) — это микропроцессор, который контролирует и контролирует все процессы внутри микроконтроллера. ЦП состоит из нескольких блоков меньшего размера, основным из которых является арифметико-логический блок (ALU). Этот блок отвечает за выполнение всех логических и математических операций .

    Память программ — это место, где хранится набор команд (код / ​​программа). Например, если программа была разработана на языке программирования C, двоичный файл (например,.г. * .hex) будет сгенерирован средой программирования. Файл * .hex загружается в память программ. Для получения дополнительной информации о процессе создания двоичного файла из исходных файлов прочитайте статью Как работает программирование на C — от редактора к исполняемому файлу.

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

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

    Существует несколько типов постоянной памяти. Наиболее распространенные типы ПЗУ:

    • Стираемое программируемое постоянное запоминающее устройство (EPROM)
    • Флэш-стираемое программируемое постоянное запоминающее устройство (FEPROM)

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

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

    Изображение: 8-битная архитектура микроконтроллера PIC
    Кредит: Microchip

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

    Существует два типа памяти данных:

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

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

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

    Таймер — это счетчик, который увеличивается на каждый такт внутренних (системных) часов. Таймеры используются для отслеживания времени и для запуска / остановки различных задач в желаемые промежутки времени.Особый тип таймера — сторожевой таймер . Это значение постоянно увеличивается и должно регулярно сбрасываться ЦП. Если по каким-либо причинам ЦП не выполняет сброс сторожевого таймера, таймер достигнет максимального порога. Это означает, что возникла проблема с ЦП, и сторожевой таймер инициирует сброс ЦП.

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

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

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

    Не забывайте ставить лайки, делиться и подписываться!

    .

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

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