Оглавление:

Esp8266 тактовый генератор и генератор импульсов: 3 шага
Esp8266 тактовый генератор и генератор импульсов: 3 шага

Видео: Esp8266 тактовый генератор и генератор импульсов: 3 шага

Видео: Esp8266 тактовый генератор и генератор импульсов: 3 шага
Видео: Генератор импульсов 3 канала. Независимое управление длительностью и задержкой. 2024, Июль
Anonim
Esp8266 тактовый генератор и генератор импульсов
Esp8266 тактовый генератор и генератор импульсов

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

Он использует аппаратный интерфейс i2S на esp8266 для генерации тестовых тактовых импульсов или последовательности импульсов. Это упрощает сборку, поскольку для базовой системы не требуется специального оборудования.

  • Генерация часов от 2 Гц до 20 МГц
  • Может использоваться любая частота
  • Поиск наилучшего соответствия делителей тактовой частоты и длины в битах от базовой частоты 160 МГц
  • Обычно соответствие лучше 0,1% для частот <100 кГц
  • Отметить выбор соотношения сторон
  • Допуск согласования частоты может быть ослаблен, чтобы лучше обрабатывать пространство меток.
  • Генерация последовательности импульсов на основе определений в файлах
  • Веб-интерфейс, позволяющий управлять с ПК, телефона, планшета
  • Управление Wi-Fi для упрощения начальной настройки маршрутизатора
  • Обновление программного обеспечения OTA
  • Использует специальную библиотеку I2s (i2sTXcircular), обеспечивающую гибкое управление

Шаг 1. Аппаратное обеспечение

Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение

Я построил свой в корпусе с 3D-печатью, в котором находится аккумулятор 18650 с зарядным устройством USB, переключателем включения / выключения и 3-контактным разъемом для выходного сигнала.

В корпусе есть узкая прорезь для размещения электроники рядом с аккумулятором.

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

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

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

Для создания и настройки программного обеспечения используйте код на

  • Установить библиотеку i2sTXcircular (в комплекте)
  • Установите библиотеку BaseSupport (https://github.com/roberttidey/BaseSupport)
  • Добавить библиотеку WifiManager
  • Редактировать пароли в BaseConfig.h
  • Скомпилировать и загрузить в среде Arduino
  • Настройте управление сетью Wi-Fi, подключившись к AP и просмотрев 192.168.4.1
  • загрузить базовый набор файлов из папки данных с помощью STA ip / upload
  • дальнейшие загрузки могут быть выполнены с помощью ip / edit - нормальный интерфейс находится на ip /

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

Библиотека i2sTXcircular позволяет строить кольцевую цепочку буферов, которые затем автоматически выводятся оборудованием i2S на esp8266 с использованием DMA, так что никакие программные издержки не используются при работе.

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

Код javascript браузера пытается оптимизировать выбор параметров, чтобы обеспечить точное соответствие любой выбранной частоте.

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

Шаг 3: Эксплуатация

Управление работой осуществляется через интерфейс браузера, показанный на основном изображении.

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

Нажав на панель «Дополнительно», можно увидеть более подробную информацию.

Битовый тактовый сигнал показывает используемую частоту 160 МГц.

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

Div1 и Div2 показывают два делителя, которые были выбраны для генерации ближайшего тактового сигнала битов.

Обычно два делителя выбираются так, чтобы обеспечить максимальное соответствие выбранной частоты и максимизировать количество используемых битов данных, что помогает обеспечить большую гибкость при разрешении различных рабочих циклов. Однако иногда наилучшее совпадение приводит к небольшому количеству битов, оставляя мало места для изменения рабочего цикла. При изменении значения допуска в% делители будут выбраны так, чтобы получить частоту в пределах этого допуска, но с потенциально большим количеством используемых битов данных. Попробуйте, например, установить допуск на 0,5 или 1.

Вы также можете установить количество битов на слово для управления выбором параметров. 0 (по умолчанию) означает выбор любых бит на слово. Одно число (например, 24) означает, что выбирайте только те параметры, которые соответствуют этому. Вы также можете указать диапазон (например, 24, 31). Это работает только для целевых Гц выше 10 кГц, ниже этого масштабирования вступит в силу, так что число будет умножено.

Размер буфера показывает общий размер буфера в 32-битных словах. Это выбрано, чтобы гарантировать, что тактовый импульс идеально вписывается в буфер. Внутри этот буфер разделен на несколько небольших r-буферов, чтобы позволить сцепленному DMA функционировать.

Для работы в импульсном режиме выберите вкладку «Импульсы». Это показывает доступные файлы импульсов и кнопку рядом с каждым из них, которая будет генерировать последовательность импульсов на основе ее определения. Вы можете увидеть содержимое файла, щелкнув его ссылку. Дополнительные файлы Pulse можно загрузить с помощью браузера ip / edit. Они должны начинаться с имени «Импульс».

Рекомендуемые: