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

 
 
> Измерение напряжения на практике
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
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 42)
singlskv
сообщение Feb 8 2008, 17:31
Сообщение #2


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Владимир_КПИ @ 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%,
так что по-хорошему нужна калибровка.
Go to the top of the page
 
+Quote Post
Motion
сообщение Feb 8 2008, 18:21
Сообщение #3


Местный
***

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



Цитата
Ужас... help.gif такой делитель можно только для очень медленно меняющихся сигналов,
ну и кондер для них же..., лучше поставить ОУ.


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

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

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

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

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

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

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

Пока я вижу схему такой:
Прикрепленное изображение


Повторяю, особая точность не нужна. Нужен результат измерения. Когда получу его, буду его уточнять, довешивая различные внешние компоненты(фильтры и т.д.).
Go to the top of the page
 
+Quote Post
singlskv
сообщение Feb 8 2008, 18:36
Сообщение #4


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Владимир_КПИ @ Feb 8 2008, 21:21) *
Я буду мерять постоянное напряжение.
Я буду использовать внутренний ИОН. Я хотел бы его вывести на ножку МК, чтобы использовать в качестве опорного напряжения в других узлах схемы.
Пока я вижу схему такой:
Повторяю, особая точность не нужна. Нужен результат измерения. Когда получу его, буду его уточнять, довешивая различные внешние компоненты(фильтры и т.д.).
Ну тогда добавьте кондер на Aref и можно начинать 05.gif
Go to the top of the page
 
+Quote Post
Motion
сообщение Feb 8 2008, 18:39
Сообщение #5


Местный
***

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



А без него нельзя? У меня только 220нФ и 1,1нФ есть.

Сообщение отредактировал Владимир_КПИ - Feb 8 2008, 18:40
Go to the top of the page
 
+Quote Post
singlskv
сообщение Feb 8 2008, 18:54
Сообщение #6


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Владимир_КПИ @ Feb 8 2008, 21:39) *
А без него нельзя? У меня только 220нФ и 1,1нФ есть.
Можно и без, но 220n подойдет


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

Главное что бы Вы потом, когда у Вас чего-нить заработает, вспомнили о
всех упрощениях которые Вы сделали и разобрались почему так делать не стоит...
Go to the top of the page
 
+Quote Post
Motion
сообщение Feb 8 2008, 19:05
Сообщение #7


Местный
***

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



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


Если я к макетке, которую я использую для программирования МК с помощью ISP, припаяю обвеску из конденсатора и резисторов - у меня будет работать ISP?
Go to the top of the page
 
+Quote Post
MicroDiP
сообщение Feb 8 2008, 19:16
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 104
Регистрация: 31-07-05
Из: Shenzhen, China (深圳市, 中国)
Пользователь №: 7 233



Цитата(Владимир_КПИ @ Feb 9 2008, 02:21) *
Я буду мерять постоянное напряжение. Делитель нужен для того, чтобы поделить +5.

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


--------------------
Все языки несут в себе черты своих обладателей. И идиомы каждого языка повторяются снова и снова: "Он чужеземец, а значит - варвар". (Роберт Хайнлайн)
Go to the top of the page
 
+Quote Post
Motion
сообщение Feb 8 2008, 19:47
Сообщение #9


Местный
***

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



Цитата
Если я к макетке, которую я использую для программирования МК с помощью ISP, припаяю обвеску из конденсатора и резисторов - у меня будет работать ISP?


Вопрос ещё актуален
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 8 2008, 19:57
Сообщение #10


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



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

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

Если обвеска не каснется пинов по которым происходит программирование (MISO/MOSI/SCK/RST), то работать ISP будет.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Feb 8 2008, 20:02
Сообщение #11


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Владимир_КПИ @ Feb 8 2008, 22:47) *
Вопрос ещё актуален
Все будет в порядке.
Экспериментируйте не боясь...
Убить мегу - надо стараться...
Go to the top of the page
 
+Quote Post
Motion
сообщение Feb 8 2008, 21:10
Сообщение #12


Местный
***

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



Не сколько убить. По идее ISP для этого и придумано, чтобы можно было программировать внутрисхемно, что очень удобно.

Я же буду подпаивать свои резисторы от питания на землю. То есть будет контакт с задействоваными при программировании пинами.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Feb 8 2008, 21:20
Сообщение #13


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Владимир_КПИ @ Feb 9 2008, 00:10) *
Не сколько убить. По идее ISP для этого и придумано, чтобы можно было программировать внутрисхемно, что очень удобно.
Я же буду подпаивать свои резисторы от питания на землю. То есть будет контакт с задействоваными при программировании пинами.
Вы какой-то супер осторожный экспериментатор, даже если Вы подпояетесь к сети 220
через Ваши резисторы скорее всего ничего не сможете спалить,
ну и стоимость меги16 - 50 руб = 2 бутулки пыва. biggrin.gif
Go to the top of the page
 
+Quote Post
Motion
сообщение Feb 8 2008, 22:20
Сообщение #14


Местный
***

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



Просто я до этого делал такую же небольшую платку для програмирования Attiny13. Потом что-то припаял в довеску, у меня перестало программироваться. Я и подумал, может я как-то влияю припайкой чего-то. А вообще, наверное, должно программироваться с довеской. Главное, чтобы никаких лишних сигналов не было на программируемых выводах при програмировании.

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

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

Подскажите, что не так.
Go to the top of the page
 
+Quote Post
acorn
сообщение Feb 8 2008, 22:58
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 28-11-05
Пользователь №: 11 495



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

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

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

Это если наплевать на качество, а только убедиться, что программируется и запускается. После исправления этих моментов, нужно успешно _прочитать_ программатором кристалл. Потом выставить фьюзы, зашить пробную прогу и т.п.
Go to the top of the page
 
+Quote Post
Motion
сообщение Feb 9 2008, 08:42
Сообщение #16


Местный
***

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



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


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

И откуда берётся эта информация?
Go to the top of the page
 
+Quote Post
Motion
сообщение Feb 9 2008, 10:12
Сообщение #17


Местный
***

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



Кое-что нашёл - AVR042: AVR Hardware Design Considerations

Как пример приведена вот такая схема:

Прикрепленное изображение


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

Отдельно показана цепь сброса:

Прикрепленное изображение


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


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

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

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

Сообщение отредактировал Владимир_КПИ - Feb 9 2008, 09:58
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Feb 9 2008, 10:38
Сообщение #18


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

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



Цитата(Владимир_КПИ @ Feb 9 2008, 15:12) *
Кое-что нашёл - AVR042: AVR Hardware Design Considerations

Как пример приведена вот такая схема:

Прикрепленное изображение


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

Отдельно показана цепь сброса:

Прикрепленное изображение


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

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

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

Посмотрите вот схема готового устройства с 16 мегой, посмотрите как сделано там, и еще внимательно проверте монтаж на вашей плате. На ножке РЕСЕТ и должен быть высокий уровень.
Прикрепленные файлы
Прикрепленный файл  AT16.pdf ( 110.7 килобайт ) Кол-во скачиваний: 127
 


--------------------
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
Motion
сообщение Feb 9 2008, 11:13
Сообщение #19


Местный
***

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



Спасибо за схему.

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


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

Всё верно?

А вместо конденсаторов на 0.1 какие ещё можно использовать? Укажите диапазон.
Что за резистор 47Ом и емкость, для чего они? Это ФНЧ или цепь сброса?
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Feb 9 2008, 11:46
Сообщение #20


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

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



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


--------------------
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
Motion
сообщение Feb 9 2008, 12:38
Сообщение #21


Местный
***

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



А почему 2 конденсатора по 0.1 в паралеле? Почему нельзя использовать 1 еквивалентный?
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Feb 9 2008, 14:26
Сообщение #22


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

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



Цитата(Владимир_КПИ @ Feb 9 2008, 17:38) *
А почему 2 конденсатора по 0.1 в паралеле? Почему нельзя использовать 1 еквивалентный?

Очень просто, у меги16 три вывода цифрового питания и один вывод аналогового, вот поэтому на каждый вывод по конденсатору.


--------------------
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
Qwertty
сообщение Feb 9 2008, 17:21
Сообщение #23


Местный
***

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



Вы пробуете прямо на той макетке, что на фото привели? Откуда там берется +5В? C LPT порта??? Разъем под питание не просматривается.
Go to the top of the page
 
+Quote Post
Motion
сообщение Feb 9 2008, 21:06
Сообщение #24


Местный
***

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



В программатор сбоку вставляется разъём питания. Я подключаю отсек с батарейками. Внутри программатора стоит стабилизатор на 5В.

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


Местный
***

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



Теперь получилось запустить. Получается виной всему помехи генерируемые МК. Теперь попробую померять сигнал с делителя.
Go to the top of the page
 
+Quote Post
Motion
сообщение Feb 10 2008, 22:11
Сообщение #26


Местный
***

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



Написал программу для измерения напряжения на канале ADC1. На нём всё время присутствует около 1,2В. Замерял тестером. Опорное берётся внутреннее(2,56В). Замерял тестером - оно присутствует на Aref.

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

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

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

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

Прикрепленный файл  program.rar ( 1.19 килобайт ) Кол-во скачиваний: 158
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Feb 10 2008, 22:55
Сообщение #27


Местный
***

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



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

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

ADCSRA |= (1<<ADSC);

Вообще пока не поздно забросьте этот програмный продукт, несмотря на кажущуюся простоту он очень сильно замедлит Ваше движение вперед. Выбирайте свободный софт - GCC, хотя тут существуют и альтернативные мнения (IAR).
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Feb 11 2008, 07:03
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Владимир_КПИ

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

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.
Go to the top of the page
 
+Quote Post
Motion
сообщение Feb 11 2008, 07:51
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #30


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

Группа: Свой
Сообщений: 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
Motion
сообщение Feb 11 2008, 09:24
Сообщение #31


Местный
***

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



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

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


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


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

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

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


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

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


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

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



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

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

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


--------------------
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
Motion
сообщение Feb 11 2008, 10:59
Сообщение #33


Местный
***

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



Сейчас полчилось записать переменную adc_data в EEPROM.
Запись осуществлялась по прерыванию(завершению преобразования АЦП). Но записало значения 0x00. Это и логично, так как у меня на ножке канала нет напряжения.

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

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

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

Сообщение отредактировал Владимир_КПИ - Feb 11 2008, 10:59
Go to the top of the page
 
+Quote Post
Ден
сообщение Feb 11 2008, 11:57
Сообщение #34


Частый гость
**

Группа: Свой
Сообщений: 128
Регистрация: 21-06-07
Из: Омск
Пользователь №: 28 594



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

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

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

Если я правильно понял, то под словом задействован Reset Вы понимаете, что он подключен через конденсатор на землю. Если так, то он не задействован, а просто защищен от помех. Чтобы его задействовать нужно во фьюзах разрешить его использование, но если вы это сделаете, то больше не сможете прошить этот МК с помощью ISP.
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Feb 11 2008, 11:59
Сообщение #35


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

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



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

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

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

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

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


--------------------
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
Motion
сообщение Feb 11 2008, 12:44
Сообщение #36


Местный
***

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



Сделал как хотел. Правда не с первого раза получилось.

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

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

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

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

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

В настройках АЦП устанавливал частоту 125кГц. Это частота дискретизации? То есть насколько часто снимется сигнал? Это в режиме непрерывного измерения?

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


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

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



Цитата(Владимир_КПИ @ Feb 11 2008, 17:13) *
Сделал как хотел. Правда не с первого раза получилось.

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

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

Отключать на горячую можно, подавать 220В нельзя 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
Motion
сообщение Feb 11 2008, 12:49
Сообщение #38


Местный
***

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



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


А подключать на горячую?

Сообщение отредактировал Владимир_КПИ - Feb 11 2008, 12:50
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Feb 11 2008, 14:02
Сообщение #39


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

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



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

Тоже можно.


--------------------
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
Motion
сообщение Feb 11 2008, 15:26
Сообщение #40


Местный
***

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



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


Странно, здесь меня убеждали в обратном.
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Feb 11 2008, 20:35
Сообщение #41


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

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



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

Мой опыт говорит, что не стоит так преувеличивать, но тем не менее конечно внешнее питание это кривовато, лучше питайте программатор от своего устройства.


--------------------
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
=AK=
сообщение Feb 12 2008, 00:13
Сообщение #42


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



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


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

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

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

3. Защищены ли сигнальные цепи от прохождения выравнивающих токов?
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Feb 12 2008, 06:46
Сообщение #43


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



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

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

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

3. Защищены ли сигнальные цепи от прохождения выравнивающих токов?
Go to the top of the page
 
+Quote Post

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

 


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


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