|
Помогите с AD7730, АЦП для тензомоста |
|
|
|
Feb 5 2009, 22:40
|
Группа: Участник
Сообщений: 7
Регистрация: 5-02-09
Пользователь №: 44 464

|
Разрабатываю АЦП для тензомоста с подключением к компу. Подключил AD7730 к PIC-микроконтроллеру, считываю значения регистров - все отлично, значения соответствуют дефолтным в DataSheet. Калибрую, устанавлваю значения регистров - все нормально. Когда начинаю считывать данные - данные считываются, они действительно пропорциональны приложенному весу, но через произвольные промежутки времени проскакивает какая-то ерунда! Одно или несколько неправильных значений. В целом проблема аналогична http://www.telesys.ru/wwwboards/mcontrol/6...ges/36278.shtmlПробовал ставить резисторы, положительного эффекта не достиг. Данные считываю в режиме Single Conversion, 16 бит, мост запитывается постоянным напряжением. Если необходимо, выложу исходники программы. Как выйти из этой ситуации? Помогите! Уже 4 дня сижу, ничего не могу поделать...
Сообщение отредактировал Tanya - Feb 6 2009, 05:20
|
|
|
|
|
Feb 6 2009, 20:01
|
Группа: Участник
Сообщений: 7
Регистрация: 5-02-09
Пользователь №: 44 464

|
Огромное спасибо за советы!!!  Действительно, отключение FIR фильтра помогло. После отключения глюки сразу же прекратились. А в даташите этот момент совершенно не отражен, и в интернете тоже! Теперь буду разбираться с проверкой Steady и реализацией Сontinuous Mode. Еще в планах реализовать запитку переменным током, если хватит ума на это  Счас пытаюсь найти подходящие полевики. Все-таки точность желает лучшего...
|
|
|
|
|
Feb 7 2009, 18:13
|
Группа: Участник
Сообщений: 7
Регистрация: 5-02-09
Пользователь №: 44 464

|
Датчик от обычных бытовых весов за $12. Длина проводов минимальная, около 15 см. Но несмотря на это китайцы получили на нем 5 тыс отсчетов от 0 до 5 кг. Хочу повторить их подвиг, но пока не получается
|
|
|
|
|
Feb 7 2009, 19:29
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(lordak @ Feb 7 2009, 21:13)  Датчик от обычных бытовых весов за $12. Длина проводов минимальная, около 15 см. Но несмотря на это китайцы получили на нем 5 тыс отсчетов от 0 до 5 кг. Хочу повторить их подвиг, но пока не получается Странно. 12-13 значащих битов на 7730 получаются без особых ухищрений. А что китайцы говорят про точность этого прибора?  Чтобы не пересказывать, позволю себе еще раз сослаться на "МЕТОДЫ практического конструирования при нормировании сигналов c датчиков". По-моему, там и про импульсное питание моста было.
|
|
|
|
|
Feb 8 2009, 19:06
|
Группа: Участник
Сообщений: 7
Регистрация: 5-02-09
Пользователь №: 44 464

|
Спасибо за ссылку. Этот документ уже когда-то читал. На выходных попробовал реализовать запитку переменным напряжением, получилось, но результат отвратительный - вместо стабильных данных какая-то модулированная синусоида) Использовал 74HC04A и транзисторы IRFD9110 и IRFD110, наверно не подходящие для этой задачи. По поводу китайских весов - поставил на вход RC-фильтры и действительно получил с их тензодатчика 14 битов, при включенном FIR-фильтре. Но, к сожалению, глюки так и не удалось устранить - привожу пример: ... 16834. 16834. 16834. 16834. 16834. 16834. 16834. 16832. 16833. 16834. 16834. 16834. 16834. 16834. 16833. 16832. 16832. 16832. 16833. 16832. 16833. 16833. 16924. 17580. 19408. 22303. 24924. 25564. 23766. 20779. 18326. 17138. 16848. 16833. 16832. 16832. 16832. 16833. 16833. 16832. 16832. 16832. ... Если FIR-фильтр отключить, эти глюки пропадают, но появляются новые - через некоторое время происходят скачки, такое впечатление что меняется значение DAC-регистра. Т.е. например минуту АЦП выдает 10000, потом происходит скачек и начинает выдавать 20000, потом через минуту возвращается обратно, и т.д. Получается куда не ткнись - везде глюки  Все операции провожу в режиме Single Conversion Mode. В Continuous Conversion Mode вобще ничего считать не получилось. Бит Steady попробовал проверять, но в Single Conversion это приводит к невозможности после этого считать данные вообще. Получаю только 0 или FFFF. В даташите по поводу Single Conversion пишут: The result of the single conversion on the AD7730 in this mode will not be provided until the full settling time of the filter has elapsed. В Continuous Conversion если начинаю считывать Status Register, получаю набор произвольных значений... Предполагаю что это вообще не значения этого регистра, а нечто другое) В общем уже устал гадать, что же такое с моим АЦП. Толи я тупой, толи оно слишком сложное) По поводу радиопомех - повыносил из комнаты все радиотелефоны, поотключал вайфаи, блютузы - никакого эффекта. Установить корреляцию каких-то внешних явлений с этими глюками не удается... Проводил эксперимент на 2 разных экземплярах АЦП – результат абсолютно одинаков. Требуется ли какая-то обвязка между ножками контроллера и AD7730? Есть ли какие-то ограничения на длину провода между AD7730 и контроллером - сейчас сделано 60 см, может стоит укоротить? Может ли это как-то влиять на корректную работу?...
|
|
|
|
|
Feb 9 2009, 08:29
|

Гуру
     
Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287

|
Самое смешное, что у меня похожая проблема с тем же датчиком в чисто аналоговой системе поддержания веса. Измеряемый вес порядка 2 кг, точность поддержания - ок. 1 г. Так вот, некоторое время устройство работает нормально, потом вдруг так, как будто груз вдруг " полегчал" грамм на 100. Приходилось менять уставку. Разобраться, в чём дело, времени пока не было. Попробуйте убедиться, что "глючит" именно АЦП - подайте ему сигнал с чисто резистивного моста с подстройкой симметрии. Кстати, 15 см до датчика это всё-таки многовато. И для чего Вам питать его переменным током? Ну, импульсами ещё понятно...
|
|
|
|
|
Feb 19 2009, 10:40
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(Herz @ Feb 9 2009, 11:29)  Кстати, 15 см до датчика это всё-таки многовато. И для чего Вам питать его переменным током? Ну, импульсами ещё понятно... Не поверите (я и сам сомневался вначале), но я питаю тензодатчик через кабель длиной 100 метров, переменным током, да еще на диапазоне 10 мВ, тем не менее единица младщего разряда стоит как вкопаная. Мост, правда, низкоомный - 50 Ом, - запитывается транзисторами IRF7509:
Причем опроное REFIN берется прямо с выходов транзисторов, т.е. не тянется отдельная пара проводов до датчика. Скорее всего проблема из-за того, что вы используете Single Conversion - в этом случае output rate будет нерегулярным, да еще без FIR-фильтра результаты окажутся непредсказуемыми. Включите Continuous Conversion и считывайте данные по прерываниям. Еще прочитайте главу DIGITAL FILTERING и обратите внимание на Figure 12 - при output rate 50 Гц частоты 200, 400... Гц практически не подавляются, а это гармоники сетевой частоты, поэтому output rate нужно сдвинуть - у меня она 57 Гц. P.S. А у вас кварц 4.9152 МГц? P.P.S. И уж конечно никаких RC-цепочек на входе, цифровые фильтры микросхемы лучше их в тысячи раз, не говоря уже о том, что на переменном токе они недопустимы. Цитата(Herz @ Feb 9 2009, 11:29)  Попробуйте убедиться, что "глючит" именно АЦП - подайте ему сигнал с чисто резистивного моста с подстройкой симметрии. При этом желательно не наколоться на эффект, связанный с его необычайной чувствительностью. Когда я подключил резистивный мост, показания начали страшно прыгать. Я долго пытался выяснить в чем дело - от настоящего датчика все работало нормально! - пока не догадался обернуть резисторы бумагой. Прыжки немедленно прекратились. Оказалось, что флуктуации воздуха вокруг резисторов меняют их сопротивление, а этот АЦП их легко чувствует - при диапазоне 10 мВ единица младшего разряда всего 0.3 мкВ! З.Ы. А зачем подстройка симметрии? У 7730 все для этого есть внутри.
Сообщение отредактировал 777777 - Feb 19 2009, 10:32
|
|
|
|
|
Feb 20 2009, 17:31
|

Гуру
     
Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287

|
Цитата(777777 @ Feb 19 2009, 12:40)  Не поверите (я и сам сомневался вначале), но я питаю тензодатчик через кабель длиной 100 метров, переменным током, да еще на диапазоне 10 мВ, тем не менее единица младщего разряда стоит как вкопаная. Мост, правда, низкоомный - 50 Ом, - запитывается транзисторами IRF7509: Действительно, трудно поверить. Практически невозможно. Цитата Причем опроное REFIN берется прямо с выходов транзисторов, т.е. не тянется отдельная пара проводов до датчика.
Скорее всего проблема из-за того, что вы используете Single Conversion - в этом случае output rate будет нерегулярным, да еще без FIR-фильтра результаты окажутся непредсказуемыми. Включите Continuous Conversion и считывайте данные по прерываниям. Еще прочитайте главу DIGITAL FILTERING и обратите внимание на Figure 12 - при output rate 50 Гц частоты 200, 400... Гц практически не подавляются, а это гармоники сетевой частоты, поэтому output rate нужно сдвинуть - у меня она 57 Гц. Это не совсем так. На рис. 12 показана частотная характеристика для Output Data Rate 200 Гц. Кроме того, корень зла - the chopping of the input, если этот режим не использовать, всё не так страшно. Цитата P.P.S. И уж конечно никаких RC-цепочек на входе, цифровые фильтры микросхемы лучше их в тысячи раз, не говоря уже о том, что на переменном токе они недопустимы. Позволю себе не согласиться. Антиалиазинговый фильтр на входе совсем не будет лишним. Он поможет избавиться от проблем, изложенных выше. К чему, к примеру оцифровывать всю полосу, чтобы затем иметь проблемы с неравномерностью подавления цифровым фильтром гармоник наводок? Цитата З.Ы. А зачем подстройка симметрии? У 7730 все для этого есть внутри. Я имел в виду проверку АЦП.
|
|
|
|
|
Feb 21 2009, 08:14
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(Herz @ Feb 20 2009, 20:31)  Цитата Не поверите (я и сам сомневался вначале), но я питаю тензодатчик через кабель длиной 100 метров Действительно, трудно поверить. Практически невозможно. Используется многожильный кабель, внутренние 4 жилы идут на мост, а остальные используются для экранирования - соединены с землей со стороны платы, а со стороны датчика брошены неподключенными (даже друг с другом) Цитата(Herz @ Feb 20 2009, 20:31)  Это не совсем так. На рис. 12 показана частотная характеристика для Output Data Rate 200 Гц. Тем более - если output rate 50 Гц, но уже первую гармонику сетевой частоты он не подавит. Цитата(Herz @ Feb 20 2009, 20:31)  Кроме того, корень зла - the chopping of the input, если этот режим не использовать, всё не так страшно. Во-первых, никакого зла я здесь не вижу. А во-вторых без chopping нельзя работать с возбуждением переменным током, а это очень полезная фича - позволяет компенсировать паразитные термопары, при малых напряжениях датчика это обязательно. Цитата(Herz @ Feb 20 2009, 20:31)  Позволю себе не согласиться. Антиалиазинговый фильтр на входе совсем не будет лишним. Он поможет избавиться от проблем, изложенных выше. С этим успешно справляется sinc3-фильтр, см. Figure 10. В худшем случае (на частоте 1,5 output rate) он обеспечивает подавление 40 дБ, а на кратных частотах - бесконечное подавление. А rc-цепочка даст только 20 дБ/декаду. Не говоря уже о том, что с ней нельзя будет использовать возбуждение переменным током. А вообще - как я понял, все проблемы с этим АЦП как правило связаны с уделением недостаточного внимания цифровому фильтру, а это в сигма-дельта АЦП - самый важный узел.
|
|
|
|
|
Feb 21 2009, 10:22
|

Гуру
     
Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287

|
Цитата(777777 @ Feb 21 2009, 10:14)  Используется многожильный кабель, внутренние 4 жилы идут на мост, а остальные используются для экранирования - соединены с землей со стороны платы, а со стороны датчика брошены неподключенными (даже друг с другом) А что за кабель? Сколько в нём всего жил? Цитата С этим успешно справляется sinc3-фильтр, см. Figure 10. В худшем случае (на частоте 1,5 output rate) он обеспечивает подавление 40 дБ, а на кратных частотах - бесконечное подавление. А rc-цепочка даст только 20 дБ/декаду. Не говоря уже о том, что с ней нельзя будет использовать возбуждение переменным током. И всё-таки, если интересующая полоса лежит существенно ниже ODR, лишнее я бы подрезал. Ведь назначение того фильтра - подавление шумов дискретизации, их природа другая. А почему Вы считаете, что нельзя? Из-за некоторого затухания полезного сигнала?
|
|
|
|
|
Feb 21 2009, 11:03
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(Herz @ Feb 21 2009, 13:22)  А что за кабель? Сколько в нём всего жил? Точно не помню, но сильно больше 10-ти. Штук 12-16. Проще, конечно, использовать обычный экранированный, но у заказчика был такой, его и поставили. Цитата(Herz @ Feb 21 2009, 13:22)  И всё-таки, если интересующая полоса лежит существенно ниже ODR, лишнее я бы подрезал. Ведь назначение того фильтра - подавление шумов дискретизации, их природа другая. А почему Вы считаете, что нельзя? Из-за некоторого затухания полезного сигнала? Нельзя при возбуждении переменным током, здесь понятно почему. А при постоянном можно, но не нужно. Просто нет смысла - на фоне цифровых фильтров вы не заметите эффекта от простого фильтра первого порядка.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|