RodionGork
Oct 13 2009, 12:52
Уважаемые товарищи!
Воспользовался я 16-разрядным АЦП AD7680 для оцифровки сигнала. И вот наблюдаю неприятную странность - постепенно уменьшаю уровень сигнала (впрочем, педальным образом, не с калиброванного какого-нибудь выхода) - и поступающее с выхода АЦП число уменьшается где-то от FDDF, но при этом изменяются только старшие три тетрады. Младшая остаются в состоянии 1111. После определенного уровня, где-то посредине диапазона, и в младшей некоторое изменение происходит, но при движении дальше вниз вскоре младшая тетрада приобретает устойчивое значение 0000, хотя три старшие продолжают адекватно уменьшаться.
Ну и что такое происходит? Подскажите, пожалуйста, если кто знает.
В даташите сказано, впрочем, что после 17-го клока на линии SPI девайс отпускает свой Track-and-Hold и прицепляется обратно к линии. Если учитывать что четыре первых клока "загрузочные", то в принципе как раз примерно к началу младшей тетрады это и должно происходить, но я не претендую на то, чтоб смысл этой фразы я точно понял - он что, посреди оцифровки свой hold расхолживает?
с уважением,
Родион
_4afc_
Oct 13 2009, 13:31
Цитата(RodionGork @ Oct 13 2009, 16:52)

Воспользовался я 16-разрядным АЦП AD7680 для оцифровки сигнала. И вот наблюдаю неприятную странность - постепенно уменьшаю уровень сигнала (впрочем, педальным образом, не с калиброванного какого-нибудь выхода) - и поступающее с выхода АЦП число уменьшается где-то от FDDF, но при этом изменяются только старшие три тетрады. Младшая остаются в состоянии 1111. После определенного уровня, где-то посредине диапазона, и в младшей некоторое изменение происходит, но при движении дальше вниз вскоре младшая тетрада приобретает устойчивое значение 0000, хотя три старшие продолжают адекватно уменьшаться.
Работал с AD7685 и AD7694 - никаких проблем. Может эти 4 бита на самом деле старшие от другого измерения, а не младшие?
RodionGork
Oct 13 2009, 14:28
Цитата(_4afc_ @ Oct 13 2009, 17:31)

Работал с AD7685 и AD7694 - никаких проблем. Может эти 4 бита на самом деле старшие от другого измерения, а не младшие?
Да я тоже на сам чип не грешу... Контора все ж знатная. ;-)
Начал подозревать что это может быть связано с мелкими провалами напряжения на АЦП, возникающими параллельно с измерениями. Я думал, я их совсем убил да и отодвинул от моментов измерений, а похоже что нет. Изучаю детально...
Цитата(RodionGork @ Oct 13 2009, 16:52)

Уважаемые товарищи!
..... И вот наблюдаю неприятную странность - постепенно уменьшаю уровень сигнала (впрочем, педальным образом, не с калиброванного какого-нибудь выхода) -
Если уважаете товарищей, то перестаньте давить на педаль, а честно подайте на вход что-нибудь внятное...
RodionGork
Oct 13 2009, 14:30
Цитата(Tanya @ Oct 13 2009, 18:28)

Если уважаете товарищей, то перестаньте давить на педаль, а честно подайте на вход что-нибудь внятное...
Хы, да сам-то по себе чип работает нормально, я не сомневаюсь. Если я в отдельном стенде что-то внятное подам, то можно будет и не проверять... Тут безусловно мистика связана с конкретной поделкой и конкретным режимом испытаний... ;-)))
Но, понимаете ли, не может такого быть чтоб осциллограмма на линии DATA показывала постоянную единицу в младшей тетраде при том, что все старшие биты все время меняются - и это объяснялось чистым совпадением ;-)
RodionGork
Nov 2 2009, 06:13
ЛЮЮЮЮДИИИИ!
Таки подскажите, пожалуйста, что означают слова из даташита на AD7680:
The CS signal initiates the data transfer and conversion process.
The falling edge of CS puts the track-and-hold into hold mode,
takes the bus out of three-state, and samples the analog input.
The conversion is also initiated at this point and requires at least
20 SCLK cycles to complete. Once 17 SCLK falling edges have
elapsed, the track-and-hold goes back into track mode on the
next SCLK rising edge.
После 17-го заднего фронта клока остается еще получить из АЦП 3 младших бита от значения оцифровки. Если при этом Sample-and-Hold опять подсоединяется к измеряемой цепи, то не вполне понятно, что я в таком случае измеряю.
На практике пока получается так, что даже если удается достичь, чтобы младшие биты не были все нули или единицы, то все равно разумных значений они не содержат. То есть выглядит так, будто АЦП снимает 12 бит нормально, а 4-мя младшими шумит.
Я неправильно курю мануал?
Возникала такая же проблема. Решил тупо подбором количества тактирующих импульсов на один CS. Точно не помню, но для приема без нулей, идущих после результата конвертирования, нужно было ставить 21.
Боюсь ошибиться, но приведенная вами цитата из даташита означает, что вывод результата занимает 17 импульсов, т.е. 4 ведущих нуля + 17 для вывода результата = 21 клок - период CS.
Кстати, данный АЦП очень чувствителен к питающему напряжению. При питании от обычного DC/DC Traco Power, ка раз последние 3-4 бита и улетало. Решение было в применении опорника в качестве питания. Благо, кушает 7680 очень немного.
RodionGork
Nov 2 2009, 11:31
Цитата(Марик @ Nov 2 2009, 14:19)

Кстати, данный АЦП очень чувствителен к питающему напряжению. При питании от обычного DC/DC Traco Power, ка раз последние 3-4 бита и улетало. Решение было в применении опорника в качестве питания. Благо, кушает 7680 очень немного.
За рекомендации спасибо. А какой именно опорник применили (или прямо тот, что в доке?) Насчет питания я теперь и сам понял, что проморгался. Раз REF к питанию привязан, так это для соблюдения 16-битной точности надо чтоб питание (3.3В) соблюдалось с точностью до 3.3/65536=50мкВ... это в схеме с микроконтроллером, приемопередатчиком, и питающейся от повышающего шипа... ха-ха-ха... йа даунишко %)
ISL21009BFB841Z - это от intersil на 4,096В, в той же серии есть и на 3,3, если так хочется. 7680 работает до 2,7, если не ошибаюсь.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.