Страница 1 из 1

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

Добавлено: Чт фев 10, 2011 02:44:59
WatchCat
Имеется батарея из девяти последовательно включенных никель-кадмиевых аккумуляторов, работающих с инвертором 12/220в. Это компонент системы автономного энергоснабжения моего дома(обитаю в сельской местности).
В процессе эксплуатации хочется следить за изменением напряжения на _каждой_ банке как при заряде так и при разряде.
Понятно, что хочу поручить эту задачу микроконтроллеру, который имеет для этого встроенный ADC. Так как банок - девять, то и входов ADC должно быть как минимум не меньше. Из имеющегося под рукой нашлась Attiny26L-8SU, была вытащена из сдохшей платы "плавного пуска" двигателя электрокосилки:)
Устройство ее ADC - на прилагаемом рисунке, это чтобы уважаемым Котам лишний раз по даташитам не ползать.
Вопрос - как правильно подключить входы ADC к банкам аккумуляторов? "Просто так" - очевидно не получится, так как опорный источник ADC не бывает выше питания контроллера, а питание +5в. А полное напряжение батареи аккумуляторов в конце заряда останавливается на 15.85вольт.
Значит надо думать в сторону использования дифференциальных входов. И вот тут моя мысля буксует так как входы вроде бы и дифференциальные, но "не совсем" - у них общие концы имеются.
Подскажите пожалуйста - имеет ли задача решение в таком виде или все же придется внешний мультиплексор изобретать, что очень сильно лееень...

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

Добавлено: Чт фев 10, 2011 12:57:56
aleksey_gregul
Зачем мультиплексоры?
Очень простое лобовое решение:
С каджой банки свой делитель до напряжения, не выше опорного.
С каждого делителя ко входам ацп.
Последовательно опрашиваете все входы.
Методом вычитаний определяете напряжения на каждой банке.
Все.

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

Добавлено: Чт фев 10, 2011 14:54:11
Vov123
Что-то не понятно вы пишите.Батарея из 9 банок в 15,85 вольт.Значит на каждой банке,если она исправна,будет не более 1,76 вольт.Так что вам внутреннего опорного в 2,56 вольт-самый раз без всяких делителей.
И ещё,я так и не вкурил,дифференциальные входы вам зачем,амперметр хотите сделать?

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

Добавлено: Чт фев 10, 2011 15:05:56
DX168B
Вот у меня много таких МК (tiny26). Но до его АЦП я пока не добрался. Если, что - всё изучу, проверю в железе и выложу суда. :)

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

Добавлено: Чт фев 10, 2011 15:55:49
aleksey_gregul
Изображение

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

Добавлено: Чт фев 10, 2011 18:44:52
DX168B
Да, верно. В этом МК уже встроенный мультиплексор. Для метода вычитания наверное необходимо сооружать одинаковые делители напряжения для всех используемых входов. Главное, чтобы последний делитель не выступал напряжением выше опорного.

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

Добавлено: Чт фев 10, 2011 21:32:51
zhu4er
Из имеющегося под рукой нашлась Attiny26L-8SU, была вытащена из сдохшей платы "плавного пуска" двигателя электрокосилки:)
А проверяли микру? Она рабочая? Не залоченая?
А тебе хватит выводов для дальнейшей индикации? Я лично сомневаюсь... Я бы для такой задачи либо второй контроллер подключил бы или Мегу128 взял бы

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

Добавлено: Чт фев 10, 2011 21:38:09
DX168B
А чего не хватит? Помоему где-то у меня есть длиииинный 12-разрядный семисегментный индикатор с контроллером, принимающий данные для индикации из SPI интерфейса. В этой тиньке как раз полуаппаратный USI останется нетронутым. С него-то можно и выводить. Можно индикатор собрать и на логике с использованием сдвиговых регистров и готовых дешифраторов значение>сегмент.
И что в МК может быть заблокированно? LOCK биты? Они сбрасываются при стирании кристалла.
Что ещё? SPIEN? Параллельный программатор это дело решит в два клика.

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

Добавлено: Чт фев 10, 2011 22:02:23
Kavka
DX168B писал(а):Главное, чтобы последний делитель не выступал напряжением выше опорного.
Лучше сказать, чтобы ни один делитель не выдавал напряжения выше опорного :)

WatchCat, в такой схеме надо учесть, что погрешности на каждом канале будут разные, и цена одного "тика" АЦП тоже (в 9 раз между первым и последним каналами). Вывод - отнестись с должным вниманием к вычислениям... Удачи!

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

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

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

Добавлено: Пт фев 11, 2011 11:05:51
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.

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

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

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