Ihads.ru

Все про недвижимость
183 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Частотомер на Arduino

Частотомер на Arduino

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

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

Частотомер на Arduino Частотомер на Arduino

Этот частотомер является экономически эффективным и может быть легко изготовлен. Для измерения частоты сигнала мы будем использовать Arduino Uno – сердце проекта.

Чтобы протестировать частотомер, мы собираемся создать простейший генератор сигнала. Этот простейший генератор сигнала будет изготовлен с использованием микросхемы таймера 555. Схема на таймере генерирует прямоугольный сигнал, который будет для тестирования подаваться на Arduino Uno.

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

8-битный микроконтроллер AVR Atmel с 2/4/8 Кбайт внутрисистемной программируемой флеш-памятью Руководство пользователя

VCC: Объем поставкиtage.
GND: Основание.
Порт B (PB5: PB0): Порт B — это 6-битный двунаправленный порт ввода-вывода с внутренними подтягивающими резисторами (выбираемыми для каждого бита). Выходные буферы порта B обладают симметричными характеристиками привода с высокой пропускной способностью как приемника, так и источника. В качестве входов контакты порта B, которые внешне подтянуты к низкому уровню, будут давать ток, если активированы подтягивающие резисторы. Контакты порта B имеют тройное обозначение, когда условие сброса становится активным, даже если часы не работают.

Читайте так же:
Счетчик с импульсным выводом

Порт B также выполняет функции различных специальных функций ATtiny25 / 45/85, перечисленных в списке.
На ATtiny25 программируемые порты ввода-вывода PB3 и PB4 (контакты 2 и 3) меняются местами в режиме совместимости с ATtiny15 для поддержки обратной совместимости с ATtiny15.

СБРОС: Сбросить вход. Низкий уровень на этом выводе, превышающий минимальную длину импульса, вызовет сброс, даже если часы не работают и вывод сброса не был отключен. Минимальная длительность импульса указана в Таблица 21-4 на странице 165 . Более короткие импульсы не гарантируют сброса.

Вывод сброса также может использоваться как (слабый) вывод ввода / вывода.

Обзор

ATtiny25 / 45/85 — это маломощный 8-битный CMOS-микроконтроллер, основанный на архитектуре RISC, улучшенной AVR. Выполняя мощные инструкции за один такт, ATtiny25 / 45/85 достигает пропускной способности, приближающейся к 1 MIPS на МГц, что позволяет разработчику системы оптимизировать энергопотребление в зависимости от скорости обработки.

Блок-схема

Ядро AVR сочетает в себе богатый набор команд с 32 рабочими регистрами общего назначения. Все 32 регистра напрямую подключены к Арифметико-логическому устройству (ALU), что позволяет получить доступ к двум независимым регистрам в одной инструкции, выполняемой за один такт. Результирующая архитектура более эффективна с точки зрения кода и обеспечивает до десяти раз более высокую пропускную способность, чем обычные микроконтроллеры CISC.

ATtiny25 / 45/85 обеспечивает следующие функции: 2/4 / 8K байт программируемой внутри системы флэш-памяти, 128/256/512 байт EEPROM, 128/256/256 байт SRAM, 6 линий ввода / вывода общего назначения, 32 общих целевые рабочие регистры, один 8-битный таймер / счетчик с режимами сравнения, один 8-битный высокоскоростной таймер / счетчик, универсальный последовательный интерфейс, внутренние и внешние прерывания, 4-канальный 10-битный АЦП, программируемый сторожевой таймер с внутренним Осциллятор и три режима энергосбережения, выбираемые программным способом. В режиме ожидания процессор останавливается, позволяя продолжать работу SRAM, таймеру / счетчику, АЦП, аналоговому компаратору и системе прерывания. В режиме пониженного энергопотребления сохраняется содержимое регистра, отключая все функции микросхемы до следующего прерывания или аппаратного сброса. В режиме шумоподавления АЦП останавливается ЦП и все модули ввода / вывода, кроме АЦП, чтобы минимизировать шум переключения во время преобразования АЦП.

Читайте так же:
Счетчик масла своими руками

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

AVR ATtiny25 / 45/85 поддерживается полным набором программных и системных средств разработки, включая компиляторы C, сборщики макросов, программный отладчик / симуляторы и оценочные комплекты.

О нас

Ресурсы

Полный набор инструментов разработки, заметки по применению и таблицы данных доступны для загрузки на http://www.atmel.com/avr.

Код Exampле

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

Для регистров ввода / вывода, расположенных в расширенной карте ввода / вывода, инструкции «IN», «OUT», «SBIS», «SBIC», «CBI» и «SBI» должны быть заменены инструкциями, которые обеспечивают доступ к расширенному I / O. Обычно это означает «LDS» и «STS» в сочетании с «SBRS», «SBRC», «SBR» и «CBR». Обратите внимание, что не все устройства AVR включают расширенную карту ввода-вывода.

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

Библиотека Atmel QTouch представляет собой простое в использовании решение для сенсорных интерфейсов микроконтроллеров Atmel AVR. Библиотека QTouch включает поддержку QTouch ® и QMatrix ® методы приобретения.

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

Читайте так же:
Кран для пивных со счетчиком

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

Хранение Данных

Результаты аттестации надежности показывают, что прогнозируемая частота отказов при хранении данных намного меньше 1 PPM в течение 20 лет при 85 ° C или 100 лет при 25 ° C.

Ядро процессора AVR

Введение

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

Архитектурный Overview

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

Реестр быстрого доступа File содержит 32 x 8-битных рабочих регистра общего назначения с временем доступа в один такт. Это позволяет работать с арифметико-логическим блоком (ALU) за один цикл. В типичной работе ALU два оператора и выводятся из Регистра File, операция выполняется, и результат сохраняется в регистре. File — за один такт.

Шесть из 32 регистров могут использоваться в качестве трех 16-битных указателей регистров косвенного адреса для адресации пространства данных, что позволяет эффективно вычислять адреса. Один из этих адресных указателей может также использоваться в качестве адресного указателя для таблиц поиска во флэш-памяти программ. Эти добавленные функциональные регистры представляют собой 16-битные регистры X, Y и Z, описанные далее в этом разделе.

Читайте так же:
Центр по сертификации счетчики

ALU поддерживает арифметические и логические операции между регистрами или между константой и регистром. Операции с одним регистром также могут выполняться в АЛУ. После арифметической операции регистр состояния обновляется, чтобы отразить информацию о результате операции.

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

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

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

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

Область памяти ввода-вывода содержит 64 адреса для периферийных функций ЦП, таких как регистры управления, SPI и другие функции ввода-вывода. Доступ к памяти ввода / вывода можно получить напрямую или в качестве ячеек пространства данных, следующих за местоположениями в регистре. File, 0x20 — 0x5F.

ALU — Арифметико-логический блок

Высокопроизводительный AVR ALU напрямую связан со всеми 32 рабочими регистрами общего назначения. В пределах одного такта выполняются арифметические операции между регистрами общего назначения или между регистром и непосредственным значением. Операции ALU делятся на три основные категории — арифметические, логические и битовые функции. Некоторые реализации архитектуры также предоставляют мощный умножитель, поддерживающий как знаковое / беззнаковое умножение, так и дробный формат. См. Подробное описание в разделе «Набор команд».

Читайте так же:
Перепрограммировать счетчики ночной тариф

Регистр статуса

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

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector