0 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 56
1

Программная калибровка прибора на AVR

27.04.2014, 15:08. Показов 35631. Ответов 65
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хожу в новичках.
Игрался на ассемблере, но покосившись и вкусив С понял, что в нём многие алгоритмы реализовать проще.
Заодно решил замахнуться на реализацию первого реального проекта на AVR.

Первичная задача: амперметр с пределом 2А для БП (50В), имеющего на борту только стрелочный вольтметр.
Скорее всего, будет добавлено и измерение напряжения, но это уже другая история, хотя вопрос касается и его.
Значение тока буду снимать с шунта и усиливать LM358 до 2В для значения тока 2А.
ATMiko8 в TQFP-32.
Решил использовать встроенный ИОН.
Считывать АЦП и выводить, на 3-х-значную LED-сборку научился.
Вопрос в точности измерений.
Хочется уйти от калибровки прибора усилением входного каскада и делать это на программном уровне.
Подскажите, как это делается?
Я представляю так:
1. переходим в режим калибровки.
2. снимаем нагрузку с БП.
3. считываем АЦП и записываем в EEPROM значение нуля (MIN)
4. Нагружаем БП калибровочным током, допустим 1А (COLIBR)
5. считываем АЦП, записываем в EEPROM (надо ли?)
6. рассчитываем коэффициент CORRECT=1000/(COLIBR-MIN) сохраняем в EEPROM
7. закончили калибровку
При измерениях рассчитывать ток в мА по такой формуле
RESULT=(ADCvalue-MIN)*CORRECT
Извиняюсь за многобукв
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2014, 15:08
Ответы с готовыми решениями:

Программная калибровка АЦП
Прошел по форуму, подобной темы не нашел. Собственно вопрос в следующем - кто и как калибрует...

Гуляет программная калибровка монитора
Всем привет! Начала в винде 10 гулять калибровка экрана. Через секунду после загрузки рабочего...

Цена деления шкалы измерительного прибора равна 02 Показания прибора округляют до ближайшего целого деления
Цена деления шкалы измерительного прибора равна 0.2 Показания прибора округляют до ближайшего...

Программная vs аппаратно-программная реализация функционала
Ребят, здравствуйте Немного запутался. В чем разница между программной и аппаратно-программной...

AVR JTAG mkI + avarice + avr-gdb + Linux
По какой то неведомой причине мне причине не могу нормально подключится к серверу avarice через...

65
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 461
01.05.2014, 12:44 41
Author24 — интернет-сервис помощи студентам
...теоретически да, но так как производитель чипа говорит, что ошибка состовляет всего 1,5%, и кстать, советует его запитывать от ИОН, то для моей махарайки этого вполне хватает. Даже с учётом того, что у моей конструкции после него идёт ещё усилитель, который в свою очередь приводит выходной уровень к нужному мне диапазону и собранному на приличном ОУ с прецизионными резисторами.
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
01.05.2014, 13:36 42
Вам хватает точности без калибровки. А кому-то может и не хватать. Вопрос был про то, как сделать калибровку, а не как отказаться от нее.
0
0 / 0 / 0
Регистрация: 28.06.2010
Сообщений: 211
02.05.2014, 02:56 43
Цитата Сообщение от Леанид Ивинавич
Лучше бороться с причиной, а не следствием. В данном случае достаточно выбрать ОУ с достаточно низким дрейфом. Допустим, снимаем сигнал с датчика тока, усиливаем и показываем на 3-разрядном индикаторе. . .
Кроме операционника, возможно, будет еще уплывать АЦП в МК и цепь смещения ноля. Насколько все это уплывет, да еще не только с температурой, а со временем (например, за месяц) – не знаю, этим не занимался.
Мне очень не понравилось, что оперативно установить ноль никак нельзя, только перекалибровкой. Да и там еще не факт, что после перекалибровки ноль получится, нолевая точка ведь не настраивается.
В хорошем серийном приборе наверняка будут ругать за невозможность установки ноля.
Цитата Сообщение от fyshir74
Цитата Сообщение от Otixomdr_1
Попробуйте работать в АБ.
Спасибо за совет, но навряд ли воспользуюсь Вашим предложением дабы не распыляться. А чтобы не оставалось нерасставленных точек над i - огласите полное название, спрятанное под аббревиатуру АБ

АБ – это Algorithm Builder (www.algrom.net), развитый графический ассемблер. Изучить его человеку, знающему классический ассемблер, наверно, на пару порядков проще, чем СИ, (поскольку в основе АБ – ассемблер), а писать и отлаживать программы, по крайней мере, как сейчас у вас, думаю, не сложнее и не дольше, чем на СИ.
Сейчас АБ – бесплатна.
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
02.05.2014, 11:53 44
Цитата Сообщение от Otixomdr_1
Мне очень не понравилось, что оперативно установить ноль никак нельзя
А почему такое внимание именно к нулю? Наклон шкалы может уплыть с тем же успехом.
0
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 461
02.05.2014, 13:08 45
..могу ещё одну ложку дёгтя подкинуть. Если к БП будет подключена индуктивная нагрузка управляемая импульсами(ШИМом к примеру) то на точность измерения(в данном случае среднего тока) можно вообще не рассчитывать(как ни калибруй), шкала амперметра становится не линейной! Это происходит из за того, что на измерительном усилителе в момет включения\выключения нагрузки проскакивают импульсы, которые в свою очередь при последующей интеграции(сглаживания пульсаций измеренного тока) и вносят эту не линейность. Этот эфект хорошо заметен на китайских широкораспространённых БП - при такой нагрузке амперметр показывает всё что угодно, только не то что есть на самом деле. Вот привожу осцилограмку : на ней значитс жёлтеньким как раз показан сигнал снятый с шунта при помощи MAX4372 - хорошо видны эти выбросы; зелёный сигнал это тот же ток, но снятый при помощи ACS712 - выбросов никаких нету, результат гораздо лучший, но как и писал выше, нужно делать хотяб автоматическую подстройку нуля, шумит правда ещё, но если её использовать в БП, это не страшно.

https://www.cyberforum.ru/savedimages/2014/05/02/mfpnazehdnyvuk9qsajydyuw.jpg
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
02.05.2014, 14:33 46
Эти выбросы, вероятно, связаны с неправильной топологией. Таких больших и коротких выбросов тока на датчике тока быть не может, так как выходная емкость их сгладит.
0
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 461
02.05.2014, 15:13 47
...вот и говорю, что после сглаживания и появляется нелинейность. Конечно пытался боротся с этими выбросами и топологией и включением во входную цепь резисторов с кондёрами(в некоторых источниках такие методы встречаются) и даже цифровым методом - на время выбросов отключал интегрирующую цепочку на выходе. Всё без толку, в той или иной степени они вносят негативный эфект в точность измерения. Возможно это можно решить применив какие другие чипы усилителей шунта верхнего плеча, такой возможности у меня к сожалению не было.

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

https://www.cyberforum.ru/savedimages/2014/05/02/rtkdsndypfznfm3rgve.jpg
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
02.05.2014, 15:41 48
Интересно было бы у себя проверить. А что конкретно представляет из себя "китайский широкораспространенный БП"?
0
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 461
02.05.2014, 16:16 49
..может чего я конечно не допонимаю во всех этих измерениях, но вот демонстрирую - к БП подключен девайс с импульсной мощной нагрузкой. БП может выдать 5А - дальше ограничение. Меряю ток в нагрузке тестером и подаю в нагрузку ток под 5А. БП всё правильно отрабатывает - нагрузка импульсная и светодиод ограничения начинает потихоньку загораться - срабатывает ограничение тока, а вот на показометре тока что ? :) При постоянной нагрукзке показометр показывает правильно.

https://www.cyberforum.ru/savedimages/2014/05/02/vvsrzqwelwvetcwwsn1vrm.jpg

Ну вот, повторяю эксперемент - всё тоже самое, только нагрузку подключил менее мощную, дабы подать на неё ШИМ 99,9%(практически постоянный ток) и картинка в корне меняется(ток на показометре чуток больший, потому как управляющий девайс сам по себе ещё чуток кушает) Ну и как после этого доверять китайскому показометру тока?

https://www.cyberforum.ru/savedimages/2014/05/02/nbujmk7pxjdpzaasygg.jpg
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
02.05.2014, 23:26 50
Ничего такого у себя не наблюдаю. Сделал импульсную нагрузку - через полевой ключ к выходу БП подключаю резистор 3.9 Ом. На затвор подаю с генератора прямоугольных импульсов меиндр с длительностью импульса 200 мкс (пробовал разные). Показания тестера и амперметра БП совпадают.


<Изображение удалено>
0
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 461
02.05.2014, 23:42 51
Во, классно. Презентуйте ТС свою часть схемки измерения тока, глядишь и успокоится и автокалибровка не понадобится :)

....мммм, всёж чёт у меня не получается в рассчётах в вашем случае. ...12В, 3,9 ом -постоянный ток имеем 3,077А - подключаем через ключ, подаём меиндр, ну как понял, Duty у вас 50% ? Если так, то средний ток(AVG) должен быть 1,54А -правильно я мыслю?
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
03.05.2014, 00:30 52
Так мой проект БП открытый.

Здесь главное - соответствие показаний амперметра и тестера. А конкретное значение может быть не равно расчетному по многим причинам - сопротивление ключа, проводов, отклонение номинала резистора.
0
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 461
03.05.2014, 00:38 53
..возможно просто тестер не умеет показывать средний ток. На моём тестере всё чётко - duty 99,9% ток к примеру 2А, duty 50% тогда ток на той же нагрузке 1А. RMS мой не умеет показывать, но он по идее ещё больше должен быть.
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
03.05.2014, 01:22 54
С какой стати тестеру не уметь показывать средний ток? Там же интегрирующий АЦП. У меня все тоже четко: при постоянно открытом транзисторе показывает 2.8 А, при duty 50% показывает 1.4 А. P.S. Резистор довольно заметно плывет при нагреве, а греется он неслабо :)
0
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 461
03.05.2014, 01:38 55
..ну и нормалёк:)
..глянул на схему вашего БП - минус у вас через шунт идёт, тут да, паразитных импульсов не должно быть. В той осцилограмме, что выше выкладывал - шунт по плюсу я ставил.
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
03.05.2014, 12:01 56
Цитата Сообщение от Pojotit
минус у вас через шунт идёт, тут да, паразитных импульсов не должно быть. В той осцилограмме, что выше выкладывал - шунт по плюсу я ставил.
Разве от этого что-то зависит?
По моему тут только технологические плюсы и минусы... не более.....
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
03.05.2014, 15:44 57
Когда шунт сверху, схема измерения тока работает при большом синфазном напряжении. Подавление синфазной составляющей у дифференциальных усилителей ухудшается с ростом частоты. Поэтому при больших и быстрых скачках синфазного напряжения на выходе появляются выбросы. Хотя, конечно, к данному случаю это отношения не имеет, так как выходное напряжение БП в описываемой ситуации не испытывает скачков.
0
0 / 0 / 0
Регистрация: 28.06.2010
Сообщений: 211
06.05.2014, 23:23 58
Цитата Сообщение от Леанид Ивинавич
А почему такое внимание именно к нулю? Наклон шкалы может уплыть с тем же успехом.
Изменение наклона шкалы – это дополнительная погрешность, если она в заданных пределах, это не страшно.
С установкой ноля хуже. Во-первых, думаю, во всех таких приборах есть установка ноля. Отсутствие такой настройки вызовет вопросы у пользователя, ведь сделать ее несложно.
Скажем, нагрузка отключена, а измеритель из-за смещения ноля показывает какой-то ток. Пользователь сделает вывод, что тут что-то неисправно.
Во-вторых, при отсутствии установки ноля либо погрешность измерений малых значений возрастает, либо придется в уме пересчитывать, что неудобно.

Может быть, имеет смысл сделать измеритель в виде отдельного блока, тогда можно сделать все как надо.
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
07.05.2014, 02:37 59
Цитата Сообщение от Otixomdr_1
Во-первых, думаю, во всех таких приборах есть установка ноля.
Приведите пример хоть одного БП, где есть установка нуля.
0
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 16
09.04.2015, 16:24 60
Здравствуйте, Леанид Ивинавич. Подскажите пожалуйста. Я делаю программную калибровку, по вашему алгоритму:
Цитата Сообщение от Леанид Ивинавич
В общем случае калибровка по двум точкам дает наклон Kx и смещение Sx. Вычисляются они следующим образом:

Kx = (p2 - p1) / (c2 - c1);
Sx = Kx * c1 - p1;

где p1, p2 - калибровочные точки в мА, c1, c2 - коды АЦП, соответствующие этим точкам.
При измерении ток в мА вычисляется из кода АЦП так: ma = Kx * code - Sx;
Чтобы привести вычисления к целочисленной арифметике, нужно масштабировать все значения, чтобы не потерять точность. И не забывать об округлении при каждой операции деления.
В целом после этого выдаются точные результаты, но когда приближаешься к середине диапазона (между р1 и р2) измеряемых значений, увеличивается погрешность. Вы с таким сталкивались, если да, как можно побороть?
0
09.04.2015, 16:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2015, 16:24
Помогаю со студенческими работами здесь

AVR AVRISP STK500 V3.0 USB ISP Programmer for AVR IC
Люди помогите плз. не могу разобраться. приобрел этот чудный девайс (AVR AVRISP STK500 V3.0 USB...

avr-etherboot -> Ethernet bootloader for AVR & enc28j60
Всем доброго! Захотелось мне прошивать контроллер ATmega64a через Ethernet. Есть проверенная плата...

(Avr Studio + WinAvr) vs (mikroC PRO for AVR)
Сам пользуюсь (Avr Studyo + WinAvr). Ктонибудь использует mykroC PRO for AVR ? Слышал там...

Анализ стека AVR / AVR stack analysis
Привет! Уперся я в стек, и решил понять что почем. Нашел вот такой вот скриптик:...

AVR Atmega324PU не прошивается AVR ISP Mk2
Добрый день. На плату впаян данный микроконтроллер в корпусе tqfp. При подключении программатора...

Как подкрутить AVR Toolchain к AVR Studio 4.19?
Здравствуйте. Как подкрутить AVR Toolchain к AVR Studio 4.19? avr-gcc есть, а make нет. Как...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru