информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаГде водятся OGRыВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Крупный взлом GoDaddy 
 Просроченный сертификат ломает... 
 Phrack #70/0x46 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / hardware
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
В досе сохраняется стабильность на больших интервалах? 09.09.07 22:09  Число просмотров: 3548
Автор: Ustin <Ustin> Статус: Elderman
Отредактировано 09.09.07 22:13  Количество правок: 1
<"чистая" ссылка>
> Плавает так: в зависимости от параметров эксперимента
> периодичность 15-40 секунд. Именносекунд
> Конденсатором сгладил, но недостаточно (.

> Считывание с АЦП данный в DOSе с привязкой таймера к тикам
> процессора дает стабильный уровень напряжения, ничего не
> плавает.
Тут сохраняется стабильность на больших интервалах?
В АЦП засылаем запрос, после чего читаем оттуда?
Если да, то возможно есть смысл отказаться от евента OnTrigger, или, по крайней мере, не обрабатывать там приём данных, делая это в коде процедуры засылки:
Procedure getdata();
var blk:Array [0..4095] of Char;//или скока надо
begin
...
sendrequest();
//sleep(1);//если надо, можно прямо-таки тики процессора посчитать ;) 
...
обвязка чтения доп. стробами
...
ApdComPort1.GetBlock(Blk,ApdComPort1.InBuffUsed);
...
end;

---
<hardware>
Устранение "плавания" сигнала с тензодатчика 05.09.07 18:38  
Автор: Andd3dfx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Измеряю сигнал с прецезионного тензодатчика (ТД):
Тензодатчик -> Усилитель -> АЦП -> PC

Напряжение на выходе ТД плавает, а усиленное усилителем - видно невооруженным глазом.
КАК БОРОТЬСЯ (аппаратно/программно/монтаж)??
Поможет ли переходной конденсатор (но считать ли напряжение переменным)?

Предвидя вопросы: датчик-хороший (SCAIME AR 0.2).
Все-таки поточнее - на сколько плывет, как плывет... 06.09.07 12:21  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 06.09.07 12:23  Количество правок: 1
<"чистая" ссылка>
> Измеряю сигнал с прецезионного тензодатчика (ТД):
> Тензодатчик -> Усилитель -> АЦП -> PC
> Напряжение на выходе ТД плавает, а усиленное усилителем -
> видно невооруженным глазом.

Все-таки поточнее - на сколько плывет, как плывет (экспоненциально, периодично), амплитуда, частота (если есть).

> КАК БОРОТЬСЯ (аппаратно/программно/монтаж)??

Сначала надо выяснить с чем бороться - с механикой или электричеством. Для таких приборов помехой может послужить что угодно, даже температура. Касаемо механики - это может быть вибрационно-резонансный эффкет. Я считаю, что более вероятно проблема электрического характера - может быть напряжение питания?

> Поможет ли переходной конденсатор (но считать ли напряжение
> переменным)?

Конденсатором можно выделить либо сгладить пульсации, но лучше от них избавиться.

> Предвидя вопросы: датчик-хороший (SCAIME AR 0.2).

Может просто этот экземпляр неисправен?
Попробовать заведомо исправный в этих же условиях. Попробовать взять эталноой прибор, установить рядом, подать распределенную нагрузку, попытаться зарегистрировать тот же характер эталонным прибором.

Заезжал я как-то к другу, он живет на 14 этаже 16ти этажки. Очень хорошо чуствуется вибрация от поезда метро, не смотря на то, что сама ветка проходит и не абсолютно точно под этим домом.
Плавает так: в зависимости от параметров эксперимента... 08.09.07 22:12  
Автор: Andd3dfx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Плавает так: в зависимости от параметров эксперимента периодичность 15-40 секунд. Именносекунд
Конденсатором сгладил, но недостаточно (.

Пишу в СОМ-порт, используя компонент из библиотеки AsyncPro.
Между записями/чтениями надо (так указано в спецификации АЦП) интервал порядка мкс; но сама библиотека, похоже, привязана к windows-таймеру на 55 мс.

Покупной АЦП меряет сигнал с тензодатчика, подключен в этот самый СОМ; используется нестандартный протокол обмена (6 линий порта).

Считывание с АЦП данный в DOSе с привязкой таймера к тикам процессора дает стабильный уровень напряжения, ничего не плавает.
В зависимости от нагрузки? 10.09.07 10:28  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> Плавает так: в зависимости от параметров эксперимента
> периодичность 15-40 секунд. Именносекунд

В зависимости от нагрузки?

> Конденсатором сгладил, но недостаточно (.

Кондер ф топку.

> Пишу в СОМ-порт, используя компонент из библиотеки

Зачем писать в СОМ?

> AsyncPro.
> Между записями/чтениями надо (так указано в спецификации
> АЦП) интервал порядка мкс; но сама библиотека, похоже,
> привязана к windows-таймеру на 55 мс.

Во первых время обращения к порту уже милисекунда.

> Покупной АЦП меряет сигнал с тензодатчика, подключен в этот
> самый СОМ; используется нестандартный протокол обмена (6
> линий порта).

Что за нестандартность? Должно быть 7: Rx, Tx, RTS, CTS, DTR, DSR, GND.
Какая разрядность АЦП? Как используются линии?

> Считывание с АЦП данный в DOSе с привязкой таймера к тикам
> процессора дает стабильный уровень напряжения, ничего не
> плавает.

Итак: что-то работает неправильно. В данной ситуации либо датчик, либо ацп, либо комп/порт, либо программа, либо источники питания, либо подключение.
Худо-бедно нормально оттестировать целую систему комп-программа-порты-кабеля-протоколы-ацп можно так: Берем переменный резистор и источник напряжения, близкий к опорному напряжению АЦП. Запускаем программу, которая считывает быстро, насколько это возможно показания в оперативку в течение минуты. В это время медленно крутим ручку потенциометра из одного крайнего положения в другое. Результаты программа должна потом скинуть в файл, а мы его проанализировать. Должно быть последовательное изменение значений. Обратные колебания не должны превышать единицу.
Изменяем программу так, чтоб она постоянно выводила на экран значение напряжения из АЦП. Устанавливаетм поочередно различные положения движка переменного резистора. Отклонения от среднего значения должны быть не более плюс/минус один, даже если они меняются странно периодическим образом, это еще не столь страшно. Источники питания должны иметь общую землю - можно использовать БП, либо гальванически развязаны, но все равно соединены общей "землей". Если опорное напряжение около 15 миливольт, то взяв одну батарейку 1,5 вольт нужно к потенциометру припаять добавочный резистор, который раз в сто больше переменника и к "+" батарейки."-" батарейки к другому выводу переменника и к "земле" АЦП. Движок переменника к аналоговому входу АЦП. Если источник 12 вольт, то добавочный резистор в 800 раз больше.
Если все номально проверяем сам датчик: цепляем к нему миливольметр, нагружаем различными эталонными разновесами, проверяем правильность и стабильность во времени показаний вольметра.
Скорее всего что-то где-то поплывет, то есть отклонения будут превышать 1/100. Если же все будет нормально, то проверяем соединения, особенно "землю".
Стало лучше, но есть плавание с размахом 4 кванта АЦП 17.09.07 10:37  
Автор: Andd3dfx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
12-разрядный АЦП adcs5k-12-8 http://www.spetspribor.ru/products/external_adc/adcs5k-12-8.html
не использует стандартный протокол обмена RS-232, а полностью формируемый программно.

Линии используются следующим образом:
• DTR - для формирования сигнала SYNC и питания
• RI - соединена с DTR и используется для детектирования устройства
• CTS – используется для приема последовательных данных
• RTS – используется для выдачи сигнала тактирования и для питания (+10…12 В)
• TXD – используется для выдачи последовательных данных

Таким образом RTS, меняющееся от 0 к 1, помогает током линии DTR, на которой должно быть напряжение питания (+12В) все время. RI, соединенная с DTR, предназначена для детектирования;
Оказалось, что после детектирования АЦП на DTR оставался уровень, обратный нужному.

Исправил. Теперь лучше: АЦП, измеряющий ПОСТОЯННОЕ напряжение от высокостабильного источника
плавает с размахом 4 кванта (Раньше-первые 20-30 измерений были=0; видно-пока заряжался конденсатор питания от линии RTS).
В принципе, поставленная задача решается, но можно ли считать размах в 4 кванта номальным?

Также, по совету DPP, медленно наращивал напряжение от 0 до опорного 20-оборотным прецезионным резистором. Заметно то же плавание, т.е. периодический "откат" U вниз.

Сам АЦП построен на основе AD7888, питание стабилизировано REF195.
Это полезно знать, чтоб убедится, что биты не пропускаются и... 17.09.07 17:52  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 17.09.07 18:06  Количество правок: 2
<"чистая" ссылка>
> не использует стандартный протокол обмена RS-232, а
> полностью формируемый программно.

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

> Линии используются следующим образом:
> • DTR - для формирования сигнала SYNC и питания
> • RI - соединена с DTR и используется для детектирования
> устройства
> • CTS – используется для приема последовательных данных
> • RTS – используется для выдачи сигнала тактирования и для
> питания (+10…12 В)
> • TXD – используется для выдачи последовательных данных

Странное назначение линий.

> В принципе, поставленная задача решается, но можно ли
> считать размах в 4 кванта номальным?

Для неприецизилнных схем может и да, но в данном случае измерителю можно простить только пару ступеней. И то, только в том случае, что он многоканальный и при переключении аналогового мультиплексора и запоминанием уровня возможно уходит некоторое время на установление напряжения. К сожалению, насколько я понял, временем между выбором одного из 8 входов и запуском отцифровки управлять нельзя.

> Также, по совету DPP, медленно наращивал напряжение от 0 до
> опорного 20-оборотным прецезионным резистором. Заметно то
> же плавание, т.е. периодический "откат" U вниз.

Периодически - это как? Какой период? То есть с каким-то интервалом наступают моменты, когда "откат" происходит, а в промежутках его нет?
Постараюсь догадаться сам. Допустим повернули движек потенциометра. Замерили показания АЦП. Получили 105. Еще раз замерили. Тоже 105. Еще раз. 104! Затем 103. Потом 102. Еще раз. 101. И на этом 101 устаканилось. Интересно, начинаются ли откаты сразу же после окончания перемещения ручки потенциометра или некоторое время напряжение удерживается? Быстро ли происзодит "откат"? Линейно ли или экспоненциально? Ели движек двинем в обратную сторону - будет ли откат и в какую сторону? Зависит ли величина отката от скорости перемещения движка? На всем ли диапазоне напряжений происходит "откат"? как связана величина "отката" и положение движка, а именно на 4 единицы происходит и когда движек в одном крайнем положении и когда в другом или посередине?

> Сам АЦП построен на основе AD7888, питание стабилизировано
> REF195.

12 разряд - это примерно 4000. Прекрасно! берем 100 рублевый китайский цифровой вольтметр - он как раз +/- 2000 миливольт выдает. Им можно будет поймать даже "1", и уж точно даже "2". Главное чтоб время "отката" было достаточно велико, по сравнению с замерами самого вольтметра, котоые имеют интревал вплоть до полсекунды.
Итак, значение, что выдает АЦП зависит (грубо) всего от двух величин - измеряемого напряжения и опорного. Не знаю разбирается ли эта коробочка, но сделать это рекомендую. Цепляем китайский вольтметр к самой микрухе AD7888 к ее "земле" и к контакту опорного напряжения. Крутим движек потенциометра. Смотрим не повлияет ли это показания напряжеметра. По идее оно должно увеличится. Тогда измеряемое по отношению к нему уменьшится, что и вызовет цифровой "откат". Если так, то смотрим на сколько увеличилось "4" соответсвует всего 1/250 от номинала. То же самое делаем, подключившись ко входному контакту АЦП. Начать можно было бы не разбирая корпус, а подключившись к потенциометру. Ток, конечно же через него идет смешной, хотя теоретически при увеличении напряжения происходит нагрев через некоторое время увеличение сопротивления и уменшение силы тока. К опорному напряжению можно подключаться в последнюю очередь, все-таки через стабилизатор питается, хотя и он может оказаться неисправным.
Если случилось чудо и непряжения не плывут, а цифры плывут - пробуем другой прибор. Либо неисправен АЦП, либо для этих приборов это норма.

Немаловажно понять - что есть норма? Выставляем опорное 4,096 вольта. Крутим движек потенциометра до значения 2048 или старший бит = "1", все остальные "0". Измеряем сопротивление на подвижном контакте, оно должно быть точно половина. Если это так, то истинное напряжение прибор показывает в самом начале. Если же оно плывет вниз всегда на одно и то же значение, то ошибку можно скорректировать програмно, а именно мысленно добавлять 4 к установившемуся значению. Лучше цепляем цифровик к движку и крутим движек до ровно половинного напряжения. Если установившееся значение и является провильным, то и в процессе эксплуатации делаем замеры, пока показания не устаканятся.
Все хорошо, всем спасибо, получилось !) 20.09.07 01:09  
Автор: Andd3dfx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Пришел к выводу, что для таких АЦП это норма, сам АЦП исправен.

Некоторое плавание начисто убирается усреднением по нескольким сотням измерений.

Отсчеты задержек провожу при помощи QueryPerfomanceCounter, так что времени сами измерения отнимают немного.
А от чего вся эта радость питается? Свой внешний... 10.09.07 02:58  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
А от чего вся эта радость питается? Свой внешний стабилизированный бп, или от компа? Сразу говорю что второй вариант - плохая идея...
+12V от компа идут на REF195, оттуда 5V-на АЦП, а датчик-от внешнего стабилизированного 10.09.07 09:32  
Автор: Andd3dfx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Просто в винде в отличии от ДОСа может очень сильно плавать... 10.09.07 16:44  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
Просто в винде в отличии от ДОСа может очень сильно плавать суммарная мощность оборудования компа. А +12V вообще в БП реализованы абы как и потому плавают только в путь.
В досе сохраняется стабильность на больших интервалах? 09.09.07 22:09  
Автор: Ustin <Ustin> Статус: Elderman
Отредактировано 09.09.07 22:13  Количество правок: 1
<"чистая" ссылка>
> Плавает так: в зависимости от параметров эксперимента
> периодичность 15-40 секунд. Именносекунд
> Конденсатором сгладил, но недостаточно (.

> Считывание с АЦП данный в DOSе с привязкой таймера к тикам
> процессора дает стабильный уровень напряжения, ничего не
> плавает.
Тут сохраняется стабильность на больших интервалах?
В АЦП засылаем запрос, после чего читаем оттуда?
Если да, то возможно есть смысл отказаться от евента OnTrigger, или, по крайней мере, не обрабатывать там приём данных, делая это в коде процедуры засылки:
Procedure getdata();
var blk:Array [0..4095] of Char;//или скока надо
begin
...
sendrequest();
//sleep(1);//если надо, можно прямо-таки тики процессора посчитать ;) 
...
обвязка чтения доп. стробами
...
ApdComPort1.GetBlock(Blk,ApdComPort1.InBuffUsed);
...
end;

---
У меня была подобная бодяга, я работал с линейным датчиком... 22.10.07 14:50  
Автор: Welder1 Статус: Незарегистрированный пользователь
<"чистая" ссылка>
У меня была подобная бодяга, я работал с линейным датчиком Холла.
Перепробовано было достаточно много, и стабилизация по току, и отдельный источник, а проблема решилась, когда я сигнал пустил по экранированной витой паре, с занулением экрана только на стороне источника, то бишь датчика и заземлением датчика, и компа на внешнюю общую точку , см. Хилл Искуство схемотехники т.1, т.2.
Дивиация сигнала упала 4-5 бит до 1 младшего разряда.
В таком виде система работает уже более 4 лет.
К чему подключен датчик? Весы? М.б. внешние факторы? 05.09.07 18:41  
Автор: Den <Denis> Статус: The Elderman
<"чистая" ссылка>
Сигнал плавает и при отсутствии нагружения 05.09.07 18:56  
Автор: Andd3dfx Статус: Незарегистрированный пользователь
Отредактировано 05.09.07 18:57  Количество правок: 1
<"чистая" ссылка>
Подробнее:
датчик выдает напряжение в диапазоне +-15мВ.
его подаю на усилитель (меряет только положительное U), смещая на 0.05В одну линию резисторным делителем, а другая заведена на землю усилителя.

Не трогая датчик, убеждаюсь, что сигнал плавает и при отсутствии нагружения.
Замеряешь на том же столе где стоит комп? 05.09.07 19:10  
Автор: Den <Denis> Статус: The Elderman
<"чистая" ссылка>
Да, провод суммарной длиной 40 см 05.09.07 20:13  
Автор: Andd3dfx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
шлейф - 8 проводов
каждый четный - земля
каждый нечетный - питание датчика(+ и -) и вых. сигнал (+ и -)
земля = - вых. сигнала
Возможно сказываются вибрации от мех.частей компа или др. оборудования. [upd] 05.09.07 20:22  
Автор: Den <Denis> Статус: The Elderman
Отредактировано 05.09.07 20:28  Количество правок: 1
<"чистая" ссылка>
Какая разница в напряжении между отсутствием веса и минимально возможным весом?
Если эта величина напряжения превышает напряжение "шума", то последний можно отфильтровать программно.
Напряжение без нагружения, пересчитанное в вес= до 15 грамм, мин. груз = 1 грамм 05.09.07 22:10  
Автор: Andd3dfx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Дофига совсем... А АЦП точно не плавает? Попробовать ему U=const и посчитывать. А на выходе усилителя при U=const на входе (не от ТД, от стабильного источника) что? Осциллографом посмотреть бы 06.09.07 13:54  
Автор: Ustin <Ustin> Статус: Elderman
Отредактировано 06.09.07 13:56  Количество правок: 1
<"чистая" ссылка>
1






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2021 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach