реклама на сайте
подробности

 
 
> Измерение напряжения на практике
Motion
сообщение Feb 8 2008, 16:58
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297



Цель - научиться измерять сигналы с помощью встроенного в 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 и можно ли использовать его в качестве опорного для других микросхем (например для ОУ)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Motion
сообщение Feb 11 2008, 07:51
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297



Цитата
If
some Port A pins are configured as outputs


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

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


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

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

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

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

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

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

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

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

Сообщение отредактировал Владимир_КПИ - Feb 11 2008, 07:51
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Feb 11 2008, 08:30
Сообщение #3


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(Владимир_КПИ @ 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


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Владимир_КПИ   Измерение напряжения на практике   Feb 8 2008, 16:58
- - singlskv   Цитата(Владимир_КПИ @ Feb 8 2008, 19:58) ...   Feb 8 2008, 17:31
- - Владимир_КПИ   ЦитатаУжас... help.gif такой делитель можно только...   Feb 8 2008, 18:21
|- - singlskv   Цитата(Владимир_КПИ @ Feb 8 2008, 21:21) ...   Feb 8 2008, 18:36
|- - МикроДИП   Цитата(Владимир_КПИ @ Feb 9 2008, 02:21) ...   Feb 8 2008, 19:16
- - Владимир_КПИ   А без него нельзя? У меня только 220нФ и 1,1нФ ест...   Feb 8 2008, 18:39
|- - singlskv   Цитата(Владимир_КПИ @ Feb 8 2008, 21:39) ...   Feb 8 2008, 18:54
- - Владимир_КПИ   У меня есть вот это. Если я к макетке, которую я...   Feb 8 2008, 19:05
- - Владимир_КПИ   ЦитатаЕсли я к макетке, которую я использую для пр...   Feb 8 2008, 19:47
|- - defunct   Цитата(Владимир_КПИ @ Feb 8 2008, 21:47) ...   Feb 8 2008, 19:57
|- - singlskv   Цитата(Владимир_КПИ @ Feb 8 2008, 22:47) ...   Feb 8 2008, 20:02
- - Владимир_КПИ   Не сколько убить. По идее ISP для этого и придуман...   Feb 8 2008, 21:10
|- - singlskv   Цитата(Владимир_КПИ @ Feb 9 2008, 00:10) ...   Feb 8 2008, 21:20
- - Владимир_КПИ   Просто я до этого делал такую же небольшую платку ...   Feb 8 2008, 22:20
|- - acorn   Цитата(Владимир_КПИ @ Feb 9 2008, 00:20) ...   Feb 8 2008, 22:58
- - Владимир_КПИ   ЦитатаВсё не так. Не хватает, как самый минимум: -...   Feb 9 2008, 08:42
- - Владимир_КПИ   Кое-что нашёл - AVR042: AVR Hardware Design Consid...   Feb 9 2008, 10:12
|- - Stanislav_S   Цитата(Владимир_КПИ @ Feb 9 2008, 15:12) ...   Feb 9 2008, 10:38
- - Владимир_КПИ   Спасибо за схему. Внимательно просмотрев её сдела...   Feb 9 2008, 11:13
|- - Stanislav_S   Цитата(Владимир_КПИ @ Feb 9 2008, 16:13) ...   Feb 9 2008, 11:46
- - Владимир_КПИ   А почему 2 конденсатора по 0.1 в паралеле? Почему ...   Feb 9 2008, 12:38
|- - Stanislav_S   Цитата(Владимир_КПИ @ Feb 9 2008, 17:38) ...   Feb 9 2008, 14:26
- - Qwertty   Вы пробуете прямо на той макетке, что на фото прив...   Feb 9 2008, 17:21
- - Владимир_КПИ   В программатор сбоку вставляется разъём питания. Я...   Feb 9 2008, 21:06
- - Владимир_КПИ   Теперь получилось запустить. Получается виной всем...   Feb 10 2008, 08:51
- - Владимир_КПИ   Написал программу для измерения напряжения на кана...   Feb 10 2008, 22:11
|- - Qwertty   Цитата(Владимир_КПИ @ Feb 11 2008, 01:11)...   Feb 10 2008, 22:55
|- - VladimirYU   Владимир_КПИ Еще одна рекомендация Port A has a...   Feb 11 2008, 07:03
- - Владимир_КПИ   ЦитатаКасательно этой программы непонятно почему ч...   Feb 11 2008, 09:24
|- - Stanislav_S   Цитата(Владимир_КПИ @ Feb 11 2008, 14:24)...   Feb 11 2008, 09:58
- - Владимир_КПИ   Сейчас полчилось записать переменную adc_data в EE...   Feb 11 2008, 10:59
|- - Stanislav_S   Цитата(Владимир_КПИ @ Feb 11 2008, 15:59)...   Feb 11 2008, 11:59
- - Ден   Цитата(Владимир_КПИ)Слышал, что в случае использов...   Feb 11 2008, 11:57
- - Владимир_КПИ   Сделал как хотел. Правда не с первого раза получил...   Feb 11 2008, 12:44
|- - Stanislav_S   Цитата(Владимир_КПИ @ Feb 11 2008, 17:13)...   Feb 11 2008, 12:44
- - Владимир_КПИ   ЦитатаОтключать на горячую можно, подавать 220В не...   Feb 11 2008, 12:49
|- - Stanislav_S   Цитата(Владимир_КПИ @ Feb 11 2008, 17:49)...   Feb 11 2008, 14:02
- - Владимир_КПИ   ЦитатаТоже можно. Странно, здесь меня убеждали в ...   Feb 11 2008, 15:26
- - Stanislav_S   Цитата(Владимир_КПИ @ Feb 11 2008, 20:26)...   Feb 11 2008, 20:35
- - =AK=   Цитата(Владимир_КПИ @ Feb 12 2008, 00:56)...   Feb 12 2008, 00:13
- - VladimirYU   Цитата(=AK= @ Feb 12 2008, 03:13) Когда в...   Feb 12 2008, 06:46


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 22:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01415 секунд с 7
ELECTRONIX ©2004-2016