Свежие обсуждения
Измерения

Измеритель RLC-2

1 705 1127
Ocela: Вот только никак не могу понять, как данные из АЦП передаются в МК?

Почтовыми голубями  По шине данных, судя по всему.

 

А где она шина данных? smile В письменном виде пожалуйста.

 

Автор пишет так "Тактовый сигнал АЦП AdcClk (частотой 250кГц для измерений на 1кГц и 10кГц, частотой 100кГц для 100Гц) формируется модулем USART в синхронном режиме с выхода RC5. Одновременно он подается на вывод RC0, который установлен программой как вход TMR1 в режиме счетчика. Цифровой код преобразования АЦП равен количеству импульсов AdcClk минус 10001 за время, пока сигнал Busy АЦП находится в „1”. Эта особенность используется ввода в МК результатов преобразования АЦП. Сигнал Busy подается на вывод RC1, который настроен как вход модуля сравнения и захвата МК (CPP). С его помощью запоминается значение TMR1 при положительном фронте сигнала Busy, а потом при отрицательном. Вычитая эти два значения, получаем искомый результат работы АЦП." Но в математике не очень понятно, хотелось бы более подробного толкования. Если сведущие есть в этом вопросе, просьба разъяснить на пальцах. Похоже мне придется разбираться и с этим узлом..

 

Действительно получается проблема с АЦП или МК. Дальнейшие шаги вижу так..

1. Проверить сигналы Busy, Pol

2. Попробовать вычислить значения передаваемые в МК через сигнал AdcClk и сравнить их с результатами на экране ЖКИ

3. Попробовать перепрошить МК на другом программаторе (хотя сомневаюсь, что это поможет)

3. Проверить цепи АЦП-МК, сверить со схемой.

4. Возможно заменить АЦП

 

Андрей.

А при прошивке МК Вы отключаете JMP1? Питание прибора при прошивке включать не нужно.

 

Ocela, в ICL7135 знак (полярность) числа АЦП передается через вывод 23 (цепь Pol). В PIC контроллере это вывод 14. Проверьте эту цепь на обрыв и на замыкание с другими цепями. В режиме реальных измерений (1 кГц) на выводе 23 импульсы с периодом близким 1 секунде (... лог.0 - лог.1 - лог.0 - лог.1 ...).  

 

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

{

back ;был захват значения таймера по заднему фронту
  movf ADC_L, W
  subwf CCPR2L, F ;вычитаем старое показание из текущего
  btfss STATUS, C
  decf CCPR2H, F
  movlw LOW .10001 ;попутно вычитаем 10001
  subwf CCPR2L, W
  btfss STATUS, C
  decf CCPR2H, F
  movwf ADC_L
  ; старший байт
  movf ADC_H, W
  subwf CCPR2H, F
  movlw HIGH .10001 ;попутно вычитаем 10001
  subwf CCPR2H, W
  movwf ADC_H
  ;Определяемся с полярностью сигнала
  btfss PORTC, Pol ;полярность: 1-положительная, 0-отрицательная
  bsf ADC_H,7  ; уст. знак минус
  movlw 0x80  
  btfsc PORTA_copy, U_I ; если измеряли ток, то
  xorwf ADC_H, F ; меняем знак, т.к ток идет с инверсией
  ;переключаем на захват по переднему фронту
  clrf CCP2CON
  movlw b'00000101' ;переключаем на захват по переднему фронту
  movwf CCP2CON
  bcf Flags, go_ADC ;очищаем флаг преобразования

}

 

В код то мы не полезем, в других экземплярах он работает правильно.

 
Ocela: Везде одни и те же грабли - сдвиг тока относительно напряжения на 180 град (это при измерении сопротивления). Т.к. сигнал и тока и напряжения подходит к ключам "правильным" и измерение сопротивлений выполняется правильно, следует предположить, что проблема в реактивной составляющий, Т.Е В МНИМОЙ ЧАСТИ. А выборкой занимаются ключи. Ключи перепроверил - все работает как надо. Остается предположит, что какая-то путаница с сигналами. Но т.к. прибор показывая измерение Re, на самом деле измеряет Im, я застопорился. Теперь логика расчетов нарушается. Возможно это несоответствие корректирует прошивка.

Постарался с обоснованием ответить на эту реплику...

 

FR1, спасибо! Вы ответили на мой вопрос относительно инверсии тока! Только что получил ответ от автора (GO Олега) насчет выделении реальной и мнимой частей. Да, получилось все наоборот с описанием на прибор - clock_90 участвует в выделении Re, а clock_0 Im. При поиске неисправности связанной с фазой это конечно будет вводить в тупик, но что сделано, то сделано. Надо учитывать такой факт. Теперь все встало на свои места! Всем большое спасибо за разъяснения! Теперь осталось только закончить ремонт! :-)))