Перейти к содержанию
    

измерительная система на 8 каналов на Atmega 8535

Здравствуйте, уважаемые участники форума!

 

Мне требуется сделать систему измерения напряжения на 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 порта… в связи с этим хочу спросить-на сколько оно стабильно? Не может ли из-за него косячить? Я его пока никак не стабилизировал…

 

Кто знаком с этим, подскажите пожалуйста, что можно сделать!

Буду рад услышать все замечания и поправки!

Project2.rar

Изменено пользователем kofa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

datasheet читали? Где сопротивления по входу? Где сплошная земля. К тому же очень желательно оставить фольгу на стороне компонентов. К тому же, при данных раскладах, МК желательно запаять в схему а не в панельку вставить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) реально ли получить без дерганий все 10 бит ваще и что для этого надо? Или 9-это предел, а колебания младшего бита сглаживать усреднением только?

1-2 младших разряда даже на приличных АЦП отбрасывают, а на меге я думаю 9-это предел даже с усреднением.

При этом ни о каких 30кГц по 8 каналам не может быть и речи

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) реально ли получить без дерганий все 10 бит ваще и что для этого надо? Или 9-это предел, а колебания младшего бита сглаживать усреднением только?

Вы пока видите помехи от питания, оно же у Вас и опорное. Поэтому ставить экранированный провод на вход АЦП пока рано, надо с питанием и опорным разобраться...

Про прямое измерение 30 КГц забудьте... Читайте даташит, там указана полоса АЦП. Хотя, если пропускать периоды и синронизироваться как следует, то можно попробовать оцифровывать, например, вершину каждого 10-го импульса. Даже видел такое в реальности, но там дрожало еще больше разрядов :-) Или я Вас не так понял.

 

2) Все ли верно по схеме у меня или может чего-то не хватает и поэтому такой косяк?

Не стоит AREF вот так на питание заводить. Решите попробовать внутренний опорник программно подключить, он и накроется. И, скорее всего, все АЦП грохнется. Работайте строго по даташиту (пока опыта нет :-)

 

3) питание использую от USB порта… в связи с этим хочу спросить-на сколько оно стабильно? Не может ли из-за него косячить? Я его пока никак не стабилизировал…

Для такого питания результат неплохой. Если хотите бОльшего - стабилизируйте питание. Тогда будет плясать только младший разряд. Чтобы и он не плясал - применяйте хороший опорник. Даже ТЛ431 даст приемлемый результат. Ограничивайте полосу входного сигнала - для начала, даже после батарейки, прямо около ножек АЦП включите RC фильтр. И все равно может потребоваться программная обработка, но это будет видно после изменения схемы.

 

 

 

 

1-2 младших разряда даже на приличных АЦП отбрасывают, а на меге я думаю 9-это предел даже с усреднением.

При этом ни о каких 30кГц по 8 каналам не может быть и речи

У меня все 10 нормально себя ведут, я ничего не отбрасываю. С оверсэмплингом получал, для пробы, 11 стабильных. Но вот 12-13, как в обещалось, уже не получается. Но, сами понимаете, это сумма топологии, фильтрации входного сигнала и прочие программные заморочки. Проще более хороший АЦП применить. Даже микрочиповский, и то выигрыш дает. Но мне этого не надо, мне и так хорошо с 10 разрядами...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1-2 младших разряда даже на приличных АЦП отбрасывают, а на меге я думаю 9-это предел даже с усреднением.

При этом ни о каких 30кГц по 8 каналам не может быть и речи

Очень категоричное утверждение. К тому же не соответствует действительности. А что касается AVR так 10 разрядов без дрожания совсем не проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Вас три проблемы:

 

1. Надо поставить на Aref хороший опорник. 

 

 

2. Надо сделать так, чтобы к пинам АЦП подводились сигналы от источника с выходным сопротивлением не более, если не ошибаюсь, 2кОм

 

3. Отфильтровать полосу сигнала.  Кстати, 30 кГц на каждый канал  Вы никогда не получите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2. Надо сделать так, чтобы к пинам АЦП подводились сигналы от источника с выходным сопротивлением не более, если не ошибаюсь, 2кОм

Так это, может быть повторитель на ОУ поставить? С согласованием импедансов проблемы тогда отпадут. Ну и конечно RC фильтры по входу не повредят (ИМХО).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большое спасибо всем за ответы!! в ближайшее время переделаю схему с учетом всего сказанного, и посмотрим.

 

 

3. Отфильтровать полосу сигнала.  Кстати, 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 кГц.

 

Я Вас разочаровал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А поскольку у Вас не один канал, а восемь, то полученное значение нужно поделить еще

на весемь. Таким образом, если Вы хотите получить максимальное разрешение (10 бит) по всем

каналам, то максимум, на что Вы можете рассчитывать, -- это 0.5 .. 2 кГц.

 

Я Вас разочаровал?

 

Я Вам больше скажу. Заявленным методом передачи данных

Результаты через USART на COM-порт PC.

Скорость 4800 бит/c.

можно будет просунуть всего-то 48 измерений в секунду в каждом канале :) Смысл в полосе 30кГц, если информационный канал позволит максимум 24Гц. Даже если топикстартер каким-либо образом асилит 8 каналов по 60ксемплов/с (для обеспечения заявленной полосы в 30кГц), то общий поток будет 4.8Мбит/с. Тут в пору эзернетом лить.

 

Надо бы осетра некисло урезать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может немного не в тему, но может кто скажет (а лучше ткнет носом) каков разброс (а если есть и другие параметры) внутренней опоры?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дейтшит по Мега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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А поскольку у Вас не один канал, а восемь, то полученное значение нужно поделить еще

на весемь

Плюс задержки на переключение, иначе будем мерить переходные процессы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Простите, я что-то не совсем понял, как вы посчитали...

1) я вот до конца не пойму-о какой частоте здесь идет речь в даташите: "требуется входная частота в диапазоне от 50 до 200 кГц"-это частота работы самого АЦП? или частота дискретизации входного сигнала? или это одно и то же?

 

2)не пойму формулу, по которой вы считали... Почему так?

 

1.

Имеется ввиду тактовая частота АЦП. Действительно, она не совсем корректно названа "входной", т.к. такое

определение вносит путаницу между тактовой частотой и входным (измеряемым, нашим) сигналом, который

тоже может носить периодический характер. На самом деле, входная частота -- это тактовая частота АЦП, т.е.

частота для последовательного приближения.

 

2.

Сложно ничего нет. Все очень даже просто. (Смотрите ДШ.) Для одного измерения АЦП требуется 13 (13.5 и 25

тактов тактовой частоты, в зависимости от режима работы.) Предположим, что у нас "ручной" запуск и к тому же

не первый, значит на одно преобразование нам потребуется 13 тактов. Если мы тактируем АЦП частотой 200 кГц,

то максимальная частота, с которой мы будем получать измеренные значения составит

 

200 / 13 = 15.4 кГц.

 

И это, как заметил MrYuran без учета задержек на переходные процессы.

 

Поскольку АЦП у нас один на все восемь каналов, то мы вынуждены его "по кругу" подключать к каждому

каналу. Таким образом, пока мы оцифровываем один канал, остальные семь находжятся в "свободном полете".

Это значит, что если мы выберем какой-то канал, то в лучшем случае, мы сможем его обрабатывать один раз

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

скорости оцифровки АЦП. Скорость получения 10-разрядных данных мы уже посчитали, она чуть более 15

тысяч отсчетов в секунду. Следовательно, для каждого из восьми каналов, частота получения отсчетов

составит

 

15.4 / 8 = 1925 отсчетов в секунду.

 

Извините, если я очень подробно разжевал механику расчетов. Откройте ДШ и посмотрите на приведенные там

диагшраммы сигналов. Сложного там ничего нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. ........

2. .....

3. .......

 

Извините, если я очень подробно разжевал механику расчетов. Откройте ДШ и посмотрите на приведенные там

диагшраммы сигналов. Сложного там ничего нет.

 

Спасибо за ответ. Теперь все вполне понятно.

 

 

Я Вам больше скажу. Заявленным методом передачи данных

 

можно будет просунуть всего-то 48 измерений в секунду в каждом канале :) Смысл в полосе 30кГц, если информационный канал позволит максимум 24Гц. Даже если топикстартер каким-либо образом асилит 8 каналов по 60ксемплов/с (для обеспечения заявленной полосы в 30кГц), то общий поток будет 4.8Мбит/с. Тут в пору эзернетом лить.

RST7, У меня к вам похожий вопрос: каким образом считали? нельзя ли поподробнее алгоритм расчета?

Изменено пользователем kofa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...