Страница 1 из 2

Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 08:30:03
aptemah
Для цифрового термометра нужно подавать импульсы длительностью в 1мкс. Управляется это всё контроллером, с которого импульс можно сделать только не меньше 1мс. Как сделать, чтобы импульс длительностью в 1мс преобразовывался в импульс длительностью 1мкс? Импульс отрицательный, т.е. во время импульса провод "сажается" на землю.
Дополнительный вопрос: как "прочитать" таким же медленным контроллером импульсы? Нужно отличать 2 типа импульсов: 1мкс и 15мкс, соответственно, логические 1 и 0.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 08:41:31
FVisitor
только при условии, что период следования импульсов >1мс - например используя задержку открытия диода

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 08:55:28
Z_h_e
Если Ваш микроконтроллер такой медленный, то Вы никак не сможете работать им по протоколу 1-Wire. Ваш контроллер работает на частоте 1кГц чтоли????

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 09:00:51
aptemah
Z_h_e писал(а):микроконтроллер такой медленный
А кто сказал что это "микроконтроллер" :) ? Это ПЛК.
Z_h_e писал(а):Вы никак не сможете работать им по протоколу 1-Wire
Я думаю, что смогу. Если только обеспечить импульсы нужной длительности. Ведь задержка между импульсами там не регламентируется...

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 09:14:11
SmarTrunk
Можно выделить фронт импульса дифференциатором, потом компаратором или триггером Шмидта сделать крутые фронты получившегося короткого импульса. Не уверен, что это решит проблему автора темы, но сама задача несложная.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 09:15:30
Дмитрий М
Запускать одновибратор по фронту импульса например.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 10:11:20
uk8amk
Если ПЛК имеет ТТЛ UART/USART, то без проблем.
Ну с RS485 тоже навертеть можно, но это сложнее.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 10:20:28
Z_h_e
aptemah писал(а):А кто сказал что это "микроконтроллер" ?
aptemah писал(а):Управляется это всё контроллером
Но согласен, микроконтроллер Вы не говорили, но микроконтроллер часто называют просто контроллером и что тоже верно по сути.
Если 1-wire Вам обязателен и нет возможность подключить датчик температуры например с 4-20мА, то проще всего сделать на микроконтроллере преобразователь интерфейса. Например 1-wire в UART. Или даже просто в частоту или в ШИМ или еще во что-то что ПЛК легко понимает без плясок с бубном.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 10:28:28
uk8amk
Если есть ТТЛ UART, на крайняк LVTTL. То даже микроконтроллер для преобразователя 1wire не нужен. Достаточно одного диода.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 10:50:08
pyzhman
Если там ПЛК, то надо давать ему то, что он кушает. Например, преобразовать данные с термометра в бинарный код. Или в аналоговый сигнал и добавить в конфигурацию ПЛК аналоговый модуль. Ну, или те же интерфейсы, с которыми тот ПЛК работает.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 11:17:32
Z_h_e
Для чтения данных можно сделать вот так. Генератор имитирует Ваш ПЛК с импульсами 1мс. U1 и U2 одновибраторы 1мкс и 20 мкс. На выходе Dтригера выходное значение считанного бита. Кнопка - Ваш 1-wire датчик. Замечу что данная схема не является принципиальной, не формирует сигнал сброс и ваще изврат :).
Изображение

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 13:51:46
aptemah
Что изврат, я не отрицаю, начальство такое :) !
А можно вопрос, как работает ваша схема?
Z_h_e писал(а):На выходе Dтригера выходное значение считанного бита.

как ему это удается, если шина 1-wire связана только с одним мультивибратором U1?

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 14:33:13
Z_h_e
aptemah писал(а):А можно вопрос, как работает ваша схема?
Ключевое слово изврат, акцентирую Ваше внимание. Если Вам надо подключить DS18B20 используйте преобразователь интерфейса на микроконтроллере, это самое простое и надежное.
Что касается схемы... Если Вы внимательно почитаете протокол 1-wire, то увидете следующую последовательность.
1. Сначало дайте команду сброс, устройства отвечают о своем присутствии.
2. Даете команду измерить температуру и выжидаете время до 750мс.
3. Даете команду Чтение.
4. Читаете что в датчике. (Моя схема будет работает только для этого пункта).

Протокол описал по памяти, могу в чем то и ошибиться.

Установите PROTEUS и попробуйте схему. Я ее же вложил в предыдущий пост.
Схема "чтения" работает так. (преполагается что датчик уже сброшен, дана команда измерить и читать, видимо какой то другой схемой :) )
1. ПЛК дает импульс 1мс.
2. Этот импульс запускает одновибраторы U1 и U2
3. U1 формирует импульс 1мкс которые "видит" датчик.
4. После этого импульса датчик если хочет ответить нулем то удерживает шину в 0 (где то 45 мкс вроде), а если 1 то сразу отпускает шину.
5. Вот это состоянии шины и записывается в триггер по фронту импульса U2.

И все таки. Или делайте преобразователь интерфейса на МК (оно и дешевле будет, надежно и просто) или отстанте от этой идеи. Помните про ключевое слово :) .

З.Ы. Я правильно понял что Вам нужно подключить DS18B20 к ПЛК ? А то может какой-то другой девайс, Вы ничего не указали о типе цифрового датчика.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 15:58:58
aptemah
Да-да, именно DS18B20...
Z_h_e писал(а):Или делайте преобразователь интерфейса на МК (оно и дешевле будет, надежно и просто) или отстанте от этой идеи.
Да можно и так, в принципе... вот только сроки поджимают. А преобразователь ВО ЧТО должен преобразовывать?
Я еще находил такую вещь http://datasheets.maximintegrated.com/e ... 7U-S09.pdf, но она для винды, и там придется городить какой-то драйвер...
Вообще, меня интересуют любые выходы из ситуации, и особенно, быстроосуществимые.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 18:01:24
uk8amk
Чтобы мы дальше не играли в телепатию, может озвучите какие интерфейсы у ПЛК имеются? Ну и имя его тоже неплохо бы.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 17, 2014 18:45:51
Z_h_e
aptemah писал(а):и особенно, быстроосуществимые.
Если начальству стало резко надо, то так же резко и отпадет, уж поверьте мне.

Возьмите вот такой мой проектик.. Оно не для этого. Но выкинте все лишнее. Оставте МК, ds18b20 и UART. Протокол описан, прошивка есть.

Вопрос!!! Зачем подключать DS18B20 к ПЛК? Если начальство знает об таком термометре, наверно оно знает что это. А если не знает, то что Вам мешает объяснить почему он не подходит. Что то тут не так.

А преобразователь ВО ЧТО должен преобразовывать?
В то что понимает ПЛК. Несколько раз было об этом уже напсано, читайте выше.

Какое у Вас техзадание?

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Сб окт 18, 2014 03:35:38
IRMADE
[quote="aptemah"]. Как сделать, чтобы импульс длительностью в 1мс преобразовывался в импульс длительностью 1мкс? Импульс отрицательный, т.е. во время импульса провод "сажается" на землю.


Это очень просто реализуется на одновибраторах (в режиме "без перезапуска") на К555АГ3 или К561АГ1.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Сб окт 18, 2014 08:43:17
uldemir
Ну, если так хочется, то сделайте модуль. Счетчик тактирующийся от 1Мгц, удерживающийся в 0 пока не придёт ваш разрешающий импульс. А дальше, простой логикой формируете активный уровень, при состоянии 0х01 и удерживающий его дольше до состояния 90-120 (выберите любое значение, которое вам удобнее дешифровать), если на входе data (вам понадобится еще один вход) лог.0. Параллельно, сделайте еще один триггер, который будет защелкивать данные на состоянии счетчика 10-12 (опять, выберете удобное для вас), и которые вы будете считывать своим ПЛК, через другой вход. Ну а для формирования сигнала сброс, сделайте тоже одновибратор на 480-500 мкс. Думаю, ловить presence импульс не обязательно.

Вот так, можно сделать на простой логике. Я такую штуку провернул в своём шкальном термометре (на ПЛИС) и точно тоже самое, но гораздо развесистее можно сделать на микроконтроллере (который сам опросит датчик и в ваш ПЛК передаст готовую температуру хоть кодом Морзе). Короче, надо только делать.

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Пт окт 24, 2014 23:20:48
Черный кот
aptemah писал(а): Как сделать, чтобы импульс длительностью в 1мс преобразовывался в импульс длительностью 1мкс? Импульс отрицательный, т.е. во время импульса провод "сажается" на землю.

Самая простая схема: инвертор1- на выход емкость последовательно с резистором на землю- из средней точки на вход инвертора2
примерная формула для расчета R*C=2 мкс ;
тоесть ТТЛ если R= 2 ком ,то С примерно 1000 пФ
КМОП R=10 ком; С=220 пФ
далее подбор R или C

Re: Как из импульса 1мс сделать импульс в 1мкс?

Добавлено: Вс окт 26, 2014 21:28:58
ST_A
Есть стандартное решение из классики, это укротитель импульса. Номиналы R1 и C1 придется подбирать экспериментально или в соответствующей литературе отыскать его расчет. Схема работает более чем дубово...
ukorot.JPG
(39.75 КБ) 782 скачивания