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

Вопросы от начинающих по МК


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

Внешний УВХ может иметь повторитель на выходе, благодаря чему передавать заряд для АЦП может очень долго, собственно в этом суть УВХ и заключается. Да и собственно, никакой заряд со входа не передаётся у АВР на входе стоят повторители и входное сопротивление стремиться примерно к 2ГОм, УВХ работает уже после повторителя, что прекрасно демонстрируется переносом напряжения с соседнего канала на "висящий в воздухе" при переключении мультиплексора без выдержки перед первым преобразованием.

Учение - изучение правил. Опыт - изучение исключений.

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

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

  • Ответов
  • Создана
  • Последний ответ

Топ авторов темы

20 часов назад, Alexeyslav сказал:

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

Суть УВХ в АЦП последовательных приближений с R2R ЦАПом - стабилизировать сигнал на входе компаратора на время преобразования. То есть удерживать сигнал более, чем время преобразования нет никакого смысла.

А для конденсаторных ЦАПов в SAR ADC применять внешний УВХ в обычном применении - вообще бессмысленно. Заряд, который был захвачен в момент семплирования НЕ СОХРАНЯЕТСЯ, а дробится на конденсаторах ЦАПа. То есть удерживать сигнал на входе после захвата совершенно пустое мероприятие.

Если для чего и нужен внешний УВХ, так только для реализации синхронного захвата БОЛЕЕ ОДНОГО сигнала в случае, если АЦП этого делать не в состоянии.

Для параллельных АЦП захват нужен для избежания неопределенности в сечении тактирования (защелкивания результата преобразования).

Изменено пользователем my504

戦う前に相手のベルトの色に注目

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

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

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

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

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

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

УВХ вообще нужен для того чтобы ЗАПОМНИТЬ напряжение на входе в течении короткого промежутка времени. В МК он запоминает 1.5 цикла тактовой частоты АЦП, очень часто этого недостаточно и входное напряжение может меняться даже во время выборки, из-за чего страдает результат измерения. Поэтому таки имеет смысл ставить УВХ который зафиксирует напряжение в нужный момент, а уж чего там и сколько будет отрабатывать АЦП дело десятое. Смысла только нет использовать УВХ с быстродействием ниже чем уже имеющийся в МК.

Учение - изучение правил. Опыт - изучение исключений.

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Алексей, Вы пишите ерунду.

Напряжение на УВХ после захвата В ПРИНЦИПЕ МЕНЯЕТСЯ. Оно не может не меняться. И не из-за разряда, а из-за перераспределения заряда на конденсаторах ЦАПа.

Проблема малого времени накопления перед захватом НЕ ВЛИЯЕТ на процессы ПОСЛЕ захвата. Это просто незавершенный процесс заряда. И все. После захвата совершенно безразлично что было ДО. Какое напряжение (заряд) установилось - такое и будет измерено..

Таким образом, нужно стремиться к малому выходному сопротивлению каскада перед УВХ, И внешний УВХ тут не пришей-не пристегни.

Кстати, не знаю как там в Атмелах, а в PICах в момент захвата отлично видно как проседает входное напряжение и потом по экспоненте восстанавливается. То есть для уменьшения эквизишн тайм нужно уменьшать сопротивление источника сигнала, а не громоздить внешний УВХ.

戦う前に相手のベルトの色に注目

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

У Атмела стоит повторитель на входе перед УВХ, поэтому влияния никакого и входное сопротивление под гигаом. Но работу схемы УВХ это не отменяет, она по прежнему будет пытаться зарядить конденсатор полтора цикла, и если в это время напряжение на входе меняется, а в данной задаче вероятность такая ЕСТЬ и немалая то получим ошибку измерения.
Было бы хорошо сократить это время до 100нс скажем и независимо от цикла АЦП, но штатное УВХ не сможет так, поэтому остаётся только внешний вариант.

Учение - изучение правил. Опыт - изучение исключений.

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

Алексей, заряд за 1,5 мкс означает, что сигнал: будет захвачен как ИНТЕГРАЛ за эти 1,5 мкс.

По поводу "повторителя на входе" - это Ваши домыслы. Никакого повторителя на входе нет,о чем совершенно ОПРЕДЕЛЕННО указано в даташите, где приведена схемотехника аналогового входа:

5917d85ec0691_.PNG.15359486c0421f71fd38fa2d214ff448.PNG

Как следует из схемы и текста, то, что Вы называете "ошибкой", на самом деле - обычная ЛИНЕЙНАЯ ошибка связанная с АЧХ. То есть ЛЮБОЙ частотнозависимый элемент схемы ДО входа обладает такой же "ошибкой".

Из чего, в свою очередь, следует, что внешний УВХ тут ничем не поможет.

 

戦う前に相手のベルトの色に注目

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

В догон, АЧХ антиалиасингового фильтра на входе АЦП (он ОБЯЗАН быть, если спектр сигнала шире критерия Котельникова-Найквиста) напрочь перекроет "ошибку" связанную с АЧХ схемы выборки-хранения.

戦う前に相手のベルトの色に注目

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

На схеме нарисован ключ мультиплексора а не УВХ. И вообще это ЭКВИВАЛЕНТНАЯ схема аналогового входа.
Повторитель там есть, ибо заряд на неподключенном аналоговом входе держится замечательно и при постоянном сканировании.

Учение - изучение правил. Опыт - изучение исключений.

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

На схеме, Алексей, указана ЕМКОСТЬ УВХ (если Вы не в курсе, то по английски это звучит как S/H (sample/hold).

И таки да, схема эквивалентная, но она предназначена как раз для РАСЧЕТА полосы пропускания УВХ. Именно для этого указана емкость УВХ, причем не просто относительно земли,а относительно половины питания. То есть ровно так, как емкость УВХ включается в псевдодифференциальных АЦП.

Что касается удержания напряжения на открытом входе, то тут есть ДВЕ причины. Емкость ДО ключа и два генератора тока показанные на схеме.

Но дело тут даже не в этом. 

Еще раз повторю, что внешний УВХ ничем не поможет расширить полосу пропускания системы в целом, поскольку он включен ПОСЛЕДОВАТЕЛЬНО с самим встроенным УВХ с одной стороны и с антиалиасинговым фильтром с другой.

Изменено пользователем my504

戦う前に相手のベルトの色に注目

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

на тему УВХ и ошибок вносимых им (а так же методах компенсации этих ошибок) есть отличная статья http://www.leoniv.diod.club/articles/adcstm32/adcstm32.html

речь там про STM, но смысл тот же самый для всех емкостных УВХ многоканальных ацп

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

Доброго времени суток!
Объясните новичку пожалуйста как изменить код в соответствии со сменой МК с atmega128 на atmega1284p:

// настраиваем три INT прерывания по переднему фронту

EICRA=0xFC;

                EICRB=0x00;

                EIMSK=0x0F; передний фронт

                EIFR=0x0F;

               

                // таймер 1 в срабатывание по совпадению, на 125 кгц

                TCCR1B=0x00; останавливаем таймер

                OCR1AH=0x00;

                OCR1AL=0x7D; совпадение по прерыванию

                TIMSK=0x10; таймер срабатывает по совпадению

               

                // третий таймер туда же

                TCCR3B=0x00;

                OCR3AH=0x1E;

                OCR3AL=0x85;

                ETIMSK=0x10;

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

Только на этот раз по-человечески: с именованными константами, сдвигами и логическими операциями. Хорошо хоть комментарии есть.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Начал изучать stm32.Сразу смутило что все видео уроки в интернете начинаются с установки заголовочных файлов и каких-то там непонятных действиях в них,что-то раскоментируют и т.д. Решил разобраться что такое заголовочные файлы,но есть загвоздки в самом начале.

1. Сразу не понятно что в этой строчке такое __STM32F10x_H?Это имя макроса?

#ifndef __STM32F10x_H  // тут как я понял компил проверяет не был ли __STM32F10x_H раньше подключен

#define __STM32F10x_H // если не был то подключает

Обычно пишется же #define TRUE 1 // то есть если компил увидет true то заменит его на 1, а тут просто  __STM32F10x_H

 

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

Второе что не понятно

#ifdef __cplusplus
 extern "C" {         //
#endif 

Обычно же  слово extern говорит компилятору что "С" объявлена в другом месте,но тогда бы запись была extern int c,но тут "C",что не совсем похоже на переменную.

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

Только что, BiBOX сказал:

Обычно пишется же #define TRUE 1

Пишется обычно то, что необходимо.

Вышеупомянутая вами пара макросов на самом деле тройка - в самом конце файла есть еще третья часть - #endif

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

Если защитный макрос не объявлен, он объявляется в теле файла, а если окажется, что ранее он уже был объявлен (т.е. уже заголовок подключен), то тело файла целиком игнорируется, и задвоения не происходит.

Только что, BiBOX сказал:

же  слово extern говорит компилятору что

В данном случае это фишка С++, а не Си.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

Только что, BiBOX сказал:

Не совсем понял

Изучайте С++ и разбирайтесь с extern в С++.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

1 час назад, BiBOX сказал:

Обычно же  слово extern говорит компилятору что "С" объявлена в другом месте

в данном случае эта директива говорит компилятору, что весь текст ниже определен в пространстве имен С99. Для С++ это пространство свое и если не будет этой директивы, то просто напросто посыпятся ошибки отсутствующих или не определенных имен. Вообще С++ это конечно красиво, но для STM не совсем то что нужно. Лучше использовать стандартный С99 и процедурный код + ОС если требуется что-то посложнее блинка написать. Я пробовал разные методы и пришел именно к таким выводам. Все заголовки и библиотеки в стандарте пишутся именно на С

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

Изучайте С++ и разбирайтесь с extern в С++.

Я думаю не стоит пока изучать С++ из-за одной непонятной строчки.

#ifdef __cplusplus
 extern "C" {         //
#endif  

Это для использования функций, написанных на разных языках программирования (C и C++), для их корректной работы.

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

4 минуты назад, BiBOX сказал:

конкретно ((uint16_t)0x0080) ?Определили  тип константы?

это типизированная константа. То есть приведенная к полуслову. В принципе запись (uint16_t) можно и опустить. Большинство компиляторов сами приводят типы в зависимости от контекста, но если использовать приведение, то это типа хороший тон и надежнее. Ну и если эта константа попадет в аргумент функции с иным типом (например uint32_t) то вы по крайней мере избежите сообщения типа warning

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

  • 4 недели спустя...

возможно ли в мк один таймер запустить другим? То есть таймер0 досчитал, скажем, до 100, вызывается   прерывание по совпадению, в котором еще и запускается таймер1.

Если да - то на каких?

Пробовал нечто подобное сотворить в atmega328,  на С++ , ничего не вышло.

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

1 час назад, Hell сказал:

возможно ли в мк один таймер запустить другим?

Возможно

 

1 час назад, Hell сказал:

Если да - то на каких?

На любых

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

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

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

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

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

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

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

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

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

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

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

×
×
  • Создать...