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

 
 
> АЦП AD7714 Некорректные отсчеты в тестовом режиме, 124 55 255 124 53 255... вместо нулей
Didro
сообщение May 9 2009, 14:58
Сообщение #1


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

Группа: Участник
Сообщений: 94
Регистрация: 9-04-07
Пользователь №: 26 893



В тестовом режиме (AIN6\AIN6) ожидают увидеть нули в регистре данных, вместо этого получаю:

Код
data from AD7714: 124
data from AD7714: 55
data from AD7714: 255
data from AD7714: 124
data from AD7714: 53
data from AD7714: 255
data from AD7714: 124
data from AD7714: 46
data from AD7714: 255
data from AD7714: 124
data from AD7714: 56
data from AD7714: 255
....

Что бы это могло означать ??

Калибрую и настраиваю по примеру из даташита (AIN6\AIN6, gain 1, no filter sync, bipolar mode, 24-bit length, boost off, maximum filter word (4000)), хостом выступает AVR ATMega8 с аппаратным SPI. Все регистры кроме Data читаются\модифицируеются через SPI правильно.

Похожие сообщения были раньше - вот и вот. Но решения проблемы не нашел.

Вот исходник программы - 1 к 1 калька с кода из даташита - , настраивает АЦП, считывает в массив значения, пересылает его по USART в ПК. Пробовал другой вариант исходников - не по даташиту (все-таки пример в даташите не для AVR, а для 68HC11) - результат тот же.
Уже неделю бьюсь, начал программный spi-реализовывать, не могу понять в чем причина таких странных данных.

Спасибо

P.S.
Чтобы 255 не сбивало, вот лог другого запуска:

Код
data from AD7714: 121
data from AD7714: 165
data from AD7714: 38
data from AD7714: 121
data from AD7714: 165
data from AD7714: 105
data from AD7714: 121
data from AD7714: 165
data from AD7714: 24
data from AD7714: 121
data from AD7714: 166
data from AD7714: 244
data from AD7714: 121
data from AD7714: 166
data from AD7714: 69
data from AD7714: 121
data from AD7714: 164

255 нет, хотя переодичность есть - каждый старшый (из 3х байт 24-х битного слова АЦП) равен 121 (или в примере выше 124)

Сообщение отредактировал Didro - May 9 2009, 14:58
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
forever failure
сообщение May 10 2009, 04:25
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Да вроде всё у Вас правильно. И вовсе необязательно должны оттуда нули возвращатся, с чего это Вы взяли ?
По исходнику: sei () в начале - не нужно, прерывания не используются, лучше их вовсе не разрешать, в функциях Writetoreg и ReadData не нужно каждый раз инициализвать SPI - это надо сделать один раз в самом начале.
А так, судя по логу, АЦП вполне нормально работает, возвращаются какие-то значения по три байта в каждом слове, при этом в одном из них - самом младшем, - значения меняются, что и должно быть. И иногда - в среднем, но уже не более, чем на единицу.
Go to the top of the page
 
+Quote Post
Didro
сообщение May 10 2009, 13:49
Сообщение #3


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

Группа: Участник
Сообщений: 94
Регистрация: 9-04-07
Пользователь №: 26 893



Цитата(forever failure @ May 10 2009, 08:25) *
Да вроде всё у Вас правильно. И вовсе необязательно должны оттуда нули возвращатся, с чего это Вы взяли ?
...
А так, судя по логу, АЦП вполне нормально работает, возвращаются какие-то значения по три байта в каждом слове, при этом в одном из них - самом младшем, - значения меняются, что и должно быть. И иногда - в среднем, но уже не более, чем на единицу.
Спасибо за ответ.

Нули должны возвращаться, т.к. я запускаю АЦП в тестовом режиме, про который сказано в даташите:
Цитата
With CH2, CH1 and CH0 at a logic 1, the part looks at the AIN6 input internally shorted to itself. This can be used as a test method to evaluate the noise performance of the part with no external noise sources. In this mode, the AIN6 input should be connected to an external voltage within the allowable common-mode range for the part.
Тут конечно нет точного указания на нули - это я уже сам домыслил, да и в интернете видел "похожие домысливания".

Цитата( @ May 10 2009, 08:25) *
По исходнику: sei () в начале - не нужно, прерывания не используются, лучше их вовсе не разрешать, в функциях Writetoreg и ReadData не нужно каждый раз инициализвать SPI - это надо сделать один раз в самом начале.
Это уже результаты танцев с бубном.

p.s.
Сейчас припаял выход AIN6 к земле. Результаты измерений не изменились unsure.gif
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 03:14
Рейтинг@Mail.ru


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