Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Измерение напряжения на практике
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Motion
Цель - научиться измерять сигналы с помощью встроенного в ATMega16 АЦП.

Общее представление об АЦП имею.
Документацию по АЦП читал.

Есть +5В, ATMega 16 и программатор.

Хочу померять сигнал, подаваемый от питания через делитель на канал измерения. Результат нужно записать в EEPROM и потом считав его с помощью ПК проверить результат (предварительно замеряв тестером реальное напряжение).

Для начала схема. Нужно запитать сам контроллер. То есть подать +5В на Vcc и соединить общий провод с Gnd. Потом через делитель R1(150кОм), R2(47кОм) подаю напряжение на ADC0. То есть примерно 1/4 от напряжения питания(1.25В) будет на ножке измерительного канала. В качестве опорного напряжения буду использовать внутренний ИОН на 2.56В. По идее нужен ещё конденсатор, но буду без него.

Правильная ли схема?


Вопросы:

В документации написано, что AVCC - питание самого АЦП. Нужно подключать через ФНЧ к Vcc. А можно напрямую? Без этого подключения АЦП работать не будет?

К Aref подключается внешнее опорное напряжение. А при включании внутреннего источника на 2,56В, появиться ли оно на ножке Aref и можно ли использовать его в качестве опорного для других микросхем (например для ОУ)?
singlskv
Цитата(Владимир_КПИ @ Feb 8 2008, 19:58) *
Цель - научиться измерять сигналы с помощью встроенного в ATMega16 АЦП.

Общее представление об АЦП имею.
Документацию по АЦП читал.
сколько раз прочитали ? 07.gif все поняли ?
Цитата
Для начала схема. Нужно запитать сам контроллер. То есть подать +5В на Vcc и соединить общий провод с Gnd. Потом через делитель R1(150кОм), R2(47кОм) подаю напряжение на ADC0. То есть примерно 1/4 от напряжения питания(1.25В) будет на ножке измерительного канала. В качестве опорного напряжения буду использовать внутренний ИОН на 2.56В. По идее нужен ещё конденсатор, но буду без него.
Ужас... help.gif такой делитель можно только для очень медленно меняющихся сигналов,
ну и кондер для них же..., лучше поставить ОУ.
Цитата
В документации написано, что AVCC - питание самого АЦП. Нужно подключать через ФНЧ к Vcc. А можно напрямую? Без этого подключения АЦП работать не будет?
Можно, но младшие разряды будут очень усердно прыгать.
Цитата
К Aref подключается внешнее опорное напряжение. А при включании внутреннего источника на 2,56В, появиться ли оно на ножке Aref и можно ли использовать его в качестве опорного для других микросхем (например для ОУ)?
вот здесь Вы уже четко определитесь внутреннее или внешнее, иначе фсе сгорит...
Внутреннее можно выводить на ножку и использовать как опору для других частей
схеммы, только нужен соответствующий кондер и имеем в виду что опора там +-10%,
так что по-хорошему нужна калибровка.
Motion
Цитата
Ужас... help.gif такой делитель можно только для очень медленно меняющихся сигналов,
ну и кондер для них же..., лучше поставить ОУ.


Я буду мерять постоянное напряжение. Делитель нужен для того, чтобы поделить +5.

Цитата
сколько раз прочитали ? 07.gif все поняли ?

Не всё, но общее представление имею.

Цитата
Можно, но младшие разряды будут очень усердно прыгать.

Мне главное хотя бы приблизительно померять, чтобы понять как работает. То есть количество. А качество уже потом.

Цитата
вот здесь Вы уже четко определитесь внутреннее или внешнее, иначе фсе сгорит...

Я буду использовать внутренний ИОН. Я хотел бы его вывести на ножку МК, чтобы использовать в качестве опорного напряжения в других узлах схемы.

Пока я вижу схему такой:
Нажмите для просмотра прикрепленного файла

Повторяю, особая точность не нужна. Нужен результат измерения. Когда получу его, буду его уточнять, довешивая различные внешние компоненты(фильтры и т.д.).
singlskv
Цитата(Владимир_КПИ @ Feb 8 2008, 21:21) *
Я буду мерять постоянное напряжение.
Я буду использовать внутренний ИОН. Я хотел бы его вывести на ножку МК, чтобы использовать в качестве опорного напряжения в других узлах схемы.
Пока я вижу схему такой:
Повторяю, особая точность не нужна. Нужен результат измерения. Когда получу его, буду его уточнять, довешивая различные внешние компоненты(фильтры и т.д.).
Ну тогда добавьте кондер на Aref и можно начинать 05.gif
Motion
А без него нельзя? У меня только 220нФ и 1,1нФ есть.
singlskv
Цитата(Владимир_КПИ @ Feb 8 2008, 21:39) *
А без него нельзя? У меня только 220нФ и 1,1нФ есть.
Можно и без, но 220n подойдет


Цитата(Владимир_КПИ @ Feb 8 2008, 21:39) *
А без него нельзя?

Главное что бы Вы потом, когда у Вас чего-нить заработает, вспомнили о
всех упрощениях которые Вы сделали и разобрались почему так делать не стоит...
Motion
У меня есть вот это.
Нажмите для просмотра прикрепленного файла

Если я к макетке, которую я использую для программирования МК с помощью ISP, припаяю обвеску из конденсатора и резисторов - у меня будет работать ISP?
MicroDiP
Цитата(Владимир_КПИ @ Feb 9 2008, 02:21) *
Я буду мерять постоянное напряжение. Делитель нужен для того, чтобы поделить +5.

Если особой точности не нужно, то можно и без операционника. Но на вашем месте я бы сразу привыкал к хорошему тону. Сделать повторитель на операционнике ровным счётом ничего не стоит. А вот пользу он вносит: большое входное сопротивление и малое выходное - ваш делитель, с него на повторитель и с повтрителя на вход АЦП. Иначе говоря буфер. Точность измерения увеличивается. Хотя если сам АЦП имеет точность, так сказать "плюс-минус-трамвайная-остановка" biggrin.gif , то тогда о повторителе можете и не думать.
Motion
Цитата
Если я к макетке, которую я использую для программирования МК с помощью ISP, припаяю обвеску из конденсатора и резисторов - у меня будет работать ISP?


Вопрос ещё актуален
defunct
Цитата(Владимир_КПИ @ Feb 8 2008, 21:47) *
Вопрос ещё актуален

Вопрос поставлен нечетко.
Какую обвеску и куда вы ее припаивать собрались?

Если обвеска не каснется пинов по которым происходит программирование (MISO/MOSI/SCK/RST), то работать ISP будет.
singlskv
Цитата(Владимир_КПИ @ Feb 8 2008, 22:47) *
Вопрос ещё актуален
Все будет в порядке.
Экспериментируйте не боясь...
Убить мегу - надо стараться...
Motion
Не сколько убить. По идее ISP для этого и придумано, чтобы можно было программировать внутрисхемно, что очень удобно.

Я же буду подпаивать свои резисторы от питания на землю. То есть будет контакт с задействоваными при программировании пинами.
singlskv
Цитата(Владимир_КПИ @ Feb 9 2008, 00:10) *
Не сколько убить. По идее ISP для этого и придумано, чтобы можно было программировать внутрисхемно, что очень удобно.
Я же буду подпаивать свои резисторы от питания на землю. То есть будет контакт с задействоваными при программировании пинами.
Вы какой-то супер осторожный экспериментатор, даже если Вы подпояетесь к сети 220
через Ваши резисторы скорее всего ничего не сможете спалить,
ну и стоимость меги16 - 50 руб = 2 бутулки пыва. biggrin.gif
Motion
Просто я до этого делал такую же небольшую платку для програмирования Attiny13. Потом что-то припаял в довеску, у меня перестало программироваться. Я и подумал, может я как-то влияю припайкой чего-то. А вообще, наверное, должно программироваться с довеской. Главное, чтобы никаких лишних сигналов не было на программируемых выводах при програмировании.

Пока никакой довески не допаивал. Записал простейшую программу - сконфигурировал все порты на вывод и подал единицы. Почти на всех линиях нули. На некоторых 4 с небольшим вольта при питании +5В. Питание - +5В ровно.

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

Подскажите, что не так.
acorn
Цитата(Владимир_КПИ @ Feb 9 2008, 00:20) *
Вообщем что-то не так. Возможно дело в стандарной довеске МК - цепи сброса, потом там на reset что-то подаётся через резистор... может быть в отсутствии этих элементов проблема. Например на reset подаются какие-то наводки и он постоянно перезагружается...

Подскажите, что не так.

Всё не так. Не хватает, как самый минимум:
- блокировочный конденсатор VCC-GND;
- цепи сброса.

Это если наплевать на качество, а только убедиться, что программируется и запускается. После исправления этих моментов, нужно успешно _прочитать_ программатором кристалл. Потом выставить фьюзы, зашить пробную прогу и т.п.
Motion
Цитата
Всё не так. Не хватает, как самый минимум:
- блокировочный конденсатор VCC-GND;
- цепи сброса.


Какого номинала конденсатор должен быть?
Из чего состоит цепь сброса и между чем и чем её подключать?

И откуда берётся эта информация?
Motion
Кое-что нашёл - AVR042: AVR Hardware Design Considerations

Как пример приведена вот такая схема:
Нажмите для просмотра прикрепленного файла

На ней показана схема подключения кварцевого резонатора и фильтрации по питанию.

Отдельно показана цепь сброса:
Нажмите для просмотра прикрепленного файла

По идее в ней присутствует RC-цепочка. Каких номиналов должны быть элементы и какой должин быть диод?


Подойдёт ли эта обвязка для моего случая (моего МК)?

Попробовал включить по упрощённой схеме (из того что было). Между питанием и Reset - 4,8кОм, между питанием и землёй 220нФ. Результат тот же. Единиц нигде нет. На ножке ресет около 4,5В.

Скорее всего что-то не то делаю. Укажите на мои ошибки.
Stanislav_S
Цитата(Владимир_КПИ @ Feb 9 2008, 15:12) *
Кое-что нашёл - AVR042: AVR Hardware Design Considerations

Как пример приведена вот такая схема:
Нажмите для просмотра прикрепленного файла

На ней показана схема подключения кварцевого резонатора и фильтрации по питанию.

Отдельно показана цепь сброса:
Нажмите для просмотра прикрепленного файла

По идее в ней присутствует RC-цепочка. Каких номиналов должны быть элементы и какой должин быть диод?
Подойдёт ли эта обвязка для моего случая (моего МК)?

Попробовал включить по упрощённой схеме (из того что было). Между питанием и Reset - 4,8кОм, между питанием и землёй 220нФ. Результат тот же. Единиц нигде нет. На ножке ресет около 4,5В.

Скорее всего что-то не то делаю. Укажите на мои ошибки.

Посмотрите вот схема готового устройства с 16 мегой, посмотрите как сделано там, и еще внимательно проверте монтаж на вашей плате. На ножке РЕСЕТ и должен быть высокий уровень.
Motion
Спасибо за схему.

Внимательно просмотрев её сделал такие выводы:


1)Все выводы GND подключаются в "-" питания
2)Выводы Vcc и AVcc подключаются к +5В. От каждого вывода на землю идут по 2 конденсатора по 0.1 (чего?) и один на 10мкФ (сколько вольт, какой тип конденсатора?)
3)С Reset на землю идёт ёмкость на 0.1(чего? пФ?) и резистор на 47Ом
4)Ещё цепляется кварцевый резонатор и 2 конденсатора на 22(чего?).

Всё верно?

А вместо конденсаторов на 0.1 какие ещё можно использовать? Укажите диапазон.
Что за резистор 47Ом и емкость, для чего они? Это ФНЧ или цепь сброса?
Stanislav_S
Цитата(Владимир_КПИ @ Feb 9 2008, 16:13) *
Спасибо за схему.

Внимательно просмотрев её сделал такие выводы:
1)Все выводы GND подключаются в "-" питания
2)Выводы Vcc и AVcc подключаются к +5В. От каждого вывода на землю идут по 2 конденсатора по 0.1 (чего?) и один на 10мкФ (сколько вольт, какой тип конденсатора?)
3)С Reset на землю идёт ёмкость на 0.1(чего? пФ?) и резистор на 47Ом
4)Ещё цепляется кварцевый резонатор и 2 конденсатора на 22(чего?).

Всё верно?

А вместо конденсаторов на 0.1 какие ещё можно использовать? Укажите диапазон.
Что за резистор 47Ом и емкость, для чего они? Это ФНЧ или цепь сброса?

Даа верно - конденсаторы по питанию 0,1 мкФ - 50В - SMT1206 именно в этой схеме, распологать следует как можно ближе к выводам процессора, электролиты 10 мкФ - 16В, либо аналогичные, на кварце конденсаторы - 22пФ, любые керамические. резистор на цепи сброса защитный, емкость защищает вход ресет от помех, поскольку внутренний резистор довольно хилый. В принципе можно и без него, но лучше с ним smile.gif
Motion
А почему 2 конденсатора по 0.1 в паралеле? Почему нельзя использовать 1 еквивалентный?
Stanislav_S
Цитата(Владимир_КПИ @ Feb 9 2008, 17:38) *
А почему 2 конденсатора по 0.1 в паралеле? Почему нельзя использовать 1 еквивалентный?

Очень просто, у меги16 три вывода цифрового питания и один вывод аналогового, вот поэтому на каждый вывод по конденсатору.
Qwertty
Вы пробуете прямо на той макетке, что на фото привели? Откуда там берется +5В? C LPT порта??? Разъем под питание не просматривается.
Motion
В программатор сбоку вставляется разъём питания. Я подключаю отсек с батарейками. Внутри программатора стоит стабилизатор на 5В.
Motion
Теперь получилось запустить. Получается виной всему помехи генерируемые МК. Теперь попробую померять сигнал с делителя.
Motion
Написал программу для измерения напряжения на канале ADC1. На нём всё время присутствует около 1,2В. Замерял тестером. Опорное берётся внутреннее(2,56В). Замерял тестером - оно присутствует на Aref.

По окончанию измерения по прерыванию измерянное значение записывается в EEPROM.

Прошил программу в МК, переставил МК в схему, подал питание, выключил. Подключил к ПК, прочёл EEPROM - везде FF. То есть что-то неправильно сделал.

Укажите, пожайлуста, на мои ошибки.

Прилагаю листинг программы.

Нажмите для просмотра прикрепленного файла
Qwertty
Цитата(Владимир_КПИ @ Feb 11 2008, 01:11) *
Укажите, пожайлуста, на мои ошибки.

Самая главная ошибка ИМХО - то что Вы полагаетесь на визард CV, думая что он все сделает за Вас.
А он не спешит запускать преобразование - это надо сделать вручную.
Код
#define ADSC    6  // бит запускающий преобразование

ADCSRA |= (1<<ADSC);

Вообще пока не поздно забросьте этот програмный продукт, несмотря на кажущуюся простоту он очень сильно замедлит Ваше движение вперед. Выбирайте свободный софт - GCC, хотя тут существуют и альтернативные мнения (IAR).
VladimirYU
Владимир_КПИ

Еще одна рекомендация

Port A has an alternate function as analog input for the ADC as shown in Table 22. If
some Port A pins are configured as outputs, it is essential that these do not switch when
a conversion is in progress. This might corrupt the result of the conversion
.

Стр 57.
Motion
Цитата
If
some Port A pins are configured as outputs


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

Цитата
Самая главная ошибка ИМХО - то что Вы полагаетесь на визард CV, думая что он все сделает за Вас.


По идее программа делает всё то, что я выставлю в Wizard. Она просто автоматизирует мои действия.

Непревычно как-то пользоваться командами вида "ADCSRA |= (1<<ADSC);". Привычней ADCSRA.6=1, но эта команда, как я понимаю здесь неуместна или не работает. А в чём различие? Где стоит применять одну, а где другую? Више кто-то писал, что есть команды Read-Modify-Write.

Пытался вновь померять - результат нулевой (FF).

Есть один нюанс. Прошиваю МК я на одной плате (специально сделал для прошивки МК, на ней кроме панельки для МК и проводков и ISP разъёма ничего нет), а потом переставляю МК в другую рабочую плату.

Возможно МК что-то и меряет, но потом я когда перестявляю обратно в программатор и включаю питание, никакого измеряемого напряжения нет.
И он, возможно, перезаписывает результат.

Может быть есть смысл сделать ISP разъём на рабочей плате(целевом устройстве)? Но не хотелось бы загромождать ещё сильнее проводниками плату.

А можно делать однократное измерение по нажатию на кнопку, например. То есть в готовой плате я нажму кнопку - МК сделает измерение и запишет результат в EEPROM. А потом переставлю в плату для программирования и считаю результат.

А вообще программа написана верно?
Stanislav_S
Цитата(Владимир_КПИ @ Feb 11 2008, 12:51) *
Порты в программе стоят по умолчанию (на вход) - значит проблем не должно возникать.
По идее программа делает всё то, что я выставлю в Wizard. Она просто автоматизирует мои действия.

Непревычно как-то пользоваться командами вида "ADCSRA |= (1<<ADSC);". Привычней ADCSRA.6=1, но эта команда, как я понимаю здесь неуместна или не работает. А в чём различие? Где стоит применять одну, а где другую? Више кто-то писал, что есть команды Read-Modify-Write.

Пытался вновь померять - результат нулевой (FF).

Есть один нюанс. Прошиваю МК я на одной плате (специально сделал для прошивки МК, на ней кроме панельки для МК и проводков и ISP разъёма ничего нет), а потом переставляю МК в другую рабочую плату.

Возможно МК что-то и меряет, но потом я когда перестявляю обратно в программатор и включаю питание, никакого измеряемого напряжения нет.
И он, возможно, перезаписывает результат.

Может быть есть смысл сделать ISP разъём на рабочей плате(целевом устройстве)? Но не хотелось бы загромождать ещё сильнее проводниками плату.

А можно делать однократное измерение по нажатию на кнопку, например. То есть в готовой плате я нажму кнопку - МК сделает измерение и запишет результат в EEPROM. А потом переставлю в плату для программирования и считаю результат.

А вообще программа написана верно?

Как вам правильно заметили, срочно смените компилятор на GCC или IAR или на худой конец ImageCraft, и прежде чем писать прочитайте хотя бы пару книг по программированию АВР на С, благо их сейчас много. Далее не пользуйтес визардом! настраивайте перефирию руками, только так вы "прочувствуете" ее поймете что для чего и зачем, да и документацию на компилятор обязательно прочтите, узнаете много нового и полезного smile.gif Касательно этой программы непонятно почему читается только старший байт регистра АЦП. Да и находясь в прерывании не пишите данные в ЕЕПРОМ делайте это в фоновой программе. Для отладки прицепите светодиод на любую ножку и включайте/выключайте там где вам нужно, так вы увидите как работает ваша программа. Поставте разъем для ISP на плату сэкономите время и ресурс колодки, поскольку перешивать процессор вы будите очень много раз smile.gif
Motion
Цитата
Касательно этой программы непонятно почему читается только старший байт регистра АЦП.

В программе я поставил "использовать 8 бит". Поэтому результат у меня содержит только 8 бит.


Цитата
Поставте разъем для ISP на плату сэкономите время и ресурс колодки, поскольку перешивать процессор вы будите очень много раз


Если я поставлю ISP разъём на устройстве и буду прошивать МК прямо внутрисхемно, потом по окончанию прошивки у меня перезапуститься МК и будет выполнять программу. То есть моё устройство будет работать подключённым к программатору, а программатор ведь подключён к ПК. Не спалю ли я порт LTP ?

Получается при таком подключении я могу сразу не отключая плату от программатора проверить работоспособность программы с помощью светодиода.

Цитата
Как вам правильно заметили, срочно смените компилятор на GCC или IAR или на худой конец ImageCraft, и прежде чем писать прочитайте хотя бы пару книг по программированию АВР на С, благо их сейчас много. Далее не пользуйтес визардом! настраивайте перефирию руками, только так вы "прочувствуете" ее поймете что для чего и зачем, да и документацию на компилятор обязательно прочтите, узнаете много нового и полезного


Сейчас нет времени осваивать новые компиляторы и книги. У меня защита диплома через неделю. К тому времени нужно уже сделать своё устройство, которое измеряет мощность нагрузки. У меня есть базовые знания, с помощью которых уже можно что-то померять, но у меня что-то не получается.
Stanislav_S
Цитата(Владимир_КПИ @ Feb 11 2008, 14:24) *
В программе я поставил "использовать 8 бит". Поэтому результат у меня содержит только 8 бит.
Если я поставлю ISP разъём на устройстве и буду прошивать МК прямо внутрисхемно, потом по окончанию прошивки у меня перезапуститься МК и будет выполнять программу. То есть моё устройство будет работать подключённым к программатору, а программатор ведь подключён к ПК. Не спалю ли я порт LTP ?

Получается при таком подключении я могу сразу не отключая плату от программатора проверить работоспособность программы с помощью светодиода.
Сейчас нет времени осваивать новые компиляторы и книги. У меня защита диплома через неделю. К тому времени нужно уже сделать своё устройство, которое измеряет мощность нагрузки. У меня есть базовые знания, с помощью которых уже можно что-то померять, но у меня что-то не получается.

Если на плату не подадите 220В, то все будет нормально, если сильно боитесь сделайте байт бластер и шейте через него (схема простейшая одна микросхема 74НС244 ищется в инете). Насчет АЦП вы берете старший байт, поэтому вам необходимо сделать это так data=ADCH>>8, если data у вас объявлена как unsigned char
Motion
Сейчас полчилось записать переменную adc_data в EEPROM.
Запись осуществлялась по прерыванию(завершению преобразования АЦП). Но записало значения 0x00. Это и логично, так как у меня на ножке канала нет напряжения.

Сейчас припаяю ISP разъём на плату. И подсоединю к МК. Буду программировать внутрисхемно.

В самом устройстве у меня не задействованы ножки MISO, MOSI, SCK.
А вот ножки Vcc, GND, Reset задействованы.

На Vcc питание, на GND обший вывод, на RESET конденсатор на землю.
Слышал, что в случае использования каких-то ножек одновременно для программирования и внутри схемы их нужно разделять резисторами. Нужно ли мне где-то дополнительно ставить резисторы на Vcc, GND или RESEt?
Ден
Цитата(Владимир_КПИ)
Слышал, что в случае использования каких-то ножек одновременно для программирования и внутри схемы их нужно разделять резисторами. Нужно ли мне где-то дополнительно ставить резисторы на Vcc, GND или RESEt?

Если уж и ставят резисторы, то для чтобы подключенные устройства (к этим же выводам) не мешали своим внутренним сопротивлением программированию. А эти выводы у Вас не используются, т.е. на MISO, MOSI, SCK резисторы Вам ставить не нужно.

Цитата
А вот ножки Vcc, GND, Reset задействованы.

Если я правильно понял, то под словом задействован Reset Вы понимаете, что он подключен через конденсатор на землю. Если так, то он не задействован, а просто защищен от помех. Чтобы его задействовать нужно во фьюзах разрешить его использование, но если вы это сделаете, то больше не сможете прошить этот МК с помощью ISP.
Stanislav_S
Цитата(Владимир_КПИ @ Feb 11 2008, 15:59) *
Сейчас полчилось записать переменную adc_data в EEPROM.
Запись осуществлялась по прерыванию(завершению преобразования АЦП). Но записало значения 0x00. Это и логично, так как у меня на ножке канала нет напряжения.

не совсем я бы еще проверил, поскольку редко когда АЦП выдает 0, тем более если у вас этот вывод висит в воздухе, то на нем наводится довольно большая помеха.
Цитата
Сейчас припаяю ISP разъём на плату. И подсоединю к МК. Буду программировать внутрисхемно.

В самом устройстве у меня не задействованы ножки MISO, MOSI, SCK.
А вот ножки Vcc, GND, Reset задействованы.

На Vcc питание, на GND обший вывод, на RESET конденсатор на землю.
Слышал, что в случае использования каких-то ножек одновременно для программирования и внутри схемы их нужно разделять резисторами. Нужно ли мне где-то дополнительно ставить резисторы на Vcc, GND или RESEt?

Нет не нужно, резисторы ставятся тогда, когда используется SPI, поскольку у вас не используется, то не надо.
Motion
Сделал как хотел. Правда не с первого раза получилось.

Теперь моя схема подключена к програматору через ISP разъём. Сразу "зашиваю" программу не выключая питания. Сразу же и проверяю саму программу не ничего не отсоединяя, считывая содержимое EEPROM. То есть только при питании +5В самого программатора (которое также поступает на моё устройство) я ничего не могу спалить? Главное не подключать внешнее питание(220В, например) на вход самого устройства. И нельзя отсоединять программатор и МК "на горячую"(во время включёного ПК)?

Сейчас прочёл EEPROM, а там 7АH (122d). Так как я использую 8 бит, то максимальное значение может быть 256. Так и получается, при опорном 2,56 у меня на канале 1,23В. Вообщем померять постоянный сигнал получилось. Ура!!!! smile.gif

В конечном итоге мне нужно будеть измерить 2 синусоидальных сигнала(сигналы с датчика тока и датчика напряжения). Буду мерять активную мощность.

По идее буду использовать таймер. При каждом переполнеии буду мерять сигнал. Потом амплитуду сигнала перемножу на дельту(время таймера) - получу площадь подкривой. Потом проссумирую все подкривые за период и получу значение тока (действующее??) за полупериод.

А теперь как бы мне улучшить помехозащищённость? Чтобы максимально точно измерять напряжение, используя все 10 разрядов.

В настройках АЦП устанавливал частоту 125кГц. Это частота дискретизации? То есть насколько часто снимется сигнал? Это в режиме непрерывного измерения?
Stanislav_S
Цитата(Владимир_КПИ @ Feb 11 2008, 17:13) *
Сделал как хотел. Правда не с первого раза получилось.

Теперь моя схема подключена к програматору через ISP разъём. Сразу "зашиваю" программу не выключая питания. Сразу же и проверяю саму программу не ничего не отсоединяя, считывая содержимое EEPROM. То есть только при питании +5В самого программатора (которое также поступает на моё устройство) я ничего не могу спалить? Главное не подключать внешнее питание(220В, например) на вход самого устройства. И нельзя отсоединять программатор и МК "на горячую"(во время включёного ПК)?

Сейчас прочёл EEPROM, а там 7АH (122d). Так как я использую 8 бит, то максимальное значение может быть 256. Так и получается, при опорном 2,56 у меня на канале 1,23В. Вообщем померять постоянный сигнал получилось. Ура!!!! smile.gif

Отключать на горячую можно, подавать 220В нельзя smile.gif
Motion
Цитата
Отключать на горячую можно, подавать 220В нельзя


А подключать на горячую?
Stanislav_S
Цитата(Владимир_КПИ @ Feb 11 2008, 17:49) *
А подключать на горячую?

Тоже можно.
Motion
Цитата
Тоже можно.


Странно, здесь меня убеждали в обратном.
Stanislav_S
Цитата(Владимир_КПИ @ Feb 11 2008, 20:26) *
Странно, здесь меня убеждали в обратном.

Мой опыт говорит, что не стоит так преувеличивать, но тем не менее конечно внешнее питание это кривовато, лучше питайте программатор от своего устройства.
=AK=
Цитата(Владимир_КПИ @ Feb 12 2008, 00:56) *
Странно, здесь меня убеждали в обратном.


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

1. Каковы были потенциалы земель этих двух устройств до подключения кабеля?
Если оба устройства имели общее заземление (помимо кабеля), то их земли в момент подключения имели одинаковый потенциал, поэтому при подключении через кабель не пробежит кратковременный выравнивающий ток, способный выжечь устройство. Если же общего заземления нет, то уж как повезет, может, сто раз подключите и ничего не будет, а на сто первый сдохнет.

2. При включении кабеля, соединяется ли контакт земли первым?
В грамотном разъеме контакты земли/питания сделаны длиннее сигнальных, поэтому выравнивающие токи не шарахают по сигнальным цепям.

3. Защищены ли сигнальные цепи от прохождения выравнивающих токов?
VladimirYU
Цитата(=AK= @ Feb 12 2008, 03:13) *
Когда вы соединяете два устройства кабелем, потенциалы земель этих двух устройств становятся одинаковыми. Сгорят или нет цепи, связанные с кабелем, зависит от нескольких обстоятельств.

1. Каковы были потенциалы земель этих двух устройств до подключения кабеля?
Если оба устройства имели общее заземление (помимо кабеля), то их земли в момент подключения имели одинаковый потенциал, поэтому при подключении через кабель не пробежит кратковременный выравнивающий ток, способный выжечь устройство. Если же общего заземления нет, то уж как повезет, может, сто раз подключите и ничего не будет, а на сто первый сдохнет.

2. При включении кабеля, соединяется ли контакт земли первым?
В грамотном разъеме контакты земли/питания сделаны длиннее сигнальных, поэтому выравнивающие токи не шарахают по сигнальным цепям.

3. Защищены ли сигнальные цепи от прохождения выравнивающих токов?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.