§ Внутреннее короткое замыкание тока исключено
§ Внутренняя защита от тепловой перегрузки [10]
Рис 2.5.2 (Физические параметры стабилизатора MC78T05)
Второй на +3.3 В фирмы National Semiconductor LMS1585A
Основные характеристики:
§ Интервал выходных напряжений……………..1.5V и 3.3V
§ Не стабильность тока в сети…………………………………0.005%
§ Не стабильность тока на нагрузке……………………………0.05%
Таблица 2.4.3 Технические характеристики:
Параметр
Обозначение
Условие
min
max
Един. измер.
Выходное напряжение
Vout
IOUT = 0mA, VIN = 5V
0 IOUT 5A, 4.75VVIN7V
3.267
3.235
3.333
3.365
В
Отклонение выходного напряжения по нагрузке
DVout
VIN = 5V, 0 IOUT 5A
0.05
0.5
%
Рабочий ток
VIN = 5V
7.0
13.0
мА
§ Максимальное входное и выходное напряжение (относительно земли)…………………………………………….…………………………….13V
§ Электростатический допуск………………………………….2000V
[11]
Рис 2.4.3 (Физические параметры стабилизатора LMS1585A)
Устройство для программирования ПЛИС. На вход подается шина с LPT порта а на выходе 7-и разрядная шина из которой 4 провода на порт JTAG, 2 на питание +5 В и 2 на землю смотри приложение 1( схема устройства)
Рис 2.5.1.(Подключение ПЛИС к Компьютеру через LPT порт с помощью Byte Blaster)
Рис 2.5.2(Схема ByteBlaster)
Как видно из схемы Байтбластер содержит одну микросхему НС244 которая содержит в себе всего лишь 4 буфера и резисторы. Это значит она очень дешевая и простая, её можно изготовить в домашних условиях.[12]
Как уже ранее говорилось, ПЛИС была выбрана EPM3256ATC144-10 семейства MAX3000, для прошивки к ней подключаются программатор (Byte Blaster). Также в устройство входит компаратор (AD8561), генератор тактовой частоты (Auch JCO series), кнопки (СТАРТ/СТОП, СБРОС), источник питания ПК, стабилизаторы напряжения (MC78T05, LMS1585A) и индикатор (WH1602A). Принципиальная схема приведена в приложение 1. В приложение 2 приведен список выводов ПЛИС. Подключение компонентов схемы ведется согласно тех. документации прилагаемое с микросхемой.
В качестве средства автоматизации проектирования устройств на основе собственных микросхем фирма Altera разработала систему MAX+plus II . Эта система состоит из 11 программ-обработчиков проекта (приложений), которые функционируют под управлением программы Manager. Система является полноцикловой, т.е. поддерживает не отдельные этапы проектирования (как система типа CAD - computer aided design), а сквозной процесс от ввода и контроля описания до программирования микросхемы ПЛИС. Такие системы получили название EDA - electronic design automation. Проект в системе MAX+plus II может быть иерархическим и состоять из набора модулей. Каждый модуль содержит описание части проекта, форма проекта может быть графическое представление принципиальной схемы, текст на языках AHDL/ VHDL/ Verilog, логико-временные диаграммы функционирования.
Для создания исходных модулей в состав приложений включены редакторы: графический – Graphic Editor, текстовый – Text Editor, логико-временных диаграмм Waveform Editor. Любой файл(модуль) может быть представлен в графическом виде как символ. Это можно сделать явно с использования редактора символов – Symbol Editor. Далее эти символы могут быть использованы при создании иерархического проекта. Пользователю обширные библиотеки примитивов и макрофункций.[2]
Данная программа состоит из нескольких модулей. Каждый модуль выполняет определённую функцию. Ниже приводиться структура программы конфигурации.
Рис 3.2 Структура программы
Как известно при нажатии кнопок, при контакте возникает дребезг, и вместо нужного простого перехода из нуля в единицу одной ступенькой возникает сигнал в несколько скачков как показано на рисунке 3.2.1
Рис 3.2.1 Сигнал включения с дребезгом и без дребезга
Антидребезговая защита была реализована в модуле antibounce. Принцип его работы, основан на счетчике и одном триггере защелке. При возникновении дребезга счетчик начинает считать до определенной константы в программе она названа delay т.е. задержка и если по истечении счета на входе по прежнему стоит единица то триггер защелка перещелкивается и возникает переключение, смотри рис 3.2.2.
Рис 3.2.2 Схема антидребезгового устройства
Счетчик реализован с посредством макрофункции Lpm_counter. Встроенная в среду макрофункция Lpm_counter, есть ни что иное, как счетчик с задаваемыми пределами и параметрами, созданная для облегчения процесса разработки подобных устройств.
Двоичный счетчик с возможностью прямого и обратного счета и синхронного и асинхронного сброса. Lpm_counter описывается как переменная в разделе VARIABLE. Форма описания счетчика следующая:
Имя_счетчика : lpm_counter WITH STATES (Параметры счетчика);
Например
COUNTER : lpm_counter WITH (lpm_width=4);
Таблица 3.2.1 Параметры счетчика
Параметры счетчика
Тип
Обязательный
Описание
LPM_WIDTH
Целочисленный
Да
Ширина счетчика(число битов на выходе)
LPM_DIRECTION
Строковый
Нет
Устанавливается в прямом “UP” или обратном “DOWN” направлении идет счет, по умолчанию стоит прямой.
LPM_MODULUS
Установка максимума счета, если параметр не усыновлен то счет не ограничен.
LPM_AVALUE
Целочисленный/Строковый
Ограничивает максимум счета 32 битами во избежания перегрузки счетчика, когда поведение счетчика не определено при переполнении
LPM_SVALUE
Постоянное значение означает что нагрузка включается по переднему фронту clock когда sset или sconst в “1”. Этот параметр должен быть использован если sconst используется
LPM_HINT
Позволяет с большой точностью перевести текстовый файл из AHDL в VHDL. По умолчанию не используется.
LPM_TYPE
Связывает LPM_имя с VHDL графическим файлом
CARRY_CNT_EN
Принимает значения “SMART”, “ON”, “OFF”. При включении lpm_counter функция cnt_en передает сигнал через несущую цепочку. В некоторых случаях, этот параметр используется как параметр установки появления изменения в скорости, но при желании это можно выключить. По умолчанию стоит “SMART”, который сохраняет лучшие отношение между скоростью и размером.
LABWIDE_SCLR
Принимает значения “ON”,”OFF” или не используется. По умолчанию стоит “NO”. Он позволяет выключить использование LAB-ширины sclr особенно при использовании устройств на базе FLEX 6000. Уменьшает использование случайных библиотек, и таким образом даёт возможность использовать высшей логики плотнее, когда SCLR не используется в LAB.
Таблица 3.2.2 Таблица истинности lpm_counter
Входы
Выходы
Функции
aclr
aset
aload
clk_en
clock
Sclr
sset
sload
cnt_en
updoun
q[]
1
x
000…
0
111…
Асинхр. установка значений
data[]
Асинхр. загрузка данных
Текущее значение
ò
Синхронный сброс
Синхронная установка
Синхронная установка значении для LPM_SVALUE
Синхронная загрузка данных
q[]+1
Счет в прямом направл.
q[]-1
Счет в обратном направл.
При написании программы возникла проблема поразрядного десятичного счета. Двоично-десятичный счетчик реализован помощью макрофункции lpm_counter. Сброс одного десятичного разряда двоично-десятичного счетчика производиться при достижении величины 10. Если один разряд счетчика досчитал до десяти, в двоичном коде B”1010”, то на вход aclr (асинхронный сброс счетчика) этого же счетчика и на счетчик отвечающего за следующий разряд на вход clock выставляется логическая единица. т.е. следующий счетчик считает десятки предыдущего, со следующим счетчиком также и так далее, таким образом есть 6, соединенных последовательно, счетчиков каждый из которых отвечает за разряд рис 3.2.1.
Рис 3.2.1 Схема десятично-двоичного счетчика
Следовательно, счетное устройство пока может считать до 999999, далее обнуляется, но добавить разрядность не составляет особого труда, просто добавляем счетчик lpm_counter отвечающий за следующий разряд программно и перепрашиваем ПЛИС. Увеличивать возможности данного устройства можно на столько, на сколько хватает ресурсов ПЛИС (т.е. число триггеров внутри неё ) и фантазии создателя.
Основан на машине конечных автоматов. Как уже говорилось в пункте 2.4.2, для того чтобы на индикаторе появилось изображение, после подачи на него питания, нужно выполнить с ним ряд действий. К описанию, которых я и приступаю, но прежде нужно заметить, что для подключение индикатора использовалась 8 разрядная шина.
Машина конечных автоматов используется в устройстве управления индикаторам для его инициализации, а за тем и вывод на экран цифр обозначающих число импульсов.
Машина конечных автоматов или Машина состояний в AHDL – это структура, позволяющая описывать конечный автомат в виде множества внутренних состояний проекта. Переходы между состояниями синхронизируется тактовым сигналом. Условие и направление перехода определяется для каждого состояния индивидуально. Каждому состоянию можно поставить в соответствие один или несколько входных управляющих сигналов.
Машина состояний описывается как переменная в разделе VARIABLE. Поведение машины описывается в разделе логики после ключевого слова BEGIN. Форма описания машины состояний следующая:
Имя_переменной : MACHINE [ OF BITS <список битов> ]
WITH STATES (состояние1, состояние2,……);
где
состояние ::=<имя> [= значение ],
<значение> ::= <число>ê<имя>.
Например.
ss: MACHINE OF BITS (q1,q2,q3)
WITH STATES ( s1 = B”000”,
s2 = B”001”)
s3 =B”010”);
или
ss: MACHINE WITH STATES(s0,s1);
Обязательным является перечисление списка состояний (s0,s1). Если не обязательна конструкция OF BITS, то объявление имени состояния равносильно объявлению переменной типа NODE.
Если объявлена конструкция OF BITS, то перечисленные биты должны существовать физически. В этом случае рассматриваются комбинация значений выходов этих битов (логических ячеек), аналогично константам. Кроме того, количество возможных состояний в этом случае равно 2 в степени “количества битов”, поэтому желательно явно описать все состояния, включая ложные. Первое по списку состояние является состоянием после сигнала сброса.
Машина состояний имеет следующие порты.
.clk – входной тактовый сигнал;
.reset – сигнал сброса, активный уровень – “1”;
.ena – разрешение перехода, активный уровень – “1”.
Поведение машины можно описать с помощью конструкции CASE
SUBDESIGN StateMachine
(
clk, reset, d: INPUT; -- входные порты
q: OUTPUT; -- выходной порт
)
VARIABLE
ss: MACHINE WITH STATES(s0,s1); --переменная ss –машина с с-ми s0, s1
BEGIN
ss.clk = clk; --соединим входной сигнал clk с тактовым входом машины
ss.reset = reset; --соединим входной сигнал reset с входом сброс
--Далее рассматриваем каждое состояние и анализируем условие переходов
CASE ss IS
WHEN s0 => -- в состоянии s0
Страницы: 1, 2, 3, 4, 5