как получить импульсы ТТЛ длительностью 1 нс и какая плата для этого нужна?

wave

Привет, мне нужно подавать импульсы ТТЛ на мой драйвер, чтобы получить импульс длительностью 1 нс с частотой 20 кГц.

Возможно ли это с Arduino? Какая плата и какие настройки мне нужны?

спасибо

, 👍1


1 ответ


1

Вы можете создать узкие импульсы, начиная с нарастающего фронта 20 кГц, длительностью, возможно, до нескольких нс, и возникающие через несколько нс после нарастающего фронта, с помощью пары логических компонентов, используя их задержки распространения. Например, 74AHC04 и 74AHC08.

http://www.ti.com/lit/ds/symlink/sn74ahc04.pdf

< a href="http://www.ti.com/lit/ds/symlink/sn74ahc08.pdf">http://www.ti.com/lit/ds/symlink/sn74ahc08.pdf

Вы можете исследовать другие логические семейства, чтобы увидеть, есть ли что-то более быстрое.

20 кГц = период 50 мкс, вы можете создать его с помощью Uno, используя время micros().

Что-то вроде этого в цикле:

void loop() {
  oldTime = micros();
  while (1) { // позволяет избежать дрожания из-за цикла за сценой действий
    timeNow = micros();
    if ((timeNow - oldTime) >= halfPeriod) {
      PINB = PINB | 0b00000001; // переключить D8, записав 1 во входной порт
      oldTime = timeNow;
    } // проверка времени окончания
  } // конец while
} // конец цикла

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

,