Например TDA7294

РадиоКот > Конкурс: Поздравь Кота по-человечески 2014!

Мультископ

Автор: MisterDi, misterdi@i.ua
Опубликовано 21.09.2014.
Создано при помощи КотоРед.

 

 

Измерительные приборы – основа любой домашней мастерской, и их ассортимент во многом определяет возможности радиолюбителя. При этом в отличие от производства, домашний мастер, как правило, ограничен не только в бюджете, но и в пространстве, поэтому у него нет возможности держать многометровые стойки с различными приборами на все случаи жизни. Тем не менее, ни один уважающий себя мастер не может обойтись без осциллографа. Осциллограф – «глаза» электронщика, поэтому актуальность в этого прибора не оставляет сомнений. В Сети можно найти вагон и маленькую тележку проектов разных осциллографов, начиная от простейших приставок к звуковой карте ПК и до «монстров» на 4-х слойных платах размером 200*200мм. Сделать самому такой прибор как осциллограф – задача не простая, требующая большого объема знаний и опыта, поэтому складывается ситуация, когда те, кто могут сделать прибор в состоянии себе его просто купить, а те, кто имеет желание самостоятельно собрать – не могут сделать этого из-за отсутствия опыта. Предлагаемая конструкция предназначена для тех, кому возможностей USBee AX уже не достаточно, и есть причины не приобретать «взрослый» прибор.
За основу был взят открытый китайский проект Вей-Куна, обладающий широкими возможностями для расширения. Главным плюсом выбранной конструкции стало применение ПЛИС, что обеспечило высокую скорость работы и возможность внесения изменений в конструкцию без переделки печатной платы. Сначала был собран и испытан в работе вариант, опубликованный на китайском сайте. В результате выяснилось, что несмотря на красивые картинки, в проекте множество недостатков. В первую очередь – нестабильная работа подсистемы захвата данных. При просмотре прямоугольного входного сигнала частотой 10кГц фронты импульсов заметно «плавали». В общем, это не удивительно – количество предупреждений после компиляции проекта превышало 3000! Еще одним удручающим обстоятельством было то, что на медленных развертках прибор переставал нормально реагировать на нажатие кнопок, нужно было дожидаться окончания развертки. Применение кнопок в качестве основного органа управления несомненно упростило программирование, но привело к ухудшению комфортности использования прибора. Анализ исходных кодов проекта привел к решению полностью изменить внутреннюю структуру ПЛИС, изменить плату органов управления и логику работы программы. Большое количество ресурсов ПЛИС позволило кроме осциллографа разместить на кристалле логический анализатор, низкочастотный синусоидальный генератор и генератор импульсных последовательностей.

То, что получилось представляю на суд уважаемого котосообщества.

Основные параметры:
Экран 2,8’…3,5’ 320*240 точек 64К цветов
Диапазон амплитуд входного сигнала 5мВ…20В
Диапазон разверток 100нС/дел … 50мС/дел
Разрешающая способность АЦП 8бит
Частота дискретизации 100МГц/125МГц
Объем памяти отсчетов 16Кбайт
Объем ПЗУ 2Мбайт
Объем ОЗУ 8Мбайт

Принципиальная схема основной платы прибора представлена на рис.1.

 

Основу устройства составляет ИМС программируемой логики семейства Cyclone-III от Altera U1 EP3C10E144
Внутренняя структура ПЛИС представлена на рис2.

 

Центральным элементом схемы является процессорное ядро inst1 выходные регистры которого управляют всеми узлами системы. Кроме процессорного ядра, на кристалле расположены блок захвата данных inst11 , генератор синусоидального сигнала inst18, импульсный генератор inst16, двухканальный широтно-импульсный модулятор для формирования аналоговых сигналов управления inst8, блок частотомера inst4 и ускоритель графических операций inst10. Схемы блоков приведены в соответствующих файлах. Несколько слов о назначении регистров процессора.
DsoControl – регистр битовых переключателей – выполняет все переключения режимов
DsoStatus – входы состояний блоков, определяет внешние события, типа готовности данных и событий синхронизации.
FreqDataIn – вход данных частотомера. Частота входного сигнала считается по переходам уровня синхронизации, поэтому в случае сложных или зашумленных сигналов возможны ошибки
FreqDivOut – выход управления коэффициентом прореживания. АЦП работает на максимальной частоте, а в память записывается только каждый n-й отсчет.
LCD_Data – двунаправленный регистр для работы с внешними устройствами: клавиатурой и ЖКИ.
MemAdr – регистр адреса буфера входного сигнала
MemData – шина данных буфера входного сигнала
MemLen – регистр количества отсчетов, которые будут записаны в память после прихода синхроимпульса.
PWM_Amp – код напряжения регулировки коэффициента усиления масштабирующего усилителя
PWM_Offset – код напряжения смещения входного сигнала
SinGenFreq – код частоты синусоидального генератора
TrigAddrIn – вход адреса события синхронизации
TrigData – код уровня синхронизации осциллографа и код маски для логического анализатора
NumPulse – длительность пачки импульсов. Подсчитывается заданное количество импульсов
NumPause – длительность паузы между пачками импульсов.
Pulse – длительность высокого уровня импульса. Дискретность – 10нС.
Pause – длительность низкого уровня импульса. Дискреность – 10нС.
epcs_controller – линии ПЗУ.
sdram – линии обслуживания основного ОЗУ.

Теперь рассмотрим работу основной платы.
Входной сигнал через конденсатор С1 поступает на два частотно-компенсированных делителя, обеспечивающих снижение амплитуды до величины, доступной для обработки. Применение двух отдельных входных делителей позволяет избавиться от взаимного влияния подстроечных конденсаторов в традиционном варианте с последовательным соединением плеч. Выбор коэффициента передачи входного делителя осуществляется реле RE2 через ключ Q1. Диодная сборка D3 обеспечивает защиту входного повторителя U4A от перегрузок по входу. Для нормализации сигнала, т.е. для того чтобы входной сигнал был согласован по уровню с АЦП используется ИМС регулируемого усилителя U5, коэффициент усиления которого определяется уровнем напряжения между выводами 1 и 2, а диапазон регулировки – резистором R9. Через каскад сдвига уровня U6A и НЧ-фильтр R12C13 аналоговый сигнал поступает на вход АЦП U9 и в виде кодов по 8-разрядной шине поступает на дальнейшую обработку в центральный блок. Управление смещением входного сигнала и усилением регулируемого усилителя осуществляется с помощью широтно-модулированных импульсных сигналов PWM_AMP и PWM_OFF через НЧ-фильтры R13C17, R15C20 и буферные усилители U8A U8B.
Подсистема питания устройства обеспечивает работу прибора либо от внешнего 9В-источника питания либо от литиевого аккумулятора напряжением 7,2В включает в себя зарядное устройство на базе U15, узел защиты от глубокого разряда аккумулятора Q2 U16, основной стабилизатор U10, стабилизатор питания аналоговой части U12, инвертор U13 формирующий отрицательное напряжение для питания входных каскадов, стабилизатор питания ядра ПЛИС U11, стабилизатор питания системы тактирования ПЛИС U14.
Для хранения данных в процессе работы используется ИМС синхронной динамической памяти U2 емкостью 8М байт работающая на частоте 100МГц.
Сразу после включения питания ПЛИС «ничего не знает» и для нормальной работы нужно выполнить конфигурирование внутренних структур. Эта операция называется загрузкой конфигурации и выполняется автоматически из внешнего ПЗУ U3. Также в этом ПЗУ хранятся и коды программного обеспечения. Программирование конфигурационного ПЗУ и отладка программ выполняются через разъем JTAG J7. Взаимодействие с пользователем осуществляется через плату индикации и управления, которая подключается к разъему J6. Органы управления и индикации прибором вынесены на отдельную плату.
Схема платы управления и индикации приведена на рис3.


На плате установлены следующие узлы: кнопочная клавиатура SW1-SW12, энкодеры SW13,SW14, формирователь сигналов для логического анализатора U5, регистр дополнительных выходов U2, цифро-аналоговый преобразователь НЧ-генератора U3, контроллер тач-скрина U1, два разъема для подключения наиболее распространенных типов ЖКИ китайского производства.

Конструкция и детали.

Прибор собран на двух печатных платах, соединенных между собой 36-контактным разъемом и 2-я резьбовыми стойками, установленными в корпусе Z-44 производства Kradex. Все резисторы типоразмера 0805. Электролитические конденсаторы SMD SizeB и цилиндрические высотой 10 мм. Кнопки SW1-SW12 – стандартные тактовые выключатели 5*6мм со штоком длиной 9мм. Энкодеры SW13-SW14 типоразмера 12мм или 16мм. Они могут быть как с неподвижным ротором, так и с кнопочным. Во втором случае кнопки SW11,SW12 устанавливать не нужно.
Применяемый ЖКИ должен быть собран на базе контроллера ILI-9320. Возможно применение ЖКИ на базе контроллера SSD-1289, но это потребует изменений в программе. В качестве ПЗУ можно применить кроме EPCS64 также EPCS16, М25Р40, M25P80, M25P16

Сборка и наладка

Перед началом сборки необходимо установить на Ваш ПК программы для работы с ПЛИС Альтера. Это будут система разработки Quartus-II WebEdition и NIOS IDE – система программирования процессоров NIOS-II. Кроме этого потребуется программатор. В простейшем случае можно воспользоваться Byte Blaster’ом, который подключается к LPT-порту. Более надежный и скоростной вариант – Altera USB Blaster. Оба эти программатора можно собрать самому или купить на aliexpress.com цены начинаются от 5$ с доставкой.
Сборку устройства начинают с подсистемы питания, после проверки соответствия выходных напряжений стабилизаторов номиналу устанавливают ПЛИС, ОЗУ, ПЗУ разъем программирования, блокировочные конденсаторы и резисторы цифровой части. Особое внимание следует уделить пропайке контактной площадки на нижней стороне ПЛИС. Должно плучится что-то похожее на это:

При некачественной пайке запрограммировать устройство не получится. На этом этапе есть смысл подключить плату к программатору и проверить, увидит-ли программатор собранную плату. При отсутствии замыканий/обрывов программатор после нажатия на кнопку AutoDetect должен выдать сообщение о подключенной микросхеме.

Следующим этапом собирают плату управления и индикации. По-минимуму, на неё достаточно установить ЖКИ, кнопки, энкодеры, блокировочные конденсаторы и резисторы шины данных.

Особо нетерпеливые могут после этого выполнить прошивку ПЗУ и полюбоваться меню и картинками на экране прибора. Монтаж аналоговой части никаких особенностей не имеет.

Программирование

запускаем NIOS-II IDE:

При первом запуске IDE, экран отличается, нужно выбрать Open Perspective > Nios-II C/C++ в дальнейшем выбранные настройки сохранятся.

Запись конфигурационной информации в конфиг_ПЗУ проводится в два этапа. Сначала в ОЗУ ПЛИС при помощи Quartus-programmer загружается аппаратная конфигурация, далее выполняется запись данных в конфиг-ПЗУ средствами ИДЕ. Перед запуском подключаем бластер и подаем питание на устройство. Запуск квартус-программатора проводим из меню Tools:

Quartus programmer открывается в отдельном окне:

Выбираем, тип бластера(1), файл аппаратной конфигурации(2) и загружаем его вПЛИС(3):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Видим сообщение об удачной конфигурации:

Закрываем квартус-программатор, отказываясь от сохранения изменений:

 

 Сейчас у нас в кристалле сконфигурирован процссор и устройства. Осталось записать программу и конфигурацию во флеш-память. Для этого Запускаем Flash-программатор:

В окне программатора выбираем создание нового файла:

Далее указываем файл конфиурации процессора:

После этого система запросит нас добавить файлы аппаратной конфигурации:

 

и файлы программы:

  После нажатия на кнопку Start через 20-30 секунд мы должны увидеть сообщение об удачном программировании.

По окончании программирования устройство не обходимо перезапустить по питанию.

И еще несколько снимков работы прибора в разных режимах:

режим осциллографа

Вид экрана в редиме логического анализатора:

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

 

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


Файлы:
Панель управления низ платы
Панель управления элементы низ
Панель управления элементы верх
Панель управления верх
Основная плата низ
Основная плата элементы низ
Основная плата элементы верх
Основная плата верх
Панель управления схема
Основная плата схема
Блок захвата данных
Ускоритель графики
Импульсный генератор
Синусоидальный генератор
Файлы программирования Flash
Исходные коды программы


Все вопросы в Форум.


ID: 1995

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

92 12 2
3
Подробно