Часто при проверке цифровых сигналов или при отладке своих устройств необходим логический анализатор, тем более что все больше устройств разрабатывается на микроконтроллерах. Здесь рассматривается простое решение логического анализатора, который может использоваться для большинства цифровых сигналов, а также имеет функцию памяти.
Основные параметры устройства:
- Базовый компонент: PIC18F4580
- Частота дискретизации: 200 Гц – 2 МГц
- Количество каналов: 4
- Память: 1024 отсчета на каждый канал
- Матричный LCD дисплей: 64×128 точек
- Напряжение питания: 9 В аккумулятор
Лучший способом для изучения цифрового сигнала это применение логического анализатора и чаще всего он должен быть компактным, переносным. Данный логический анализатор имеет 4 канала, очень компактный и питается от батареи. Максимальная частота выборок 2 МГц, а также устройство имеет достаточную память для хранения 1024 выборок сигнала. Матричный LCD дисплей с разрешением 64×128 точек достаточно точно отображает и дает ясное представление о цифровых сигналах.
Основой устройства является микроконтроллер PIC18F4580, который производит выборки и управляет LCD дисплеем (например, DEM128064A), управление возможно при помощи клавиатуры из 5 кнопок (S1- S5). Кварцевый резонатор (X1, 10 МГц) определяет максимальную частоту выборок. Интегрированный в микроконтроллер модуль PLL используется для получения внутренней частоты 40 МГц, которая является максимальной по заявлениям производителя компании Microchip.
Диоды D1 – D8 защищают входы микроконтроллера от слишком высокого или отрицательного напряжения. Входные сигналы поступает на входы микросхемы IC1 74HC04N выступающей в роли буфера. Факт того, что сигналы инвертированы в этом случае для нас не важен, т.к. vs можем легко преобразовать его программно. Сигналы после буферной микросхемы поступают непосредственно на входы микроконтроллера RA1 – RA4, где уже программно обрабатываются.
Потенциометр P1 необходим для регулировки контрастности дисплея, транзистор T1 управляет подсветкой. Звуковой излучатель BZ1 сигнализирует о начале очередного цикла записи данных (о начале сэмплирования), а также при переключении между режимами работы. Для клавиш управления (S1 – S5) не требуется схемы подавления дребезга контактов, т.к. этот процесс реализуется программно.
Источник питания устройства служит для обеспечения устройства стабилизированным напряжением 5 В (питание микроконтроллера и микросхемы 74HC04N) и напряжением 9 В, используемого для подсветки дисплея. Цепь T2, R1, R17, D12 реализует схему зарядки 9 В аккумулятора при подключении внешнего источника питания 9 – 12 В. При использовании стандартного светодиода, с падением напряжения 1.5 В, ток зарядки аккумулятора будет равен:
(1.5 – 0.6)/56 = 16 мА,
что, при использовании NiMH аккумулятора емкостью 160 мАч достаточно. Батарея в таком случаем будет полностью заряжена приблизительно через 10 часов. В течении зарядки светодиод D12 будет включен.
Управление
Клавиша S1 используется для выбора частоты дискретизации (развертки) и может принимать значения: 5/10/20/50/100/200/500 мкс/деление и 1/2/5 мс/деление. Клавиша S2 служит для выбора канала для триггера синхронизации/запуска, а клавиша S3 – для выбора условия срабатывания триггера синхронизации: нарастающий или спадающий фронт.
Клавиша S4 имеет несколько функций: старт/стоп устройства, очистка дисплея. При кратковременном нажатии происходит старт устройства (ожидание условия старта записи данных), после выполнения синхронизирующего условия микроконтроллер производит 1024 выборки каждого канала и сохраняет их. Если снова нажать кнопку S4, микроконтроллер снова сделет 1024 выборки после выполнения условия синхронизации. При длительном удержании клавиши S4 выполняется очистка дисплея.
Клавиша S5 включает/выключает подсветку дисплея, но по прошествии 1 минуты или при детектировании разряженного аккумулятора она автоматически выключается.
Последние параметры настройки развертки, условия и источника синхронизации сохраняются в EEPROM микроконтроллера и используются при следующем включении устройства.
Работа микроконтроллера
С целью получения максимально возможной частоты выборок сигнала, мы первоначально позволяем микроконтроллеру записывать полученные данные в ОЗУ, при совпадении условия синхронизации. Для этого используются следующая инструкция:
movff port a, postinc0
Эта инструкция осуществляет копирование содержимого порта в ОЗУ и инкремент адреса ОЗУ на единицу. Этот цикл повторяется 1024 раз. По окончанию этого цикла 128 выборок считываются из ОЗУ и отображаются на дисплее.
При кратковременном нажатии клавиши S4 – микроконтроллер переходит в режим работы с памятью и ожидает выполнения условия запуска/синхронизации, на дисплее в это время в правом углу отображается символ «R». После выполнения синхронизации, считанные 1024 сохраняются в ОЗУ, значок «R» сменяется на «S» и дисплей отображает первые 128 выборок каждого канала. При помощи клавиш S1 и S2 пользователь может прокручивать данные в пределах памяти, курсор внизу дисплея показывает - данные из какой области памяти в данный момент отображаются.
Следующее короткое нажатие на клавишу S4 – устройство снова делает выборки и сохраняет их в памяти, но на дисплее будут отображаться данные из той области памяти, которую пользователь просматривал до нажатия кнопки S4, что в некоторых случаях является полезной функцией.
При удержании клавиши S4 длительное время (услышите один звуковой сигнал) – будут произведены выборки, но дисплей будет отображать данные из начальной (первые 128 выборок) области памяти.
При удержании клавиши S4 более длительное время (два звуковых сигнала) – устройство переходит в режим отображения в реальном времени первых 128 выборок на дисплее.
При работе с прибором, если какие-то каналы не используются, их лучше соединить с «минусом» источника питания, чтобы исключить искажение данных.
В заключении, хочется отметить, что данный логический анализатор не предназначен для наблюдения и анализа сигналов с очень высокой частотой. Применение его – изучение сигналов последовательных протоколов, наблюдение сигналов «медленных» микроконтроллеров и пр.
Источник: РадиоЛоцман
Архив для статьи "4-канальный логический анализатор на PIC микроконтроллере" | |
Описание: | |
Размер файла: 146.31 KB Количество загрузок: 2 056 | Скачать |