Tabla de contenido:

Esp8266 Reloj y generador de pulsos: 3 pasos
Esp8266 Reloj y generador de pulsos: 3 pasos

Video: Esp8266 Reloj y generador de pulsos: 3 pasos

Video: Esp8266 Reloj y generador de pulsos: 3 pasos
Video: Pr#87 - Crear Servidor ESP8266 | Control Arduino por Internet (cualquier sitio del mundo) 2024, Mes de julio
Anonim
Esp8266 Generador de pulsos y reloj
Esp8266 Generador de pulsos y reloj

Este instructivo es para una simple pieza de equipo de prueba; un reloj y un generador de pulsos.

Utiliza la interfaz de hardware i2S en un esp8266 para generar un reloj de prueba o una secuencia de pulsos. Esto hace que sea fácil de armar ya que no se requiere hardware especial para un sistema básico.

  • Generación de reloj de 2Hz a 20MHz
  • Se puede utilizar cualquier frecuencia
  • Busca la mejor coincidencia de los divisores de reloj y la longitud de bits del reloj base de 160 MHz
  • Por lo general, una coincidencia superior al 0,1% para frecuencias <100 KHz
  • Selección de relación de espacio de marca
  • La tolerancia de coincidencia de frecuencia se puede relajar para obtener un mejor manejo del espacio de marca.
  • Generación de trenes de pulsos basada en definiciones en archivos
  • GUI basada en web que permite el control desde PC, teléfono, tableta
  • Gestión de Wifi para permitir una fácil configuración inicial del enrutador
  • Actualización de software OTA
  • Utiliza una biblioteca I2s especial (i2sTXcircular) que proporciona un control flexible

Paso 1: hardware

Hardware
Hardware
Hardware
Hardware

Construí el mío en un gabinete impreso en 3D que contiene una batería 18650 con un cargador USB, un interruptor de encendido / apagado, un conector de 3 pines para la señal de salida.

El gabinete tiene una ranura estrecha para sujetar los componentes electrónicos junto a la batería.

La señal sale del pin GPIO3 (RX). Esto se puede usar directamente, pero para una mayor capacidad de disco, elegí incluir un pequeño búfer con un 74LVC2G34. Hice un paralelo de los dos búferes en este dispositivo para proporcionar aún más capacidad de manejo.

Todo se hace solo en el software del dispositivo, y el control se realiza proporcionando un servidor web para que un navegador en una PC, teléfono o tableta proporcione un control total.

Paso 2: software

Para construir y configurar el software, use el código en

  • Instale la biblioteca i2sTXcircular (incluida)
  • Instale la biblioteca BaseSupport (https://github.com/roberttidey/BaseSupport)
  • Agregar biblioteca WifiManager
  • Edite contraseñas en BaseConfig.h
  • Compilar y cargar en el entorno Arduino
  • Configure la administración de la red wifi conectándose a AP y navegando a 192.168.4.1
  • cargar un conjunto básico de archivos desde la carpeta de datos usando STA ip / upload
  • luego se pueden realizar más cargas usando ip / edit - la interfaz normal está en ip /

Cómo funciona

La biblioteca i2sTXcircular permite construir una cadena circular de búferes que luego son generados automáticamente por el hardware i2S en el esp8266 usando DMA para que no se use ningún software una vez que esté funcionando.

El reloj básico del dispositivo es de 160 MHz, que se divide por un par de divisores. A continuación, la señal de salida se determina por los datos que se colocan en los búferes y que son emitidos por el reloj dividido hacia abajo. Al elegir los dos divisores y al usar potencialmente múltiples bits de datos para representar cada pulso, entonces una frecuencia puede aproximarse bastante. También permite variar el ciclo de trabajo (relación marca / espacio de los pulsos de reloj).

El código javascript del navegador intenta optimizar la elección de parámetros para dar una coincidencia cercana a cualquier frecuencia seleccionada.

Aunque el propósito principal es generar relojes, también es posible producir trenes de pulsos más complejos poniendo una definición en un archivo de pulsos que luego controla los datos que se generarán y se colocarán en el búfer circular. Los detalles se encuentran en los archivos de pulso de ejemplo incluidos.

Paso 3: Operación

El funcionamiento está controlado por la interfaz del navegador que se muestra en la imagen principal.

Para la generación de reloj normal, simplemente seleccione el reloj de destino y la relación de porcentaje de espacio de marca. Se muestran el reloj real alcanzado y su error. Cuando se presiona el botón Generar reloj, los parámetros se envían al dispositivo y comienza la generación del reloj utilizando estos parámetros.

Al hacer clic en la barra Avanzado se pueden ver más detalles.

El reloj de bits muestra el submúltiplo de 160 MHz que se está utilizando.

Los bits de marca y espacio muestran cuántos bits se utilizan para representar marcas y espacios.

Div1 y Div2 muestran los dos divisores que se han elegido para generar el reloj de bits más cercano.

Normalmente, los dos divisores se eligen para dar la coincidencia más cercana a la frecuencia elegida y para maximizar el número de bits de datos utilizados, lo que ayuda a proporcionar más flexibilidad al permitir diferentes ciclos de trabajo. Sin embargo, a veces la mejor coincidencia da como resultado un recuento de bits bajo, lo que deja poco espacio para cambiar el ciclo de trabajo. Al cambiar el valor de% de tolerancia, los divisores se elegirán para dar una frecuencia dentro de esta tolerancia pero potencialmente con más bits de datos usados. Intente, por ejemplo, establecer la tolerancia en 0,5 o 1.

También puede configurar el número de bits por palabra para controlar la elección de parámetros. 0 (predeterminado) significa elegir cualquier bit por palabra. Un solo número (por ejemplo, 24) significa que solo elija los parámetros que coincidan con este. También puede poner un rango (por ejemplo, 24, 31). Esto solo funciona para Hz objetivo por encima de 10 KHz, por debajo de esta escala se aplicará para que el número se multiplique.

El tamaño del búfer muestra el espacio total del búfer utilizado en palabras de 32 bits. Esto se elige para asegurar que el pulso del reloj forme un ajuste circular perfecto en el búfer. Internamente, este búfer se divide en varios rbuffers pequeños para permitir que funcione el DMA encadenado.

Para la operación de pulsos, elija la TAB de pulsos. Esto muestra los archivos de pulsos disponibles y un botón al lado de cada uno que producirá un tren de pulsos basado en su definición. Puede ver el contenido del archivo haciendo clic en su enlace. Se pueden cargar más archivos de pulso usando el navegador de archivos ip / edit. Deben comenzar con el nombre pulso.

Recomendado: