как получить импульсы ТТЛ длительностью 1 нс и какая плата для этого нужна?
Привет, мне нужно подавать импульсы ТТЛ на мой драйвер, чтобы получить импульс длительностью 1 нс с частотой 20 кГц.
Возможно ли это с Arduino? Какая плата и какие настройки мне нужны?
спасибо
@Omri MS student for electro op, 👍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, чтобы учесть проверку времени и манипуляцию портами.
- Как преобразовать PCM в PWM?
- Воспроизведение файлов *.wav через Arduino
- Функция Tone() ставит паузы между нотами
- Генератор прямоугольных импульсов время от времени генерирует более короткий импульс.
- Вопрос таймера: фазовая корректировка ШИМ на определенной частоте
- Настройка вывода на непрерывный выходной сигнал
- Ошибка несинхронизации при записи в arduino