Вопрос по использованию АЦП в Attiny26L
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1455
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
Вопрос по использованию АЦП в Attiny26L
Имеется батарея из девяти последовательно включенных никель-кадмиевых аккумуляторов, работающих с инвертором 12/220в. Это компонент системы автономного энергоснабжения моего дома(обитаю в сельской местности).
В процессе эксплуатации хочется следить за изменением напряжения на _каждой_ банке как при заряде так и при разряде.
Понятно, что хочу поручить эту задачу микроконтроллеру, который имеет для этого встроенный ADC. Так как банок - девять, то и входов ADC должно быть как минимум не меньше. Из имеющегося под рукой нашлась Attiny26L-8SU, была вытащена из сдохшей платы "плавного пуска" двигателя электрокосилки:)
Устройство ее ADC - на прилагаемом рисунке, это чтобы уважаемым Котам лишний раз по даташитам не ползать.
Вопрос - как правильно подключить входы ADC к банкам аккумуляторов? "Просто так" - очевидно не получится, так как опорный источник ADC не бывает выше питания контроллера, а питание +5в. А полное напряжение батареи аккумуляторов в конце заряда останавливается на 15.85вольт.
Значит надо думать в сторону использования дифференциальных входов. И вот тут моя мысля буксует так как входы вроде бы и дифференциальные, но "не совсем" - у них общие концы имеются.
Подскажите пожалуйста - имеет ли задача решение в таком виде или все же придется внешний мультиплексор изобретать, что очень сильно лееень...
В процессе эксплуатации хочется следить за изменением напряжения на _каждой_ банке как при заряде так и при разряде.
Понятно, что хочу поручить эту задачу микроконтроллеру, который имеет для этого встроенный 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
Зачем мультиплексоры?
Очень простое лобовое решение:
С каджой банки свой делитель до напряжения, не выше опорного.
С каждого делителя ко входам ацп.
Последовательно опрашиваете все входы.
Методом вычитаний определяете напряжения на каждой банке.
Все.
Очень простое лобовое решение:
С каджой банки свой делитель до напряжения, не выше опорного.
С каждого делителя ко входам ацп.
Последовательно опрашиваете все входы.
Методом вычитаний определяете напряжения на каждой банке.
Все.
Re: Вопрос по использованию АЦП в Attiny26L
Что-то не понятно вы пишите.Батарея из 9 банок в 15,85 вольт.Значит на каждой банке,если она исправна,будет не более 1,76 вольт.Так что вам внутреннего опорного в 2,56 вольт-самый раз без всяких делителей.
И ещё,я так и не вкурил,дифференциальные входы вам зачем,амперметр хотите сделать?
И ещё,я так и не вкурил,дифференциальные входы вам зачем,амперметр хотите сделать?
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Вопрос по использованию АЦП в Attiny26L
Вот у меня много таких МК (tiny26). Но до его АЦП я пока не добрался. Если, что - всё изучу, проверю в железе и выложу суда. 
I am DX168B and this is my favourite forum on internet!
- aleksey_gregul
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср дек 29, 2010 17:30:34
- Реклама
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Вопрос по использованию АЦП в Attiny26L
Да, верно. В этом МК уже встроенный мультиплексор. Для метода вычитания наверное необходимо сооружать одинаковые делители напряжения для всех используемых входов. Главное, чтобы последний делитель не выступал напряжением выше опорного.
I am DX168B and this is my favourite forum on internet!
- zhu4er
- Вымогатель припоя
- Сообщения: 544
- Зарегистрирован: Пт июн 04, 2010 17:40:13
- Откуда: Непокорный город-герой Севастополь
Re: Вопрос по использованию АЦП в Attiny26L
А проверяли микру? Она рабочая? Не залоченая?Из имеющегося под рукой нашлась Attiny26L-8SU, была вытащена из сдохшей платы "плавного пуска" двигателя электрокосилки:)
А тебе хватит выводов для дальнейшей индикации? Я лично сомневаюсь... Я бы для такой задачи либо второй контроллер подключил бы или Мегу128 взял бы
Даже у стен есть уши...
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Вопрос по использованию АЦП в Attiny26L
А чего не хватит? Помоему где-то у меня есть длиииинный 12-разрядный семисегментный индикатор с контроллером, принимающий данные для индикации из SPI интерфейса. В этой тиньке как раз полуаппаратный USI останется нетронутым. С него-то можно и выводить. Можно индикатор собрать и на логике с использованием сдвиговых регистров и готовых дешифраторов значение>сегмент.
И что в МК может быть заблокированно? LOCK биты? Они сбрасываются при стирании кристалла.
Что ещё? SPIEN? Параллельный программатор это дело решит в два клика.
И что в МК может быть заблокированно? LOCK биты? Они сбрасываются при стирании кристалла.
Что ещё? SPIEN? Параллельный программатор это дело решит в два клика.
I am DX168B and this is my favourite forum on internet!
Re: Вопрос по использованию АЦП в Attiny26L
Лучше сказать, чтобы ни один делитель не выдавал напряжения выше опорногоDX168B писал(а):Главное, чтобы последний делитель не выступал напряжением выше опорного.
WatchCat, в такой схеме надо учесть, что погрешности на каждом канале будут разные, и цена одного "тика" АЦП тоже (в 9 раз между первым и последним каналами). Вывод - отнестись с должным вниманием к вычислениям... Удачи!
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1455
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
Re: Вопрос по использованию АЦП в Attiny26L
Микросхема вполне живая. На плате от косилки был аж разъемчик для программатора, правда ответную часть такую я не нашел, просто проводки прицепил, проверил, на запросы софта отзывается.
Данные из этой Tiny действительно буду доставать по SPI, а всем остальным будет заниматься поставленная рядом Atmega16A, просто потому что их у меня есть. Найду энергонезависимую память с последовательным доступом и буду в нее писать напряжения со всех банок аккумулятора каждую например минуту. По заполнении памяти - будут затираться самые старые данные.
А когда захочется порассматривать графики изменения напряжения - подключу комп по RS232 (через шнурок от устаревшего мобильника, там как раз преобразователь уровней есть) ,скачаю данные из памяти и загружу в программу GRACE.
Некоторый собственный любительский опыт в общении с Atmega имеется.
Программирование двух контроллеров не пугает. Несколько лет назад я подрабатывал наладчиком в одной фирме, так вот там как раз такая конфигурация в одном изделии была - по SPI общались между собой две Atmega128, и к ним еще периодически подключалась Attiny
с подключенной последовательной памятью для записи данных и переноса их на другое устройство. Я довольно хорошо усвоил как все это работает, да и всегда могу проконсультироваться у тех, кто это сделал.
А вот предложенная схема с делителями меня смущает. Точнее смущает вопрос точности измерения напряжения последней банки. Как тут верно было сказано - шаг АЦП будет разный, и для девятой банки самый крупный.
Не эстетично это решение выглядит.
Потому и думал как бы дифференциальные входы применить.
Но для начала можно и так попробовать, посмотреть что получится.
Данные из этой Tiny действительно буду доставать по SPI, а всем остальным будет заниматься поставленная рядом Atmega16A, просто потому что их у меня есть. Найду энергонезависимую память с последовательным доступом и буду в нее писать напряжения со всех банок аккумулятора каждую например минуту. По заполнении памяти - будут затираться самые старые данные.
А когда захочется порассматривать графики изменения напряжения - подключу комп по RS232 (через шнурок от устаревшего мобильника, там как раз преобразователь уровней есть) ,скачаю данные из памяти и загружу в программу GRACE.
Некоторый собственный любительский опыт в общении с Atmega имеется.
Программирование двух контроллеров не пугает. Несколько лет назад я подрабатывал наладчиком в одной фирме, так вот там как раз такая конфигурация в одном изделии была - по SPI общались между собой две Atmega128, и к ним еще периодически подключалась Attiny
с подключенной последовательной памятью для записи данных и переноса их на другое устройство. Я довольно хорошо усвоил как все это работает, да и всегда могу проконсультироваться у тех, кто это сделал.
А вот предложенная схема с делителями меня смущает. Точнее смущает вопрос точности измерения напряжения последней банки. Как тут верно было сказано - шаг АЦП будет разный, и для девятой банки самый крупный.
Не эстетично это решение выглядит.
Потому и думал как бы дифференциальные входы применить.
Но для начала можно и так попробовать, посмотреть что получится.
Re: Вопрос по использованию АЦП в Attiny26L
Точность... ща прикинем 
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.
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 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Вопрос по использованию АЦП в Attiny26L
Не шаг ацп разный (делитель то одинаковый),а погрешность.WatchCat писал(а):А вот предложенная схема с делителями меня смущает. Точнее смущает вопрос точности измерения напряжения последней банки. Как тут верно было сказано - шаг АЦП будет разный, и для девятой банки самый крупный.
Не эстетично это решение выглядит.
ведь на результат измерения влияют и другие банки.
хотя погрешность измерения можно свести на нет если отнимать от последнего измерения предпоследнее, а не сумму всех предыдущих банок, так погрешность не накапливается.
Un=Vn-V(n-1)
Где Un- напряжение на n-ой банке
Vn-абсолютное напряжение относительно минуса.
Мне кажется лучше для точности быстренько пробежаться по АЦПшкам, а потом уже вычислениями заниматься
чтоб мгновенные изменения напряжения не сильно влияли.
В поисках истины человек развивается.



