KolyanV
Dec 28 2005, 11:15
Здравствуйте!
Стоит передо мной задача, под которую необходимо подобрать АЦП. Естественно, первым делом приходит мысль использовать контроллер с его встроенным АЦП. В качестве оного был выбран ATMega8. Согласно даташиту, АЦП контроллера может использовать опорное напрядение от 2В до Vdd.
Вероятно, в данных пределах гарантируются допуски электрических параметров и разрядности указанных в даташте. Ну а как изменится качество, если, например, в качестве опорного взять 1.2 В.
Кто небудь задавался подобным вопросом, есть ли опыт?
Может быть при таких условиях АЦП вообще не будет работать ?
Заранее благодарю за ответ!
Aleks17
Dec 28 2005, 11:33
А зачем вы себе жизнь усложняете ?
Если нужно АЦП на низковольтовые сигналы то и подбирайте оное. А заставлять МК работать в областях недокументировааной работоспособности по-моему очень глупо (в первую очередь из-за того что такие изделия НЕЛЬЗЯ тиражировать по определению).
АЦП в МК и так тяжело живётся...
Есть такая вещь у Analog Devices - ADUC называется (8051 + довольно сильные для МК АЦП и ЦАП) - может лучше туда взор обратить.
У меня бала подобная задача, но ацп Mega даст максимум 9-10 значащих бита, ппи этом щумя, поэтому я в своё время взял внешнее ацп ADS1210-11 на которой по ДШ можно вытащить 20-21 бит, но реально 17-19, при относительно небольшом шуме, да и опору для точных измерений лучше выносить и термостатировать. А на счёт уменьшения опоры не пробовал.
Цитата(KolyanV @ Dec 28 2005, 14:15)

Здравствуйте!
Стоит передо мной задача, под которую необходимо подобрать АЦП. Естественно, первым делом приходит мысль использовать контроллер с его встроенным АЦП. В качестве оного был выбран ATMega8. Согласно даташиту, АЦП контроллера может использовать опорное напрядение от 2В до Vdd.
Вероятно, в данных пределах гарантируются допуски электрических параметров и разрядности указанных в даташте. Ну а как изменится качество, если, например, в качестве опорного взять 1.2 В.
Кто небудь задавался подобным вопросом, есть ли опыт?
Может быть при таких условиях АЦП вообще не будет работать ?
Заранее благодарю за ответ!
При опоре 1.2В Вы кроме шумомой дорожки с ATMega8 АЦП не получите... причем с амплитудным ограничением. Так же есть и другой вариант - получите постоянную составляющую на максимальном значении разрядности, т.к. тракт будет 'забит' (войдет в насыщение от шума). Шум в этом случае будет суммарным, как собственные шумы контроллера, так и шумы предыдущих каскадов измерительной схемы. Лучше под задачу ищите и ставте внешнее АЦП с приемлемым входным диапазоном входного напряжения.
defunct
Dec 28 2005, 14:13
У mega48/88/168 internal ref напряжение если мне не изменяет память - 1.1V, а значит и Vref можно задать равным 1.2V. Может быть они вам подойдут? m88 практически полный функциональный аналог m8.
KolyanV
Dec 28 2005, 18:25
Цитата(Aleks17 @ Dec 28 2005, 13:33)

А зачем вы себе жизнь усложняете ?
Если нужно АЦП на низковольтовые сигналы то и подбирайте оное. А заставлять МК работать в областях недокументировааной работоспособности по-моему очень глупо (в первую очередь из-за того что такие изделия НЕЛЬЗЯ тиражировать по определению).
АЦП в МК и так тяжело живётся...
Есть такая вещь у Analog Devices - ADUC называется (8051 + довольно сильные для МК АЦП и ЦАП) - может лучше туда взор обратить.
Приходится усложнять ... :-(
Как это часто бывает, необходимость есть, а бюджет давит. Дело в том, что даный контроллер+АЦП должны быть состовляющей системы многоканального сбора данных... И в перспективе для тиражного и не очень дорогого устройства. Чтобы удовлетворять поставленным требованиям, на каждый канал должно ставиться отдельное АЦП. Вариант использования для нескольких каналов одного АЦП через мультиплексор не подходит, в виду теоретически возможной разницы потенциалов между каналами до 200 В и больше. Вариант гальванической развязки источников сигнала и мультеплесирующего АЦП тоже отпадает, в связи со сложностями развязки с приемлемым искажением в заданом частотном диапазоне. Приемлемым становится использовать недорогие контроллеры с АЦП на каждый канал. ATmega8,ATMega88 - недорогие контроллеры со стоимостью до 3-4$. ADUC в данном случае очень интересный вариант. Но к сожалению стоимость его выше 7-8 у.е (если умножить, скажем на 8 каналов, это уже будет 64 у.е только на одни контроллеры, а без них еще сколько всякого надо ...). К тому же над сигналом необходимо производить первичную цифровую обработку, а MIPS-ов у данного x8051, по моему маловато...
Потому и приходится искать не дорогие, но рабочие варианты ...
Aleks17
Dec 28 2005, 18:33
А почему такое ограничение по опорному напряжению? Ежели у вас такие разбросы в напруге, то как я понимаю там делители стоят повсюду. Делайте сигнал больше.
По поводу ADUC - есть с армовским ядром.
+ в соседней конфе MSP430 у них и АЦП 12-разрядное и процессор 16-и разрядный и цена как у AVR.
KolyanV
Dec 28 2005, 19:28
Цитата(Aleks17 @ Dec 28 2005, 20:33)

А почему такое ограничение по опорному напряжению? Ежели у вас такие разбросы в напруге, то как я понимаю там делители стоят повсюду. Делайте сигнал больше.
По поводу ADUC - есть с армовским ядром.
+ в соседней конфе MSP430 у них и АЦП 12-разрядное и процессор 16-и разрядный и цена как у AVR.
Ограничение по опорному напряжению связано с тем, что уровень сигнала микровольтный. Максимальный диапазон значений - до 1В, средний диапазон в процессе эксплуатации будет, вероятно в пределах 100-250мв. Разброс связан с тем, цифруемый сигнал может быть гальванически связанным с фазой электросети, причем, разные каналы - с разными фазами. Экономически более обоснованным является использование меньшего опорного напряжения, чем использование предварительных каскадов усиления. Насчет MSP430, благодарю за совет! Думаю, это интересный вариант решения. Буду рыть документацию ...
Цитата(defunct @ Dec 28 2005, 16:13)

У mega48/88/168 internal ref напряжение если мне не изменяет память - 1.1V, а значит и Vref можно задать равным 1.2V. Может быть они вам подойдут? m88 практически полный функциональный аналог m8.
Спасибо за совет! Интересный вариант.
Было бы хорошо знать, какие допуски искажений (шумов +нелинейносте и т.д) при таком низком опорном напряжении ...
Но, вероятно, это врятли кто-то сможет сказать ... Тут надобно эксперементировать и эксперементировать ....
Aleks17
Dec 29 2005, 02:33
Микровольтный сигнал - это круто. Скажу сразу - микровольты (единицы, десятки, сотни и даже наверное тысячи) на встроенном АЦП МК, да ещё и в варианте униполярного АЦП вам не померить. В шумах всё утонет.
Может поконкретнее объясните задачу, что именно измеряете - может какая идея и посетит.
arttab
Dec 29 2005, 03:09
Можно рассмотреть вариант - усилитель+ГУН+оптрон+MUX и один на всех мк. Но первое и второе должно буть гуд или компенсация разброса на мк.
KolyanV
Dec 29 2005, 06:59
Цитата(Aleks17 @ Dec 29 2005, 04:33)

Микровольтный сигнал - это круто. Скажу сразу - микровольты (единицы, десятки, сотни и даже наверное тысячи) на встроенном АЦП МК, да ещё и в варианте униполярного АЦП вам не померить. В шумах всё утонет.
Может поконкретнее объясните задачу, что именно измеряете - может какая идея и посетит.
Фактически - сигнал из диапазона звуковых частот 300-4000 Гц.
Цитата(Aleks17 @ Dec 29 2005, 04:33)

Микровольтный сигнал - это круто. Скажу сразу - микровольты (единицы, десятки, сотни и даже наверное тысячи) на встроенном АЦП МК, да ещё и в варианте униполярного АЦП вам не померить. В шумах всё утонет.
Может поконкретнее объясните задачу, что именно измеряете - может какая идея и посетит.
Про микровольтный сигнал. Использую в датчике T15 или T26. Измеряется импульс фототока с фотодиода. Включен x20 дифф режим и внутренний опорник 2.56 вольта. Импульс длительностью 50 мкс. Амплитуда в нормальном состоянии измеряется ~30 у.е. ADC (30*125мкв=3.75мв). Источник сигнала получается с эквивалентным сопротивлением 1МОм. Результат - шумит примерно +- 2..3 единицы. Вот такие результаты.
KolyanV
Dec 29 2005, 08:13
Цитата(Rst7 @ Dec 29 2005, 09:49)

Про микровольтный сигнал. Использую в датчике T15 или T26. Измеряется импульс фототока с фотодиода. Включен x20 дифф режим и внутренний опорник 2.56 вольта. Импульс длительностью 50 мкс. Амплитуда в нормальном состоянии измеряется ~30 у.е. ADC (30*125мкв=3.75мв). Источник сигнала получается с эквивалентным сопротивлением 1МОм. Результат - шумит примерно +- 2..3 единицы. Вот такие результаты.
Достаточно впечатляющий результат. А какой контроллер Вы используете ? ATMega16-ATMega128 ?
И если длительность импульса 50 мкс, то частота дискретизации, как минимум, должна быть 20 кГц, а на практике, наверно, больше. На какой частоте SAR вы цифруете результат, используется ли при этом, например режим тoise reduction ?
KolyanV, прецизионные измерения низковольтных сигналов имеет классическую методику, которая применяется уже несколькот десятков лет. Ребята Вам правильно советовали перед оцифровкой сначала оптимально усилить сигнал. Подобные методики прекрасно изложены в пособии:
'Методы практического конструирования при нормировании сигналов с датчиков'.
Aleks17
Dec 29 2005, 08:27
2Rst7 А теперь то же самое, но при диапазоне входного сигнала 1В (как надо KolyanV). Вариант x20 отпадает. У вас шумит примерно +-2..3 единицы то есть (на вашем КУ) +-375 мкВ. То есть собственно о чем я и писал.
С другой стороны можно микроконтроллер посадить на фазу, измерения привязать к нуля сети, а обмен сделать по УАПП и гальванически развязать.
KolyanV
Dec 29 2005, 08:57
Цитата(Aleks17 @ Dec 29 2005, 10:27)

2Rst7 А теперь то же самое, но при диапазоне входного сигнала 1В (как надо KolyanV). Вариант x20 отпадает. У вас шумит примерно +-2..3 единицы то есть (на вашем КУ) +-375 мкВ. То есть собственно о чем я и писал.
Да, Вы совершенно правы. Если взять диапазон 1В, то шум в 2-3 единицы окажется равным 2-3 мВ, а это достаточно много, если средний диапазон изменения сигнала 100-200 мВ.
Правда, я ввел Вас в заблужение сказав про "микровольтовый сигнал". Подразумевались сотни мировольт. Т.е хотелось бы иметь точность близкую к 300-1000 мкВ. Но это в идеале.
Aleks17
Dec 29 2005, 10:25
KolyanV вы поясните что вы собираетесь сделать - контроль напряжений в фазах сети? Т.е. сигналы, полосу пропусканий и прочее. Начинать надо именно с этого а не с выбора МК. Правда это более пойдёт для темы аналоговая техника.
KolyanV
Dec 29 2005, 10:42
Цитата(Aleks17 @ Dec 29 2005, 12:25)

KolyanV вы поясните что вы собираетесь сделать - контроль напряжений в фазах сети? Т.е. сигналы, полосу пропусканий и прочее. Начинать надо именно с этого а не с выбора МК. Правда это более пойдёт для темы аналоговая техника.
Хочу производить оцифровку звука и сигналов в тракте телефонных линий. Дело в том, что телефонные линии от разных АТС на практике могут иметь разность потенциалов в десятки, иногда больше вольт (проверено на практике). А цифровать необходимо переменную состовляющую в диапазоне 300-4000 Гц.
Цитата(KolyanV @ Dec 29 2005, 10:57)

Цитата(Aleks17 @ Dec 29 2005, 10:27)

2Rst7 А теперь то же самое, но при диапазоне входного сигнала 1В (как надо KolyanV). Вариант x20 отпадает. У вас шумит примерно +-2..3 единицы то есть (на вашем КУ) +-375 мкВ. То есть собственно о чем я и писал.
Да, Вы совершенно правы. Если взять диапазон 1В, то шум в 2-3 единицы окажется равным 2-3 мВ, а это достаточно много, если средний диапазон изменения сигнала 100-200 мВ.
Правда, я ввел Вас в заблужение сказав про "микровольтовый сигнал". Подразумевались сотни мировольт. Т.е хотелось бы иметь точность близкую к 300-1000 мкВ. Но это в идеале.
Без *20 будет шуметь меньше. Не будет шумов усилителя. Спрашивали выше какой контроллер - Tiny15 и Tiny26 - с одинаковыми результатами. Измеряется 1 раз в конце импульса (который, напомню, 50 мкс) - чтобы более-менее установилось напряжение на выходе дифф-усилителя. Эксперименты с изменением прескаллера вплоть до 1/2 показали, что на результат почти не влияет, но бывает, появляются пропущенные коды при большой частоте АЦП. Но не всегда, вообщем, понять особо не удалось - фазы луны какие-то. А при 200 кГц - все в порядке, если и есть какая-то гадость, то шумами усилителя она вполне маскируется.
defunct
Dec 29 2005, 11:33
2 KolyanV
Прочитал оба ваших трэда.. дык это. Если нужен дешевый и точный АЦП с полосой до 75Khz, вместо геморроя с мегами возьмите лучше нормальный последовательный дифференциальный АЦП - ADS7822.
ADS7822 - 12-ти разрядный дифференциальный АЦП (DIP8/SOIC8/MSOP8), с погрешностью измерений 0.5LSB при скорости конвертирования 75 KSPS (тактирование по последовательной шине - до 3 Mhz). При скорости 200 KSPS точность снижается до 10-ти разрядов, возможно неполное считывание АЦП. Стоит около $3. Полная совместимость с более быстрым аналогом ADS7816
а трансформаторы применить религия не позволяет?
Цитата(Petka @ Dec 29 2005, 16:20)

а трансформаторы применить религия не позволяет?
Причем токовые, чтобы не создавать лишнего сопротивления в линии. А так, согласен на 100%, будет очень хорошо работать.
KolyanV
Dec 29 2005, 15:53
Цитата(defunct @ Dec 29 2005, 13:33)

2 KolyanV
Прочитал оба ваших трэда.. дык это. Если нужен дешевый и точный АЦП с полосой до 75Khz, вместо геморроя с мегами возьмите лучше нормальный последовательный дифференциальный АЦП - ADS7822.
ADS7822 - 12-ти разрядный дифференциальный АЦП (DIP8/SOIC8/MSOP8), с погрешностью измерений 0.5LSB при скорости конвертирования 75 KSPS (тактирование по последовательной шине - до 3 Mhz). При скорости 200 KSPS точность снижается до 10-ти разрядов, возможно неполное считывание АЦП. Стоит около $3. Полная совместимость с более быстрым аналогом ADS7816
Спасибо за наводку, этот АЦП мне очень интересен.
Правда при беглом просмотре я не понял, что там за последовательный интерфейс, вроде не SPI.
Ну да ладно, позже разберусь.
Цитата(Rst7 @ Dec 29 2005, 16:46)

Цитата(Petka @ Dec 29 2005, 16:20)

а трансформаторы применить религия не позволяет?
Причем токовые, чтобы не создавать лишнего сопротивления в линии. А так, согласен на 100%, будет очень хорошо работать.
Чтобы токовые применять нужно подключаться в разрыв линии. Это достаточно неудобно.
Aleks17
Dec 29 2005, 16:01
KolyanV, вы усложняете себе жизнь. Причем значительно. Существуют такие микросхемы: DAA, предназначенные для работы с телефонными линиями. Они обеспечивают гальваничекую развязку, преобразование полезных сигналов, выделение сигналов вызова и набора номера и прочеее и стоят при этом порядка 2-3$ (например CLARE).
Если необходим только мониторинг (речи и вызовов) - специальные микросхемы мониторинга (CLARE CPC5710N - цена в efind-e от 0.7$)
KolyanV
Dec 29 2005, 16:06
Цитата(Petka @ Dec 29 2005, 16:20)

а трансформаторы применить религия не позволяет?
Трасформаторы пробовал применять (в другом устройстве). Частотный диапазон 300-4000 Гц проходит отлично, нареканий нету. Но низкие частоты ужасно коверкаються. Постоянка, естветсвенно, режется вообще.
Я же планирую раздеить сигнал с линии на 2 тракта - среднечастотный и низкочастотный, цифровать их в отдельности. При этом среднечастотная составляющая будет оцифровываться почти "как есть", а низкочастотная в разы приглушаться для возможности ее оцифровки с тем же опорным напряжением, что и для средних частот. То есть фактически, задача состоит не в оцифровке звука с тел. линии, а в оцифровке ее напряжения начиная с постоянной состовляющей и заканчивая средними частотами.
Оцифровывать напряжение тел. линии одном тракте "как есть" не получиться, так как у низкочастотного (постоянного) и среднечастотного сигнала разный масштаб. Если нормировать уровень до 5 В, тогда амплитуды средних частот не будут превышать 4-5 мВ, что соответствует 1 разряду значимости 10 битного АЦП. В этом случае, даже 12 битный АЦП не поможет, нужно никак не меньше 16-18 бит.
А что ты хочешь найти в телефонной линии ниже 300Гц? По моему тебе имеет смысл цифровать только 300-4000Гц. Может и кодеки телефонные готовые подойдут, и проц. не нужен будет?
KolyanV
Dec 29 2005, 19:29
Цитата(slog @ Dec 29 2005, 20:47)

А что ты хочешь найти в телефонной линии ниже 300Гц? По моему тебе имеет смысл цифровать только 300-4000Гц. Может и кодеки телефонные готовые подойдут, и проц. не нужен будет?
Определять исходящий импульсный набор и текущее состояние линии (трубка поднята/опущена, запрос входящего звонка).
Andy Great
Dec 30 2005, 09:35
Цитата
Дело в том, что телефонные линии от разных АТС на практике могут иметь разность потенциалов в десятки, иногда больше вольт (проверено на практике)
Позвольте усомниться. Неужели такое заземление проходит периодические проверки? И что значит "больше десятков" - сотни вольт? Опять же какие линии - плюсовые? Если одна минусовая, а другая плюсовая - тогда понятно и так и должно быть. А еще там переменка при вызове идет. А еще дефекты кабеля. Но все равно, если плюсовые линии имеют
такую разность потенциалов, за это надо убивать кабельщиков или электриков.
Andy Great
Dec 30 2005, 09:46
Вдогонку: я бы посоветовал использовать неск. каналов для измерения отдельно постоянной, отдельно переменной составляющей. Для удешевления, можно переменную составляющую отвязывать конденсаторами, а не трансами. У меня создалось впечатление, что Вы, KolyanV, не имеете достаточного опыта в телефонии. Ничего личного, опыт приобретается со временем.
KolyanV
Dec 30 2005, 17:31
Цитата(Andy Great @ Dec 30 2005, 11:35)

Позвольте усомниться. Неужели такое заземление проходит периодические проверки? И что значит "больше десятков" - сотни вольт? Опять же какие линии - плюсовые? Если одна минусовая, а другая плюсовая - тогда понятно и так и должно быть. А еще там переменка при вызове идет. А еще дефекты кабеля. Но все равно, если плюсовые линии имеют такую разность потенциалов, за это надо убивать кабельщиков или электриков.
Измерялись напряжения между медными жилами розомкнутой линии. На двух линиях от разных АТС они состовляли около 60В. Разность потенциалов между плюсами разных линий было порядка 20В.
Правда надо заметить, что одна из АТС - древняя декадно шаговая...
Один раз напоровшись больше не хочется повторять ошибку ...
Andy Great
Dec 31 2005, 08:39
Повторюсь: если измерять между плюсовым проводом одной АТС и минусовым другой, то и получится 60В - это нормально. Касательно разности между землями - надо было проверить их на станции на наличие постороннего напряжения, после этого проверить заземление на станциях. Хотя обычно разность потенциалов заземлений бывает до 5В. Тем не менее, для таких применений действительно надо рассчитывать на наихудший случай: это вызывное напряжение (~110В 25Гц) плюс пресловутая разность потенциалов земель. Но будьте готовы, что там может оказаться и 220В, и удар молнии.
Цитата(KolyanV @ Dec 29 2005, 22:29)

Цитата(slog @ Dec 29 2005, 20:47)

А что ты хочешь найти в телефонной линии ниже 300Гц? По моему тебе имеет смысл цифровать только 300-4000Гц. Может и кодеки телефонные готовые подойдут, и проц. не нужен будет?
Определять исходящий импульсный набор и текущее состояние линии (трубка поднята/опущена, запрос входящего звонка).
Так для этого АЦП вообще не нужен, достаточно компаратора, а можно и вообще без него, сразу с делителя на ногу процессора. Зачем АЦП если в свободной линии 60В, занятой - не больше 15В, набор это импульсы до 60В, звонок - переменка с амплитудой не меньше 120В. По моему тебе цифровать всю эту чушь смысла никакого нет. Цифровать надо ТОЛЬКО 300...4000Гц! Возможно, не внутренним АЦП AVR.
KolyanV
Dec 31 2005, 14:05
Цитата(slog @ Dec 31 2005, 11:12)

Так для этого АЦП вообще не нужен, достаточно компаратора, а можно и вообще без него, сразу с делителя на ногу процессора. Зачем АЦП если в свободной линии 60В, занятой - не больше 15В, набор это импульсы до 60В, звонок - переменка с амплитудой не меньше 120В. По моему тебе цифровать всю эту чушь смысла никакого нет. Цифровать надо ТОЛЬКО 300...4000Гц! Возможно, не внутренним АЦП AVR.
Да, Вы правы на счет компаратора. Такой вариант я рассматривал, правда, на всякий случай, я изначально решил зарезервировать "пути для отхода", на тот случай, если возможностей компаратора не будет достаточно для правильного определения состояний линий. Например, если брать входящий звонок с частотой 25 Гц, при снятии данных компаратором, выйдет битовая последовательность, достаточно похожая на исходящий вызов. Естественно, данную ситуацию можно легко исправить правильной логикой программы, (напрмер, если перед этим трубка была опущена - значит это входящий вызов, если снята - значит исходящий импульсный набор и т.п.).
Зря усложняешь. Звонок - минимум 25Гц, чаще всего переменка - двуполярная, набор номера максимум 10Гц, импульсы от 15 до 60В, бывает 0...60В. Смотри как сделаны линейные цепи в мини АТС, радиотелефонах, смотри микросхемы SLIC, смотри как делают цепь определения входящего вызова: кондер - резистор - оптрон, смотри схемы АОНов. Там все элементарно, и без всяких АЦП. И надо обязательно отфильтровать все что ниже 300Гц, чтобы потом с АЦП получить нормальный звук. Именно поэтому я бы посмотрел на предмет использования м/сх телефонных кодеков. И процессор на каждый канал по моему не обязательно. Ты AVR-ом чтоли собирался делать оцифровку и фильтрацию? Что-то я сомневаюсь что он способен цифровать 8бит 8КГц и при этом заниматься еще фильтрацией и еще чем-то.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.