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

Не могу разобраться с sample rate AD7730

Доброго времени суток уважаемые коллеги. 

Сейчас занимаюсь разработкой дозатора для сыпучих материалов, в качестве АЦП для обработки сигнала с тензодатчика остановил свой выбор на AD7730. На данный момент произвожу написание драйера для работы с АЦП под STM32. Чтение и запись регистров освоил, режим одиночного чтения работает. Запустил режим непрерывного чтения из АЦП и вот тут у меня появились вопросы:

1. Я прочел в DS, что скорость формирования данных в регистре DR в режиме непрерывного преобразования, должна подчиняться формуле  data rate = Fclk/16 * 1/3*SF. где SF значение записанное в регистре фильтра. У меня кварц на 2 Мгц. Так вот, я подцепил осциллограф на выход DRDY, частота на нем должно соответствовать data rate, а у меня при любых значениях SF там 81 Гц. Диапазон изменения SF до 2048. Почему так происходит или я что то не дочитал в DS?

2. Пока изготавливаются платы, ПО я отлаживаю на макетной плате с АЦП. К плате подключен тензодатчик на 5 кг 1 мВ /В, питание моста , так как и опорное напряжение 5 В. АЦП настроен на считывание 1-го канала с диапазоном -10 - 10 мВ, чопер отключен. При нажатии на датчик, но при этом я точно не создаю 5 кг АЦП начинает выдавать то все 1- на выходе, то "нормальное"  значение, не ужели я загоняю АЦП за диапазон? А режиме униполярного входа АЦП вообще начинает постоянно выдавать ерунду.

Если нужно могу вложить код и схему подключения к МК.

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


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

1 час назад, Nikopol сказал:

У меня кварц на 2 Мгц. Так вот, я подцепил осциллограф на выход DRDY, частота на нем должно соответствовать data rate, а у меня при любых значениях SF там 81 Гц. Диапазон изменения SF до 2048. Почему так происходит или я что то не дочитал в DS?

а про 2 Мгц - это вы где-то прочитали или поставили что-то из своих соображений?

в доке:

"The AD7730 is specified with a clock input frequency of 4.9152 MHz while the AD7730L is specified with a clock input frequency of 2.4576 MHz."

из инета:

"I set the wrong value in the filter register. Now its value is 0x800010, that is 50 Hz output and CHOP mode."

 

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


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

3 hours ago, Nikopol said:

Доброго времени суток уважаемые коллеги. 

Сейчас занимаюсь разработкой дозатора для сыпучих материалов, в качестве АЦП для обработки сигнала с тензодатчика остановил свой выбор на AD7730. На данный момент произвожу написание драйера для работы с АЦП под STM32. Чтение и запись регистров освоил, режим одиночного чтения работает. Запустил режим непрерывного чтения из АЦП и вот тут у меня появились вопросы:

1. Я прочел в DS, что скорость формирования данных в регистре DR в режиме непрерывного преобразования, должна подчиняться формуле  data rate = Fclk/16 * 1/3*SF. где SF значение записанное в регистре фильтра. У меня кварц на 2 Мгц. Так вот, я подцепил осциллограф на выход DRDY, частота на нем должно соответствовать data rate, а у меня при любых значениях SF там 81 Гц. Диапазон изменения SF до 2048. Почему так происходит или я что то не дочитал в DS?

2. Пока изготавливаются платы, ПО я отлаживаю на макетной плате с АЦП. К плате подключен тензодатчик на 5 кг 1 мВ /В, питание моста , так как и опорное напряжение 5 В. АЦП настроен на считывание 1-го канала с диапазоном -10 - 10 мВ, чопер отключен. При нажатии на датчик, но при этом я точно не создаю 5 кг АЦП начинает выдавать то все 1- на выходе, то "нормальное"  значение, не ужели я загоняю АЦП за диапазон? А режиме униполярного входа АЦП вообще начинает постоянно выдавать ерунду.

Если нужно могу вложить код и схему подключения к МК.

Во вложении тестовый проект для AD7730 (рабочий, Keil 4.74), Вас интересует все файлы в папке \Lib\AD7730_drv_v1.x. Вдруг пригодится... (Если нужно, то могу отправить описание на микросхему на русском по почте, сюда выложить не удается пишет ошибка -200)

Tensometer_1.4.zip

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

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


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

 

14 hours ago, Jury093 said:

а про 2 Мгц - это вы где-то прочитали или поставили что-то из своих соображений?

в доке:

"The AD7730 is specified with a clock input frequency of 4.9152 MHz while the AD7730L is specified with a clock input frequency of 2.4576 MHz."

из инета:

"I set the wrong value in the filter register. Now its value is 0x800010, that is 50 Hz output and CHOP mode."

 

 

Поставил из соображений, того, что в таблице timing характеристик (стр. 47 DS) указан диапазон допустимых частот тактирования от 1 -5 МГц, ну и из-за того, что другого просто нет под рукой. Собственно каким образом АЦП понимает, что его тактируют не "той" частотой? Т.е. Вы считаете, что проблема в тактовой частоте? Тогда встречный вопрос, на AD7714 в DS также указан кварц на 2.4576 Mhz, но при тактировании его от 2 МГц, все работает как нужно и data rate управляется согласно описания. 

 
ivan24190, спасибо, посмотрю Ваш код. Если не затруднит, то киньте доки на levichev.dmitry(dog)gmail.com

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

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


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

2 часа назад, Nikopol сказал:

считаете, что проблема в тактовой частоте?

Нет, Вас спрашивают, читали ли Вы табл.XIV.

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


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

Конечно читал, не пойму к чему Вы клоните? Также смотрел и таблицу XV, где приведены частоты для стандартных кварцев, но как это отражает то, что при смене кварца АЦП постоянно выдает данные с одинаковой скоростью при любых вариантах значения SF?

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

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


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

Прошу прощения, что долго не писал. Только смог добраться к проекту.

Сегодня еще раз запустил код с подключенным осциллографом, картина следующая:

- запуск в режиме непрерывного чтения со следующими параметрами канала: DR 100 Hz, CHOP = 1, Bipolar, 10 mV. В регистр Filter  пишется следующее значение: 0x4E2000

На осциллограмме идет последовательность импульсов, но с разной частотой, т.е. идет пачка из 3-5 импульсов с нужной частотой, а затем идет длительная пауза и снова пачка из импульсов. Осциллограф пытается усреднить показания, отсюда и частота ниже, в данном случае показывает около 61 Гц.

- запуск в режиме непрерывного чтения со следующими параметрами канала: DR 100 Hz, CHOP = 0, Bipolar, 10 mV. В регистр Filter  пишется следующее значение: 0x1A0010

На осциллографе картина та же. 

На сайте AD есть excel файл с моделью фильтра в АЦП, там можно посмотреть как будут меняться характеристики в зависимости от параметров, так вот подставляя свои значения получаю желаемый результат,  т.е. проблема не в содержимом конкретно данного регистра.

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

Буду дальше разбираться, думаю, что вопросы все же еще будут...

PS

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

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


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

В 08.04.2019 в 18:55, ivan24190 сказал:

Во вложении тестовый проект для AD7730 (рабочий, Keil 4.74), Вас интересует все файлы в папке \Lib\AD7730_drv_v1.x. Вдруг пригодится... (Если нужно, то могу отправить описание на микросхему на русском по почте, сюда выложить не удается пишет ошибка -200)

Tensometer_1.4.zip 1017 кБ · 20 загрузок

 

Не могли бы Вы отправить описание на микросхему на русском на почту alifanovd123(dog)gmail.com . Заранее спасибо!

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


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

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

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

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

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

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

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

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

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

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