Форум: Техническая поддержка

Тема: E14-440. Цифровые входы и синхронизация

Вы не вошли.

 Поиск | Регистрация | Вход 

Анатолий123
10.02.2015 11:35:41
#1

Гость

E14-440. Цифровые входы и синхронизация

Здравствуйте. Я использую билиотеку lusbapi. В документации на прибор исключительно мало информации по работе с цифровыми входами. Не могли бы вы опубликовать комплексный пример по работе с ними.
Конкретно интересует возможность считать данные в компьютер по такту на входе INT цифрового разъема.
Пока у меня два варианта:
1.Висеть в цикле и постоянно читая ( ILE440::TTL_IN() ) ждать определенный сигнал на IN<1...16>, к примеру 0xffff, который будет обозначать такт передачи.
Типа так 0xffff, 0x1010, 0xffff, 0x2020....  А ведь еще надо предусмотреть сигнал окончания передачи, а то так и будем в цикле жить, пока программу не прибьют.
Ну ведь пичалька, есть же отдельный пин INT, но почему то нет к нему доступа из библиотеки.
2. Програмить dsp по своему. Может и не сложно, но точно долго.

Может еще есть варианты. Подскажите пожалста. И, да, пример в любом случае будет мне очень полезен.
Спасибо.

10.02.2015 16:14:22
#2

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: E14-440. Цифровые входы и синхронизация

Анатолий123 пишет:

В документации на прибор исключительно мало информации по работе с цифровыми входами.

Дело в том, что этой информации объективно немного: работа с TTL линиями в E14-440 и подобных приборах - не основная функция. Возможности ее скромные: просто записать или считать регистр, однократно, по команде от компьютера.
Все режимы синхронизации, линия INT и прочее относится к работе АЦП.

Анатолий123 пишет:

Пока у меня два варианта:
1.Висеть в цикле и постоянно читая ( ILE440::TTL_IN() ) ждать определенный сигнал на IN<1...16>, к примеру 0xffff, который будет обозначать такт передачи. Типа так 0xffff, 0x1010, 0xffff, 0x2020....

Например. Только надо учитывать, что когда Вы приводите константы типа IN<1...16> = 0x2020, это получается состояние всех 16 каналов в один момент времени, а не последовательность бит по одному каналу.

Анатолий123 пишет:

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

Возможны разные решения. Можно написать программный аналог USART (в синхронном режиме) или SPI, используя какую-то линию как CLOCK (например, при изменении с 0 на 1 брать биты данных с другой линии). Но из-за работы в режиме опроса этот интерфейс получится медленным. Возможно, Вам удастся опрашивать TTL_IN() до 250 раз в секунду, но важно понимать, что эти считывания не привязаны к равномерным интервалам времени, а происходят "как получится". Если компьютер "задумается", можно пропустить импульс. Поэтому надо либо оставлять большой запас по времени (и программно защищаться от сбоев), либо делать интерфейс с подтверждением (как STROBE/ACK у LPT порта).

У нас на сайте есть заметка, в которой рассмотрен похожий вопрос.

Анатолий123 пишет:

2. Програмить dsp по своему. Может и не сложно, но точно долго.

Пожалуй, только так можно сделать на этом устройстве более продвинутую работу с TTL линиями.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25
Факс: +7 (495) 785-95-14

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск