АЦП AD7680 |
![]() |
Добавил(а) microsin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Микросхема аналого-цифрового преобразователя AD7680 компании Analog Devices обладает следующими основными возможностями: • Скорость оцифровки 100 kSPS (100 тысяч выборок/сек), 16 бит на выборку Основное применение: • Системы с питанием от батареи (медицина, мобильные приложения и т. п.) Примечание: это перевод даташита [1]. Все незнакомые термины и сокращения см. во врезке "Терминология" и разделе "Словарик" в конце статьи. [Общее описание] AD7680 является быстрым, экономичным, 16-битным АЦП, построенным по принципу последовательного приближения (successive approximation ADC). Устройство работает в диапазоне напряжений питания 2.5V .. 5.5V, и может оцифровывать со скоростью до 100 kSPS (киловыборок/сек). Имеется встроенный малошумящий и широкополосный усилитель со схемой выборки/хранения, который может обработать входные частоты свыше 7 МГц. Процесс преобразования и оцифровка данных управляется с помощью сигнала выборки ~CS и последовательных тактов SCLK, что позволяет легко подключить АЦП к микроконтроллеру или процессору DSP. Входной сигнал защелкивается по спаду сигнала ~CS, и в этот момент начинается процесс конверсии. В микросхеме нет никаких задержек конвейеризации. AD7680 использует продвинутый дизайн, чтобы достичь очень низкой рассеиваемой мощности на высоких скоростях обмена. Опорное напряжение берется с вывода питания VDD. Таким образом, входной диапазон оцифровываемых напряжений составляет 0 .. VDD вольт. Скорость оцифровки определяется тактовой частотой SCLK. Таким образом, время преобразования можно уменьшить, если увеличить скорость тактов последовательного интерфейса. Уменьшение времени преобразования позволяет снизить среднее энергопотребление АЦП, когда используется режим выключения питания (power-down mode). Имеется также режим shutdown, позволяющий максимально увеличить эффективность в потреблении энергии на низких скоростях обмена. Рис. 1. Функциональная блок-схема AD7680. Таблица 1. Некоторые типы АЦП PulSAR в корпусах MSOP/SOT-23.
Таблица 2. VDD=4.5..5.5V, fSCLK=2.5 МГц, fSAMPLE=100kSPS, если не указано нечто иное. TA = TMIN..TMAX, если не указано нечто иное.
Примечания: 1 Температурный диапазон для версий A, B: -40..+85 °C. Таблица 3. VDD=2.5..4.096V, fSCLK=2.5 МГц, fSAMPLE=100kSPS, если не указано нечто иное. TA = TMIN..TMAX, если не указано нечто иное.
Примечания: 1 Температурный диапазон для версий A, B: -40..+85 °C. Таблица 4. VDD=2.5..5.5V; TA=TMIN..TMAX, если не указано нечто иное.
Примечания: 1 Выборка тестировалась во время начального релиза для гарантирования совместимости. Все входные сигналы указаны для tr = tf = 5 ns (переход уровня от 10% до 90% VDD) и оценивались при уровне напряжения 1.6V. Рис. 2. Нагрузочная схема для спецификации временных характеристик цифрового выхода. Стрессовые условия, указанные в таблице, или их значения, которые больше чем в таблице, могут необратимо повредить устройство. Поэтому параметры указаны только в качестве стрессового рейтинга; не подразумевается работа устройства в этих условиях или в условиях с превышением этих значений параметров. Работа возле этих максимальных рабочих условий в течение длительного времени может отрицательно повлиять на надежность устройства. Таблица 5. TA = 25°C, если не указано нечто иное.
Примечание 1: переходные токи до 100 mA не приводят к защелкиванию SCR. [Статическое электричество] Микросхема чувствительна к статическому электричеству, ESD (electrostatic discharge). Электростатические заряды напряжением порядка 4000V могут накапливаться на теле человека и на тестовом оборудовании, после чего могут незаметно разрядиться через выводы микросхемы (если не принять меры предосторожности). Хотя эта микросхема снабжена некоторыми проприетарными схемами защиты от ESD, электростатический разряд с высокой энергией может необратимо повредить микросхему. Таким образом, рекомендуется предпринимать меры защиты от ESD, чтобы избежать потерь производительности или выхода из строя микросхем. [Цоколевка корпуса и описание выводов AD7680] Рис. 3. Корпус SOT-23. Рис. 4. Корпус MSOP. Таблица 6. Функциональное описание выводов.
Integral Nonlinearity, INL (интегральная нелинейность). Это максимальное отклонение от прямой линии, проходящей через крайние точки функции преобразования АЦП. Конечные точки находятся на нулевой шкале, точка на 1/2 LSB ниже первого перехода кода, и на полной шкале, на 1/2 LSB выше последнего перехода кода. Differential Nonlinearity, DNL (дифференциальная нелинейность). Это разница между измеренным и идеальным изменением 1 LSB между двумя соседними выходными кодами ADC. Offset Error (ошибка смещения). Это отклонение от первого перехода кода (00...000) к (00...001) от идеального, например AGND + 1 LSB. Gain Error (ошибка усиления). Это отклонение последнего перехода кода (111 ... 110) к (111...111) от идеального (например, VREF − 1 LSB) после того как ошибка смещения была скорректирована. Track-and-Hold Acquisition Time (время захвата схемы выборки-хранения). Усилитель схемы выборки-хранения возвращается в режим отслеживания сигнала по окончании преобразования. Время захвата схемы выборки-хранения это время, которое требуется, чтобы выход усилителя схемы выборки-хранения достиг конечной величины, в пределах ±1 LSB после окончания преобразования. Подробнее см. раздел "Последовательный интерфейс". Signal-to-(Noise + Distortion) Ratio (SNR, SINAD). Измеренное соотношение сигнал/шум (это SNR) или сигнал/(шум+искажения) (это SINAD) на выходе АЦП. Сигнал это среднеквадратическая амплитуда (RMS, root mean square) основной измеряемой величины. Шум это сумма всех не основных сигналов, частота которых меньше половины частоты дискретизации (fS/2, исключая постоянное напряжение). Соотношение зависит от количества уровней квантования в процессе оцифровки сигнала; чем больше уровней, тем меньше шум квантования. Теоретическое соотношение SNR (SINAD) для идеального N-разрядного преобразователя вычисляется по формуле Signal-to-(Noise + Distortion) = (6.02 N + 1.76) dB Таким образом, для 16-битного преобразователя этот параметр равен 98 dB. Total Harmonic Distortion, THD (общие гармонические искажения). THD это соотношение суммы rms гармоник к основному сигналу. Для AD7680 оно определено как где V1 это амплитуда rms основной частоты и V2, V3, V4, V5 и V6 это амплитуды rms гармоник от второй до шестой. Peak Harmonic or Spurious Noise (пиковая гармоника или случайный шум). Соотношение значения следующего наибольшего компонента переменного напряжения в выходном спектре (до fS/2, исключая постоянную составляющую) к значению rms основного сигнала. Обычно это значение определяется по самой большой гармонике в спектре, но для АЦП, где гармоника похоронена на фоне шумов, это будет пиковый шум. Intermodulation Distortion, IMD (интермодуляционные искажения). Когда на входе присутствуют 2 синусоидальных сигнала с 2 частотами fa и fb, то любое активное устройство, у которого есть нелинейность, создает искажения как сумму и разность частот mfa ± nfb, где m, n = 0, 1, 2, 3. Условия интермодуляционных искажений - когда ни m, ни n не равны 0. Например, условия второго порядка включают (fa + fb) и (fa − fb), тогда как условия третьего порядка включают (2fa + fb), (2fa − fb), (fa + 2fb) и (fa −2fb). AD7680 был протестирован по стандарту CCIF, где использовались две входные частоты, близкие к концу полосы пропускания по входу. В этом случае условие второго порядка обычно находится на расстоянии от оригинальных входных частот, и условие третьего порядка обычно по частоте близко к входным частотам. В результате условия второго и третьего порядка указаны отдельно. Вычисление интермодуляционного искажения сделано как в спецификации THD, где это соотношение суммы rms продуктов искажений к сумме амплитуд rms основного сигнала, выраженное в dB (децибелы). Spurious-Free Dynamic Range, SFDR. Соотношение основного полезного сигнала к самому сильном побочному (помеха). Определяет рабочий диапазон АЦП. [Типовые характеристики, связанные с производительностью] На рис. 5 показан типичный график FFT (быстрое преобразование Фурье) для AD7680 на скорости оцифровки 100 kSPS и входной частоте 10 кГц. Рис. 6 показывает зависимость соотношения сигнал/шум (signal-to-noise, SNR) и сигнал/искажения (signal-to-distortion, SND) от входной частоты для разных напряжений питания при скорости оцифровки 100 kSPS и частоте тактов SCLK 2.5 МГц. Рис. 5. Динамическая характеристика AD7680 на скорости оцифровки 100 kSPS. Рис. 6. AD7680 SINAD в зависимости от аналоговой входной частоты для различных напряжений питания и скорости оцифровки 100 kSPS. На рис. 7 показан граф зависимости общих гармонических искажений от входной аналоговой частоты для различных напряжений питания. Рис. 8 показывает граф зависимости общих гармонических искажений от аналоговой входной частоты для различных сопротивлений источника сигнала (см. раздел "Аналоговый вход"). Рис. 9 и 10 показывают типичные графики INL и DNL для АЦП AD7680. Рис. 7. Зависимость AD7680 THD от аналоговой входной частоты для различных напряжений питания и скорости оцифровки 100 kSPS. Рис. 8. Зависимость AD7680 THD аналоговой входной частоты для различных выходных сопротивлений источника сигнала. Рис. 9. Типичный INL для AD7680. Рис. 10. Типичный DNL для AD7680. [Внутренняя схемотехника] AD7680 является быстрым, малопотребляющим 16-битным ADC с одиночным питанием. Микросхема может работать от источника питания с напряжением в диапазоне 2.5V .. 5.5V, и может при этом обеспечить скорость оцифровки 100 kSPS на частоте тактов интерфейса 2.5 МГц. AD7680 предоставляет встроенную в кристалл перед АЦП схему выборки-хранения и последовательный интерфейс - и все это в маленьком 6-выводном корпусе SOT-23 или 8-выводном корпусе MSOP, что дает пользователю преимущество при разработке печатной платы в сравнении с альтернативными решениями. Вход для тактов последовательного интерфейса SCLK одновременно предоставляет тактовый сигнал для схемы АЦП последовательного приближения. Диапазон входных оцифровываемых напряжений для AD7680 находится в пределах от 0V до VDD. Внешнее отдельное опорное напряжение не требуется, поскольку оно берется от вывода подачи питания VDD. AD7680 также имеет опцию выключения питания (power-down), позволяющую экономить энергию источника питания между преобразованиями. Эта возможность реализована на основе стандартного последовательного интерфейса, и подробнее описана в разделе "Режимы работы". Как работает преобразование АЦП. AD7680 является 16-битным АЦП, работающим по принципу последовательного приближения на базе ЦАП на конденсаторах (capacitive DAC). AD7680 может оцифровывать аналоговые входные сигналы в диапазоне от 0V до VDD. Рис. 11 и 12 упрощенно показывают схемотехнику АЦП. В неё входит управляющая логика, SAR и емкостной DAC. Рис. 11 показывает ADC в фазе захвата входного сигнала (acquisition). SW2 замкнут, и SW1 находится в положении A. Компаратор удерживается в сбалансированном состоянии и конденсатор для хранения выборки сигнала захватывает уровень на входе VIN. Рис. 11. Фаза захвата входного сигнала АЦП (ADC Acquisition Phase). Когда ADC начинает преобразование, ключ SW2 открывается и SW1 переключается в положение B, что приводит к разбалансировке компаратора (рис. 12). Логика управления и ёмкостный DAC используются для прибавления и вычитания фиксированного количества заряд из конденсатора захвата, пытаясь перевести компаратор в состояние баланса. Когда компаратор проходит все стадии балансировки, преобразование считается завершенной. Управляющая логика генерирует выходной код ADC (см. раздел "Передаточная функция АЦП"). Рис. 12. Фаза оцифровки сигнала АЦП (ADC Conversion Phase). [Аналоговый вход] На рис. 13 показана эквивалентная схема структуры аналогового входа AD7680. Два диода D1 и D2 предоставляют защиту ESD для аналогового входа. Следует заботиться о том, чтобы уровень входного сигнала не выходил за пределы диапазона GND-0.3V .. VCC+0.3V. Причина понятна - вне этого диапазона диоды открываются, и через них потечет входной ток. Максимальный допустимый ток, после которого они могут повредиться, составляет 10 мА. Конденсатор C1 на рис. 13 имеет обычно емкость около 5 пФ, и он отражает емкость вывода микросхемы. Резистор R1 является составным компонентом, в который входит входное сопротивление ключа схемы выборки/хранения (сопротивление этого резистора около 25Ω). Емкость C2 это конденсатор выборки ADC, и у него типичная емкость порядка 25 пФ. Для приложений, где нужна оцифровка переменного напряжения, рекомендуется вырезать высокочастотную составляющую из аналогового входного сигнала, используя ФНЧ на резисторах и конденсаторах (RC low-pass filter), подключенный к аналоговому входу. В приложениях, где критичны гармонические искажения и соотношение сигнал/шум, аналоговый вход должен быть подключен к источнику сигнала с низким выходным сопротивлением. Большое сопротивление источника сигнала значительно влияет на качество оцифровки входного переменного сигнала ADC. Для этого может потребоваться использовать входной буферный усилитель. Выбор операционного усилителя зависит от конкретного приложения. Когда усилитель не используется, выходное сопротивление источника сигнала должно быть низким. Максимальное сопротивление источника сигнала зависит от допустимой величины общих гармонических искажений (total harmonic distortion, THD). THD увеличивается, когда увеличивается выходное сопротивление источника сигнала, и ухудшается производительность АЦП (см. рис. 8). Рис. 13. Эквивалентная схема цепи аналогового входа. [Передаточная функция АЦП] Выходное значение кода AD7680 имеет обычный прямой двоичный формат. Переходы кода происходят в последовательных целочисленных значениях LSB, т. е., 1 LSB, 2 LSB. Вес младшего разряда составляет VDD/65536. Идеальная переходная характеристика для AD7680 показана на рис. 14. Рис. 14. Характеристика преобразования AD7680. [Типовая схема подключения] Рис. 15. Обычная схема подключения AD7680. Опорное напряжение для АЦП VREF берется от вывода питания VDD, так что оно должно быть хорошо развязано от помех. Результат преобразования на выходе представлен как 24-битное слово, или альтернативно все 16 бит конверсии результата могут быть получены с использованием минимум 20 тактов SCLK. Этот 20-/24-битный поток данных состоит из 4 начальных нулей, за которыми идут 16 бит данных преобразования, за которыми идут еще 4 завершающих нуля, если используется пачка из 24 тактов SCLK. Для приложений, где важна экономия в потреблении энергии, должен использоваться режим power-down между преобразованиями, или между пачками из нескольких преобразований (см. раздел "Режимы работы"). Фактически, поскольку требуемый ток потребления AD7680 мал, в качестве источника питания для VDD можно использовать точный источник опорного напряжения. Например, можно использовать микросхему генератора опорного напряжения REF19x (REF195 для 5V или REF193 для 3 V) или AD780, чтобы подать требуемое напряжение на ADC (см. рис. 15). Такая конфигурация особенно полезна, когда напряжение питания слишком зашумлено, или если напряжения питания в системе сильно отличаются от рабочего напряжения AD7680, например есть напряжение питания 15V. Выход REF19x или AD780 вполне подходит для VDD AD7680. Для фильтрации VDD рекомендуется использовать развязывающие керамические конденсаторы емкостью порядка 100 нФ с низким ESR (Farnell 335-1816) и 10μF танталовый конденсатор с низким ESR (Farnell 197-130). Цифровые выводы. Для цифровых входов AD7680 действуют совсем другие ограничения, отличающиеся от аналогового входа. На цифровой вход можно подать уровень до 7V, т. е. здесь нет ограничения VDD+0.3V, какое действует для аналогового входа inputs. Например, если AD7680 работает с VDD=3V, можно использовать цифровые логические уровни 5V. Однако следует помнить, что на выходе SDATA будет все еще уровень 3V для лог. 1, когда VDD=3V. Другое преимущество такой организации цифровых входов SCLK ~CS (уровни на них не ограничены VDD+0.3V) состоит в том, что можно избежать проблем, связанных с последовательностью подачи напряжений питания при включении. Если уровень на этих цифровых входах установится раньше, чем появится напряжение VDD, нет риска повреждения цифровых входов из-за защелкивания полупроводниковых структур, как могло бы произойти с аналоговым входом, если бы к нему было приложено напряжение уровнем на 0.3V выше, чем подано напряжение на VDD. [Режимы работы] Режим работы AD7680 выбирается управлением логическим состоянием сигнала CS во время преобразования. Может быть 2 возможных режима работы, normal и power-down. Момент, в котором ~CS переводится в лог. 1 после инициирования преобразования, определяет, войдет или нет AD7680 в режим power-down. Подобным образом, если AD7680 уже в режиме power-down, ~CS может управлять, вернется ли микросхема в режим normal, или останется в режиме power-down. Эти режимы работы разработаны с целью предоставить возможность гибкого управления энергопотреблением. Такая возможность позволяет оптимизировать соотношение рассеиваемая мощность / скорость преобразования для различных требований приложения. Режим normal. Этот режим предоставляет самую большую пропускную способность, поскольку пользователь не беспокоится по поводу интервалов времени power-up, AD7680 всегда остается в активном режиме. Рис. 16 показывает основную диаграмму работы AD7680 в этом режиме. Рис. 16. Нормальный режим работы (Normal). Преобразование инициируется спадом уровня на входе ~CS. Чтобы гарантировать, что микросхема останется всегда полностью запитанной, вывод выборки ~CS последовательного интерфейса должен оставаться в состоянии лог. 0 как минимум спадов 10 SCLK, которые должны пройти после спада в лог. 0 уровня ~CS. Если ~CS перейдет в лог. 1 в любой момент после прохождения 10-того спада SCLK, но перед 20-тым спадом SCLK, микросхема останется запитанной, но преобразование будет прервано и выход SDATA вернется обратно в третье (отключенное) состояние. Требуется как минимум 20 тактов последовательного интерфейса SCLK, чтобы выполнить полное преобразование и получить полный результат. Если будет выданы дополнительно тактовые импульсы до общего количества 24 тактов SCLK, то через SDATA будут переданы 4 завершающих нуля. ~CS может оставаться в лог. 1 до следующего преобразования, или может оставаться в лог. 0 до момента, когда ~CS вернется в состояние лог. 1 перед следующим преобразованием. Как только завершится передача данных (выход SDATA вернулся в третье состояние), может быть инициировано другое преобразование после "времени тишины" tQUIET, путем повторного перевода сигнала ~CS в лог. 0. Режим power-down. Этот режим предназначен для использования в приложениях, где можно снизить скорость потока данных. Либо ADC выключается между каждым преобразованием, либо делается пачка из нескольких преобразований с высокой скоростью, после чего ADC выключается на относительно большой интервал времени между этими пакетными преобразованиями. Когда AD7680 в отключенном режиме (power-down), все его аналоговые схемы выключаются. Для входа в режим power-down, процесс преобразования должен быть прерван путем перевода ~CS в лог. 1 после 2-го спада на SCLK и перед 10-ым спадом SCLK, как показано на рис. 17. Как только ~CS перейдет в состояние лог. 1 в этом окне тактовых импульсов SCLK, микросхема перейдет в режим power-down, инициированное спадом ~CS преобразование будет прервано, и выход SDATA перейдет обратно в третье состояние. Если CS перейдет в лог. 1 перед вторым спадом SCLK, микросхема останется в режиме normal и не выключится. Это предотвратит случайные выключения микросхемы из-за возможных импульсов на выводе ~CS. Рис. 17. Вход в режим выключения (Power-Down). Чтобы выйти из этого режима работы и снова запитать AD7680, должна быть выполнена пустая операция преобразования (dummy conversion). По спаду ~CS устройство начнет включаться, и останется включенным, пока ~CS удерживается в лог. 0 до 10-го спада SCLK. Микросхема полностью включается, как только пройдут минимум 16 тактов SCLK (или примерно 6 μs), и достоверные данные оцифровки могут быть получены при следующем преобразовании, как это показано на рис. 18. Если ~CS перейдет в лог. 1 перед 10-ым спадом уровня SCLK, независимо от частоты SCLK, AD7680 снова вернется в состояние power-down. Это позволит избежать случайного включения из-за импульсов помех на сигнале ~CS, или непреднамеренного пакета из 8 тактовых перепадов SCLK, пока ~CS находится в лог. 0. Так что хотя устройство может начать включение после спада на ~CS, оно снова выключится по фронту нарастания ~CS, как это произойдет перед 10-ым спадом SCLK. Figure 18. Выход из режима выключения (Power-Down). [Соотношение потребляемой мощности и скорости оцифровки] Если использовать режим power-down, когда AD7680 не оцифровывает сигнал, можно уменьшить среднее энергопотребление ADC, когда используется низкие скорости оцифровки. Рис. 19 показывает, как уменьшается скорость оцифровки, и пропорционально увеличению времени, когда микросхема ADC находится в выключенном состоянии, снижается среднее энергопотребление. Например, если AD7680 работает в режиме постоянной оцифровки, оцифровывая данные с частотой 10 kSPS и тактовой частотой SCLK 2.5 МГц (при напряжении питания VDD=3.6V), и между преобразованиями микросхема помещается в режим power-down, энергопотребление вычисляется следующим образом. Максимальное потребление в режиме normal составляет 6.84 мВт (при VDD=3.6V). Если время включения (время выхода из состояния power-down) равно 1 μs, и оставшееся время преобразования составляет 8 μs (при использовании передачи с 20 тактами SCLK), то AD7680 может рассеивать 6.84 mW для 9 μs во время каждого цикла преобразования. На скорости оцифровки 10 kSPS время цикла составит 100 μs. На оставшееся от преобразований время 91 μs микросхема остается в режиме power-down. AD7680 может потреблять 1.08 μW за эти 91 μs между циклами оцифровки. Таким образом, при скорости оцифровки 10 kSPS средняя рассеиваемая мощность составит в каждом цикле: (9/100) x (6.84 mW) + (91/100) x (1.08 μW) = 0.62 mW Рис. 19. Зависимость энергопотребления от скорости оцифровки с переходами в Power-Down между преобразованиями (передача 20 SCLK, питание VDD=3.6V). [Последовательный интерфейс] Рис. 20 показывает подробную диаграмму времени для последовательного интерфейса подключения AD7680. Тактовый сигнал предоставляет такты для преобразования, и также управляет передачей информации от AD7680 во время преобразования. Как уже упоминалось, сигнал ~CS инициирует передачу данных и процесс преобразования. Спад ~CS переводит узел выборки/хранения в режим удержания, выводит выходной сигнал из третьего состояния, и делает выборку сигнала с аналогового входа. В этот момент также начинается процесс преобразования, и требуется как минимум 20 тактов SCLK для завершения преобразования. Как только пройдет 17-й импульс спада SCLK, схема выборки/хранения перейдет обратно в режим отслеживания сигнала на следующем импульсе нарастания SCLK. На рис. 20 показана передача на 24 импульсах SCLK, которая позволяет достичь скорости оцифровки 100 kSPS. На 24-том спаде SCLK, выход SDATA не возвращается в третье состояние. Если фронт нарастания ~CS произошел перед прохождением 24 тактов SCLK, преобразование будет прервано и выход SDATA перейдет обратно в третье состояние; иначе SDATA перейдет в третье состояние на 24-том спаде SCLK, как это показано на рис. 20. Рис. 20. Диаграмма времени последовательного интерфейса AD7680 при передаче, управляемой 24 тактами SCLK. Требуется минимум 20 тактов последовательного интерфейса, чтобы выполнить процесс преобразования и получить данные от AD7680. В момент перехода ~CS в лог. 0 представляется первый начальный 0 для чтения микроконтроллером или DSP. Остальные данные выдвигаются последующими спадами сигнала SCLK, начиная со второго начального нуля; таким образом, первый спад тактов предоставляет первый начальный 0, и также выдвигает второй начальный 0. Если используется передача с 24 тактами SCLK, как это показано на рис. 20, передача данных состоит из 4 начальных нулей, за которыми идут 16 бит данных, завершаемые 4-мя завершающими нулями. Последний бит (четвертый последний 0) в передаче данных будет достоверным на 24-том спаде SCLK, он был выдвинут предыдущим (23-им) спадом SCLK. Если используется передача из 20 импульсов SCLK, как это показано на рис. 21, выходной поток данных состоит только из 4 начальных нулей, за которыми идут 16 бит данных, где последний бит будет достоверным на 20-том спаде SCLK. Передача с 20 SCLK позволяет уменьшить время полного цикла, и таким образом достичь более высокой скорости оцифровки. Рис. 21. Диаграмма времени последовательного интерфейса AD7680 при передаче, управляемой 20 тактами SCLK. Можно также получить достоверные данные на каждом фронте нарастания SCLK, а не на спадах SCLK, поскольку время цикла SCLK достаточно продолжительное, чтобы данные были в готовности на фронте нарастания SCLK. Однако первый начальный 0 будет все еще доступен по спаду ~CS, так что его можно получить только по первому спаду сигнала SCLK. Это можно игнорировать, и первый импульс нарастания SCLK после спада ~CS даст чтение второго начального 0, и 23-ий фронт нарастания SCLK даст последний завершающий 0. Этот метод может не работать с большинством микроконтроллеров/DSP, но его можно использовать совместно с микросхемами программируемой логики FPGA и ASIC. Семейство ADSP-218x процессоров DSP может быть напрямую подключено к AD7680 без каких-либо промежуточных логических схем. Регистр управления SPORT должен быть настроен следующим образом: TFSW = RFSW = 1, Alternate Framing (альтернативный формат фрейма) Для реализации режима power-down поле SLEN должно быть установлено в значение 0111, чтобы выдать пакет 8-бит SCLK. Схема соединений показана на рис. 22. Сигналы TFS и RFS порта SPORT процессора ADSP-218x соединены друг с другом, и TFS настроен как выход и RFS настроен как вход. DSP работает в режиме альтернативного фрейма, и регистр управления SPORT настроен соответствующим образом, как показано выше. Используется автобуферизация передачи и приема, чтобы получить передачу из 24 импульсов SCLK. Каждый буфер содержит три 8-битных слова. Сигнал синхронизации фрейма генерируется на TFS, подключенном к ~CS, и как требуется во всех системах цифровой обработки сигнала, для оцифровки нужна выборка с регулярными интервалами. В этом примере используется прерывание таймера, чтобы управлять частотой опроса ADC. Рис. 22. Пример подключения к ADSP-218x. Регистр таймера загружается значением, которое предоставляет прерывание на требуемом интервале между выборками. Когда произошло прерывание, значения в автобуфере передачи начинают передаваться, и генерируется сигнал TFS. TFS используется для управления RFS, и таким образом осуществляется чтение данных. Данные сохраняются в автобуфере приема для последующей обработки. Частота последовательных тактов устанавливается в регистре SCLKDIV. Когда выдается инструкция для передачи с TFS, например TX0 = AX0, проверяется состояние SCLK. DSP ждет, пока SCLK не перейдет в лог. 1, лог. 0, и снова в лог. 1 перед тем, как начнется передача. Если таймер и значения SCLK выбраны так, что инструкция для передачи происходит близко к фронту нарастания SCLK, данные могут быть переданы или могут ожидать следующего перепада тактов. В этом примере процессор Blackfin ADSP-BF538 подключен к АЦП AD7680 через последовательный порт SPI2 (подробнее описание порта SPI см. в [3]). Регистр управления SPI2_CTL должен быть настроен следующим образом: SPE = 1, разрешить работу SPI *pSPI2_CTL = SPE|MSTR|CPOL|SIZE|TDBR_CORE; Пример подключения к ADSP-BF538. Порт SPI Blackfin может за один фрейм аппаратно сгенерировать либо 8, либо 16 тактовых импульсов (в зависимости от выбранной ширины фрейма 8 или 16 бит). Но для опроса AD7680 нужно сформировать как минимум 20 тактовых перепадов. Можно применить 2 альтернативных решения: 1. Запрограммировать прием DMA на три 8-битных фрейма подряд, в результате получится 24 тактовых перепада SCLK. Принятое 24-битное число сдвинуть вправо на 4 разряда, получится результат оцифровки. 2. Выполнить программное формирование первых 4 тактовых перепада SCLK (дергая ножкой SCK2 как портом GPIO). Затем переключить ножку SCK2 на периферийное устройство SPI2, и запустить транзакцию SPI на ширину фрейма 16 бит. В результате получим нужные 20 тактовых перепадов сигнала SCLK, и в регистре приема SPI2_RDBR можно прочитать готовый результат оцифровки. В обоих случаях выборкой АЦП (сигналом ~CS) можно управлять программно. В результате был выбран 2 вариант. На скриншоте осциллографа Tektronix MSO 2014 можно посмотреть, какие получились диаграммы сигналов интерфейса: Как можно увидеть из оциллограммы, SPI запущен на частоте тактов 5.4 МГц, хотя по даташиту предельно допустимая частота 2.5 МГц. Несмотря на повышенную частоту, АЦП AD7680 все равно показал нормальный результат работы. Кроме того, не получилось сформировать стабильную последовательность из 20 перепадов SCLK. Однако неравномерность периодов тактового сигнала и его повышенная частота не повлияли на корректность оцифровки и чтения разультатов из АЦП. Ниже приведен код подпрограмм настройки SPI2 и чтения результата для работы с АЦП AD7680. Заголовочный файл AD7680.h: #ifndef __AD7680__
#define __AD7680__
//Опорное напряжение 3.3V:
#define AD7680_REF 3.3
//16-битный результат преобразования:
extern u16 accvoltage16;
//Функция настройки порта SPI2, должна быть вызвана
// 1 раз перед входом в главный цикл main:
void AD7680_InitCom (void); //Не блокирующая функция обработки чтения АЦП, её вызов
// должен быть вставлен в тело цикла main:
void AD7680handler (void); #endif //__AD7680__ Модуль AD7680.cpp: #include "pins.h"
#include "delay.h"
#include "uart/BfDebugger.h"
#include "AD7680.h"
u16 accvoltage16; void AD7680_InitCom (void) { //Настройка ножки выборки: *pPORTDIO_FER |= portCSpwr; *pPORTDIO_DIR |= portCSpwr; *pPORTDIO_SET = portCSpwr; //Настройки ножки для тактов: *pPORTDIO_FER |= portSCKpwr; *pPORTDIO_DIR |= portSCKpwr; *pPORTDIO_SET = portSCKpwr; *pSPI2_BAUD = 3; //Настройка SPI1 на 5.4 МГц. //Настройка порта SPI2. Что тут настроено: // SPE разрешить SPE // MSTR главное устройство // CPOL определяет полярность SCK // CPHA определяет фазу SCK // LSBF = 0, старший бит идет первым // SIZE выбирает 16-битный формат читаемого слова // TDBR_CORE определяет, что передача начинается записью SPI2_TDBR // со стороны ядра (значение поля TIMOD). *pSPI2_CTL = SPE|MSTR|CPOL/*|CPHA*/|SIZE|TDBR_CORE; } static void AD7680_StartConversion (void) { //Выбрать АЦП: *pPORTDIO_FER |= portSCKpwr; //переключение ножки SCLK в режим GPIO *pPORTDIO_CLEAR = portCSpwr; //~CS=0 (активная выборка AD7680) //4 раза дернуть ножкой SCK для прохождения 4 нулей: for (u8 bitcnt=0; bitcnt<4; bitcnt++) { *pPORTDIO_CLEAR = portSCKpwr; ssync(); csync(); *pPORTDIO_SET = portSCKpwr; ssync(); csync(); } //Переключение ножки SCLK в аппаратный режим: *pPORTDIO_FER &= ~portSCKpwr; //Запуск передачи (и одновременно приема) SPI. *pSPI2_TDBR = 0; } static bool AD7680_Read (u16 *value) { if (*pSPI2_STAT & RXS) { *value = *pSPI2_RDBR; *pPORTDIO_SET = portCSpwr; //~CS=1 (выборка AD7680 не активна) return true; } else return false; } #define AD7680_START 0
#define AD7680_READ 1
#define AD7680_WAIT 2
void AD7680handler (void) { static u8 state = AD7680_START; static clock_t waittimeout = 0; switch (state) { case AD7680_START: AD7680_StartConversion(); state = AD7680_READ; break; case AD7680_READ: if (AD7680_Read(&accvoltage16)) { waittimeout = clock() + 100*MS_TICKS; DEBUG(1, "%0.2f ", AD7680_REF * accvoltage16 / 65535); state = AD7680_WAIT; } break; case AD7680_WAIT: if(waittimeout < clock()) state = AD7680_START; break; } } Чтобы избежать лишнего блокирования основного цикла программы, последовательность чтения разделена на 3 фазы: фаза запуска оцифровки (AD7680_START), фаза чтения (AD7680_READ) и фаза паузы между преобразованиями (AD7680_WAIT). На фазе запуска оцифровки генерируется спад в лог. 0 сигнала выборки ~CS, затем программно формируются 4 тактовых перепада SCLK, ножка тактов переключается в аппаратный режим, после чего записью буфера передачи запускается транзакция приема/передачи фрейма SPI. Все это делает функция AD7680_StartConversion. На фазе чтения ожидается появление флага RXS, сигнализирующего о заполнении буфера приема. Как только флаг RXS взведен, результат оцифровки вычитывается из буфера приема и помещается в глобальную переменную accvoltage16. Чтение результата выполняет функция AD7680_Read. После этого запускается отсчет таймаута паузы (в данном примере между оцифровками выдерживается пауза в 100 мс). На фазе ожидания не выполняется никаких действий, кроме отслеживания истечения таймаута. Как только таймаут истек, снова инициализируется переход в фазу запуска оцифровки. [Советы по применению] Заземление и разводка платы. Печатная плата прибора, на которой установлена микросхема AD7680, должна быть разработана так, чтобы цепи аналоговых и цифровых сигналов были разделены, и ограничены определенными областями платы. Это упрощает использование плоскостей земли, которые можно разделить при разводке. Использование минимального зазора травления для заливок земли даст самый лучший результат, поскольку при этом получается самое лучшее экранирование. Заливки земли цифровых цепей и аналоговых цепей должны быть соединены друг с другом только в одном месте. Если AD7680 находится в системе, где несколько устройств требуют подключения AGND к DGND, соединение все равно должно быть сделано только в одной точке, и точка соединений звезды должны находиться как можно ближе к AD7680. Избегайте прокладки цифровых сигнальных линий под корпусом микросхемы, потому что это может порождать паразитные наводки. Аналоговая земля должна быть размещена под AD7680, чтобы уменьшить шумовые наводки. Цепи питания AD7680 должны использовать как можно более толстые проводники, чтобы уменьшить их сопротивление и индуктивность, и тем самым уменьшить влияние импульсов выбросов по питанию. Сигналы, переключающиеся с высокой частотой, такие как тактовые, должны быть экранированы цифровой землей, чтобы избежать наводок а другие секции платы, и тактовые сигналы не должны проходить рядом с аналоговыми входами. Избегайте пересечения цифровых и аналоговых сигналов. Трассы на противоположных сторонах платы должны проходить друг к другу под прямым углом, это уменьшит эффект взаимного влияния сигналов на плате. Техника microstrip скорее всего будет лучшей, но её не всегда можно осуществить для двухслойной платы. По этой технике сторона компонентов платы используется для экранирования (максимально залита проводником земли), а разводка всех цепей сигналов выполнена на обратной стороне платы (так называемая нижняя сторона, или "сторона пайки", последний термин не всегда оправдывает свое название в случае применения поверхностного монтажа). Хорошая развязка питания также очень важна. Все аналоговые цепи питания должны быть развязаны танталовыми конденсаторами 10 μF и включенными параллельно им керамическими конденсаторами 0.1 μF на AGND, как это обсуждалось в разделе "Типовая схема подключения". Чтобы достичь наилучшей эффективности от применения развязывающих компонентов, пользователь должен постараться выдерживать минимальное расстояние между конденсаторами развязки и выводами VDD и GND, с применением как можно коротких проводников для соединения конденсаторов с соответствующими выводами микросхемы. Рис. 23. Размеры 6-выводного корпуса Small Outline Transistor Package, SOT-23 (RJ-6), указанные в миллиметрах. Рис. 24. Размеры 8-выводного корпуса Micro Small Outline Package, MSOP (RM-8), указанные в миллиметрах. [Доступные для покупки варианты AD7680]
Примечания: 1 Z = Компонент, совместимый с RoHS. [Словарик] ADC Analog-Digital Converter, аналого-цифровой преобразователь, АЦП. AGND Analog Ground, аналоговая земля. DAC Digital-Analog Converter, цифро-аналоговый преобразователь, ЦАП. DNL differential nonlinearity, дифференциальная нелинейность. ESD electrostatic discharge, разряд статического электричества. Основной источник помех и повреждений в электронике. ESR Equivalent Series Resistance, эквивалентное последовательное сопротивление. Параметр, учитывающий добротность конденсатора. FSR Full Scale Range, т. е. полный диапазон оцифровываемых сигналов. GND Ground, земля, общий провод для всех сигналов и питания. IMD Intermodulation Distortion, интермодуляционные искажения. INL Integral Nonlinearity Error, интегрированная ошибка нелинейности. kSPS KiloSamples Per Second, тысяча выборок в секунду. LSB Least Significant Bit, самый младший по значимости бит. MSB Most Significant Bit, самый старший по значимости бит. Oversampled имеется в виду передискретизация, т. е. вместо одной выборки сигнала делается несколько выборок, от которых потом берется среднее значение. Точность (динамический диапазон) при этом увеличивается. ppm Parts Per Million, т. е. количество миллионных частей от какой-то величины. REF сокращение от reference, в этом контексте имеется в виду опорное напряжение. RFS Receive Frame Synchronization, сигнал синхронизации фрейма приема. Термин относится к интерфейсу SPORT процессоров DSP компании Analog Devices. SFDR Spurious-Free Dynamic Range, отношение основного сигнала к самому мощному побочному (подробнее см. Википедию). SINAD signal-to-noise-and-distortion, соотношение сигнал/(искажения+шум). SNR signal-to-noise ratio, соотношение сигнал/шум. TFS Transmit Frame Synchronization, сигнал синхронизации фрейма передачи. Термин относится к интерфейсу SPORT процессоров DSP компании Analog Devices. THD total harmonic distortion, общий уровень гармонических искажений. хост микроконтроллер, управляющий работой АЦП. [Ссылки] 1. AD7680 site:analog.com. |