Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
#1

Импульс тока в Меге - Atmega AVR микроконтроллер

15.10.2013, 11:41. Просмотров 8522. Ответов 18
Метки нет (Все метки)

<Изображение удалено>


<Изображение удалено>

Обнаружил непонятный процесс в Мега8. Заключается в периодическом скачке тока потребления Мега8 на 1 мА на фоне 6 мА среднего. На скачек тока вышел, пытаясь найти объяснение непонятным импульсам напряжения на ножках, конфигурированных как выходы.
На осциллограмах все видно, на первой ток потребления 1мА/клетка, на второй напряжение на выходной ножке. Частота импульсов стабильна, на питании +5 В все чисто, частота 4 МГц от кварца, программа состоит из цикла программной задержки 4 мс со сбросом ВДТ, прерывания запрещены.

Похоже на падение напряжения на внутренней шине питания, но откуда берется скачек тока???

http://www.cyberforum.ru/avr/thread2087422.html

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2013, 11:41
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Импульс тока в Меге (Atmega AVR микроконтроллер):

Настройка таймеров на 32-й меге
Вечер добрый! Столкнулся с проблемой в таймерах, не до конца понимаю как их...

Одиночный импульс
Добрый день. Интересует &quot;кусочек&quot; кода. При появлении 1 на выходном порту...

Сформировать импульс заданной длительности на ATmega 8535
Доброго времени суток. У меня такая проблема. Не получается сформировать...

Источник тока на Atmega
Здравствуйте, загорелся идеей собрать регулируемый по амплитуде и фазе источник...

AVR АЦП - измерить силу тока
Привет, Вопрос по поводу использования АЦП для измерения силы тока (нужен...

18
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
15.10.2013, 11:59 #2
Давайте код
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
15.10.2013, 12:12 #3
Цитата Сообщение от YTYOUT
Давайте код
m1: wdr
RJMP m1

Это все, что осталось. Инициализация естественно есть, но она вне цикла.
0
Johmmy0007
0 / 0 / 0
Регистрация: 30.08.2011
Сообщений: 9,944
15.10.2013, 13:17 #4
на ножках ничего не подключено?
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
15.10.2013, 13:21 #5
Цитата Сообщение от инкер
программа состоит из цикла программной задержки 4 мс со сбросом ВДТ
Цитата Сообщение от инкер
m1: wdr
RJMP m1

Это все, что осталось. Инициализация естественно есть, но она вне цикла.
Каким образом ЭТО может иметь период 4 миллисекунды?
Что всё-таки в инициализации? Там может быть clock pressotir или какой-то периодический таймер, висящие входы, мало ли что. Не все йогуртыинициализации одинаково полезныбезобидны ;-)

И проверьте с батарейным питанием, а то вдруг наводки.
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
15.10.2013, 13:49 #6
Цитата Сообщение от OtyxPM
И проверьте с батарейным питанием, а то вдруг наводки.
Код я уже после сократил.
Питание батарейное.
Компаратор отключен.
2 мА из общего тока потребляет резистор, сейчас его выпаяю, хотя это смешно.
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
15.10.2013, 14:27 #7
Частота какая-то "круглая", ровно 40 Гц. Что бы это могло быть...
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
15.10.2013, 14:34 #8
Есть теория что с кодом что-то не то (не прошился?) и мега перезагружается
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
15.10.2013, 14:38 #9
Цитата Сообщение от Johmmy0007
на ножках ничего не подключено?
Подключено управление транзисторами, дисплей, резисторы, но проверено отключением, что не не влияяет.

Влияет выбор тактирования, при включении внутреннего RC на 4 МГц характер тока резко изменился - одна осц. при тех же установках, вторая - развертка на 50 нсек.

Вот подстава, из-за этой волны компаратор неправильно срабатывал. три дня искал причину.
Точно такая же схемотехника на внутреннем работает отлично, здесь из-за часов поставил кварц и влип.


<Изображение удалено>


<Изображение удалено>
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
15.10.2013, 14:57 #10
Вообщем, на выходе с лог.0 при кварце шум маленький, но есть дурацкий выброс, при внутреннем - идет шум той-же амплитуды, как у выброса, но с частотой генерации.
0
yiv91
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
23.10.2013, 00:59 #11
Возможно, внутренний RC-осциллятор отключается от тактового входа, но продолжает генерить, а частота слабо захватывается помехой от такта. Для проверки можно попробовать в ините позаписывать в OSCCAL. На кварцевый генератор не повлияет, а частота RC изменится.

ЗЫ. Еще надо подумать, какие могут быть автономные генераторы и как их поотключать - например,TWI, USORT, тайминг EEPROM. Я посчитал, получается 96000 тактов - некруглое число.
Потом понаставить ловушек на все прерывания, разрешить EI, но не разрешать никакое по отдельности, а в ловушке сделать выдачу импульса на ногу.

А вообще, надо сказать, что РИСК у Атмела получился так себе, по сравнению с 51 серией. Слишком много особенностей, затронутых вскользь.

Да, - а осцил точно не ловит стробоскопический эффект? Проверяется подключением конденсатора параллельно входу осцила на такую емкость, чтобы частота среза фильтра оказалась примерно равной частоте подозрительного сигнала.
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
23.10.2013, 08:16 #12
Цитата Сообщение от yiv91
Возможно, внутренний RC-осциллятор отключается от тактового входа, но продолжает генерить...
Да, - а осцил точно не ловит стробоскопический эффект?
Переключение с RC генератора на кварц приводит к небольшому снижению потребляемого тока, из чего можно сделать вывод, что генерация RC прекращается.


<Изображение удалено>

Вот картинка напряжения на выходе ножки с лог.0. Если развертку сделать на одну ступень медленне осцил начинает рисовать огибающую сигнала, на развертке со скоростью 50 нс/дел видны импульсы с удвоенной частотой тактирования (период 125 нс).

В случае RC генератора это выглядит так:


<Изображение удалено>

Возможно эту "бегущую волну" можно остановить, отключив таймеры или еще что-то, но их работа нужна по смыслу программы. То, что это реальная пульсация тока потребления проверялось измерением в линии питания +5 вольт между электролитом фильтра и контроллером на шунте 100 ом.

Вредит эта волна в схеме, где организован программный делитель напряжения для входа компаратора. Верхний резистор делителя к +5 В, два нижние коммутируются на землю двумя выводами контроллера настройкой одного на выход, а другого на вход, получаются два порога напряжения. Вот этот порог и подпрыгивает, что видно не только осциллом, но и по реакции компаратора, при определенной частоте обращения программы к опросу компаратора возникает эффект, как вроде на втором входе компаратора медленно пульсирует сигнал, чего на самом деле нет. При RC генераторе фронт просто дрожит с большой частотой, что легко отфильтровывается.
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
24.10.2013, 09:10 #13
Цитата Сообщение от yiv91
Да, - а осцил точно не ловит стробоскопический эффект?
Вы оказались правы в предположении. Реально существуют импульсы тока потребления с удвоенной частотой тактового генератора. Остальное - "картинки" на экране, вызванные биением частот сэмплирования осциллографа и кварца контроллера. На кварце картинка четкая из-за стабильности частоты, а от RC генератора кажется зашумленной из-за высокочастотных флуктуаций его периода. Дрожание фронтов импульсов, сформированных контроллером с внутренним генератором заметно даже при длине импульсов в единицы миллисекунд.

Вот так подвели въевшиеся в кровь стереотипы от многолетней работы с аналоговыми осциллоскопами -)).
0
yiv91
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
25.10.2013, 03:26 #14
А как же компаратор? Он-то точно не сэмплирован.
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
25.10.2013, 06:17 #15
Цитата Сообщение от yiv91
А как же компаратор? Он-то точно не сэмплирован.
Тогда не знал, что причина импульса окажется в глюке измерения, поэтому упрощенно сказал о схеме с компаратором,для краткости.
В действительности схема выглядит так.

<Изображение удалено>

АЦП для сельской местности, идет поочередное сравнение пилообразного сигнала с порогами на опорном и измеряемом резисторе. Выход компаратора выводился для теста на ножку. При тесте работа была с одним резистором и фронт дрожал, как я писАл выше, но монотонно перемещался при изменении сопротивления начиная от напряжения 2 мВ до 100 мВ.

В рабочей схеме производится несколько циклов измерения длительностей от каждого резистра, суммирование по каждому и уже эти данные анализировались через отладочную программу онлайн в цифре и на графике. И вот именно эти данные при равномерном изменении резистора с шагом 0,1 Ома выглядели как замирание выхода на 1,2, иногда 3 ступени, а потом резкий несоразмерный прыжок сигнала при следующем шаге. С RC генератором были в меру зашумленные, но равномерные ступеньки. Эффект был стабильный и повторяемый на протяжении нескольких часов и на всем диапазоне резистора, что даже начал проверять сто лет используемые куски в программе, типа макроса двухбайтного чтения и записи в таймер.

Эффект исчез, когда применил программный опрос выхода компаратора и считывание таймера вместо захвата в ICR по фронту компаратора. А совсем хорошо стало, когда нижний вывод конденсатора посадил не на землю, а на свободный выход с нулем. Там внутри все как-то скомпенсировалось и схема стала различать ступени измерительного сопротивления с шагом
0,01 Ом при общем 50 Ом (правда с хорошей фильтрацией и частотой измерения около
20 Гц). Вообщем для термодатчика годится, прогон в течении 3 часов показал только два кратковременных выхода показаний из коридора 0,1*С в пересчете на температуру.

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

зы. Осциллограмма с ложной насадкой на сигнале в ветке drvtos про синхронизацию Ригола.
0
yiv91
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
25.10.2013, 13:06 #16
Спасибо, более-менее понятно. Я на случай необходимости точных измерений прикупил несколько MCP3551 по смешной цене - 50 рублей за штуку. Обещают 22 бита разрешения, из них 18 бит гарантированной точности. Правда, еще не испытывал. Но в любом случае, при точности лучше, чем 8 бит, я бы выносил компаратор за пределы цифровой части.
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
25.10.2013, 15:34 #17
Цитата Сообщение от yiv91
Спасибо, более-менее понятно. Я на случай необходимости точных измерений прикупил несколько MCP3551 по смешной цене - 50 рублей за штуку. Обещают 22 бита разрешения, из них 18 бит гарантированной точности. Правда, еще не испытывал. Но в любом случае, при точности лучше, чем 8 бит, я бы выносил компаратор за пределы цифровой части.
В общем и целом правильно, скоро придется для тензодатчика что-то подобное или специализированное брать.
Хотя и таким способом удается 40 мВ (сигнал с медного 100 Омного термосопротивления в диапазоне 0-100 грд) оцифровывать с 10-разрядным разрешением и 8-разрядной точностью. Учитывая, что это исполняется на голой Тини2313 с обвязкой из пяти пассивных элементов, из них только один прецизионный резистор и обеспечивать до 10 каналов измерения, но наверное стоит подолбаться с вылизыванием схемы. Если привести разрешение с 40 мВ к 5 В опоры (как в MCP3551), то не такой уж и плохой результат будет. Правда, для сигналов выше 200 мВ нужно менять зарядный резистор на источник тока или вводить линеиризацию, но ее все равно приходится применять для платиновых термосопротивлений или термопар.

Насчет выноса компаратора за пределы - когда делал аналогичное на 84 -ом ПИКе, то так и было.
Если бы в АВР можно было выключить всю периферию, кроме таймера 1 и компаратора - это была бы бомба. Но даже переход в IDLE mode дает эффект по снижению шумов, проверено, но пока лежит в запасе.
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
25.10.2013, 17:39 #18
Цитата Сообщение от инкер
Если бы в АВР можно было выключить всю периферию, кроме таймера 1 и компаратора - это была бы бомба.
А кто мешает? PRR регистр в не самых старых мегах позволяет выборочно отключать разные периферийные модули.
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
25.10.2013, 18:18 #19
Цитата Сообщение от OtyxPM
Цитата Сообщение от инкер
Если бы в АВР можно было выключить всю периферию, кроме таймера 1 и компаратора - это была бы бомба.
А кто мешает? PRR регистр в не самых старых мегах позволяет выборочно отключать разные периферийные модули.
В Меге 8 и Тини 2313 такого регистра нет, возможности по выборочному отключению ненужного скудные. Да и вообще ориентация идет на энергосбережение, кроме ADC Noise Riduction, а не на снижение помех, хотя это скорее всего связано. Таймеры 0 и 1 вообще в таблице экономичных режимов не указаны, по опыту в IDLE работают, в других нет.
0
25.10.2013, 18:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2013, 18:18
Привет! Вот еще темы с решениями:

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

непрерывная регулировка тока на AVR--как?
Предположим нагрузка лампа накаливания с напряжением 5в и током потребления...

Измерение тока и напряжения на pic контроллере
Здравствуйте! Я новичок в программировании микроконтроллеров, но требуется...

Как добиться минимального тока потребления у PIC12F683 ?
У меня получилось 154uA но мне думается что можно меньше. Это Stomdby mode. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru