Генератор TTL сигналов с COM порта

Простейшие вопросы в области инженерной разработки
Ответить
Pervu
beginner
beginner
Сообщения: 28
Зарегистрирован: 23 сен 2014, 14:36
Версия LabVIEW: 12

Генератор TTL сигналов с COM порта

Сообщение Pervu »

Всем привет!

Моя задача заключается в том, что необходимо генерировать TTL сигналы длиной 40 мкс с частотой 10 Гц
Для этого собрана схема на микросхеме MAX232A и подключена к Com порту.
Для генерации TTL сигнала я отправляю через VISA число FF в шестнадцатеричном коде. Все роаботает как надо, но есть одна засада:
посмотрев на осцилографе, длина сигнала чуть меньше чем мне нужна. Например 35 мкс, против 40. Все другие сочетания символов, кроме "00" дают двойной сигнал, что меня не устраивает. Если отправлять "00", то сигнал получается слишком длинный, около 150 мкс.
Отсюда возникает вопрос: можно ли как то увеличить длину сигнала? На просторах интернета нашел генератор прямоугольных сигналов, написанный на Labview (http://mylab.wmsite.ru/moi-uvlechenija/ ... 2rs485-i2c) Но к сожалению, там предоставлен только exe-файл. Из этой программы я сделал вывод, что в Labview можно как-то генерировать импульсы нужной длины через ком-порт. Но вот как?
Подскажите пожалуйста.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Генератор TTL сигналов с COM порта

Сообщение IvanLis »

MAX232A это преобразователь логических уровней и ничего генерировать он не может и как правило используется при подключении к RS-232 микросхем TTL.

Я подразумеваю, что вы используете RS-232 немного нестандартно. Для изменения частоты и скважности можно изменить скорость передачи. На форуме были подобные примеры, поищите.

Нарисуйте схему Вашего устройства и схему подключения.
Выкладывайте исходники программы.
Pervu
beginner
beginner
Сообщения: 28
Зарегистрирован: 23 сен 2014, 14:36
Версия LabVIEW: 12

Re: Генератор TTL сигналов с COM порта

Сообщение Pervu »

Да, действительно я использую RS232 немного нестандартно. Я его использую чтобы отслеживать импульсы которые генерирует лазер. В программе у меня вываливаются нули, с определенной частотой, их я считаю, затем например после 20 импульсов-нулей, я даю сигнал на открытие шуттера лазера, посредством отправления символа FF на RS232, который преобразуется опять в TTL посредством микросхемы MAX232.
Т.е. мне не важно какие символы ко мне приходят на ПК, и какие символы отправлять, главное посчитать импульсы, и отправить синхронизированные импульсы с той же частотой.
схема_работы.gif
схема_работы.gif (6.8 КБ) 4105 просмотров
СОМport6.vi
(49.75 КБ) 119 скачиваний
program.gif
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Генератор TTL сигналов с COM порта

Сообщение IvanLis »

Pervu писал(а):Для этого собрана схема на микросхеме MAX232A и подключена к Com порту.
Для генерации TTL сигнала я отправляю через VISA число FF в шестнадцатеричном коде. Все роаботает как надо, но есть одна засада:
посмотрев на осцилографе, длина сигнала чуть меньше чем мне нужна. Например 35 мкс, против 40. Все другие сочетания символов, кроме "00" дают двойной сигнал, что меня не устраивает. Если отправлять "00", то сигнал получается слишком длинный, около 150 мкс.
Отсюда возникает вопрос: можно ли как то увеличить длину сигнала?
У Вас наверное MAX переведен в режим инверсии, по этому FF равносильно восьми "0", а 00 восьми "1".
Почитайте: https://ru.wikipedia.org/wiki/%D0%A3%D0 ... 0%B8%D0%BA
Там есть рисунок:
Изображение
Это и есть Ваш сигнал.
Попробуйте передать 80 или 7F. По идее 80, но при инверсии может быть и 7F.
Посмотрите что вы подаете в порт с учетом Start - "0" и Stop - "1".
1.vi
lv2010
(8.12 КБ) 110 скачиваний
Разберитесь с "физикой" процесса.

К тому же у меня большие сомнения по поводу 10Гц.
Pervu
beginner
beginner
Сообщения: 28
Зарегистрирован: 23 сен 2014, 14:36
Версия LabVIEW: 12

Re: Генератор TTL сигналов с COM порта

Сообщение Pervu »

IvanLis писал(а):Для изменения частоты и скважности можно изменить скорость передачи.
Сегодня попробовал изменить скорость передачи и импульс стал длиннее. Спасибо большое за совет.
IvanLis писал(а):У Вас наверное MAX переведен в режим инверсии, по этому FF равносильно восьми "0", а 00 восьми "1".
Судя по всему и здесь вы были правы. :) И спасибо за ссылку на статью.

В принципе, результат который мне нужен, уже достигнут, я просто уменьшил скорость передачи. Мне этого достаточно.

Но теперь у меня появился один вопрос: почему у вас возникли сомнения по поводу частоты?
IvanLis писал(а):К тому же у меня большие сомнения по поводу 10Гц.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Генератор TTL сигналов с COM порта

Сообщение IvanLis »

Pervu писал(а):Но теперь у меня появился один вопрос: почему у вас возникли сомнения по поводу частоты?
Посудите сами, у меня осциллографа сейчас нет под рукой, а Вы можете подключиться и посмотреть.
10 Гц, это 10 периодов в секунду.
Один период это 10 посылок (бод), т.е. у Вас должна вестись передача на скорости 100 бод.
С другой стороны 1/10=100 мс (длительность периода), длительность сигнала 40 мс, т.е. 40% заполнения.
Получается, что при скорости 100 бод необходимо передавать E0 или 07, а для инверсного сигнала F8 или 1F. Надеюсь там start/stop не инвертируются, но это тоже на осциллографе видно должно быть.
Так что пытайтесь перейти на скорость 100 бод.

В Вашем примере установлена скорость 57600, это получается 5,76 кГц.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»