KEEN SIDE успешно заменяет аналогичные продукты таких известных брендов, как Phoenix Contact, Weidmueller, Degson, Winstar, Hsuan Mao, KLS, G-NOR, Mean Well и др.

Миниатюрный 4-канальный логический анализатор на AVR

Vassilis Serasidis

Логический анализатор – это инструмент, который позволит увидеть и проанализировать последовательность логических 0 и 1 в цифровом сигнале. К примеру, можно изучить цифровой сигнал с ИК приемника-демодулятора типа TSOP-1736, выходные и входные сигналы микросхемы MAX232, а также шину I2C (линия тактирования и линия данных) во многих электронных устройствах.

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

Миниатюрный логический анализатор на AVR Миниатюрный логический анализатор на AVR

В статье мы рассмотрим конструкцию миниатюрного 4-канального логического анализатора с ЖК дисплеем от мобильного телефона Nokia 5110/3110. Основой конструкции является микроконтроллер Atmel ATmega8, помимо него используются еще несколько дискретных компонентов.

Основные характеристики прибора:

  • 4-канальный логический анализатор;
  • возможность исследования сигналов с частотой до 400 кГц;
  • входное напряжение до +5 В;
  • ЖК дисплей с разрешением 84 × 48 точек;
  • питание от 4 аккумуляторов 1.2 В, максимальное напряжение питания 4.8 В;
  • память: от 3.7 мс для высокоскоростных сигналов до 36 с для низкоскоростных сигналов;
  • кнопки управления;
  • простая конструкция.

Принципиальная схема

На Рисунке 1 представлена принципиальная схема прибора. Сразу следует отметить, что прибор питается от 4 аккумуляторов с напряжением 1.2 В каждый.

Принципиальная схема логического анализатора на AVR
Нажмите для увеличения

Внимание!!!

Питание от 4 батареек с напряжением 1.5 В недопустимо, при данной схеме прибора, так как напряжение 6 В может вывести из строя микроконтроллер и ЖК дисплей.

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

В схеме используется ЖК индикатор от мобильного телефона Nokia 3310/5510, он рассчитан на работу при напряжении питания 3.3 В – 5.0 В, однако максимальное напряжение для подсветки дисплея – 3.3 В, поэтому в схеме установленo три последовательно включенных диода 1N4007 (D1-D3) по линии питания подсветки дисплея. Благодаря диодам напряжение снизится до 2.7 В и его вполне будет достаточно для питания подсветки.

Процесс захвата данных и программное обеспечение

Следует отметить, что автором подготовлены две версии прошивки микроконтроллера. Изначально, для версии 1.00 логического анализатора, использовалась интегрированная среда разработки AVR Studio 4.18, но затем автор перекомпилировал исходный код и для AVR Studio 5 – версия 1.01. После перекомпиляции под 5 версию среды разработки и дальнейшего тестирования прибора, было замечено улучшение стабильности захватываемых сигналов.

Запись сигналов ведется во внутренний буфер памяти ОЗУ, который рассчитан на 290 отсчетов. Буфер данных образован 870 байтами (для 1 версии программы микроконтроллера) из которых 2 байта используются для счетчика и 1 байт для информирования о входном канале. В версии 1.01 буфер данных был сокращен до 256×3=768 Байт с целью увеличения скорости захвата данных, т.к. переменная размера буфера является 8-битной, вместо 16-битной, которая использовалась в первой версии ПО.

Процесс записи данных о сигнале

После подачи питания, микроконтроллер переходит в режим ожидания импульса на любом из 4 входов прибора. По определению входного импульса микроконтроллер начинает подсчет времени до поступления следующего импульса на любом из 4 входов. Длительность выборки хранится в 16-битной переменной «counter». После переполнения этой переменной информация о состоянии 4 входов и значение счетчика сохраняются в буфере и значение его адреса увеличивается на три (2 байта для счетчика и 1 байт – информация о входной линии). Этот процесс повторяется пока микроконтроллер не заполнит весь буфер (870/3=290 выборок или импульсов). Процесс записи сигналов в память микроконтроллера изображен на рисунке 2.

После заполнения буфера, все накопленные данные отображаются на ЖК дисплее в виде осциллограммы. Пользователь может управлять осциллограммой – передвигать влево (кнопка S3) или вправо (кнопка S4), чтобы просмотреть всю сохраненную последовательность импульсов. Если были записаны низкоскоростные сигналы, то пользователь может изменить масштаб в пропорции 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 или 8192 нажатием на кнопку S2.

При программировании микроконтроллера необходимо установить Fuse-биты в соответствии с рисунком.

The fuses that must be set on ATmega8 microcontroller.

Вид печатной платы и расположение компонентов

Вид печатной платы логического анализатора на AVRВид печатной платы логического анализатора

Демонстрация работы прибора

Загрузки

Принципиальная схема, рисунок печатной платы, исходный код и файл для прошивки микроконтроллера (v1.0, AVR Studio 4.18) – скачать

Исходный код и файл для прошивки микроконтроллера (v1.01, AVR Studio 5) – скачать

serasidis.gr

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: mini Logic analyzer on AVR Microcontroller

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • Небольшой тест прибора, пару багов. 1) При перемотке долго мотаем вперед, потом назад и в какой-то момент оно отказывается двигать назад и заклинивает на каком-то значении. Можно прокрутить еще вперед и опять назад и после этого клинит на другом значении.. Вот фото, хотя тут ничего не видно будет [url]http://s017.radikal.ru/i433/1306/57/cf1dfbd2f106.jpg[/url] 2) При перематывании смазывается временная диаграмма [url]http://s60.radikal.ru/i169/1306/33/1c23e0d9815c.jpg[/url] [url]http://i066.radikal.ru/1306/9f/c894839ca1fd.jpg[/url] 3) При изменении зума перемотка сбрасывается в 0-ю позицию(но не всегда). Нужно пофиксить чтоле.. Думаю можно было бы добавить пару вкусняшек в проект: [LIST] [*] Сенсорные кнопки (реализуются элементарно, всего три МОМ-ных резистора) [*] Вольтметр (GND постоянно подключен, по этому неплохо было бы на АЦПшнике сделать чтоле ибо каждый раз мультиметр подключать не то, а этот помог бы. Измеряет в пределах до 5в, как раз для цифровухи). [*] Осцилограф (не знаю как, но было бы очень неплохо. Главная проблема думаю с отображением будет). [*] Подключение через USB к ПК. Отображение рвеменной диаграммы в программе- святое. Если делать осцилограф, то в программе будет проще отображать всё.. Выглядеть будет примерно так (моя програма) [url]http://s48.radikal.ru/i119/1306/eb/9c25ff0d3d7b.png[/url] Так же можно программой что-то изменять в настройках прибора.. [/LIST]
  • К стати, в протеусе данная штуковина неплохо симулируется.. [IMG]http://s45.radikal.ru/i107/1307/e4/f52d4904d41b.jpg[/IMG]
  • Собрал девайс. Включается, показывает. Если без резисторов 33к (и без источников сигнала), то при включении всякие гребенки увидеть можно. С резисторами и источником (TSOP ик и spi-девайс) - все линии ровненькие. Никакой реакции совершенно. Куда рыть-то?
  • Инпуты замыкаются на + а не на землю чтоб показывало. Мне пришлось инвертировать выход TSOP.
  • Индикатор от телефона тоже заработал. У меня сначала не показывал ничего, поставил резисторные делители на входы дисплея от мк и все заработало. 1ком от мк до дисплея и 3,3 ком от дисплея на землю
  • инвертирование не помогает
  • [URL=http://www.radikal.ru][IMG]http://s04.radikal.ru/i177/1410/d4/8840a3f6e3d1.jpg[/IMG][/URL] [URL=http://www.radikal.ru][IMG]http://s017.radikal.ru/i411/1410/4f/4db8ecd33a89.jpg[/IMG][/URL] [URL=http://www.radikal.ru][IMG]http://s008.radikal.ru/i306/1410/ab/634baac2101a.jpg[/IMG][/URL] [URL=http://www.radikal.ru][IMG]http://s50.radikal.ru/i127/1410/ef/c1bfc457b430.jpg[/IMG][/URL] Прошивка с исправленными ошибками и с добавлениями(UART, Частотомер, Редактор пропусков перед измерением, а также ещё к нему программу для компьютера. Analizator.exe Описание: Analizator_PC V2.1 [url=http://www.fayloobmennik.net/4318141]Analizator.exe[/url] 4_канальный логический анализатор.DSN Описание: Analizator_proteus [url]http://www.fayloobmennik.net/4274643[/url] Analizator.hex Описание: Analizator_Atmega8 [url]http://www.fayloobmennik.net/4291611[/url] 4_канальный логический анализатор Описание: Analizator_shema [url]http://www.fayloobmennik.net/4285824[/url] 2й вариант [url]http://radikal.ru/fp/d4a79d41ed074dc1a44ec03cacf87088[/url] ИСХОДНИКИ ДЛЯ АНАЛИЗАТОРА КОМУ ИНТЕРЕСНО. [url=http://www.fayloobmennik.net/4594965]AnalizatorKSA.zip[/url] Не сомневайтесь всё работает так как надо! У вас теперь появится возможность проверить это в симуляторе, а также покопаться в исходнике.Избавляю вас от рутинной работы. Не судите за мои там комментарии, у каждого они свои. К тому же это черновики, а не коммерческий продукт. Моя поставленная цель была достигнута, поэтому черновики так и остались черновиками. Вы можете делать с ними всё , даже вырвать у них сердце. А цель была одна - сделать его удобным, более точным, надёжным. Всё, что я проделал вы можете прочитать в моих 2х программах для РС в разделе "Справка" Для анализа и сравнения полученного результата я выкладываю исходный текст основной измерительной программы Vasilisa Serasidisa. Посмотрите, и сравните сколько тактов тратится на измерение у меня, и у него. И убедитесь, что лучшие программисты это р у с с к и е !!! Добавлю: С тех пор как сконструировал 2 версии анализаторов решил множество проблем связанных с цифровым обменом и по шине CAN и I2C пультов и пр. Вариант на ATmega48 даже предпочтительней со скоростными протоколами. Например, CAN в 140 Кбит анализировал просто на ура! в отличии от не без известного анализатора Digan. Да и сам он величиной с флешку. Всем удачи! [url=http://www.fayloobmennik.net/4595890]Izmerenie.txt[/url] ВЫКЛАДЫВАЮ НОВУЮ ВЕРСИЮ (3йвариант) БОЛЕЕ МОЩНОГО АНАЛИЗАТОРА, А ТАКЖЕ ПРЕДЫДУЩУЮ ВЕРСИЮ С ДОБАВЛЕНИЯМИ И ФАЙЛОМ ПРОТЕУСА ССЫЛКА НА АРХИВ [url]http://www.fayloobmennik.net/5569369[/url]
  • 1. Кто повторил оригинальный вариант - от Seradis, нет ли серьезных багов , делающих вообще неприменимость девайса - типа всегда пропускается первый байт и т.п.? Выше пишут об "отображение эпюр", но хотелось бы, что они именно были достоверные:). 2. Сергей7 не выкладывает исходник, что не дает оценить его функционал в полной мере. Если изготовить вначале оригинал, то потребуются ли изменения в апаратке для дальнейшего развития девайса по доработке Сергея7?
  • Отправлял вам сообщение и никакой реакции. Дошло ли?
  • наверное, нет. ... :( Спасибо за исходники! счас посмотрю.....
  • Рад помочь!:D
  • Прошивки с добавлениями(UART, Частотомер, Редактор пропусков перед измерением в AnalizatorKSA.zip нет
  • может печатка в lay есть у кого?
  • Посмотрите новый вариант, я выложил. И предыдущий доработанный тоже ( с прошивкой, файлом протеуса и дороб.программой).
  • в чём писали и можно полную схему я так и не понял по чём собирать и сколько ины проц пишет в себя для передачи по уарт
  • [b]Сергей07[/b], Добрый день . заинтересовал ваш вариант анализатора . Только не могу найти установку Фюзов в вашем вареанте .
  • Здравствуйте! Времени очень много прошло, и проект свой немного забыл. Но, ничего. Проблем чтобы подсказать вам, у меня нет. Значит так. Диктую фьюсы: RSTDISBL=1; WDTON = 1; SPIEN = 0(запрограммирован); CKOPT=1; EESAVE=1; BOOTSZ1=0(-=-=-); BOOTSZ0=0(-=-=-); BOOTRST=1; BODLEVEL=1; BODEN=1; SUT1=1; SUT0=0(-=-=-); CKSEL3=1; CKSEL2=1; CKSEL1=1; CKSEL0=1; ИТОГО: старший = D9; младший = EF
  • OK.Огромное спасибо .
  • День добрый,можете перезалить проект на файлообменик?
  • [b]Сергей07[/b], 4-канальный анализатор.Ссылка уже битая.Можете обновить?
Полный вариант обсуждения »