Осциллограф хамелеон своими руками
1. Указываем жестко размещение массива в ОЗУ и его размер сделать лучше кратным 2-ке
dim osc(1024) as byte At &H100 - теперь твои данные располагаются по этому адресу - и длятся до &H4FF
dim osc_clear(512) as byte At &H500 - здесь второй массив располагается до адреса &H6FF
2. В подпрограмме надо выставить указатель - регистровую пару Х на начало твоего массива
push xl - сохраняем стек, хотя баском сует в стек все - наверное можно и не делать это
push xh
ldi xh, 1 - ставим указатель на начало данных
ldi xl, 0
и потом в цикле записывать данные в озу:
loop: IN R16, PINd - считываем порт
ST X+, R16 - пишем в озу и увеличиваем указатель на 1
CPI XH, $05 - проверяем если старший регистр больше конца массива то прыгаем на выход иначе
BRLO LOOP - перейти на начало цикла
NOP - продолжение
pop xh
pop xl - вынимаем из стека
С временными задержками более 8 тактов ситуация аналогичная - вставляешь переменную, предварительно присвоив ей значение, и организуешь цикл.
0.5 мкс - 12 тактов при 24 МГц
loop: LDI R16, 2 - загружаем двоечку в порт - 1 такт
loop1: DEC R16 - вычитаем - 1 такт
BRNE loop1: если не равно 0 то прыгаем назад - 2 такта, иначе 1 такт
- итого тикнуло 6 тактов - выполняем дальше программу
IN R16, PINd - считываем порт - 1 такт
ST X+, R16 - пишем в озу и увеличиваем указатель на 1 - 2 такта
CPI XH, $05 - проверяем если старший регистр больше конца массива то прыгаем на выход иначе - 1 такт
BRLO LOOP - перейти на начало цикла - 2 такта
А вообще, книжку Ерофеева про АВР читать обязательно
долго мучался с синхронизацией,вроде получилось-картинка стоит мертво если есть уровень синхры
поправлю программу,добавлю комментарии и выложу
P.S. память мега32 забита на 70 процентов,чувствую на все не хватит,будем искать варианты но-это после.
я уже говорил что в асм я ноль,а тем более встроить его в баском авр.
вот программа,как вставить сюда ваш код?
Спойлер
$regfile = "m32def.dat" ' контроллер
$crystal = 16000000 ' частота
$hwstack = 200 '
$swstack = 200 ' $framesize = 200 '
dim x as word
dim t as Dword
dim osc(800) as byte
Config portd = INPUT
Do
for x = 1 to 800
osc(x) = pind
next x
А вот этот кусок занимает 8 строчек кода и выполняет туже функцию - разница в 700 раз.
ldi xh, 1 - ставим указатель на начало данных
ldi xl, 0
loop: NOP
NOP
IN R24, PINd
ST X+, R24
CPI XH, $05
BRLO LOOP
$hwstack = 200 '
$swstack = 200 '
$framesize = 200 '
dim x as word
dim t as Dword
dim osc(800) as byte
Config portd = INPUT
Do
!ldi XH, 1 '- ?????? ????????? ?? ?????? ??????
!ldi XH, 0
loop:
!NOP
!NOP
!IN R24, PINd
!ST X+, R24
!CPI XH, $05
!BRLO LOOP
'for x = 1 to 800
'osc(x) = pind
'next x
push xl '- сохраняем стек
push xh
push R25
push R24
ldi R25, $04 '- в регистр пишем старший байт адреса конца озу
ldi xh, 1 '- ставим указатель на начало данных
ldi xl, 0
Loop:
NOP
IN R24, PINd
ST X+, R24
CPI XL, $20
CPC XH, R25
BRLO LOOP
pop R24
pop R25
pop XH
pop XL
отрисовка экрана медленная,надо как то оптимизировать
сейчас загвоздка с кнопками-их думаю цеплять параллельно дисплею,ведь осталось всего 4 свободных пина и они будут использоваться для входной части (как в хамелеоне),можно еще вывод CS дисплея посадить на минус-будет еще один свободный вывод
Интересно, просто многие за развитием наблюдают молча.
Так что мы ждём результатов!
Ну да, если тебе нужна помощь - обращайся. А так - все ждут результата. Ну и статью неплохо бы. Я, например, не очень пока понимаю принцип работы твоей программы, хотя мысль сделать осциллоскоп была. Так что ждем.
нарисовал)))
кварцевый генератор вырабатывает 32 МГц,когда на его входе ноль он работает,когда единица-не работает(заблокирован),сигнал с него идет на счетчики деления кварцованной частоты,мультиплексор выбирает какую из частот использовать как тактовую,эта деленная частота поступает на счетчики адреса озуи на ацп
1)запись.сначала атмега загружает в регистр коэф деления кварцевого генератора,ставит на озу на r/w=0=режим записи,на cs ацп=0=разрешение работы,затем сбрасывает счетчики,на cs озу=0=разрешение работы и ждет сигнала заполнения озу
счетчики начинают считать с 0,выставляют адрес на озу = 0,сигнал с ацп копируется в озу(строб записи пока не придумал,но наверно можно просто проинвертировать тактовый сигнал),затем выставляют адрес на озу = 1,снова запись и т д
(для примера озу 2048*8)
как только счетчик достигнет значения=2048 тактовый генератор заблокируется,этот же сигнал идет на:
атмега-знак того что озу заполнен и готов к считыванию
подает на cs озу лог 1-озу в спячку
атмега переводит схему в режим считывания озу-
2)считывание-атмега загужает в регистр:
мультиплексор переводит счетчики на внешний счет (синхр,сигналы с атмеги-просто тики)
r/w озу=1-режим считывания озу
cs ацп=1-блокировка ацп
затем атмега считывает озу-сначала из 0 ячейки,потом подает один тик ,счетчик увеличивается на +1,атмега считывает ячейку 2 и т д пока не считаются все ячейки-все!
при тактовой частоте=32 МГц будет 32 мегавыборки,что в 8 раз больше чем сейчас
но все это пока в теории,надо кумекать.
к примеру время на осцилографе один пиксель 1 секунда ,
четыре микрокантроллера в течении одной секунды производят имерение (максимального и минимального наприжения (два байта) и записывают их в озу, спустя одну секунду основной микрокантроллер считывает два байта и стирает их ,
считанные байты обрабатываются в какую ячейку их записать (последующе отправятся на жки) , и отправлять на жки 100 герц
Конструкция собрана в корпусе китайского маркера, щупы бронзовые контакты от реле с напаянными для жёсткости пластинками из фольгированного стеклотекстолита.
Предлагаю вашему вниманию редко используемый, но нужный в хозяйстве любого радиокота прибор. На платах, подлежащих утилизации и распайке на детали, большое количество smd-корпусов, которые маркируются, или вообще не маркируются, цветными полосами и кодами зачастую одинаковыми для разного класса диодов. Это может быть что угодно – диод простой, диод Шоттки, стабилитрон. Чтобы определить и рассортировать эти диоды, и создан этот тестер.
Этим прибором можно найти истинное напряжение стабилизации и ток, при котором стабилитрон начинает стабилизировать напряжение.
Проверяемые стабилитроны до 27V при токе 1-30mА.
Потребляемый ток без подключения измеряемого стабилитрона около 80мА.
Внимание: измерения диода производить непосредственно на плате категорически не рекомендую.
Теперь, как это всё работает.
Источник высокого напряжения 36V собран по стандартной схеме на MC34063A. Регулируемый ШИМом драйвер собран на усечённой версии ОУ TL431 (хочу заметить без лишней скромности – такое включение моё ноу-хау и нигде вроде не наблюдалось). Управляет и отображает информацию на стандартный ЖКИ с контроллером HD44780 или на дисплей Хамелеона микроконтроллер Mega8.
На щупы попеременно подаём импульсы разной полярности амплитудой 1.2V и постоянно следим за амплитудой. При подключении исследуемого диода, происходит просадка до прямого напряжения через него, менее 0.8V. По этому факту автоматически запускается цикл измерения параметров. Увеличиваем с помощью ШИМ напряжение на стабилитроне от нуля, пока не увеличится напряжение на измерительном резисторе 120 Ом до установленной величины тока стабилитрона. Теперь меряем напряжение Uпрям и Uобрат. Программно меняем полярность подключения диода на обратную, опять проводим цикл измерения, определяем класс диода и выводим данные на дисплей обычным способом командой printf.
По умолчанию измерения проводятся на токе 5mA, менять значения тока можно короткими нажатиями кнопок от 1 до 30mA . Длительным нажатим верхней кнопки при подключённом стабилитроне входим в режим калибровки, при свободных щупах длительное нажатие сохраняет в ЕЕПРОМ текущее значения тока и калибровочное значение VREF. Длительное нажатие нижней кнопки принудительно запускает процесс измерения, эту нужно для диодов, не имеющих падения напряжения в прямом включении, например стабилитрон с диодом, двойной стабилитрон.
КС147А при нормальном рабочем токе
тот же КС147А при заниженном токе
КС520А стабилитрон с встречным последовательным диодом
КС162А двуханодный стабилитрон
Несколько слов, как организован вывод данных с приставки на Хамелеон.
В Хамелеоне зарезервирован буфер на 62 символа, первый и последний служебные, остальные 60 символов жёстко привязаны к своим местам – 4 строки по 10 символов и одна 20 символов.
Очистки экрана нет, потому надо передавать строку длиной 62 символа, заполняя пустые места пробелами.
Так выглядит передаваемая строка в CodeVisionAVR
Подключение к Хамелеону через стандартный шнур USB -> miniUSB, от него же получаем питание для тестера.
Настройка заключается в подгонке параметра опорного напряжения VREF. Для этого измеряется Uстаб любого стабилитрона в простейшей схеме с последовательным резистором при заданном токе. Потом выставляем требуемый ток на данном тестере, подключаем этот стабилитрон к щупам, входим в режим калибровки и подгоняем результат изменением значения VREF на дисплее. Отключаем стабилитрон, значение VREF автоматически сохраняется. Или просто выставляем измеренное значение на 20 ножке AREF.
Плата разрабатывалась как пинцет-приставка для Хамелеона D, но можно непосредственно подключить ЖКИ, на плате уже есть контактные площадки.
Осциллограф это прибор, помогающий увидеть динамику колебаний. С его помощью можно диагностировать различные поломки и получать необходимые данные в радиоэлектронике. Раньше применялись осциллографы на транзисторных лампах. Это были весьма громоздкие приборы, которые подключались исключительно к встроенному или разработанному специально для них экрану.
Сегодня приборы для снятия основных частотных, амплитудных характеристик и формы сигнала представляют собой удобные портативные и компактнее устройства. Часто их выполняют как отдельную приставку, подключающуюся к компьютеру. Этот манёвр позволяет убрать из комплектации монитор, существенно снизив стоимость оборудования.
Как выглядит классический прибор можно увидеть, рассмотрев фото осциллографа в любой поисковой системе. В домашних условиях также можно смонтировать это устройство, используя недорогие радиодетали и корпуса с другого оборудования для более презентабельного вида.
Краткое содержимое статьи:
Как можно получить осциллограф
Оборудование можно заполучить несколькими способами и все зависит исключительно от размера денежных средств, которые можно потратить на приобретение оборудования или деталей.
- Купить готовый прибор в специализированном магазине или заказать его по сети;
- Купить конструктор, например, широкой популярностью сейчас пользуются наборы радиодеталей, корпусов, которые продаются на китайских сайтах;
- Самостоятельно собрать полноценный портативный прибор;
- Смонтировать только приставку и щуп, а подключение организовать к персональному компьютеру.
Эти варианты приведены в порядке снижения затрат на оборудование. Покупка готового осциллографа будет стоить дороже всего, так как это уже доставленный и работающий блок со всеми необходимыми функциями и настройками, а в случае некорректной работы можно обратиться в центр продажи.
В конструктор входит схема простого осциллографа своими руками, а цена снижается за счет оплаты только себестоимости радиодеталей. В этой категории также необходимо различать более дорогие и простые по комплектации и функционалу модели.
Сборка прибора самому по имеющимся схемам и приобретенных в разных точках радиодеталях не всегда может оказаться дешевле, чем приобретение конструктора, поэтому необходимо предварительно оценивать стоимость затеи, ее оправданность.
Наиболее дешевым способом заполучить осциллограф станет спаять только приставку к нему. Для экрана использовать монитор компьютера, а программы для снятия и трансформации получаемых сигналов можно скачать с разных источников.
Конструктор осциллографа: модель DSO138
Китайские производители всегда славились умением создавать электронику для профессиональных потребностей с очень ограниченным функционалом и за довольно небольшие деньги.
Одной из популярных моделей китайского производства типа конструктор осциллографа считается DSO138. Прежде всего, у этого прибора невысокая стоимость, а поставляется он со всем комплектом необходимых деталей и инструкций, поэтому как правильно сделать осциллограф своими руками, используя имеющуюся в комплекте документацию вопросов возникать не должно.
Перед монтажом нужно ознакомиться с содержимым упаковки: плата, экран, щуп, все нужные радиодетали, инструкция для сборки и принципиальная схема.
Облегчает работу наличие практически на всех деталях и самой плате соответствующей маркировки, что действительно превращает процесс в собирание детского конструктора взрослым. На схемах и инструкции хорошо видно все нужные данные и можно разобраться, даже не владея иностранным языком.
- Напряжение на входе: DC 9V;
- Максимальное напряжение на входе: 50 Vpp (1:1 щуп)
- Потребляемый ток 120 мА;
- Полоса сигнала: 0-200KHz;
- Чувствительность: электронное смещение с опцией вертикальной регулировки 10 мВ / дел — 5В / Div (1 — 2 — 5);
- Дискретная частота: 1 Msps;
- Сопротивление на входе: 1 MОм;
- Временной интервал: 10 мкс / Div — 50s / Div (1 — 2 — 5);
- Точность замеров: 12 бит.
Пошаговая инструкция сборки конструктора DSO138
Следует рассмотреть более детально подробные инструкции для изготовления осциллографа данной марки, ведь аналогичным образом осуществляется сборка других моделей.
Стоит отметить, что в данной модели плата поставляется сразу с впаянным 32-битным на M3 ядре микроконтроллере марки Cortex™. Работает он два 12-битных входа с характеристикой 1 ms и работает в максимальном частотном диапазоне до 72 МГц. Наличие этого девайса уже вмонтированным несколько облегчает задачу.
Шаг 1. Удобнее всего начинать монтаж с smd компонентов. Нужно учитывать правила при работе с паяльником и платой: не перегревать, держать не дольше 2 с, не смыкать между собой разные детали и дорожки, пользоваться паяльной пастой и припоем.
Шаг 2. Припаять конденсаторы, дросселя и сопротивления: нужно вставлять указанную деталь в отведенное на плате для нее место, отрезаем лишнюю длину ножки и запаиваем на плате. Главное не перепутать полярность конденсаторов и не сомкнуть паяльником или припоем соседние дорожки.
Шаг 3. Монтируем оставшиеся детали: переключатели и разъемы, кнопки, светодиод, кварц. Особенное внимание следует уделить стороне диодов и транзисторов. Кварц имеет металл в своем строении, потому нужно обеспечить отсутствие прямого контакта его поверхности с дорожками платы или позаботиться о диэлектрической подкладке.
Шаг 4. 3 разъема припаиваются к плате дисплея. После завершения манипуляций с паяльником нужно плату промыть спиртом без вспомогательных средств – никаких ваток, дисков или салфеток.
Шаг 5. Просушить плату и проверить насколько качественно была проведена пайка. Прежде, чем подсоединить экран, нужно припаять две перемычки к плате. В этом пригодятся имеющиеся откушенные выводы деталей.
Шаг 6. Для проверки работы нужно включить прибор в сеть с током от 200 мА и напряжением 9 В.
Если все параметры соответствуют нужным значениям, нужно отключить прибор от питания и установить JP4 перемычку.
Ша г 7. В 3 имеющихся разъему нужно вставить дисплей. К входу нужно подключить щуп для осциллографа, своими руками провести включение питания.
Результатом правильной установки и сборки станет появление на дисплее его номера, типа прошивки, ее версии и сайта разработчика. Спустя несколько секунд можно будет наблюдать синусоидные волны и шкалу при выключенном щупе.
Приставка для компьютера
При сборке этого простого прибора понадобится минимальное количество деталей, знаний и навыков. Принципиальная схема очень простая, разве, что нужно будет изготовить самому плату для сборки прибора.
Размеры приставки к осциллографу своими руками будет примерно как коробок для спичек или немножко больше, поэтому лучше всего использовать такого размера пластиковую емкость или бокс от батареек.
Подключенный микрофон также сможет ретранслировать на подключенный осциллятор звуковые волны, программа будет отражать изменения. Подключается такая приставка к микрофонному или линейному входу и не требует никаких дополнительных драйверов.
Фото осциллографов своими руками
Хороший осциллограф относится к слишком дорогому оборудованию для обычного радиолюбителя, для которого пайка микросхем и ремонт электроники является только хобби. При необходимости наблюдения за электрическими сигналами без получения сверх точных результатов вполне возможно обойтись самодельным устройством. Такой осциллограф подключается к экрану смартфона и работать под управлением специального бесплатного приложения. Его изготовление обойдется недорого и займет всего пару часов, с учетом сбора материалов.
Материалы:
- штекер 3,5 мм от наушников;
- провода;
- термоусадка;
- стабилитрон 2,2В;
- резистор 2,2К;
- резистор 1К;
- тестовая клипса;
- корпус от маркера;
- мебельный гвоздик.
Сборка осциллографа
На рисунке представлена схема простейшего осциллографа - щупа для смартфона, которую необходимо повторить. Очень важно использовать резисторы с такой же цветовой маркировкой, как в примере, поскольку это позволит получить от устройства максимум чувствительности и точности.
Сборку следует начать с подготовки штекера мини-джек 3,5 мм от наушников. С него срезается пластиковая часть, после чего припаиваются 2 проводка как показано в схеме осциллографа.
Припаянные провода необходимо дополнительно закрепить и изолировать. Для этого будет достаточно применить 2 слоя термоусадочной трубки.
Провод с гвоздиком заводится в корпус маркера с удаленным стержнем. В результате электрод должен заменить пишущий наконечник фломастера. Также нужно завести проводок от разъема 3,5 мм в пробитое отверстие в заднем колпачке маркера.
Далее необходимо соединить параллельно и спаять стабилитрон с резистором 1К. К ним согласно схеме прибора припаивается резистор 2,2К.
В корпусе маркера ближе к пишущей части делается боковое отверстие. В него продевается отдельный провод, второй конец которого выходит из задней части фломастера.
К выведенному проводку припаивается стабилитрон с резистором 1К. Также к ним нужно присоединить жилу питания от разъема 3,5 мм. Важно соблюсти полярность, как на схеме. Вторая жила от мини-джека паяется к резистору 2,2К.
Провод с гвоздиком нужно подсоединить к оставшемуся концу резистора 2,2 К. Все соединения защищаются термоусадкой. После этого резисторы и стабилитрон необходимо спрятать в корпусе маркера, закрыв его задним колпачком.
На выходящий сбоку маркера провод, присоединенный к резистору 1К и стабилитрону нужно припаять тестовую клипсу.
Далее нужно установить на смартфон приложение Oscilloscope Pro 2. Осциллограф подключается к телефону и может использоваться по предназначению под управлением данной программы. Его тестовая клипса используется как масса, а электрод из гвоздика на маркере является плюсом. Приложение в связке с самодельным устройством позволяет настраивать пороги срабатывания, просматривать форму сигнала на дисплее и многое другое.
Смотрите видео
Читайте также: