ГЛАВНАЯ    
ЗАМЕТКИ   
ЭЛЕКТРОНИКА   
ФОТО    
ГОСТЕВАЯ    
Ссылки    
Программки    
Почта   


11- канальный АЦП(10 бит)


Как то не так давно пришло мне на почтовый ящик письмо в котором меня спрашивали по поводу схемы АЦП. Человека зовут Тимофей Носов (www.miliamper.narod.ru) и его интересовала схема многоканального АЦП (аналого-цифрового преобразователя - он же Multichannal ADC) с 8-ью входами и точностью преобразования около 7 бит. Устройство это было ему нужно для автомастерской, замерять какие-то там напряжения с датчиков, да так чтобы показания фиксировались на компьютере и при привышении показаний какого-либо значения комп выдавал сигнал на выход LPT порта. Я посоветовал ему книгу для изучения работы портов, немного мы попереписывались а потом я решил тоже сделать такую штуку т.к. схем в сети похожих не нашел. Запланировал сделать все на микросхеме TLC540( 8 бит 11 каналов ) но зайдя в магазин понял что микрухи я такой точно не найду. Помыкался я вобщем и решил заказать ее по почте. Заказывал на www.chipinfo.ru но там 540 не было, зато была TLC1543 которая...оказалась лучше по своим параметрам. Во первых микросхема делает 10-битное преобразование против 8-битного у 540 , а во вторых не нужно внешнего гнератора импульсов т.к. у TLC1543 он свой. В остальном же микросхемы одинаковы, с одинаковой распиновкой и почти одинаковым протоколом общения с другими устройствами.Качаем документацию на микросхему ТУТ (pdf-424 кб).Обошлась мне микруха что-то около 150 рублей. Шла очень долго, когда заказывал там срок комплектации 4 недели был так что...Но вобщем пришла моя посылка, в такой вот замечательной фольгированой коробочке(вот буржуи пакуют - не чета нашим!!!)

рис1

Вобщем это все лирическое отступлени было а теперь по подробней.За основу взята схема из книги Пен.Ай "Сопряжение ПК". Там есть схема АЦП на TLC540.Эта схема предназначена для работы с микросхемой через LPT порт и выводом данных на монитор компьютера.

Схема девайса следущая:

рис2

Вход CS подключен к 3 ноге LPT порта. Вход I/O Clock подключен ко второй ноге LPT. Вход выбора адреса подключен к 4 ноге LPT. Выход микросхемы подключен к 15 ноге порта. На все входы можно последовательно поставить ограничивающие ток резисторы номиналом в 1 кОм. Запитывается микросхема напрямую от порта через ножки 5-9 которые соединены вместе и соеденены с 20 ногой микросхемы.Напряжение на ножке выбора максимального уровня преобразователя(14) мкросхемы подано через диод на котором падает порядка 0,7 вольт.Можно и без него, а можно ввести ввобще другое напряжение(например поставить стабилитрон) но оно должно быть не выше напряжения питания. Ножки с 18 по 25 LPT соеденены вместе и соеденены с землей схемы.

То что получилось у меня можно посмотреть ниже.Сверху напаяны ненужные впринципе детали - это резистор для настройки и проверки АЦП и еще термодатчик к1019чт1 - температуру мне в комнате измеряет. Все входы выведены на разьем от siemensа старого образца.Там как раз 12 ножек - 11 входов+ земля.

рис3

В книге приводится листинг рабочей программы написаной на паскале и работающей под DOS. Я переписывал этот исходник под DOS для работы с TLC1543( собственно говоря, что переписывал...массив поменял просто да и так по мелочам ).Запускал все это под DOSом инаконец добился что прога заработала как надо.Встала другая проблема - переписывания всего под windows.Как известно - прямой досуп к портам в windows xp (а она как раз у меня и стоит) запрещен.Полез я в инет искать что делать и нашел кучу всяких драйверов для работы с LPT. Но описание было по английски и вообще я не силен в программировании на дельфине - вобщем не разобрался.Зато я нашел прогу которая открывает прямой доступ к портам по XP. Архив с этой программой можно скачать здесь . После того как распакуете архив нужно запустить userport.exe , выбрать порт и установить драйвер. Теперь программы будут работать с прямым доступом к порту компьтера.

Окошко DOS с результатом преобразования.При измерении напряжения от 0 до 4-х вольт точность составляет 4/1024=0,004 т.е. 4 миливольта.

Хотя теперь досовская прога и работала под XP я все же решил написать прогу на дельфи т.к. интерфейс тоже штука важная. Как и говорил программер я не шибко хороший но все же разобрался потехоньку. И получилась у меня такая программа.Скачать программу под windows(235 кб). Рабочее окно выглядит так:

рис4

Немного об этом драйвере: есть 2 столбца. В первом столбце отображаются показания непосредственно преобразователя(0 - вход на земле, 1023 - на входе максимум напряжения, -1 вход игнорируется).Также рядом с первым столбцом видно номера аналоговых входов.Как видно их 14!!! - дело в том что в микросхеме на самом деле 14 входов но только 11 выведены на соответствующие ножки, а оставшиеся 3 штуки для самотестирования.На них должно быть всегда одно и тоже значение.На12 входе - 511 на 13 - 0 на 14 - 1023.В лог эти значения не записываются.Если эти значения "плавают" значит у вас нестабильное питание.Во втором столбце показано уже вычисленное напряжение на входе в вольтах.Вычисление идет по линейному закону, но в исходниках можно найти процедуру для нелинейного вычисления.Пока она не задействована.Рядом со вторым столбцом есть цветовое описание( квадратик ) данного входа на графике.Если квадрат сплошной то график будет отображен, если же он закрашен штрих-пунктиром то график игнорируется.Щелчек правой кнопки мыши переключает режимы отображения.На графике отображаются эпюры напряжений на выбранных входах в зависимости от времени.В правом верхнем углу видем маштаб измерений - максимальное текущее значение напряжения, также есть автомасштабирование.График выполнен на компоненте RAG-10 от Marius Ebel, за что ему отдельное спасибо.

В драйвере предусмотрена запись в лог файл показаний измерения всех входов. Включается эта запись когда вы установите соответствующую галочку.Лог файл автоматически создается в текущей папке программы и обновляется при новом запуске программы - так что нужный вам лог нужно своевременно убирать из папке после завершения работы программы т.к. он будет перезаписан.Интервал через который будет произведена запись в лог устанавливается в настройках.Там же устанавливается интервал измерения в милисекундах.

Запускается процесс преобразования нажатием на кнопку "Пуск". Для начала стабильной работы требуется небольшое время.

Для точной калибровки АЦП нужно измерить напряжение эталонным прибором на 14 ноге микросхемы и после этого ввести это напряжение (в миливольтах) в соответствующее поле в настройках, после чего нажать кнопку "сохранить".

Исходник программы можно скачать сдесь.

В дальнейшем планирую сделать версию драйвера с нелинейным процессом вычисления и с порогом включения сигнала, когда при достижеии определенного уровня по каким-либо входам LPT будет подавать логическую единицу на свои выходы.Но это так...в планах.

Если у вас есть идеи и желание улучшить программу пишите мне на почту - отвечу на все вопросы.

P.S. кроме TLC1543 у TEXAS INSTRUMENTS есть целая линейка миросхем многоканальных ацп, порядка 10 штук отличающихся лишь качеством преобразования, его скоростью и количеством входов, но все микросхемы тяжело достать - по крайней мере в провинции.

 

 

 

Hosted by uCoz