====== Вопросы по МК 1986ВЕ4У====== ====Формула пересчета значений сигма-дельта АЦП в вольты==== {{schema:sd-adc_to_volt.png}} где, \\ FDAT - 24-разрядный цифровой отсчёт в **обратном** двоичном коде, (т.е. знаковый) \\ VIN-входное дифференциальное напряжение (диапазон от +2,4 до -2,4 В) \\ VREF ≈ +1,2 В-опорное напряжение (напряжение на площадке VR_1V) \\ ANGAIN = x1- аналоговое усиление канала 0 дБ \\ ANGAIN = x2 - аналоговое усиление канала +6 дБ \\ ANGAIN = x4 - аналоговое усиление канала +12 дБ \\ ANGAIN = x16 - аналоговое усиление канала +24 дБ \\ {{schema:sd-adc_diggain.png}}, где ADCPGA в децибелах, смотри таблицу 55 спецификации - цифровое усиление канала. \\ ДОПОЛНЕНИЕ: **Спецификация требует DIGGAIN всегда выставлять в х1 (0дБ)!** Следовательно DIGGAIN из формулы можно исключить. Для преобразования 24-битного знакового значения из регистра результата в нативное для МК 32-битное знаковое можно использовать подобную функцию: #define MDR_ADCUI_SIGN_OFFS 8 __STATIC_INLINE int32_t MDR_ADCUI_ReadData(MDR_ADCUI_CH ch) { volatile uint32_t result = MDR_ADCUI->DAT[(uint32_t)ch] << MDR_ADCUI_SIGN_OFFS; return (int32_t)(result) >> MDR_ADCUI_SIGN_OFFS; } Этот вариант был предложен на [[http://forum.milandr.ru/viewtopic.php?p=23980#p23980|форуме]]. Volatile необходим, чтобы компилятор не выбросил сдвиг туда-обратно на 8 бит при растяжении знакового бита. ====Параметры дифференциального сигнала для измерения сигма-дельта АЦП==== {{schema:diffsig_ve4_sd.png}} Отсчеты данного АЦП можно посмотреть в Excel файлах в данном проекте на [[https://github.com/StartMilandr/MDR_Pack_v6/tree/master/PACK_Gen/Files/Examples/misc/ADCUI_VE4|GitHub.]] Параметры SFC и SFF влияют на скорость выдачи данных, чем выше эти делители, тем большее время занимает измерение одной точки. При изменении параметра SFC на +1, время на отсчет увеличивается в два раза. Это наглядно видно по картинкам из проекта. На UART выводилось 1000 отсчетов при одной и той-же входной частоте: {{doc:adcdac:adcui_ve4_sfc.png}} Примечательно, что если усилением AGain вывести сигнал в зашкал, то что при положительном входном сигнале, что при отрицательном результат получается одинаковым 0xFF800000. ====Параметры сигнала для измерения АЦП последовательных приближений==== {{schema:adc_signal.png}} ---- **//Допустим ли в принципе режим работы АЦП без подавления постоянной составляющей и на что это влияет?//** Без подавления постоянной составляющей также можно работать, но, если есть возможность, то этот режим мы рекомендуем использовать. Допустимо, но не оптимально. ---- **//Если режим устранения постоянной составляющей отключен (биты 16-9 регистра CTRL1 равны 0), то устанавливаемое значение делителя не повлияет на сигнал?//** Значение делителя не влияет на сигнал, если режим устранения постоянной составляющей отключён. ---- **//Можно ли тактировать процессор и сигма-дельта АЦП от внутреннего генератора (HSI с частой 8МГц)?//** Внутренний генератор микроконтроллера 8 МГц неточный и его нельзя использовать для тактирования сигма-дельта АЦП, нужно ставить внешний генератор HSE (8 МГц) и с него напрямую тактировать частотой HSE/2 (4 МГц), нельзя также тактировать АЦП с умножителя частоты. Внутренний генератор HSI: "неточный" означает, что значение частоты в большей степени зависит от температуры, а также немного зависит от напряжения питания. В нормальных условиях можно рассчитывать на то, что f при одной и той же температуре будет одна и та же (или близко к одному значению). Но если температура изменяется существенно, то и частота может измениться в пределах, указанных в ТУ (спецификации) ---- **//Позволяет ли существующая реализация блока сигма-дельта АЦП управлять процессом цифровой фильтрации, например, отключить ее вовсе или запрограммировать другие коэффициенты?//** Отключить фильтрацию нельзя, можно запрограммировать только коэффициент входного sinc фильтра, остальные фильтры жёстко заданы и работают со своими коэффициентами. ---- **//Возможно ли подавать на вход Сигма-Дельта АЦП униполярный сигнал?//** Для униполярного режима в 1986ВЕ4 можно использовать SAR АЦП. Если под понятием «униполярный» сигнал понимается то, что напряжение на одном входе изменяется, а на втором нет (тем самым синфазное напряжение выходит из рамок ТУ), то такой режим не соответствует ТУ. ---- **//Как правильно подавать измеряемое напряжение на входы сигма-дельта АЦП с учетом синфазного напряжения?// ** На отладочной плате с синфазным напряжением без переделки бороться не удастся. Один из дифференциальных входов канала АЦП подключен к «Земле» платы. В такой таком варианте включения можно получать положительные отсчеты. Чтобы получить отрицательные отсчеты, пришлось бы сменить полярность сигнала относительно земли. Можно отрезать физически вход АЦП от «Земли», создать искусственную среднюю точку и подсоединить этот сигнал туда. Тогда «землю» генератора сигнала можно подключить на эту среднюю точку, если она будет гальванически отвязана от «земли» демоплаты. В таком виде сигнал с генератора может быть как положительной, так и отрицательной полярности относительно средней точки, соответственно, и диапазон цифровых данных станет полным. ---- **Возможна ли не синхронная выдача данных сигма-дельта АЦП на микроконтроллере 1986ВЕ4?** \\ Не синхронная выдача невозможна. Задача стояла сделать именно все синхронные, так как во всех наших других проектах каналы АЦП были несинхронные, и пользователи хотели синхронизировать. ---- //**Какой размер FIFO в составе сигма-дельта АЦП? В какой момент вызывается прерывание по переполнению FIFO? Что при этом происходит с данными?**//\\ Величина FIFO 16х24 отсчётов. Прерывание по переполнению вызывается, когда в последнюю свободную ячейку FIFO помещаются данные. Если их не вычитывать, то первый из отсчётов испортится, так как уже следующие пришедшие данные будут записываться поверх. ---- //**//Как определить, какой сигнал может измерить сигма-дельта АЦП в МК, а какой нет(в частности, пользователя интересовали сигналы 10-100мкВ и 10-100мВ).//**// Сигнал 10-100мкВ измерить можно (!но с большими сложностями и определенной скоростью), но эта возможность зависит от: 1. высокой точности дифференциального сигнала; 2. скорости проведения измерения; 3. Среднеквадратичное значение шума для полосы 1 Гц-4 кГц составляет порядка 70 мкВ, для 1-25 Гц порядка 10 мкВ, что соизмеримо с измеряемым сигналом (см. раздел "Справочные данные", параметры сигма-дельта АЦП); 4. Температурное отклонение ошибки смещения порядка 1 мВ, что потребует наличия схемы производящей непрерывную перекалибровку для измерения постоянного напряжения. Сигнал 10-100мВ измеряется свободно. Чтобы определить, какой сигнал можно измерить, а какой нет, в разделе справочные данные находим параметр сигма-дельта АЦП "среднеквадратическое значение шума, мкВ". Он равен 71.7мкВ. Величина сигнала, начиная с которой можно проводить измерения, 71.7мкВх4 = 286.8мкВ=0,286мВ. ---- **//Не получается получить нулевые значения сигнала. Наблюдается нестабильность в районе 0 (3.3В питание, 1.65В на обоих входах, напряжение на входах обеспечивалось с помощью потенциометров), также пробовали просто через резисторы замкнуть два входа АЦП, результат тот же. Что может быть не так? Сигнал на входе униполярный от 0В до 2.5В. //** Сигма-дельта АЦП не предназначен для измерения постоянных сигналов, именно поэтому получить на выходе 0 не удастся. Кроме того, при входном сигнале малой амплитуды даже идеально синусоидального сигнала в допустимом диапазоне частот, наблюдается так называемая "мёртвая зона", где показания недостоверны. В микроконтроллере 1986ВЕ4У имеется восьмиканальный 12-разрядный АЦП последовательного приближения. Он как раз пригоден для измерения униполярного постоянного или почти постоянного сигнала. ---- **//Можно ли измерять постоянный сигнал через Сигма-Дельта АЦП в 1986ВЕ4У?//** ТУ не запрещает измерять постоянные напряжения. И даже говорит о том, что они будут измерены с высокой точностью, при условии соблюдения предельно допустимых условий (ТУ таблица 3, спецификация таблица 314). \\ Измерять можно хоть постоянные, хоть переменные напряжения. На практике можно измерять даже недифференциальные сигналы (относительно нуля). Но мы не рекомендуем такое использование и ничего не гарантируем, поскольку в этом случае происходит выход за рамки предельно-допустимых параметров. ---- **//Возможна ли корректная работа ЦАП микроконтроллера 1986ВЕ4У1 в режиме, при котором в нагрузке у него больше 10 кОм, но при этом ток будет втекать в ЦАП?//** Да, такой режим работы ЦАП возможен. На выходе ЦАП есть буферизующий ОУ, поэтому выходной ток ЦАП может быть как вытекающим, так и втекающим. Однако необходимо учитывать, что минимальное выходное напряжение ЦАП не должно быть меньше 0,08 В.