Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Ковокс в качестве... вольтметра
RSS

Ковокс в качестве... вольтметра

Компьютер в качестве мультиметра

<<Назад  Вперед>> Страницы: 1 2
Печать
 
doctorgenius
Junior Member


Откуда: Днепропетровск
Всего сообщений: 147
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
3 фев. 2006
Исследуя возможность создания простейшего АЦП наткнулся на такую вот статейку небольшого практикума для школьников: http://www.sys-tema.ru/index.j...pravleniya
Вспоминая ковокс и эксперименты с ним, была изготовлена следующая практическая конструкция:

                (Gnd) 18...25
                  |
                  /
                  \ 2R
                  /
                  |
              2R  |
(2) -------\/\/\/-+
                  |
                  /
                  \ R
                  /
              2R  |
(3) -------\/\/\/-+
                  |
                  /
                  \ R
                  /
              2R  |
(4) -------\/\/\/-+
                  |
                  /
                  \ R
                  /
              2R  |
(5) -------\/\/\/-+
                  |
                  /
                  \ R
                  /
              2R  |
(6) -------\/\/\/-+
                  |
                  /                  
                  \ R                
                  /                
              2R  |                               (+VDc)
(7) -------\/\/\/-+                                |
                  |                                 |
                  /                                 |
                  \                      3K       |\|
                  \ R   Вход  0..5V>>-+-/\/\/-----|+\ Выход
              2R  |                      3K       |  +----- (11)
(8) -------\/\/\/-+--------------------/\/\/-----|-/
                                                  |/| DA1 TL062
                                                    |
                                                    |
                                                    |
                                                  --+--
                                                   ---
Пример входной нагрузки:                           -    Gnd
   + Gb1 4,5V -
    |       |
+---| |- - -| |--+
|   |       |    |
|                |   |  Gnd
|      100K      |   | |
+-----/\/\/---+--+---+ | |
        +     |       | |
       /|\    |       |
      / | \  (V) Контрольный вольтметр.
        |     |
        +-----+--> (На вход)

Резисторы брал R=1,5 K 2R=3K, ОУ TL062. В принципе можно использовать и другой операционник.
Вход ОУ желательно соединить с землей через резистор порядка 2 МОм, чтобы снизить нежелательное влияние помех.
Листинг программы на Паскале:

Program acp;
uses crt,dos;
var i,s,k: byte;
begin
clrscr;
Port[$378]:=0; {устанавливаем уровни лог. 0 на всех линиях 8-ми битного порта вывода}
Port[$37A]:=$64; {устанавливаем уровни лог. 1 на всех линиях 4-х битного порта вывода для питания схемы АЦП, хотя конечно ОУ желательно запитать от "нормальных" 5В }
repeat
k:=port[$379]; {запоминаем состояние 5-и битного порта ввода}
s:=0;
for i:=0 to $FF do
begin
Port[$378]:=i; {в цикле тепреь перебираем значения от 0 до 255}
if Port[$379]>>k then {проверяем состояние 5-и битного порта ввода, вообще-то такой метод несколько некорректен}
s:=port[$378]; {и если изменилось, записываем значение порта 378 hex в переменную S}
end;
writeln(s/(256/5):5:3,' V'); {вывод результатов на экран; делим значение s на 256/5}
until keypressed; {по нажатию клавиши программа завершается}
end.

(Сообщение отредактировал doctorgenius 11 янв. 2008 21:26)
Geners
Гость

Ссылка

doctorgenius
или я чегото непонял , или ты чето не то нарисвоал , но на схеме у тебя простой ковокс , и эти линии данных а ты использовал data0-data6 на старыз компах работать на ввод не будут , и вообще непонятно зачем тут нужен R-2R ? если есть компаратор ... и наоборот ... если использовать продвинутые режимы порта то ненужен компаратор
Сейчас на форуме
doctorgenius
Junior Member


Откуда: Днепропетровск
Всего сообщений: 147
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
3 фев. 2006
Выставляем на порте 378 в самом обычном режиме нули и единицы, перебирая в цикле значения от 0 до FF hex, получаем
на выходе ЦАП импульсы следующего вида:

     /|    /|    /|    /|
    / |   / |   / |   / |
   /  |  /  |  /  |  /  |
  /   | /   | /   | /   |
/    |/    |/    |/    |

как только напряжения на инверсном и прямом входах компаратора сравняются, то компаратор изменит состояние порта
ввода base+1. Дальше зная, при каком значении произошло "перебрасывание" компаратора, вычисляем какое напряжение
было подано на вход АЦП. U=Значение порта*(256/5). Вот и все.
Таким образом реально на ввод мы задействовали только один бит LPT порта. Так что данная конструкция будет работать без использования ECP/EPP режимов порта.

(Сообщение отредактировал doctorgenius 11 янв. 2008 21:22)
Kacher
Advanced Member


Откуда: Kijów/Kraków (UA-PL)
Всего сообщений: 1153
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
7 янв. 2008
С каким ключем запускать програму в компиляторе??? А то если просто запускать то пишет что IDENTIFIER NOT FOUND "PORT"
EJSanYo
Advanced Member


Всего сообщений: 318
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
doctorgenius, оригинальная идея! :au: Типа реализация АЦП с и спользованием ЦАП-а вместо интегратора. И прогу аналогичного назначения в чём угодно накатать можно. Хоть в бейсике, хоть в Си. :)
Тока как я понимаю, лучше вместо ковокса было бы какой-нить нормальный ЦАПик повесить, или как оно.
(Сообщение отредактировал EJSanYo 12 янв. 2008 1:42)
doctorgenius
Junior Member


Откуда: Днепропетровск
Всего сообщений: 147
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
3 фев. 2006
прогу - да, действительно. Просто был под рукой Turbo Pascal 7.1 в нем и делал. Компилировуется так "как есть", работает из под DOS. А микрухи подходящей быстро найти не удалось. Потому в "образовательных целях" собирал из того что под рукой было.
(Сообщение отредактировал doctorgenius 12 янв. 2008 0:23)
KateMargo
Newbie


Откуда: Днепропетровск
Всего сообщений: 1
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
12 янв. 2008
хм...очень заинтересовала идея doctorgenius. вы молодцы. Знающего человека сразу видно. совет вам на "ноу-хау")))
Alexey
Advanced Member
Пользователь

Всего сообщений: 570
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 дек. 2002
Тогда уж, если не делать АЦП на отдельной микросхеме (что предпочтительнее), то можно оптимизировать алгоритм (вместо перебора 256 значений сделать около 8) и получить подобие осциллографа.
Baza
Advanced Member


Откуда: С-Петербург
Всего сообщений: 615
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
13 мая 2005
В инете пробегали схемы и софт для АЦП с 8-бит параллельным интерфейсом, которые вешались тупо на LPT и получался осцилл и вольтметр.
Geners
Гость

Ссылка

Baza
и я про тоже .... лисапед однако :)  ....
Сейчас на форуме
EJSanYo
Advanced Member


Всего сообщений: 318
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
Я как-то и 16-битный АЦП вешал - работало в EPP-режиме между прочим! На QBasic-е некое подобие осциллографа накатал, дальше всё забросил. Мда, всё-таки я лентяй.. ;)

(Сообщение отредактировал EJSanYo 13 янв. 2008 1:43)
EJSanYo
Advanced Member


Всего сообщений: 318
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
Кстати, а ежели использовать ECP для ввода/вывода сигналов? При таком обмене можно было ли бы ускорить работы схемы?
(Сообщение отредактировал EJSanYo 13 янв. 2008 1:41)
doctorgenius
Junior Member


Откуда: Днепропетровск
Всего сообщений: 147
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
3 фев. 2006
из порта 378 (порт ВЫВОДА), мы выводим данные на ЦАП: перебираем значения от 0 до FF hex таким образом формировуем на инверсном входе ОУ пилообразный сигнал (см. выше).
На неинвертирующий вход ОУ подаем измеряемое напряжение (0-5В).
При совпадении напряжений на входах ОУ, компаратор выдаст лог. 0 в порт 379.
отслеживаем это событие и запоминаем при каком значении напряжения сравнялись. Далее без особых проблем вычисляем, чему равно измеряемое напряжение:
Uизм=([ЗП378]/(2^8)/5))
где [ЗП378] - то значение, при записи которого в порт 378, компаратор изменил состояние порта 379 (порт ВВОДА).
2^8 - поскольку у нас 8 бит.
5 - 5В (диапазон 0-5В).
и выводим его на экран.
Именно по этой причине в данном случае, использовать режим ECP нет необходимости.
0leg
Advanced Member


Откуда: Город-герой Тула
Всего сообщений: 1991
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 окт. 2007
> Именно по этой причине в данном случае, использовать
> режим ECP нет необходимости.
В данном случае да, действительно нафиг EEP/ECP не нужен. А если нормальный АЦП поставить? На какой-нибудь микрухе? Чтобы сразу все биты результата выдавал. Так и осциллограф можно сделать, причём достаточно шустрый.
И как правильно Alexey сказал, за _восемь_ шагов (при правильном подходе к делу!) можно получить результат измерения. А вовсе не за 255.
EJSanYo
Advanced Member


Всего сообщений: 318
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
В общем, получился бы АЦП поразрядного уравновешивания! Вроде бы в наше время все АЦПовые микрухи на этом принципе строятся. А про ECP - я к тому, что вроде как в этих режимах можно уменьшить задержки между записями в LPT-ху, и стало быть, повысить скорость перебора опорных напряжений. Теоретически, во всяком случае. ;)
<<Назад  Вперед>> Страницы: 1 2
Печать
Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Ковокс в качестве... вольтметра
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS