Вопрос по использованию АЦП в Attiny26L

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
WatchCat
Это не хвост, это антенна
Сообщения: 1455
Зарегистрирован: Ср сен 03, 2008 21:42:17
Откуда: Ленинградская область,пос.Красный Остров

Вопрос по использованию АЦП в Attiny26L

Сообщение WatchCat »

Имеется батарея из девяти последовательно включенных никель-кадмиевых аккумуляторов, работающих с инвертором 12/220в. Это компонент системы автономного энергоснабжения моего дома(обитаю в сельской местности).
В процессе эксплуатации хочется следить за изменением напряжения на _каждой_ банке как при заряде так и при разряде.
Понятно, что хочу поручить эту задачу микроконтроллеру, который имеет для этого встроенный ADC. Так как банок - девять, то и входов ADC должно быть как минимум не меньше. Из имеющегося под рукой нашлась Attiny26L-8SU, была вытащена из сдохшей платы "плавного пуска" двигателя электрокосилки:)
Устройство ее ADC - на прилагаемом рисунке, это чтобы уважаемым Котам лишний раз по даташитам не ползать.
Вопрос - как правильно подключить входы ADC к банкам аккумуляторов? "Просто так" - очевидно не получится, так как опорный источник ADC не бывает выше питания контроллера, а питание +5в. А полное напряжение батареи аккумуляторов в конце заряда останавливается на 15.85вольт.
Значит надо думать в сторону использования дифференциальных входов. И вот тут моя мысля буксует так как входы вроде бы и дифференциальные, но "не совсем" - у них общие концы имеются.
Подскажите пожалуйста - имеет ли задача решение в таком виде или все же придется внешний мультиплексор изобретать, что очень сильно лееень...
Вложения
adc.gif
Схема ADC контроллера Attiny26
(37.17 КБ) 809 скачиваний
Реклама
Аватара пользователя
aleksey_gregul
Встал на лапы
Сообщения: 130
Зарегистрирован: Ср дек 29, 2010 17:30:34

Re: Вопрос по использованию АЦП в Attiny26L

Сообщение aleksey_gregul »

Зачем мультиплексоры?
Очень простое лобовое решение:
С каджой банки свой делитель до напряжения, не выше опорного.
С каждого делителя ко входам ацп.
Последовательно опрашиваете все входы.
Методом вычитаний определяете напряжения на каждой банке.
Все.
Реклама
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Вопрос по использованию АЦП в Attiny26L

Сообщение Vov123 »

Что-то не понятно вы пишите.Батарея из 9 банок в 15,85 вольт.Значит на каждой банке,если она исправна,будет не более 1,76 вольт.Так что вам внутреннего опорного в 2,56 вольт-самый раз без всяких делителей.
И ещё,я так и не вкурил,дифференциальные входы вам зачем,амперметр хотите сделать?
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Вопрос по использованию АЦП в Attiny26L

Сообщение DX168B »

Вот у меня много таких МК (tiny26). Но до его АЦП я пока не добрался. Если, что - всё изучу, проверю в железе и выложу суда. :)
I am DX168B and this is my favourite forum on internet!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
aleksey_gregul
Встал на лапы
Сообщения: 130
Зарегистрирован: Ср дек 29, 2010 17:30:34

Re: Вопрос по использованию АЦП в Attiny26L

Сообщение aleksey_gregul »

Изображение
Реклама
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Вопрос по использованию АЦП в Attiny26L

Сообщение DX168B »

Да, верно. В этом МК уже встроенный мультиплексор. Для метода вычитания наверное необходимо сооружать одинаковые делители напряжения для всех используемых входов. Главное, чтобы последний делитель не выступал напряжением выше опорного.
I am DX168B and this is my favourite forum on internet!
Реклама
Аватара пользователя
zhu4er
Вымогатель припоя
Сообщения: 544
Зарегистрирован: Пт июн 04, 2010 17:40:13
Откуда: Непокорный город-герой Севастополь

Re: Вопрос по использованию АЦП в Attiny26L

Сообщение zhu4er »

Из имеющегося под рукой нашлась Attiny26L-8SU, была вытащена из сдохшей платы "плавного пуска" двигателя электрокосилки:)
А проверяли микру? Она рабочая? Не залоченая?
А тебе хватит выводов для дальнейшей индикации? Я лично сомневаюсь... Я бы для такой задачи либо второй контроллер подключил бы или Мегу128 взял бы
Даже у стен есть уши...
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Вопрос по использованию АЦП в Attiny26L

Сообщение DX168B »

А чего не хватит? Помоему где-то у меня есть длиииинный 12-разрядный семисегментный индикатор с контроллером, принимающий данные для индикации из SPI интерфейса. В этой тиньке как раз полуаппаратный USI останется нетронутым. С него-то можно и выводить. Можно индикатор собрать и на логике с использованием сдвиговых регистров и готовых дешифраторов значение>сегмент.
И что в МК может быть заблокированно? LOCK биты? Они сбрасываются при стирании кристалла.
Что ещё? SPIEN? Параллельный программатор это дело решит в два клика.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Вопрос по использованию АЦП в Attiny26L

Сообщение Kavka »

DX168B писал(а):Главное, чтобы последний делитель не выступал напряжением выше опорного.
Лучше сказать, чтобы ни один делитель не выдавал напряжения выше опорного :)

WatchCat, в такой схеме надо учесть, что погрешности на каждом канале будут разные, и цена одного "тика" АЦП тоже (в 9 раз между первым и последним каналами). Вывод - отнестись с должным вниманием к вычислениям... Удачи!
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
WatchCat
Это не хвост, это антенна
Сообщения: 1455
Зарегистрирован: Ср сен 03, 2008 21:42:17
Откуда: Ленинградская область,пос.Красный Остров

Re: Вопрос по использованию АЦП в Attiny26L

Сообщение WatchCat »

Микросхема вполне живая. На плате от косилки был аж разъемчик для программатора, правда ответную часть такую я не нашел, просто проводки прицепил, проверил, на запросы софта отзывается.
Данные из этой Tiny действительно буду доставать по SPI, а всем остальным будет заниматься поставленная рядом Atmega16A, просто потому что их у меня есть. Найду энергонезависимую память с последовательным доступом и буду в нее писать напряжения со всех банок аккумулятора каждую например минуту. По заполнении памяти - будут затираться самые старые данные.
А когда захочется порассматривать графики изменения напряжения - подключу комп по RS232 (через шнурок от устаревшего мобильника, там как раз преобразователь уровней есть) ,скачаю данные из памяти и загружу в программу GRACE.
Некоторый собственный любительский опыт в общении с Atmega имеется.
Программирование двух контроллеров не пугает. Несколько лет назад я подрабатывал наладчиком в одной фирме, так вот там как раз такая конфигурация в одном изделии была - по SPI общались между собой две Atmega128, и к ним еще периодически подключалась Attiny
с подключенной последовательной памятью для записи данных и переноса их на другое устройство. Я довольно хорошо усвоил как все это работает, да и всегда могу проконсультироваться у тех, кто это сделал.
А вот предложенная схема с делителями меня смущает. Точнее смущает вопрос точности измерения напряжения последней банки. Как тут верно было сказано - шаг АЦП будет разный, и для девятой банки самый крупный.
Не эстетично это решение выглядит.
Потому и думал как бы дифференциальные входы применить.
Но для начала можно и так попробовать, посмотреть что получится.
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Вопрос по использованию АЦП в Attiny26L

Сообщение Kavka »

Точность... ща прикинем :)
10-бит АЦП это 1024 отсчёта. Пусть Vref будет встроенный на 2.56в. Т.е. 1 отсчёт АЦП будет эквивалентен 2.56/1024=0.0025в.
Пусть максимальное измеряемое напряжение Vmax будет 25.6в (в 10 раз больше Vref, для красоты). Соответственно ставим делитель, чтобы получить 1/10 от измеряемого напряжения.
Так как делитель у нас на 10, то 1 отсчёт АЦП будет соответствовать напряжению 0.0025*10=0.025в на измеряемой цепи.
На мой взгляд, даже с такими параметрами точности будет достаточно чтобы следить за "младшей" банкой. Можно даже делители сделать одинаковыми, чтобы расчёты упростить немного.
Так как измерения не спешные, то шумы можно устранять усреднением по нескольким измерениям.
Так что, вроде, хватает точности. :)

По поводу дифференциальных входов - абсолютная точность хуже, чем у "одноканальных" измерений (до 24-27 отсчётов АЦП). Хотя диапазон значительно уже. Может и выйдет лучше, но не на много, думаю. Надо считать... Да и входов-каналов там 8 штук, а у тебя банок 9.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Вопрос по использованию АЦП в Attiny26L

Сообщение vitalik_1984 »

WatchCat писал(а):А вот предложенная схема с делителями меня смущает. Точнее смущает вопрос точности измерения напряжения последней банки. Как тут верно было сказано - шаг АЦП будет разный, и для девятой банки самый крупный.
Не эстетично это решение выглядит.
Не шаг ацп разный (делитель то одинаковый),а погрешность.
ведь на результат измерения влияют и другие банки.
хотя погрешность измерения можно свести на нет если отнимать от последнего измерения предпоследнее, а не сумму всех предыдущих банок, так погрешность не накапливается.
Un=Vn-V(n-1)
Где Un- напряжение на n-ой банке
Vn-абсолютное напряжение относительно минуса.

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

Вернуться в «Микроконтроллеры и ПЛИС»