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

Помогите разобраться с COM и АЦП

Добавлено: Сб авг 16, 2008 19:20:19
Sounds
Нашёл статью под названием “Работа АЦП с СОМ портом или простая система сбора данных” http://cxem.net/comp/comp86.php . Статья мне приглянулась и я решил попробовать собрать эту схему, всё собрал и решил проверить, но нечего из этого не получилось. Монтаж схемы вроде бы правильный проверял несколько раз.
Как можно промерить эту схему? Что должно быть на выводах? Любым идеям буду рад.
Спасибо за внимание!
И ещё хотелось бы выразить благодарность автору статьи.

Добавлено: Сб авг 16, 2008 20:09:15
Сэр Мурр
А программу вы установили? У вас установлен компилятор ВизуалБейсика? Можно и прсто на Васике написать, но работать будет только под ДОСом.

Добавлено: Сб авг 16, 2008 20:20:59
Sounds
Да Visual Basic 6.0 у меня стоит программу компилирует правильно и без всяких ошибок.
Пока нечего не заработало я решил промерить схему, и вот что у меня получилось.
Общее питание всей схему: +11.58V
После LM7805 на выходе: +5.06V
На выходе R3: + 2.53V
На ЦАПе следующие параметры:
1 ножка: +2.53V
2 ножка: +1.24V
3 ножка: GND (0.00V)
4 ножка: GND (0.00V)
5 ножка: 0.00V
6 ножка: +3.35V
7 ножка: 0.00V
8 ножка: +5.06V
На вход Х1(+) Х2(GND) подаю +2.50V
Вот такие вот измерения получились.
Кто что скажет? Какие есть варианты, идеи, соображения? В каких местах надо промерить и какие должны быть измерения?
Спасибо за внимание!

Добавлено: Сб авг 16, 2008 20:26:00
Sounds
Вот исходник:

Код: Выделить всё

Dim b1, b2, b3, b4, b5, b6, b7, b8, sum, Ud As Single
Private Sub Form_Load()

MSComm1.DTREnable = True 
  Timer1.Interval = 100 
    MSComm1.Settings = "1200,N,8,1" 
  MSComm1.CommPort = 2 
  MSComm1.PortOpen = True 
  
End Sub

Private Sub Timer1_Timer()

  MSComm1.DTREnable = False 
  Label2.Caption = "" 

  MSComm1.RTSEnable = True 
    If MSComm1.CDHolding = True Then b1 = 1 Else b1 = 0   MSComm1.RTSEnable = False 


  MSComm1.RTSEnable = True
    If MSComm1.CDHolding = True Then b2 = 1 Else b2 = 0
  MSComm1.RTSEnable = False


  MSComm1.RTSEnable = True
    If MSComm1.CDHolding = True Then b3 = 1 Else b3 = 0
  MSComm1.RTSEnable = False


  MSComm1.RTSEnable = True
    If MSComm1.CDHolding = True Then b4 = 1 Else b4 = 0
  MSComm1.RTSEnable = False


  MSComm1.RTSEnable = True
    If MSComm1.CDHolding = True Then b5 = 1 Else b5 = 0
  MSComm1.RTSEnable = False


  MSComm1.RTSEnable = True
    If MSComm1.CDHolding = True Then b6 = 1 Else b6 = 0
  MSComm1.RTSEnable = False


  MSComm1.RTSEnable = True
    If MSComm1.CDHolding = True Then b7 = 1 Else b7 = 0
  MSComm1.RTSEnable = False


  MSComm1.RTSEnable = True
    If MSComm1.CDHolding = True Then b8 = 1 Else b8 = 0
       MSComm1.DTREnable = True 
          MSComm1.RTSEnable = False 
          
          

sum = (b1 * 2 ^ 7) + (b2 * 2 ^ 6) + (b3 * 2 ^ 5) + (b4 * 2 ^ 4) + (b5 * 2 ^ 3) + (b6 * 2 ^ 2) + (b7 * 2 ^ 1) + (b8 * 2 ^ 0)
Ud = Format(sum * 5.063 / 255, "##0.000")
Label1.Caption = CStr(Ud) & " Вольт" 

End Sub

Добавлено: Сб авг 16, 2008 21:12:59
Сэр Мурр
По приведённым напряжениям похоже, что не поступают тактовые импульсы на 7 ногу. Или не активируется СОМ-порт, или недостаточен уровень выходных сигналов с компа.

Добавлено: Сб авг 16, 2008 21:18:41
Sounds
И как с этим надо бороться?

Добавлено: Сб авг 16, 2008 21:29:40
Sounds
Вот что он сейчас показывает
5 ножка: -2.06V
6 ножка: -2.48V
7 ножка: -2.48V

Теперь я вообще нечего не понимаю =(

Добавлено: Сб авг 16, 2008 21:31:08
Сэр Мурр
проверить с помощью осциллографа уровень сигналов. Питание получается так, как на схеме? Тогда вроде по крайней мере импульс ТХ есть..

Добавлено: Сб авг 16, 2008 21:32:59
Sounds
Не могу проверить, осциллографа нету=(

Теперь всё изменилось:
Без подключения ком порта:
5 ножка: +0.28V
6 ножка: 0.00V
7 ножка: 0.00V
С подключенным ком портом:
5 ножка: -2.10V
6 ножка: -2.49V
7 ножка: -2.49V

Теперь я вообще нечего не понимаю =(

Добавлено: Сб авг 16, 2008 21:48:35
Сэр Мурр
Поскольку питание берётся от сигнала с СОМ-порта, то при его отключении ничего не будет. Можно использовать батарейку КРОНА, отцепив от СОМ-порта вывод 3 и присоединив туда КРОНу.
Вроде есть программы, которые могут устанавливать заданные уровни сигналов на выходах порта.
ОС винХР очень сопротивляется работе с портами.

Добавлено: Сб авг 16, 2008 21:50:16
Sounds
У меня питание берётся от отдельного источника питания

Добавлено: Сб авг 16, 2008 22:01:10
Сэр Мурр
Понял. Всё-таки проверьте- есть ли на 3-й ноге порта напряжение более чем пять вольт. Если оно менее 5 вольт- порт просто не выдаёт нужные уровни, и почти ничего не сделать. У современных мат.плат уровни могут быть далеки от первоначальных +-12 вольт.

Добавлено: Сб авг 16, 2008 23:05:47
Sounds
Да вроде нормально у 3-й ноги : -11.59V

Добавлено: Вс авг 17, 2008 11:45:04
kalobyte
сто раз уже писалось, что вешать стабилитроны на ком порт нельзя

автор
поставь туда мах232 или перепиши софт под лпт

Добавлено: Вс авг 17, 2008 12:31:23
PB_EXPERT
ОС винХР очень сопротивляется работе с портами.
Ну почему же, через API можно вполне конфортно работать. :))
Я как то писал программатор работающий с EXTRA-PIC для PICов на языке PureBasic.
Там нужно было независимо управлять дополнительными линиями COM порта и что то не заметил чтобы ХРюша сопротивлялась - моя прога без проблем шъёт ПИКи под любой ОСью (Висту не пробовал).

Добавлено: Вс авг 17, 2008 18:16:05
Сэр Мурр
Sounds писал(а):Да вроде нормально у 3-й ноги : -11.59V
Вообще-то должно быть +11,9 в- это соответствует лог "1" на СОМ-порту. Да, В теме http://www.radiokot.ru/forum/viewtopic. ... highlight= Советуют применить программу Free Serial Port Monitor - она умеет "встрять" между любой программой и СОМ-портом и сниффить весь процесс обмена между ними - какие команды и данные идут из программы и обратно.. Более пока ничего предложить не могу. У меня эта схема работала под ДОСом.

Добавлено: Вс авг 17, 2008 18:27:51
ARV
Сэр Мурр писал(а):Вообще-то должно быть +11,9 в- это соответствует лог "1" на СОМ-порту.
нет, логические уровни в RS-232 перевернуты: отрицательно напряжение соответствует логической 1, положительное - логическому 0. т.е. +11,9В - это лог."0"

Добавлено: Вс авг 17, 2008 18:32:04
Сэр Мурр
ARV, Вы абсолютно правы. Что-то меня переклинило, хотел то же самое написать, что надо устанавливать логический ноль, а не единицу.

Добавлено: Вс авг 17, 2008 18:32:38
ARV
kalobyte писал(а):сто раз уже писалось, что вешать стабилитроны на ком порт нельзя
это кем писалось? какое объяснение сему утверждению? сильно сомневаюсь в его истинности и обоснованности!

Добавлено: Вс авг 17, 2008 18:51:57
Sounds
To kalobyte
Подскажи пожалуйста если убрать стабилитроны что то изменится?
А как заменить АЦП на max232? Где про это можно прочитать?

To PB_EXPERT
А можно как ни будь изменить этот код? Я просто пока плохо знаю Visual Basic 6.0.

To Сэр Мурр
Установил программу она уже что то показывает но я не как не пойму что, пытаюсь разобраться! Спасибо за совет! Если что поможешь с анализом результатов?

To All
Сегодня днём ещё раз перебрал схему и поставил туда все новые компоненты, благо много всего накупил. Но к моему сожалению нечего не изменилось, я думаю тут дело не в схеме. И не в монтаже, монтаж проверял всё спаяно нормально контакт везде есть.
Кто ни будь вообще собирал её под виндой XP?

P.S. Спасибо за помощь!!!