|
измерительная система на 8 каналов на Atmega 8535, проблема со стабильностью |
|
|
|
Feb 1 2009, 07:14
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 4-01-08
Пользователь №: 33 814

|
Здравствуйте, уважаемые участники форума! Мне требуется сделать систему измерения напряжения на 8 каналов. Сделал вот по такой схеме(принципиальная схема в архиве).МК- Atmega 8535. Каналы опрашиваются поочередно с 1-го по 8-й. После каждого переключения канала делаю холостое преобразование для исключения взаимовлияния каналов. Диапазон входных напряжений от 0 до 5 В. Частотный диапазон входных сигналов хотелось бы хотя бы до 30 кГц, но пока проверяю на постоянных. Точность мне нужна максимально возможная в данной ситуации, в общем беру все 10 бит. Использую режим ADC Noise reduction. Результаты через USART на COM-порт PC. Скорость 4800 бит/c. В качестве экспериментального варианта сделал вот на такой плате (схема в архиве) Для проверки подаю напряжение от 2-х батареек через переменные резисторы. (0-3В) В общем все как бы работает, вот только младшие 2 (часто и 3) разряда очень не стабильны. Дергаются больно сильно. Переменники вначале на 100 кОм брал, пробовал и меньше - на 4.7 кОм, многооборотный – картина не менялась. Провода, что от резисторов к АЦП шли – пробовал вместо простых экранированные ставить – тоже не помогло. Вначале все делал от внутреннего RC-генератора на 4 МГц, но пробовал и внешний на 8 МГц ставить (правда на проводках, не знаю как там с помехоустойчивостью у него) Я девайс подобного рода первый раз делаю, опыта практически нет, поэтому возникает немало вопросов: 1) реально ли получить без дерганий все 10 бит ваще и что для этого надо? Или 9-это предел, а колебания младшего бита сглаживать усреднением только? 2) Все ли верно по схеме у меня или может чего-то не хватает и поэтому такой косяк? 3) питание использую от USB порта… в связи с этим хочу спросить-на сколько оно стабильно? Не может ли из-за него косячить? Я его пока никак не стабилизировал… Кто знаком с этим, подскажите пожалуйста, что можно сделать! Буду рад услышать все замечания и поправки!
Сообщение отредактировал kofa - Feb 1 2009, 07:45
|
|
|
|
|
Feb 1 2009, 08:27
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
1) реально ли получить без дерганий все 10 бит ваще и что для этого надо? Или 9-это предел, а колебания младшего бита сглаживать усреднением только? Вы пока видите помехи от питания, оно же у Вас и опорное. Поэтому ставить экранированный провод на вход АЦП пока рано, надо с питанием и опорным разобраться... Про прямое измерение 30 КГц забудьте... Читайте даташит, там указана полоса АЦП. Хотя, если пропускать периоды и синронизироваться как следует, то можно попробовать оцифровывать, например, вершину каждого 10-го импульса. Даже видел такое в реальности, но там дрожало еще больше разрядов :-) Или я Вас не так понял. 2) Все ли верно по схеме у меня или может чего-то не хватает и поэтому такой косяк? Не стоит AREF вот так на питание заводить. Решите попробовать внутренний опорник программно подключить, он и накроется. И, скорее всего, все АЦП грохнется. Работайте строго по даташиту (пока опыта нет :-) 3) питание использую от USB порта… в связи с этим хочу спросить-на сколько оно стабильно? Не может ли из-за него косячить? Я его пока никак не стабилизировал… Для такого питания результат неплохой. Если хотите бОльшего - стабилизируйте питание. Тогда будет плясать только младший разряд. Чтобы и он не плясал - применяйте хороший опорник. Даже ТЛ431 даст приемлемый результат. Ограничивайте полосу входного сигнала - для начала, даже после батарейки, прямо около ножек АЦП включите RC фильтр. И все равно может потребоваться программная обработка, но это будет видно после изменения схемы. Цитата(MrYuran @ Feb 1 2009, 10:15)  1-2 младших разряда даже на приличных АЦП отбрасывают, а на меге я думаю 9-это предел даже с усреднением. При этом ни о каких 30кГц по 8 каналам не может быть и речи У меня все 10 нормально себя ведут, я ничего не отбрасываю. С оверсэмплингом получал, для пробы, 11 стабильных. Но вот 12-13, как в обещалось, уже не получается. Но, сами понимаете, это сумма топологии, фильтрации входного сигнала и прочие программные заморочки. Проще более хороший АЦП применить. Даже микрочиповский, и то выигрыш дает. Но мне этого не надо, мне и так хорошо с 10 разрядами...
|
|
|
|
|
Feb 1 2009, 10:33
|
Знающий
   
Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489

|
Цитата(MrYuran @ Feb 1 2009, 11:15)  1-2 младших разряда даже на приличных АЦП отбрасывают, а на меге я думаю 9-это предел даже с усреднением. При этом ни о каких 30кГц по 8 каналам не может быть и речи Очень категоричное утверждение. К тому же не соответствует действительности. А что касается AVR так 10 разрядов без дрожания совсем не проблема.
--------------------
В действительности всё не так, как на самом деле.
|
|
|
|
|
Feb 1 2009, 14:29
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(kofa @ Feb 1 2009, 11:14)  У Вас три проблемы: 1. Надо поставить на Aref хороший опорник. 2. Надо сделать так, чтобы к пинам АЦП подводились сигналы от источника с выходным сопротивлением не более, если не ошибаюсь, 2кОм 3. Отфильтровать полосу сигнала. Кстати, 30 кГц на каждый канал Вы никогда не получите.
|
|
|
|
|
Feb 1 2009, 18:13
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 4-01-08
Пользователь №: 33 814

|
Большое спасибо всем за ответы!! в ближайшее время переделаю схему с учетом всего сказанного, и посмотрим. Цитата(_Pasha @ Feb 1 2009, 18:29)  3. Отфильтровать полосу сигнала. Кстати, 30 кГц на каждый канал Вы никогда не получите. а какой предел по частоте? а не на каждый можно? как это можно правильно посчитать?
|
|
|
|
|
Feb 1 2009, 20:30
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(kofa @ Feb 1 2009, 23:13)  а какой предел по частоте? а не на каждый можно? как это можно правильно посчитать? Дейтшит по Мега8535, стр. 206 внизу: Цитата By default, the successive approximation circuitry requires an input clock frequency between 50 kHz and 200 kHz to get maximum resolution. If a lower resolution than 10 bits is needed, the input clock frequency to the ADC can be higher than 200 kHz to get a higher sample rate. Перевод: По умолчанию для схемы последовательного приближения что бы получить максимальное разрешение требуется входная частота в диапазоне от 50 до 200 кГц. Если нужно разрешение меньшее, чем 10 бит, то для получения максимальной скорости входная частота АЦП может быть и выше 200 кГц. Пояснение: Зная, что для преобразования требуется 13 (и в некоторых случаях более) тактов, то, соответственно, получаем максимальную скорость ощифровки (50..200) / 13 = 3.85 .. 15.4 кГц А поскольку у Вас не один канал, а восемь, то полученное значение нужно поделить еще на весемь. Таким образом, если Вы хотите получить максимальное разрешение (10 бит) по всем каналам, то максимум, на что Вы можете рассчитывать, -- это 0.5 .. 2 кГц. Я Вас разочаровал?
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Feb 1 2009, 21:22
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата А поскольку у Вас не один канал, а восемь, то полученное значение нужно поделить еще на весемь. Таким образом, если Вы хотите получить максимальное разрешение (10 бит) по всем каналам, то максимум, на что Вы можете рассчитывать, -- это 0.5 .. 2 кГц.
Я Вас разочаровал? Я Вам больше скажу. Заявленным методом передачи данных Цитата Результаты через USART на COM-порт PC. Скорость 4800 бит/c. можно будет просунуть всего-то 48 измерений в секунду в каждом канале  Смысл в полосе 30кГц, если информационный канал позволит максимум 24Гц. Даже если топикстартер каким-либо образом асилит 8 каналов по 60ксемплов/с (для обеспечения заявленной полосы в 30кГц), то общий поток будет 4.8Мбит/с. Тут в пору эзернетом лить. Надо бы осетра некисло урезать
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Feb 2 2009, 12:40
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 4-01-08
Пользователь №: 33 814

|
Цитата(zhevak @ Feb 2 2009, 00:30)  Дейтшит по Мега8535, стр. 206 внизу: Цитата
By default, the successive approximation circuitry requires an input clock frequency between 50 kHz and 200 kHz to get maximum resolution. If a lower resolution than 10 bits is needed, the input clock frequency to the ADC can be higher than 200 kHz to get a higher sample rate.
Перевод: По умолчанию для схемы последовательного приближения что бы получить максимальное разрешение требуется входная частота в диапазоне от 50 до 200 кГц. Если нужно разрешение меньшее, чем 10 бит, то для получения максимальной скорости входная частота АЦП может быть и выше 200 кГц.
Пояснение: Зная, что для преобразования требуется 13 (и в некоторых случаях более) тактов, то, соответственно, получаем максимальную скорость ощифровки
(50..200) / 13 = 3.85 .. 15.4 кГц
А поскольку у Вас не один канал, а восемь, то полученное значение нужно поделить еще на весемь. Таким образом, если Вы хотите получить максимальное разрешение (10 бит) по всем каналам, то максимум, на что Вы можете рассчитывать, -- это 0.5 .. 2 кГц. Простите, я что-то не совсем понял, как вы посчитали... 1) я вот до конца не пойму-о какой частоте здесь идет речь в даташите: "требуется входная частота в диапазоне от 50 до 200 кГц"-это частота работы самого АЦП? или частота дискретизации входного сигнала? или это одно и то же? 2)не пойму формулу, по которой вы считали... Почему так?
Сообщение отредактировал kofa - Feb 2 2009, 12:54
|
|
|
|
|
Feb 2 2009, 13:33
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(kofa @ Feb 2 2009, 17:40)  Простите, я что-то не совсем понял, как вы посчитали... 1) я вот до конца не пойму-о какой частоте здесь идет речь в даташите: "требуется входная частота в диапазоне от 50 до 200 кГц"-это частота работы самого АЦП? или частота дискретизации входного сигнала? или это одно и то же?
2)не пойму формулу, по которой вы считали... Почему так? 1. Имеется ввиду тактовая частота АЦП. Действительно, она не совсем корректно названа "входной", т.к. такое определение вносит путаницу между тактовой частотой и входным (измеряемым, нашим) сигналом, который тоже может носить периодический характер. На самом деле, входная частота -- это тактовая частота АЦП, т.е. частота для последовательного приближения. 2. Сложно ничего нет. Все очень даже просто. (Смотрите ДШ.) Для одного измерения АЦП требуется 13 (13.5 и 25 тактов тактовой частоты, в зависимости от режима работы.) Предположим, что у нас "ручной" запуск и к тому же не первый, значит на одно преобразование нам потребуется 13 тактов. Если мы тактируем АЦП частотой 200 кГц, то максимальная частота, с которой мы будем получать измеренные значения составит 200 / 13 = 15.4 кГц. И это, как заметил MrYuran без учета задержек на переходные процессы. Поскольку АЦП у нас один на все восемь каналов, то мы вынуждены его "по кругу" подключать к каждому каналу. Таким образом, пока мы оцифровываем один канал, остальные семь находжятся в "свободном полете". Это значит, что если мы выберем какой-то канал, то в лучшем случае, мы сможем его обрабатывать один раз из восьми, т.е. скорость (частота), с которой мы можем получать данные с канала будет в весемь раз меньше скорости оцифровки АЦП. Скорость получения 10-разрядных данных мы уже посчитали, она чуть более 15 тысяч отсчетов в секунду. Следовательно, для каждого из восьми каналов, частота получения отсчетов составит 15.4 / 8 = 1925 отсчетов в секунду. Извините, если я очень подробно разжевал механику расчетов. Откройте ДШ и посмотрите на приведенные там диагшраммы сигналов. Сложного там ничего нет.
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Feb 2 2009, 17:24
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 4-01-08
Пользователь №: 33 814

|
Цитата(zhevak @ Feb 2 2009, 17:33)  1. ........ 2. ..... 3. .......
Извините, если я очень подробно разжевал механику расчетов. Откройте ДШ и посмотрите на приведенные там диагшраммы сигналов. Сложного там ничего нет. Спасибо за ответ. Теперь все вполне понятно. Цитата(Rst7 @ Feb 2 2009, 01:22)  Я Вам больше скажу. Заявленным методом передачи данных можно будет просунуть всего-то 48 измерений в секунду в каждом канале  Смысл в полосе 30кГц, если информационный канал позволит максимум 24Гц. Даже если топикстартер каким-либо образом асилит 8 каналов по 60ксемплов/с (для обеспечения заявленной полосы в 30кГц), то общий поток будет 4.8Мбит/с. Тут в пору эзернетом лить. RST7, У меня к вам похожий вопрос: каким образом считали? нельзя ли поподробнее алгоритм расчета?
Сообщение отредактировал kofa - Feb 2 2009, 17:34
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|