Eu tenho uma largura de pulso de 5 ns alta saindo de um comparador que é assíncrono. Estou tentando contar esse pulso. Meu microcontrolador atual (dsPIC33FJ) possui um contador assíncrono a bordo, com uma especificação mínima de pelo menos 10 ns de largura de pulso Alta.
Quais são minhas opções para aumentar / alongar esse pulso de 5 ns para que possa ser lido pelo contador? Estou aberto a mudar para um microcontrolador diferente ou a usar um contador front-end mais qualificado, mas prefiro usar circuitos passivos / simples. Isso é possível?
O que eu pesquisei até agora:
Tentei amarrar um capacitor .1uF entre o sinal de saída e o terra, na esperança de que a descarga o desacelerasse, mas tudo o que fiz foi distorcer fortemente o sinal. Posso usar um valor muito mais baixo?
Pesquisei amostras e segurei ICs, mas o menor tempo de aquisição que encontrei é de cerca de 200 ns, o que não é adequado para a minha aplicação.
fonte
Respostas:
Um multivibrador monoestável recuperável como o 74LV123 atenderia bem aos seus requisitos:
É um IC lógico padrão, com pouca complexidade e há duas monoestáveis no pacote, caso você precise esticar outra fonte de pulso.
A peça está disponível no DIP e no TSSOP, portanto opções de produção e placa de ensaio.
Espero que isso tenha ajudado.
fonte
Aqui está uma maca de pulso positivo simples com algumas condições:
O ganho do transistor fará a saída aumentar rapidamente, mas depois decairá de volta ao solo de acordo com a constante de tempo RC, que é de 47 ns neste exemplo.
Um dos problemas é que você pode não ser capaz de tolerar a queda de tensão BE. Se a entrada PIC exigir 80% de Vdd para uma alta garantida e o processador estiver executando a partir de 3,3 V, OUT deve estar acima de 2,6 V para ser interpretado como alto. No entanto, se IN também for um sinal lógico de 3,3 V e assumindo uma queda de 700 mV BE, então OUT só chega a 2,6 V em primeiro lugar.
Esse circuito ainda pode ser utilizado se o limite mínimo alto da lógica PIC for menor ou IN for uma tensão mais alta. Algumas entradas em algumas partes 33F são 5 V tolerantes. Se você puder organizar IN para ser um sinal lógico de 5 V e usar uma entrada tolerante de 5 V, você terá margem suficiente para a constante de tempo para manter a linha alta por mais tempo que o pulso.
Se, de alguma forma, for possível garantir que OUT atinja 3,3 V no pico do pulso e a entrada lógica alta garantida do PIC é 2,6 V, esse circuito esticará o pulso em cerca de 1/2 constante no tempo, ou cerca de 24 ns em este exemplo.
fonte
Com que frequência você está recebendo pulsos? Seu contador pode contar bordas ascendentes e descendentes em vez de pulsos?
Se os pulsos não forem muito frequentes, execute o pulso na entrada do relógio de um T-Flip-Flop. Toda vez que você pressiona, a saída TFF alterna, criando uma borda. Os pulsos devem estar suficientemente afastados para que o MCU tenha tempo de registrar a borda antes que a próxima apareça.
Se o MCU não conseguir trabalhar com as bordas ascendente e descendente, poderá usar dois contadores (uma borda ascendente, uma borda descendente) ou apenas aceitar que você só pode contar a cada dois pulsos.
fonte
Uma linha de atraso programável deve fazer o que você procura. Ele aumentará seu pulso de 5 ns entre 5 e 500 ns. O que está acima está fora de estoque na DigiKey, mas a folha de dados é uma boa leitura para mostrar a teoria. Aqui está um da Linear que está em estoque e deve fazer o que você espera.
fonte
Aqui está uma maca de pulso muito simples. Pode usar a porta lógica universal NC7SZ58P6X para implementar a porta OR. A folha de especificações mostra um atraso máximo de propagação de 4,3nS em 5v.
simular este circuito - esquemático criado usando o CircuitLab
fonte