Доброго времени суток, уважаемые Коты!
Рад поделиться с Вами, что руки дошли до моего, старого проекта, и я наконец-то доделал вторую версию цифрового осциллографа, с учетом всех Ваших пожеланий. Если кто-то забыл, что было в первой версии, вот
ссылка.
Теперь к делу.
Вот фотки для затравки:
Здесь краткое
видео-описание.
Технические характеристики:Количество каналов: 2 (A, B);
Полоса пропускания аналогового тракта: 130MHz.
Режимы работы: канал A, канал B, оба канала;
Входной импеданс: ~1—2МОм, 15пф;
Чувствительность: 1В, 8В, 60В, 400В (ампл.);
Усилитель входного сигнала (КУ): х1 — х10;
Максимальное входное напряжение: 400В (ампл.);
Переключение типа вх. сигнала: AC / DC;
Вертикальное разрешение: 8 бит;
Режимы запуска развертки: автоматический, ручной-однократный, ждущий;
Диапазоны развертки:один канал: 0.1 мкс/дел, 1мкс, 10мкс, 100мкс, 1мс, 10мс, 100мс;
оба канала: 0.2 мкс/дел, 1мкс, 10мкс, 100мкс, 1мс, 10мс, 100мс;
Множитель периода развертки: х1 — х100:
Объем буфера выборок: 2508 байт;
Размер кадра: 250 выборок;
Источники синхронизации: канал A, канал B, внешний источник, внутренний тестовый генератор;
Технология синхронизации: аппаратная, по двум уровням опорного напряжения;
Виды синхронизации: спадающий/нарастающий фронт;
Регулировка уровней синхронизации:
основной: -100% — +100% макс. амплитуды от 0;
предварительный: 0% — 20% макс. амплитуды от основного уровня;
Тестовый генератор: меандр: 62,5Гц — 10МГц, 1В;
Графический дисплей: цветной TFT (от телефона FLY IQ230), 262.14 тыс цветов, диагональ-3.2 дюйма, 320x240 точек, параллельный 16 битный интерфейс, контроллер- RM68090 (совместим с ILI9325 ).
Область осциллограммы: 240х250 точек.
Управление: 7 кнопок, 2 энкодера;
Разъемы: 2 ВЧ разъема (A,B), вход внешней синхронизации, выход тестового генератора, внешнее питание;
Источник питания внешний: 7,5…18В, 300 мА;
Источник питания внутренний: солевые/щелочные элементы ААА (6 шт.);
Дополнительно:-Технология «Anti aliasing» - защита от искажения квантования вызванного стробоскопическим эффектом;
-Включение/выключение одной тактовой кнопкой;
-Звуковое сопровождение нажатий кнопок и достижения границ регулировок;
-Светодиодная индикация режимов делителей, режима AC / DC, режима сканирования, режима работы тестового генератора;
-Индикация уровня напряжения на источнике питания;
-Плавная регулировка уровня подсветки экрана;
-Настройка цвета отображения всех элементов экрана;
-Режим отображения с двумя маркерами. Которые можно двигать поворотом энкодера. Для удобства измерения временных интервалов и уровней сигналов;
-Сохранение всех настроек прибора при выключении.
Схема:Спойлер
Краткое описание и устройство:Как видно из схемы, основная плата устройства, мало чем изменилась, а кардинальной переделке подвергся блок управления и вывода информации на экран. Поэтому, далее кратко повторю только основные моменты и более подробно опишу измененные блоки.
В осциллографе используется контроллер Atmega-64A, тактируемый генератором на 30МГц.
Тк. тактовая частота почти в два раза превышает максимально заявленную по даташиту, в случае повторения конструкции, особое внимание следует обратить на выбор контроллера и его поставщика. Нет никакой гарантии, что самая дешевая Atmega-64A с АлиЭкспресса заработает а таких условиях. Как показала практика, вероятность приобретения годного контроллера на «Али» и в обычном радио-магазине 50%/50%. Это зависит от производственной партии. Контроллеры из одной партии либо все работают, либо все не работают. Так-же отмечу, что речь идет именно о 64 меге с индексом «А». Пробовал простую Atmega-64 (без«А») - не заработала.
АЦП построены на двух микросхемах AD9280. АЦП работают не постоянно, как в прошлой версии, а включаются только тогда, когда нужно, для энергосбережения.
ОУ в аналоговой части заменены на более скоростные, что отразилось на качестве отображения резких фронтов и достоверности измерения на высоких частотах.
Твердотельные реле PVT422 (переключают режим AC/DC), входные делители и переключатель источника синхронизации, на 74HC4052 управляются регистром защелкой 74HC595, посаженным на шину SPI. Кроме того, по SPI управляется цифровой потенциометр MCP42010, отвечающий за коэффициенты усиления ОУ обоих каналов, а так-же ведется опрос блока клавиатуры и энкодеров. Но об этом позже.
Для отлова уровня синхронизации используется внутренний компаратор контроллера, а внутренний АЦП используется для измерения уровня напряжения на батарейке и напряжения питания схемы для расчетов.
Схема по прежнему запитана от импульсного преобразователя MC34063, а вот инвертор, для получения отрицательного напряжения питания аналоговой части, заменен на более мощный ADM8660.
Разъем ISP служит для подключения программатора и заливки прошивки в контроллер. Но особенностью этого контроллера является то, что пины используемые для прошивки, в рабочем режиме являются входом и выходом модуля UART. Благодаря этому на разъеме, в рабочем режиме, присутствуют сигналы RX и TX стандартного последовательного интерфейса. А это означает, что в случае необходимости, к разъему можно подключить дополнительный модуль с COM, USB, Bluetooth или Wi-Fi микросхемой и держать связь с компьютером по одному из этих интерфейсов. Естественно потребуется доделка программы под конкретный функционал.
Блоки управления и вывода информации на экран выполнены на отдельной плате стыкующейся с основной платой вторым этажом.
Дисплей от телефона может подключаться 16 битным или 8 битным параллельными и последовательным интерфейсами. Уровни всех сигналов и напряжение питания на дисплее должны быть не более 3.3 вольта. 8 битный и последовательный интерфейсы очень медленные и для нашей задачи не подходят. Поэтому использовал понижающий регулятор напряжения по питанию и схему из восьми битного буфера 74HC245 и регистра защелки 74HC573 для расширения восьми битной, пяти вольтовой шины видео данных основной платы. Еще один восьми битный буфер служит для согласования уровней дополнительных управляющих сигналов. Т.к. дисплей может работать в режиме автоматической развертки, такой подход оказался очень эффективным. Принцип работы расширителя шины с автоматической разверткой дисплея следующий: Для рисования линии одного цвета на дисплее достаточно выставить 16 бит кода цвета линии на шине данных и затем подать столько импульсов на вход WR дисплея, сколько точек должно быть в рисуемой линии. Перемещение позиции на следующую точку, при дергании за WR, происходит автоматически. Поэтому, контроллер сначала передает старший байт кода цвета через буфер и защелкивает его а регистре защелке, подключенному к старшим битам шины дисплея. Затем передает младший байт который остается на выходе буфера подключенному к младшим битам шины дисплея. Так мы заполняем и удерживаем все 16 бит цвета на шине. Затем контроллер, дергает несколько раз ногой подключенной к входу WR дисплея. Так на экране получается прямая линия требуемого цвета и нужной длинны. А поскольку, вся осциллограмма рисуется последовательно, вертикальными отрезками прямых линий разной длинны и цвета, вывод на экран получается достаточно быстрым.
Дисплей имеет линию RESET, которая используется всего один раз за весь сеанс работы. Буквально один раз дергается при инициализации дисплея. На это мне было жалко тратить целую одну ногу контроллера. Поэтому решил совместить RESET дисплея с регулировкой яркости дисплея на компараторе из ОУ LM358. Этот усилитель самый дешевый из тех, что удалось найти и двухканальный. Поэтому одна половина работает как компаратор, а вторая используется в схеме регулировки подсветки. От контроллера на схему идет ШИМ сигнал. При степени заполнения сигнала меньшей определенного значения срабатывает ресет, а все что больше регулирует яркость дисплея.
С опросом кнопок и энкодеров получилась вообще отдельная песня. Я много экспериментировал по этому поводу в своих прежних поделках. Как-бы подключить побольше кнопок и потратить на это поменьше ног контроллера. И вот, наконец придумал собственную схему опроса кнопок по SPI на дешевых десятичных счетчиках. В схеме использованы два счетчика HEF4017B (по 12 рублей в Чип-Дипе) , один буферный элемент с тремя состояниями за 4 руб., пара диодов Шоттки, транзистор, шепоть рассыпухи из резисторов, конденсаторов и диодав, ну и сами кнопки с энкодерами. В итоге получилось подключить 8 кнопок (включая кнопки в энкодерах) и 4 ноги энкодеров, итого 12 линий по пяти проводам(кнопка включения/выключения не участвует). Три из эти проводов-интерфейс SPI который используется в множестве подключенных блоков, и поэтому считай — халява. Итого 12 сигналов по ДВУМ! проводам за 50 рублей, без программных наворотов и дорогих потрохов контроллера. Неплохо, правда?
И это еще не все. Один из этих двух проводов — сигнал прерывания, по нему контроллер узнает, что что-то там нажали или повернули, и сам, как таковой в опросе не участвует. Плюс схемы еще в том, что можно подключить неограниченное кол-во сигналов без задействования дополнительных ног контроллера. Добавляются только счетчики и рассыпуха. Как все это безобразие работает, здесь я описывать не буду. Это тема отдельной статьи. И так, уже много букв настрочил.
В общем пора заканчивать этот текст.
Добавлю, что корпус и ручки энкодеров напечатал на 3D принтере. Лицевая панель напечатана на бумаге и заламинирована, прилеплена на скотч.
Как обычно, скажу, что конструкция не идеальна, некоторые схемные решения — спорны, профессионалы, пусть покритикуют.
ps:
добавил печатные платы, схему и прошивку.
- Вложения
-
- TFTOscilloscope.rar
- Схема в sPlan
Платы в Sprint-Layout
Прошивка (hex)
- (381.12 KiB) Скачиваний: 2389
Последний раз редактировалось
Mishultz Сб дек 16, 2017 09:01:10, всего редактировалось 2 раз(а).