|
|
  |
Измерение напряжения на практике |
|
|
|
Feb 9 2008, 08:42
|

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

|
Цитата Всё не так. Не хватает, как самый минимум: - блокировочный конденсатор VCC-GND; - цепи сброса. Какого номинала конденсатор должен быть? Из чего состоит цепь сброса и между чем и чем её подключать? И откуда берётся эта информация?
|
|
|
|
|
Feb 9 2008, 10:12
|

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

|
Кое-что нашёл - AVR042: AVR Hardware Design Considerations Как пример приведена вот такая схема:
На ней показана схема подключения кварцевого резонатора и фильтрации по питанию. Отдельно показана цепь сброса:
По идее в ней присутствует RC-цепочка. Каких номиналов должны быть элементы и какой должин быть диод? Подойдёт ли эта обвязка для моего случая (моего МК)? Попробовал включить по упрощённой схеме (из того что было). Между питанием и Reset - 4,8кОм, между питанием и землёй 220нФ. Результат тот же. Единиц нигде нет. На ножке ресет около 4,5В. Скорее всего что-то не то делаю. Укажите на мои ошибки.
Сообщение отредактировал Владимир_КПИ - Feb 9 2008, 09:58
|
|
|
|
|
Feb 9 2008, 10:38
|

извечный пессимист
    
Группа: Свой
Сообщений: 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
|
|
|
|
|
Feb 9 2008, 11:46
|

извечный пессимист
    
Группа: Свой
Сообщений: 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пФ, любые керамические. резистор на цепи сброса защитный, емкость защищает вход ресет от помех, поскольку внутренний резистор довольно хилый. В принципе можно и без него, но лучше с ним
--------------------
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
|
|
|
|
|
Feb 10 2008, 22:11
|

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

|
Написал программу для измерения напряжения на канале ADC1. На нём всё время присутствует около 1,2В. Замерял тестером. Опорное берётся внутреннее(2,56В). Замерял тестером - оно присутствует на Aref. По окончанию измерения по прерыванию измерянное значение записывается в EEPROM. Прошил программу в МК, переставил МК в схему, подал питание, выключил. Подключил к ПК, прочёл EEPROM - везде FF. То есть что-то неправильно сделал. Укажите, пожайлуста, на мои ошибки. Прилагаю листинг программы.
program.rar ( 1.19 килобайт )
Кол-во скачиваний: 158
|
|
|
|
|
Feb 10 2008, 22:55
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(Владимир_КПИ @ Feb 11 2008, 01:11)  Укажите, пожайлуста, на мои ошибки. Самая главная ошибка ИМХО - то что Вы полагаетесь на визард CV, думая что он все сделает за Вас. А он не спешит запускать преобразование - это надо сделать вручную. Код #define ADSC 6 // бит запускающий преобразование
ADCSRA |= (1<<ADSC); Вообще пока не поздно забросьте этот програмный продукт, несмотря на кажущуюся простоту он очень сильно замедлит Ваше движение вперед. Выбирайте свободный софт - GCC, хотя тут существуют и альтернативные мнения (IAR).
|
|
|
|
|
Feb 11 2008, 07:51
|

Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Feb 11 2008, 08: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, и прежде чем писать прочитайте хотя бы пару книг по программированию АВР на С, благо их сейчас много. Далее не пользуйтес визардом! настраивайте перефирию руками, только так вы "прочувствуете" ее поймете что для чего и зачем, да и документацию на компилятор обязательно прочтите, узнаете много нового и полезного  Касательно этой программы непонятно почему читается только старший байт регистра АЦП. Да и находясь в прерывании не пишите данные в ЕЕПРОМ делайте это в фоновой программе. Для отладки прицепите светодиод на любую ножку и включайте/выключайте там где вам нужно, так вы увидите как работает ваша программа. Поставте разъем для ISP на плату сэкономите время и ресурс колодки, поскольку перешивать процессор вы будите очень много раз
--------------------
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
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|