реклама на сайте
подробности

 
 
> измерительная система на 8 каналов на Atmega 8535, проблема со стабильностью
kofa
сообщение Feb 1 2009, 07:14
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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
Прикрепленные файлы
Прикрепленный файл  Project2.rar ( 83.42 килобайт ) Кол-во скачиваний: 173
 
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 24)
smac
сообщение Feb 2 2009, 19:11
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003



Цитата(kofa @ Feb 2 2009, 20:24) *
RST7, У меня к вам похожий вопрос: каким образом считали? нельзя ли поподробнее алгоритм расчета?

Отвечу вместо RST7, надеюсь он не сильно обидится
8(каналов)*10(бит)*60 000(семплов) = 4,8 Мбит. И это только теория, на практике раза в 1,5 можно смело увеличивать и получим требуемую пропускную способность канала

Сообщение отредактировал smac - Feb 2 2009, 19:16
Go to the top of the page
 
+Quote Post
kofa
сообщение Feb 2 2009, 19:34
Сообщение #17


Участник
*

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



а 60 кСэмплов (при 30 кГц) - это из расчета, что частота дискретизации должна быть минимум в 2 раза выше частоты самого сигнала? я правильно понимаю?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 2 2009, 21:28
Сообщение #18


Йа моск ;)
******

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



Цитата
я правильно понимаю?


Безусловно. А расчет про 24 Гц полосы получен так - 4800 бод через USART - это 480 байт в секунду (фрейм же 10 бит), 3840 полезных бит в секунду, делим на 10 бит на семпл и на 8 каналов, получаем 48 семплов в секунду по каждому каналу, следовательно полоса - 24 Гц.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 4 2009, 22:52
Сообщение #19


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(slog @ Feb 1 2009, 12:33) *
Очень категоричное утверждение. К тому же не соответствует действительности. А что касается AVR так 10 разрядов без дрожания совсем не проблема.

Ну по крайней мере вторая часть утверждения очень даже соответвует действительности. 30ksps по 8-ми каналам (да даже по одному) без потерь в точности не получить.

Афтар! При использовании встроенного АЦП АВРки, при всем желании и 8 бит точности, максимум что светит - 1KSPS на канал.

Выходы такие:
1. Если принципиально пользовать AVR - запараллельте 8 штук относительно дешевых и качественных АЦП - ADS7822 (75KSPS) и одновременно считывайте все 8 каналов. (Но тут возникает проблема пропускной способности канала связи с PC, как уже упоминали выше. AVRка просто не справится с потоком данных ~1MB/s даже на макс частоте, не то что на 4Mhz как Вы планируете..., ну разве только взять AVR с внешней шиной (m162/m64/m128) подключить внешний толстый EMAC или ПЛИС и гнать данные туда).

2. Взять проц помощнее, из Атмелов под Вашу задачу так и просится AT91SAM7xxx, там уже есть встроенный достаточно быстрый АЦП (500KSPS --> 500/8 = 62KSPS на канал, ровно то что требуется) и быстрые интерфейсы - USB/EMAC. Плюс обрабатывать поток 1MB/s 32-х битному процу на 55Mhz всяко полегче чем 8-ми битной AVRке на 16Mhz.
Go to the top of the page
 
+Quote Post
kofa
сообщение Feb 15 2009, 08:16
Сообщение #20


Участник
*

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



Спасибо за предложенные решения! есть над чем подумать..
только хотелось бы понять еще одно - почему не получается нормальной передачи данных через Com на скорости выше 9600 бод. Там ведь на сколько я знаю до 230 кбод можно доходить (если длину провода укорачивать)У меня провод чуть больше полуметра, а на 19200 бод уже данные какие-то левые приходят. С чем это связано?
Go to the top of the page
 
+Quote Post
bloodden
сообщение Feb 15 2009, 09:29
Сообщение #21


Бывалый
***

Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853



С несовпадением частот. Кварц у вас на сколько на АВРе стоит?


--------------------
Заходите кому надо на мой сайт
Go to the top of the page
 
+Quote Post
kofa
сообщение Feb 15 2009, 09:53
Сообщение #22


Участник
*

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



Цитата(bloodden @ Feb 15 2009, 13:29) *
С несовпадением частот. Кварц у вас на сколько на АВРе стоит?

на данный момент от внутреннего работает на 4 МГц (с записью калибровочного байта в OSCCAL )
Но пробовал и внешний на 8 МГц ставить - тоже самое...

Сообщение отредактировал kofa - Feb 15 2009, 09:59
Go to the top of the page
 
+Quote Post
zhevak
сообщение Feb 15 2009, 10:09
Сообщение #23


Знающий
****

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



Цитата(kofa @ Feb 15 2009, 13:16) *
только хотелось бы понять еще одно - почему не получается нормальной передачи данных
через Com на скорости выше 9600 бод. Там ведь на сколько я знаю до 230 кбод можно
доходить (если длину провода укорачивать)

У меня провод чуть больше полуметра, а на 19200 бод уже данные какие-то левые приходят.

С чем это связано?


Причин может быть много.

Одну из них указал bloodden.

Другая, например, -- у Вас что-нибудь со скоростью работы программы. Т.е. приняв байт, прога
может его долго обрабатывать, и на принятый второй байт в UARTe может быть записан третий
принятый байт. Правда, в UARTe имеется буфер FIFO на одн байт, и это улучшает ситуацию, но
но ведь не устраняет полностью проблему быстрого потока и медленной обработки. Что там
конкретно у Вас проге, я не знаю. Поэтому, это только предположения.

Еще одна из причин, может оказаться, что у Вас линия связи имеет большую емкость, и фронты
импульсов завалены. Т.е., опять же, так сходу и не угадать, надо смотреть осциллографом.

Межет быть еще что-нибудь. Народ при желании помочь легко накидает Вам кучу своих
предположений.

При правильной подходе к вопросам передачи данных по телефонной лапше, например, на
скорости 230 кбод, Вы должны легко преодалеть расстояние 500 м и чуть более. Что там у Вас
конктретно происходит, надо смотреть по месту. Угадывать сложно.


-- Доктор, у меня в боку колет уже третий день. Вы случайно не занете что это может быть?


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
Клим
сообщение Feb 15 2009, 10:31
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Вообще то для больших скоростей уарта нужны кварцы с "правильной" частотой, непример 7,3728 MHz или 14,7456. А, если на 4 или 8 - смотрите табличку в даташите, какая там получается ошибка.
Go to the top of the page
 
+Quote Post
bloodden
сообщение Feb 15 2009, 20:05
Сообщение #25


Бывалый
***

Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853



Я имел в виду, что, например: 18 432 000 ГЦ разделить на (ровно!, это важно) 160, получится 115200. Так, как УСАПП делает 16 выборок входного сигнала, получается входная частота для него надо: 115200(например такая скорость надо) *16*10 = 18,432МГц. Если опорная частота не будет нацело делиться(тоже не всегда, это зависит от предделителя) на скорость, то у вас будет ошибка. Её можно посмотреть в даташите на МК для разных скоростей и частот в разделе, посвящённому УСАПП, в конце.
ЗЫ: Извините за сумбурность, воскресенье - день праздников 1111493779.gif и пива с водкой smile.gif


--------------------
Заходите кому надо на мой сайт
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 13:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01458 секунд с 7
ELECTRONIX ©2004-2016