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

Помогите. Непонятное поведение АЦП AD7714

Микроконтроллер последовательно считывает данные со всех трех каналов АЦП. Все работает замечательно, но иногда АЦП начинает по какому-либо каналу (а то и не по одному) выдавать одни 0xFF независимо от входного сигнала. Момент совершенно непредсказуемый, пеерзапуском питания лечится не всегда.

Кто-нибудь встречался с такой проблемой?

 

PS При работе только с одним каналом как в datasheet - никаких проблем.

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


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

Первое предположение - каналы могут не успевать переключаться.

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

Лучше, конечно, исходники Ваши посмотреть.

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


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

При чтении проверяется сигнал /DRDY, так что это маловероятно.

К тому же описанный эфект проявляется случайным образом. Иногда не проявляется вообще (тестировал весь рабочий день).

 

А исходники - пожалуйста, во вложении (IAR C для AVR).

 

Функция ReadADCdata вызывается раз в секунду в фоновом цикле программы.

read_ad7714.txt

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


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

Если в микроконтроллере аппаратная реализация SPI протокола, то может глючить и сам

микроконтроллер.Если SPI-протокол реализован программно , то меобходимо точно в

соответствии диаграммой следить за сигналами SCLK и DIN.Лишний или недостающий такт

SCLK будет приводить к глюку.

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


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

Может и странный совет , но подобное я победил на AD7705 блокировкой вывода

DOUT на землю емкостью порядка 220 пф.

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


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

В первую очередь обратите внимание на качество опорного напряжения и питания схемы. В схеме могут присутствовать высокочастотные помехи по питанию ('иголки'), которые могут забивать нормальную работу АЦП. Из-за этого (помеха обладает широким частотным спектром) может происходить самое натуральное возбуждение устройства по возникшим обратным связям (причин много в плоть до неудачного монтажа или разводки платы). upc2 заблокировав DOUT емкостью 'нарушил' процесс возбуждения, вот и все чудо... Схемы на CMOS структурах подвержены таким особенностям, тем более что входные сопротивления очень большие, за счет этого даже маленькая помеха может вызвать подобный эффект.

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


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

Спасибо всем :cheers:

Проблему решил, уменьшив длину кабеля между платами АЦП и контроллера.

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


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

Похожую проблему имел с AT45DB161 и MSP430F149. Оказалось, что в отличие от Atmel (и многих других) названия (индекс) режимов SPI у MSP430 отличаются - конкретно попутаны. В результате при танцах с бубнами работало, а в более спокойной обстановке;) нет. Проверить возможность такого психоза рекомендую;)

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


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

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

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

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

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

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

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

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

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

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