Все мы хоть раз в жизни измеряли температуру. Будь то хоть собственное тело, хоть воздух за окном или процессор в материнской плате. В большинстве случаев в быту речь идёт об диапазоне -50… 100 ºС, и для таких измерений подойдёт простой спиртовой термометр. В случае с процессором используется полупроводниковый датчик, но и он ограничен этим же диапазоном измеряемых температур.
В промышленности же за частую приходится иметь дело с температурами в разы большими чем 100 ºС. Для их измерения чаше всего используются термопары. Например вольфрамрений (5%) — вольфрамрениевая (20%) термопара способна выдерживать кратковременный нагрев до 2500 ºС.
Собственно стала такая вот задача — несколько раз в секунду снимать показания потенциометра. Целевой приемник информации — контроллер ATmega32. Имеет встроенный АЦП, но выдаваемый им результат имел разрешение 2-3 бита, а остальные биты несли в себе мусор.
Первое что пришло на ум — купить внешний АЦП и прикрутить к контроллеру. Но не было ни времени ни желания разбираться с еще одним устройством. Решил попробовать другой метод, в работоспособности которого не был уверен, но тем не менее схема оказалось вполне рабочей и дала точность порядка 8 бит (может и больше, не проверял).
Привет хабр. Я уже давно вынашивал сделать UART Аналогового-Цифрового Преобразователя на ATtiny13, зачем делать именно на ATtiny13 ведь есть, к примеру, ATmega8 имеет аж 6 (для DIP корпуса) портов на которых, при помощи мультиплексора, можно проводить измерение АЦП?
Причин несколько:
— ATtiny13 стоит дешевле;
— В ATtiny13 более оптимально используются ресурсы микроконтроллера;
— Размеры;
— Энергопотребление;
— Просто мне так захотелось.
Конечно на мои аргументы можно найти множество контраргументов, например ATmega8 при использовании V-USB может превратится в плату ввода/вывода которой не нужен переходник с UART на USB, правда кроме последнего, и с этим пожалуй не поспоришь.
Поставил себе за цель получить опыт работы с программный UART'ом именно на ATtiny13, а опыт как говорится, бесценный. По-любому пригодится для будущих проектов.
Ну ладно, не буду тянуть и покажу, как работает в железе:
Всем привет! В данной статье речь пойдет о подключении микросхем АЦП к кристаллам ПЛИС. Будут рассмотрены основные особенности соединения узлов схем, представлены современные АЦП и их характеристики. В статье будут даны практические советы по быстрому и правильному подключению АЦП к ПЛИС с минимальными временными затратами. Кроме того, речь пойдет о принципах подключения тех или иных АЦП, будет рассмотрен входной буфер ПЛИС и его базовые компоненты – триггеры, узлы задержки IODELAY, сериализаторы ISERDES и т.д. Более детально с примерами программного кода на языке VHDL будет проведен обзор основных элементов, требуемых для качественного приёма данных от АЦП. Это входной буфер, узел упаковки данных для одноканальных и многоканальных систем, модуль синхронизации и передачи данных на базе FIFO, узел программирования АЦП по интерфейсу SPI, узел синтеза частоты данных – MMCM/PLL. Также в статье будет представлен обзор законченных устройств (в стандарте FMC) от ведущих зарубежных и отечественных производителей аналоговых и цифровых схем. В конце статьи вы найдете ссылку на исходные коды универсального узла приёмника данных от многоканальных схем АЦП. Код простой и гибкий в конфигурировании, он представлен на языке VHDL и заточен на микросхемы ПЛИС Xilinx 7 серии и выше, но может быть применен и в других кристаллах ПЛИС.
Измерение trueRMS переменного напряжения — задача не совсем простая, не такая, какой она кажется с первого взгляда. Прежде всего потому, что чаще всего приходится измерять не чисто синусоидальное напряжение, а нечто более сложное, усложнённое наличием гармоник шумов.
Поэтому соблазнительно простое решение с детектором среднего значения с пересчётом в ср.кв. значения не работает там, где форма сигнала сильно отличается от синусоидальной или просто неизвестна.
Профессиональные вольтметры ср. кв. значения — это достаточно сложные устройства как по схемотехнике, так и по алгоритмам [1,2]. В большинстве измерителей, которые носят вспомогательный характер и служат для контроля функционирования, такие сложности и точности не требуются.
Также требуется, чтобы измеритель мог быть собран на самом простом 8-битном микроконтроллере.
Компания Xilinx тихо и без лишней помпы анонсировала продукт, который может полностью изменить облик и процесс разработки современных радиоприемников и передатчиков. Это маленькая микросхема, которая объединяет 90% вопросов обработки и формирования радиосигналов:
программируемая логика (FPGA),
процессоры для обработки сигналов и пользовательских приложений (два ARM’а),
до восьми 12-разрядных АЦП с частотой дискретизации до 4 ГГц (!),
до восьми 14-разрядных ЦАП с верхней частотой до 6.4 ГГц (!).
Кажется мы входим в эпоху, когда архитектура трансивера становится такой же универсальной, как архитектура современного ПК. Make SW, not HW!
Расчёт цепей постоянного тока на пальцах, или давайте считать ЦАП для троичной логики
Но для начала неонки, какой же русский их не любит?
Итак, снова я со своими троичными железками, но в этой статье они выступают фоном, сегодня статья про резисторы. Запаял я было несколько платок, в которые можно воткнуть газоразрядные лампы типа ИН-12 или ИН-15, но часы делать не захотел :)
Радиоуправляемыми самолетами я увлекся еще в 2002 году, живя в Праге. Первый самолет был с размахом крыла 1.2 м, двигатель 2-х тактный ДВС. Вот фрагмент видеозаписи тех времен. Однажды в 2008 году мне в руки попал акселерометр ADXL202E. Имея опыт разработки устройств на контроллере семейства MCS-51(это был Рубидиевый стандарт частоты и система сбора данных), я решил сделать автопилот для радиоуправляемой модели Mentor. Первым делом я подключил акселерометр к контроллеру. Для простоты я выбрал отладочную плату с контроллером AT91SAM7, за удобство и простоту работы с ней. Надо заметить, что я решил не изучать ничего про автопилоты в интернете, а делать все самостоятельно с "0", чтобы было интересней.
Итак, волей случая в 2008 году мне довелось полетать на самолете и иметь возможность использовать на борту ноутбук и свою платку с акселерометром. Сегодня любой владелец
планшета или смартфона может такой эксперимент провести самостоятельно, поскольку
акселерометры имеются почти во всех устройствах. Вот тут-то я и сделал для себя первое "открытие"
Когда в 2013 году Analog Devices выпустила SDR трансивер AD9361 — случилась настоящая революция в цифровой радиосвязи. SDR были и раньше, но теперь в одном чипе можно было получить все: 2 канала на прием и 2 на передачу (с набортными 12-бит ЦАП и АЦП) с шириной канала до 56МГц, локальные генераторы и радиотракт — для работы в диапазоне от 70 (на передачу от 47) до 6000Мгц. На AD9361 «из коробки» можно реализовать почти любой цифровой приемопередатчик, за исключением наверное только UWB и начинающего набирать популярность диапазона 60ГГц (но там без аппаратной многоэлементной ФАР все равно делать почти нечего). Остается лишь добавить источник/приемник данных (пока это обычно FPGA), внешние фильтры и LNA/PA, если задача того требует.
Мне наконец удалось посмотреть, что у него внутри, и — попробовать взглянуть на финансовую сторону производства действительно инновационной микроэлектроники с высокой добавленной стоимостью.
Уже давно микрокомпьютер Raspberry Pi вошел в жизнь гиков, системных администраторов, программистов и электронщиков. Недорогой и относительно мощный для своего класса, со встроенными портами ввода/вывода, он может справиться с различными задачами и удовлетворить потребности пользователя. Купив Raspberry Pi мне захотелось что-нибудь по включать, измерить, по управлять внешними устройствами. На данный момент продается большое количество плат расширения например как здесь, можно использовать Breadboard с проводами для быстрого прототипирования, но я предпочитаю делать устройства самостоятельно, для конкретных задач. Для первого раза я не стал использовать двухрядную гребенку под все вывода, а ограничился несколькими портами ввода/вывода, шиной SPI, I2C и UART. Соединял Raspberry Pi с таргетом проводами для макетирования «мама-мама».
В связи с этим был разработан ряд из трех плат прототипирования, об одной из них, самой простой я расскажу в этой статье.
Инженеры из Вашингтонского университета (США) разработали сотовый телефон, который работает без встроенного источника энергии (то есть без батареи). Он получает необходимые 3,48 микроватта (максимум) по радио со вспомогательной радиостанции, которая находится на расстоянии до 9,4 м. Если же присутствует источник света, то дополнительную энергию дают фотоэлементы, за счёт чего можно удалиться от базовой станции на 15,2 м.
Исследователи считают, что их работа станет первым шагом к созданию полноценного мобильного телефона без батарей, который сможет работать даже в отсутствие вспомогательной радиостанции. В конце концов, в городском пространстве и так очень много излучений, которые можно превращать в электричество.
Довольно часто в устройствах применяются активные датчики (терморезисторы, тензорезисторы, фоторезисторы, времярезисторы, счастьерезисторы и прочее).
Чтобы измерять соответствующую величину, датчик включают в цепь делителя в одно из его плеч.
Так рекомендуют поступать практически везде, особенно там, где точность не так важна как стоимость. В интернете множество уроков для ардуинщиков о считывании температуры именно при помощи терморезистора. Так поступают и в более серьезных приложениях.
Для примера ниже я представил часть схемы из драйвера VESC 4.2, который измеряет температуру ключей.
Важной практической задачей является использование Matlab/Simulink с реальной аппаратурой которая позволит принять сигнал из реального мира. Это очень полезно для отладки алгоритмов. В данной работе представлена технология подключения к Simulink устройств АЦП производства АО «ИнСис». Для подключения используется DLL, которая видна в Simulink как компонент sm_adc. Для работы с аппаратурой используется отдельная консольная программа. Связь с DLL производится через разделяемую память. По данной технологии могут быть подключены любые АЦП на любых несущих модулях АО «ИнСис». В работе представлена система из генератора A7_DAC и модуля сбора FMC128E/FM412x500M.
Данная работа демонстрировалась на конференции «Технологии разработки и отладки сложных технических систем» 27-28 марта 2018 года.
Известно, что семейство микроконтроллеров STM32F4xx, имея на борту достаточно производительные ядра, вполне подходящие для «не мясорубочных» задач ЦОС не имеют полноценного интерфейса ввода данных с простейшей параллельной шины в режиме «pipe-line» (clk-data). «Покурив» «dm00037051.pdf», нашел не специфичный, но на первый взгляд подходящий вариант – интерфейс DCMI (Digital camera interface).
Конечно, использование для нагруженной классической ЦОС (КИХ, БИХ, FFT) микроконтроллеров STM32, не совсем является оптимальным вариантом, но если вдруг так легли карты и все-таки возможностей данного микроконтроллера вполне достаточно, плюс нужно достаточное количество низкоскоростных интерфейсов. Об этом под катом.
Окружающий нас мир с нашей точки зрения является аналоговым, то есть большинство измеряемых нами величин является множеством вещественных чисел в определенном диапазоне значений. В то же время методы обработки таких величин при помощи аналоговых операций оказывается сильно ограничен по функциональности и сложности, а разработанная цифровая обработка сигналов оказывается на много порядков функциональнее, надежнее, компактнее, но оперирует только с цифровыми данными, то есть с данными, дискретными по времени и по мгновенным значениям сигнала. Для преобразования из непрерывного аналогового сигнала в дискретный цифровой используется аналогово-цифровой преобразователь (АЦП).
Не так давно передо мной встала нетривиальная задачка — собрать устройство, которое могло бы по линиям электропередач (0,4 кВ), в сетях обычных бытовых потребителей, передавать некоторую информацию, а точнее — показания электросчетчиков.
Перед началом работы над созданием этого устройства, я мало понимал в цифровой обработке сигналов и в том, как работают компьютерные сети на физическом уровне. Нужно было быстро погрузиться в вопрос и выстроить план по созданию рабочего прототипа.
В процессе изучения я нашел очень много специализированной литературы по электронике, микроконтроллерам и цифровой обработке сигналов, которая очень помогла мне в этом. Но в самом начале пути для выбора направлений изучения мне бы пригодились обзорные статьи вроде этой.
Дальнейший материал — это выжимка из профессионального опыта в том виде, в котором я бы хотел это рассказать самому себе из прошлого. Многие факты сильно упрощены для лучшей читаемости.
Привет, Хабр! Многие разработчики систем довольно часто сталкиваются с обработкой аналоговых сигналов. Не все манипуляции с сигналами можно осуществить в аналоговой форме, поэтому требуется переводить аналог в цифровой мир для дальнейшей постобработки. Возникает вопрос: на какие параметры стоит обратить внимание при выборе микроконтроллера или дискретного АЦП? Что все эти параметры означают? В этой статье постараемся детально рассмотреть основные характеристики АЦП и разобраться на что стоит обратить внимание при выборе преобразователя.
Чего стоит разработать быстродействующий аналого-цифровой преобразователь, почти не имея опыта? Насколько сильно наше отставание в этой области? Есть ли в этой нише шанс найти коммерческое применение своей продукции и отщипнуть хоть кусочек рынка у гигантов мира сего? Выпуская в свет новый 16-битный 80 МГц АЦП, хотим порассуждать на эти темы и рассказать о самой микросхеме и опыте её создания.
В первой части статьи мы кратко ознакомились с основными понятиями при передаче данных по линиям электропередач. Узнали, что такое “полезный сигнал”, как с его помощью можно кодировать передаваемую информацию. Но ни слова не было о том, как это устройство должно быть выполнено физически, как оно будет генерировать сигнал, и каким образом его вообще подключить к сети 220 В.
В этой и следующей частях опишем, какие основные блоки должны быть в простейшем устройстве передачи данных по PLC. Постепенно, как конструктор, будем добавлять в общую картину блок за блоком и разберемся для чего нужен каждый блок и как он работает.