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

Измеритель C и ESR

1 30 166

Wladimir_TS: Так а есть-ли гальваническое соединение между этими точками в самом приборе
не понял вопрос, но может моя разводка печатки что-нибудь прояснит?

 

Не изучал, бум изучать.

 

GO: Wladimir_TS: Так а есть-ли гальваническое соединение между этими точками в самом приборе
не понял вопрос, но может моя разводка печатки что-нибудь прояснит?

При рассмотрении программы в подпрограмме обработки прерывания обнаружено :

;------------------ Interrupt ------------------
org 0x004

movwf W_TEMP ;save W
swapf STATUS,W ;swap STATUS, W
clrf STATUS
movwf STATUS_TEMP ;save status
movf PCLATH,W
movwf PCLATH_TEMP ;save PCLFTH

decfsz TMR0_Count
goto restore_context
bsf Flags,0 ;Time Out!
goto stop_TMR1
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Куда-то ушли, а в стеке адрес возврата остался .... ОЗУ засирается.....

restore_context
bcf INTCON,T0IF ;clear interrupt flag

movf PCLATH_TEMP,W
movwf PCLATH
swapf STATUS_TEMP,W ;fetch status, reswap nibbles
movwf STATUS ;restore status
swapf W_TEMP,F ;swap nibbles in preparation
swapf W_TEMP,W ;for the swap restoration of w
retfie ;return from interrupt

 

Перенесено из другой темы:
Wladimir_TS: В вашей программе для измерителя ESR нашел, как мне кажется, некорректный выход из пррывания. Когда я его заблокировал - стабильность показаний возросла, но теперь нет реакции на КЗ щупов

Такой выход сделан специально, это вполне допустимо и работает.
Никакого забивания памяти при этом не происходит, стек у ПИКов отделен от остальной памяти.
А нет реакции на КЗ - это потому, что вы убрали контроль максимального времени измерения.

 

Вот свежая информация - так и остается коэффициенты для каналов резисторов 3 (для начала диапазонов). Есть существенная нелинейность по показаниям.

Ставлю резистор 0,56 Ом (+/-0,5%) - имею 0,048 на индикаторе , ставлю второй с ним последовательно имею на индикаторе 0.268 Ом....

С емкостями то-же. Ставлю 2 мкФ - имею 1,6 (фактически по Е7-8 - 1,98 мкФ, бумажный), ставлю 21,8 мкФ - на выходе 21,8 (настроил), сталю 104 мкФ имем опять занижение 98-94 мкФ (прыгает) (все бумага), ставлю 100 000 мкФ (почти 120 тысяч по другому прибору) имею только 86 000 и ESR=0.

Да - опрос АЦП производися по 1 разу или нет ? Я из-за ошибки в монтаже перекидывал каналы АЦП на другие вывода в начале программы при установках эквивалентов.

Процессор у меня 877ой.

 

Wladimir_TS: Да - опрос АЦП производися по 1 разу или нет ? Я из-за ошибки в монтаже перекидывал каналы АЦП на другие вывода в начале программы при установках эквивалентов.

Опрос АЦП выполняется в блоке, имеющим метку ESR_measure (стр.382 go_esr.asm)
Сначала выполняется измерение с канала 0 - это усилитель с к-том 330, затем с канала 1 (к-т 33)
Выбор номера канала измерения - строка 396:
movlw b'10000001' ;Fosc/32, канал 0, модуль АЦП вкл.
и строка 411:
movlw b'10001001' ;Fosc/32, канал 1, модуль АЦП вкл.
Менять выбор канала надо было в этих строках, только учтите, что можно выбирать номера только AN0, AN1, AN3. Если у вас используются другие, надо изменить инициализацию АЦП.

 

В продолжение вопроса
GO, подскажите - какие напряжения или их форма д.б. на выв. RC0 - RC7 PIC? Такое ощущение, чо он долхый...
P.S. в отладочном режиме в строке Сх показывает значения, пропорциональные подключенной емкости...

 

Andrew214: какие напряжения или их форма д.б. на выв. RC0 - RC7 PIC
Советую поглядеть в программе (блок измерений), что и когда выдается на порт С, там всего две страницы текста.
А так на словах - короткие импульсы с периодом повторения 0.5 сек.
Что-то мне кажется, что у вас проблемы с прошивкой EEPROM памяти...

 

Спасибо, я послезавтра весь день буду на работе, покопаюсь с программатором.
P.S. на 2-х выводах пульсаций с периодом 2 Гц нет. На плате все перемычки на месте, живые, КЗ нет. Плату использовал от Gregory

 

Да, явно проблемы импорта прошивки в программатор (Autoprog).
Во вложении скриншот кода из его окна.
Есть ли какой способ обхода?