Índice:

Esp8266 Relógio e gerador de pulso: 3 etapas
Esp8266 Relógio e gerador de pulso: 3 etapas

Vídeo: Esp8266 Relógio e gerador de pulso: 3 etapas

Vídeo: Esp8266 Relógio e gerador de pulso: 3 etapas
Vídeo: Как сделать 4-канальное реле Wi-Fi ESP8266 ESP01 | ESP01 Домашняя автоматизация | УдаленныйXY 2024, Novembro
Anonim
Esp8266 Relógio e gerador de pulso
Esp8266 Relógio e gerador de pulso

Este instrutível é para uma peça simples de equipamento de teste; um relógio e gerador de pulso.

Ele usa a interface de hardware i2S em um esp8266 para gerar um relógio de teste ou uma sequência de pulso. Isso facilita a montagem, pois nenhum hardware especial é necessário para um sistema básico.

  • Geração de clock de 2 Hz a 20 MHz
  • Qualquer frequência pode ser usada
  • Pesquisa a melhor combinação de divisores de clock e comprimento de bit do clock base de 160 MHz
  • Normalmente melhor do que 0,1% de correspondência para frequências <100KHz
  • Marcar seleção de proporção de espaço
  • A tolerância de correspondência de frequência pode ser relaxada para obter um melhor manuseio do espaço de marcação
  • Geração de trem de pulso com base em definições em arquivos
  • GUI baseada na Web que permite o controle do PC, telefone, tablet
  • Gerenciamento de Wifi para facilitar a configuração inicial do roteador
  • Atualização de software OTA
  • Usa uma biblioteca I2s especial (i2sTXcircular) dando controle flexível

Etapa 1: Hardware

Hardware
Hardware
Hardware
Hardware

Eu construí o meu em um gabinete impresso em 3D contendo uma bateria 18650 com um carregador USB, um botão liga / desliga e um plugue de 3 pinos para o sinal de saída.

O gabinete tem um slot estreito para segurar os componentes eletrônicos ao lado da bateria.

O sinal vem do pino GPIO3 (RX). Isso pode ser usado diretamente, mas para maior capacidade do drive, optei por incluir um pequeno buffer usando um 74LVC2G34. Eu coloquei em paralelo os dois buffers neste dispositivo para fornecer ainda mais capacidade de unidade.

Tudo é feito apenas no software do dispositivo, e o controle é feito fornecendo um servidor web para que um navegador em um PC, telefone ou tablet forneça o controle total.

Etapa 2: Software

Para construir e configurar o software, use o código em

  • Instale a biblioteca circular i2sTX (incluída)
  • Instale a biblioteca BaseSupport (https://github.com/roberttidey/BaseSupport)
  • Adicionar biblioteca WifiManager
  • Edite as senhas em BaseConfig.h
  • Compilar e fazer upload no ambiente Arduino
  • Configure o gerenciamento de rede wi-fi conectando-se ao AP e navegando até 192.168.4.1
  • fazer upload de um conjunto básico de arquivos da pasta de dados usando STA ip / upload
  • outros uploads podem ser feitos usando ip / edit - a interface normal está em ip /

Como funciona

A biblioteca i2sTXcircular permite construir uma cadeia circular de buffers que são produzidos automaticamente pelo hardware i2S no esp8266 usando DMA para que nenhuma sobrecarga de software seja usada uma vez em funcionamento.

O relógio básico do dispositivo é 160 MHz, que é dividido por um par de divisórias. O sinal de saída é então determinado por quais dados são colocados nos buffers que são emitidos pelo relógio dividido. Ao escolher os dois divisores e ao usar bits de dados potencialmente múltiplos para representar cada pulso, uma frequência pode ser aproximada bastante. Também permite que o ciclo de trabalho (relação marca / espaço dos pulsos de clock) seja variado.

O código javascript do navegador tenta otimizar a escolha de parâmetros para fornecer uma correspondência próxima a qualquer frequência selecionada.

Embora o objetivo principal seja gerar relógios, também é possível produzir trens de pulsos mais complexos colocando uma definição em um arquivo de pulsos que controla os dados que serão gerados e colocados no buffer circular. Os detalhes estão nos arquivos de exemplo de pulso incluídos.

Etapa 3: Operação

A operação é controlada pela interface do navegador mostrada na imagem principal.

Para a geração de relógio normal, basta selecionar o relógio alvo e a proporção de% de espaço de marcação. O relógio real alcançado e seu erro são exibidos. Quando o botão Gerar relógio é pressionado, os parâmetros são enviados ao dispositivo e a geração do relógio usando esses parâmetros é iniciada.

Ao clicar na barra Avançado, mais detalhes podem ser vistos.

O bit clock mostra o sub-múltiplo de 160 MHz que está sendo usado.

Os bits de marca e espaço mostram quantos bits estão sendo usados para representar marcas e espaços.

Div1 e Div2 mostram os dois divisores que foram escolhidos para gerar o bit clock mais próximo.

Normalmente, os dois divisores são escolhidos para dar a correspondência mais próxima à frequência escolhida e para maximizar o número de bits de dados usados, o que ajuda a fornecer mais flexibilidade ao permitir diferentes ciclos de trabalho. No entanto, às vezes a melhor correspondência resulta em uma contagem de bits baixa, deixando pouco espaço para alterar o ciclo de trabalho. Ao alterar o valor de% de tolerância, os divisores serão escolhidos para fornecer uma frequência dentro desta tolerância, mas com potencialmente mais bits de dados usados. Tente, por exemplo, definir a tolerância para 0,5 ou 1.

Você também pode definir o número de bits por palavra para controlar a escolha dos parâmetros. 0 (padrão) significa escolher qualquer bit por palavra. Um único número (por exemplo, 24) significa apenas escolher os parâmetros que correspondem a isso. Você também pode colocar em um intervalo (por exemplo, 24, 31). Isso só funciona para Hz alvo acima de 10 KHz; abaixo dessa escala terá efeito para que o número seja multiplicado.

O tamanho do buffer mostra o espaço total do buffer usado em palavras de 32 bits. Isso é escolhido para garantir que o pulso do relógio forme um encaixe circular perfeito no buffer. Internamente, esse buffer é dividido em vários rbuffers pequenos para permitir que o DMA encadeado funcione.

Para operação de pulsos, escolha a guia de pulsos. Isso mostra os arquivos de pulso disponíveis e um botão próximo a cada um que produzirá um trem de pulso com base em sua definição. Você pode ver o conteúdo do arquivo clicando em seu link. Mais arquivos de pulso podem ser carregados usando o navegador de arquivos ip / edit. Eles devem começar com o nome de pulso.

Recomendado: