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

Кто работал с AD7731? Голову сломал...


Рекомендуемые сообщения

Всем привет.

Считываю данные с AD7731 после готовности RDY и получаю медленно "плавающие" 3 младших полубайта из 6. При этом результат раза в 2,5 меньше, чем должен быть (измеряемое напряжение-часть опорного). Конфигурация АЦП и калибровка проходят успешно (считывал регистры до и после). SPI аппаратный. А вот с чтением не выходит каменный цветок. (CS, ессно, не забыт). При этом нулевое напряжение (вход - на землю) показывает почти правильно - но есть выбросы. "Висячий" вход дает 0хFFFFFF, как и должен бы. Перед работой с АЦП делаю принудительно сброс. Земля разведена правильно, от экземпляра AD не зависит, от источника опорного тоже. Все как в даташите. Реально голову сломал...
Может, у кого найдется пример рабочего кода? Или совет дельный?
В инете все облазил, нашел только вопросы неотвеченные... Для тех, кто в теме, ниже привожу код инициализации.

Скрытый текст

/ ================== инициализация АЦП ==================
void Init_AD7731()
{
CS_AD7731 = 0;

// ********************************************************************************** filter
WR_AD7731(0x03); // след. запись в регистр фильтра (2 байта)
WR_AD7731(0x61); // запись старшего байта в регистр фильтра
WR_AD7731(0xA0); // запись младшего байта в регистр фильтра /Это как пример в даташите

// ********************************************************************************** mode
WR_AD7731(0x02); // след. запись в регистр режима (2 байта)
WR_AD7731(0xB1); // запись старшего байта в регистр режима (unipol, 24bits,Internal FULL-SCALE Calibration)
WR_AD7731(0x71); // запись младшего байта в регистр режима (Uref=2,5V, Uin=0...1,28V, AIN1-AIN6)
while(RDY_AD7731);

WR_AD7731(0x02); // след. запись в регистр режима (2 байта)
WR_AD7731(0x91); // запись старшего байта в регистр режима (unipol, 24bits,Internal ZERO Calibration)
WR_AD7731(0x71); // запись младшего байта в регистр режима (Uref=2,5V, Uin=0...1,28V, AIN1-AIN6)
while(RDY_AD7731);

WR_AD7731(0x02); // след. запись в регистр режима (2 байта)
WR_AD7731(0x31); // запись старшего байта в регистр режима (unipol, 24bits, непрерывное преобразование)
WR_AD7731(0x71); // запись младшего байта в регистр режима (Uref=2,5V, Uin=0...1,28V, AIN1-AIN6)
while(RDY_AD7731);

CS_AD7731 = 1;
}

// ================== запись байта в регистр ===================
void WR_AD7731(unsigned char byte)
{
spi(byte);
}


// ================== чтение len байтов из регистра данных ===================
unsigned long int RDn_AD7731(unsigned char len)
{
unsigned long int rx;
unsigned char k;

rx=0;
for( k=0; k<len; k++ ) // чтение ответа из устройства
{
rx <<= 8; // это зависит от порядка передаваемых байтов устройством
rx |= spi( 0xFF ); // записать очередные 8 бит от slave в переменную
}
return rx;
}

 

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Что такое латералы ? Выходные транзисторы взял IRFP 140/9140
    • Блин,проблему нашел... Я бы завел переменную,допустим  unsigned int n И поехали- Сбрасываем n Цикл,buf_index от 3 до 10 (символы rx_buf[0],rx_buf[1],rx_buf[2] не нужны,нужны именно rx_buf[3]-rx_buf[10)]     (      Берем символ rx_buf[buf_index]      Преобразуем в число,допустим m      n=n+m      n=16*n (или сдвиг n<<4) ) В итоге в n будет ваше число от 0 до 65535 Может есть решение проще-не знаю,с си не знаком поэтому сам код привести толком не смогу (прошу не пинать)  
    • Не паникуйте-феншуй это для китайцев, да и они на него давно наплевали-ставят что хотят, а где хотят-то и вовсе не ставят. И все у них работает. 
    • Это всё равно что сапожник без сапог.
    • Спасибо конечно. Как бы это было ясно. Наверное не так выразился, в чем разница? Аа, догадываюсь, что шунт резистор наверное подбирался для готового РГ для 10 кОм. В моём случае выбор свободен...
    • Всех приветствую. По листал форум и интернет в поисках ответа на вопрос, но ничего не смог найти. Может не умею гуглить или корректно задавать вопросы. В общем вопрос следующий.  Много раз замечал в автоусилителях (мощных) сборку блоков питания. Схем полных, естественно днем с огнем не сыщешь. Так вот задаюсь серьезным вопросом, как все же включены трансформаторы в этих уселках? Например их там может быть 4-6 штук, какиони выводят всю мощность? Отдельно каждый для одного усилителя? Или каким то способом соединены в параллель? Управляются одним шимом или для каждого свой шим? Или один шим на попарно включённые трансформаторы....  Если параллель то где? После трансформатора или уже после диодов... Не доходит до меня в общем. Если кто может и есть время, распишите пожалуйста подробно как несколько трансформаторов работают в одной системе... Мосты там или еще что прочее.    PS, помидорами не кидайтесь. Все когда то задавались вопросом, как работает лампочка....
×
×
  • Создать...