Перейти к содержанию
    

Измерение напряжения на практике

Всё не так. Не хватает, как самый минимум:

- блокировочный конденсатор VCC-GND;

- цепи сброса.

 

Какого номинала конденсатор должен быть?

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

 

И откуда берётся эта информация?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

post-29297-1202550210_thumb.jpg

 

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

 

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

post-29297-1202550330_thumb.jpg

 

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

 

 

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

 

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

 

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

Изменено пользователем Владимир_КПИ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

post-29297-1202550210_thumb.jpg

 

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

 

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

post-29297-1202550330_thumb.jpg

 

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

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

 

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

 

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

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

AT16.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

 

1)Все выводы GND подключаются в "-" питания

2)Выводы Vcc и AVcc подключаются к +5В. От каждого вывода на землю идут по 2 конденсатора по 0.1 (чего?) и один на 10мкФ (сколько вольт, какой тип конденсатора?)

3)С Reset на землю идёт ёмкость на 0.1(чего? пФ?) и резистор на 47Ом

4)Ещё цепляется кварцевый резонатор и 2 конденсатора на 22(чего?).

 

Всё верно?

 

А вместо конденсаторов на 0.1 какие ещё можно использовать? Укажите диапазон.

Что за резистор 47Ом и емкость, для чего они? Это ФНЧ или цепь сброса?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему 2 конденсатора по 0.1 в паралеле? Почему нельзя использовать 1 еквивалентный?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему 2 конденсатора по 0.1 в паралеле? Почему нельзя использовать 1 еквивалентный?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы пробуете прямо на той макетке, что на фото привели? Откуда там берется +5В? C LPT порта??? Разъем под питание не просматривается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем Владимир_КПИ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Теперь получилось запустить. Получается виной всему помехи генерируемые МК. Теперь попробую померять сигнал с делителя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

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

 

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

 

program.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

А он не спешит запускать преобразование - это надо сделать вручную.

#define ADSC    6  // бит запускающий преобразование

ADCSRA |= (1<<ADSC);

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

If

some Port A pins are configured as outputs

 

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

 

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

 

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

 

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

 

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

 

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

 

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

И он, возможно, перезаписывает результат.

 

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

 

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

 

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

Изменено пользователем Владимир_КПИ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

 

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

 

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

 

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

И он, возможно, перезаписывает результат.

 

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

 

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...