Инструменты пользователя

Инструменты сайта


doc:mk:1923nv015

1923НВ015 - Микросхема преобразователя аналогового сигнала

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

Управление микросхемой и съем данных происходит по интерфейсу SPI.

Микросхема оцифровывает дифференциальный сигнал, который может быть подан на один из входов. Выбор входа производится битом IAE (Instrumental Amplifier Enable) в регистре MODE.

MODE.IAE[4] Активный вход Описание
0 ADCINP, ADCINN Усилитель выключен, оцифровывается сигнал без усиления
1 IAINP, IAINN Усилитель включен, сигнал может быть усилен

Усиление задается полем IAS[7:6] в регистре CMM и прописывается вместе с полем CHS[5:0] того же регистра. Это позволяет за одно обращение по SPI переключить выбор входного сигнала с внешнего коммутатора и выставить необходимое усиление.

Регистр СММ Значение
IAS[7:6] 0 - усиление x1 (0,931 - 1,071)
1 - усиление x2 (1,764 - 2,244)
2 - усиление x4 (3,528 - 4,488)
3 - усиление x8 (7,056 - 8,976)
CHS[5:0] Значение шины А[5:0] - выбор канала на мультиплексоре.

Поскольку усиление аналоговое, то значение имеет некоторый разброс указанный в скобках. Микросхемы мультиплексоров соответственно должны быть предварительно включены через выводы CENx (Chip Enable), которые управляются битами CHE[3:0] в регистре CMM1.

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

  • Uвх = -Uref, соответствует цифровому значению 0х000000;
  • Uвх = 0, соответствует цифровому значению 0х800000;
  • Uвх = Uref, соответствует цифровому значению 0хFFFFFF;

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

  • OFFS - смещает нуль входного сигнала в середину цифрового диапазона выходных значений, поэтому параметр измеряется при замыкании входов между собой.
  • GAIN - задает масштаб входного сигнала к опорному напряжению Uref = 2,5В.

Значения, записанные в регистры OFFS и GAIN, влияют на результат как при использовании инструментального усилителя (ИУ), так и без него. На этапе производства выполняется калибровка АЦП без использования ИУ, после чего в ПЗУ АЦП записываются калибровочные коэффициенты. После подачи питания при инициализации АЦП данные калибровочные коэффициенты автоматически переписываются в регистры OFFS и GAIN, после чего устанавливается флаг IRDY в регистре STAT, поэтому после старта микросхема АЦП уже откалибрована для работы без использования ИУ, при этом результат преобразования может быть вычислен по формуле (2). При использовании инструментального усилителя для получения точных результатов преобразования необходимо выполнить процедуру калибровки АЦП. После этого расчёт результата преобразования необходимо выполнять по формуле (1).

Режим измерения сигнала может быть одиночным или непрерывным, это определяется полем MDS[6:7] регистра MODE.

MODE.MDS[7:6] Режим работы
0 - CONTINUOUS Непрерывное измерение сигнала
1 - SINGLE Одиночное измерение сигнала
2 - IDLE Режим ожидания на запуск
3 - Power Down Пониженное потребление

В режиме одиночного измерения необходимо прописать в поле MODE.MDS = 1, при этом

  • Выполнится измерение сигнала
  • Результат сохранится в регистры, в зависимости от бита DS24[3] регистра CFG:
    • DATA2 (hi), DATA1 (lo) - 16-битный результат, при CFG.DS24[3] = 0.
    • DATA2 (hi), DATA1 (mid), DATA0 (lo) - 24-битный результат, при CFG.DS24[3] = 1.
  • Выставится бит DRDY[3] в регистре STAT. Состояние бита дублируется на выводе DRDY микросхемы (вывод 10).
  • Микросхема перейдет в режим IDLE (MODE.MDS = 2).

В режиме непрерывного измерения необходимо записать MODE.MDS = 0. При этом будут выполняться все шаги из одиночного измерения, за исключением того, что микросхема не будет переходить в режим IDLE, а сразу начнет следующее измерение.

Бит CFG.DRDY[3], так же как и отдельный вывод DRDY, сигнализируют о том, что данные готовы и необходимо произвести считывание. При считывании данных из регистров DATAх бит CFG.DRDY[3] сбрасывается и взведется при готовности следующих данных. Если же данные не считать вовремя, то возникнет ошибка переполнения данных, которая отражается установкой бита VERR[4] в регистре STAT.

В текущей ревизии микросхемы, при возникновении ошибки VERR микросхема переходит в состояние IDLE. Это сделано для того, чтобы не перезаписывались еще не считанные данные. Если активным был режим CONTINUOUS, то переключение в IDLE прекратит поступление данных от АЦП. Поэтому важно вовремя считывать данные и не допускать состояния, когда АЦП закончило измерение данных, а старые данные еще не считаны. В следующей ревизии микросхемы перехода в IDLE не будет, данные будут перезаписываться и флаг VERR будет об этом сигнализировать.

При использовании вывода DRDY логично подключить его на вход внешнего прерывания микроконтроллера, который в обработчике будет считывать (или будет запускать считывание) данных от АЦП по SPI.

При программном опросе бита CFG.DRDY[3] необходимо обратить внимание на рисунок 8 "Диаграмма чтения регистра по шине SPI", стр. спецификации 10.

Как видно из рисунка, при запросе данных из микросхемы в первом слове возвращаются биты статуса, в том числе и бит готовности данных DRDY. Т.е. регистры данных можно опрашивать непрерывно, при этом наличие DRDY = "1" в статусе покажет, являются ли данные новыми или же это повтор ранее считанных данных.

Но непрерывно опрашивать данные не всегда разумно. Нет необходимости делать это значительно чаще, чем микросхема успевает обновлять выходные данные. Скорость выдачи данных от АЦП приведена в таблице 28 спецификации и задается полем FS[2:0] регистра CFG. Приведу только некоторые значения таблицы:

CFG.FS[2:0] Децимация фильтра (DEC) Частота выдачи FADC, Гц
CHPD = 1 CHPD = 0
DSET = 1 DSET = 0 DSET = 1 DSET = 0
0 4096 488 162 162 81
1 2048 976 325 325 162
5 128 15625 5208 5208 2604
6 (7) 64 31250 10416 10416 5208

Выставление поля CFG.FS задает коэффициент децимации фильтра - DEC. Децимация необходима для снижения частоты дискретизации - грубо говоря, для прореживания получаемых данных. Ведь сигма дельта АЦП обладает избыточной частотой дискретизации FMOD = 2МГц. Этим коэффициентом DEC и следующими параметрами в регистре CFG определяется итоговая частота выдачи данных АЦП:

  • CFG.CHPD[5]: 0 - включена компенсация смещения в фильтре, 1 - выключена.
  • CFG.DSET[4]: 1 - выдаются установившиеся данные, 0 - все результаты измерений.

Как видно из таблицы, при выключенной компенсации и без ожидания установившихся значений фильтра, выходные данные обновляются с частотой FMOD / DEC, т.е. например при DEC = 4095 получаем 2МГц / 4095 = 488Гц. Если из этого состояния включить компенсацию или ожидание установившихся значений, то частота в обоих случаях падает сразу в 3 раза: 488/3 = 162 Гц. Если при включенной компенсации включить ожидание установившихся значений в фильтре, то частота упадет еще в 2 раза: 162/2 = 81Гц.

Исходя из итоговой частоты выдачи данных МС 1923НВ015 необходимо производить считывание данных по SPI. Делать это необходимо с некоторым запасом, не допуская выставления бита переполнения данных VERR.

Заметки

  • Точность зависит от DEC, от CHPD зависит смещение. С увеличением DEC (снижением частоты выдачи результата) точность растет.
  • Во второй ревизии значение АЦП постоянно обновляется, флаг VERR говорит только о том, что какое-то значение не было считано.
  • CHPD = 1 выключение компенсации смещения нуля (обусловленное внутренними входными каскадами).

Вопросы


Можно ли определить работоспособность микросхемы аппаратным способом?

Внутренних тестов в микросхеме нет. Частично работоспособность можно определить по напряжениям на выводах микросхемы, опорному току, току потребления, функционирования SPI-интерфейса на чтение и запись.


Сколько нужно времени после подачи на RESET логической единицы для инициализации АЦП и его готовности к работе по SPI?

После установки RESET в "1" требуется максимум 100мкс, после чего микросхема работоспособна.


Какое минимальное время необходимо выдерживать между транзакциями по SPI?

время между транзакциями по SPI должно быть не менее 50нс


Что имеется ввиду под "инициализацией АЦП"?

Под инициализацией АЦП понимается запись начальных данных из OTP памяти в рабочие регистры при старте микросхемы. По окончанию инициализации устанавливается флаг IRDY в регистре STAT.


В регистре CFG есть бит DSET - выдача установившихся данных. Влияет ли данный бит на частоту выдачи данных?

Да, согласно спецификации, таблица 27, частота выдачи данных и время стабилизации зависят от значений CHPD и DSET:

  • Если CHPD=1, DSET=0, то первые два значения результата будут неправильные, а последующие правильные.
  • Если CHPD=1, DSET=1, то все значения результатов будут правильные (частота выдачи в три раза меньше, чем в предыдущем случае).
  • Если CHPD=0, DSET=0, то первое одно значение результата будет неправильное, а последующие правильные.
  • Если CHPD=0, DSET=1, то все значения результатов будут правильные (частота выдачи в два раза меньше, чем в предыдущем случае).

Возможно ли переключение канала и коэффициента усилия в режиме CONTINUOUS (на ходу)?

Да, переключение канала и коэффициента усиления возможно при включенном режиме непрерывного преобразования сигнала (CONTINUOUS). После записи данных в регистр CMM0 режим CONTINUOUS продолжается для нового канала и нового коэффициента усиления. При этом надо учитывать, что первые одно/два значения после смены канала могут быть неправильными в зависимости от битов CHPD и DSET.


doc/mk/1923nv015.txt · Последние изменения: 2019/09/20 09:49 — vasco