Описание

Navigation: »No topics above this level«

Описание

 Return to chapter overview

Сборник (ver1.0) Help & Manual Proteus.

В этом сборнике собраны различные статьи разных авторов:

Сайт http://radioprog.ru/

HALEX

Dosicus

AVR123

antzol

Сборник составил as205


ISIS

Navigation: »No topics above this level«

ISIS

 Return to chapter overview

Дизайнер схем

ISIS

Обзор редактора ISIS

Масштабирование

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

Основы рисования схем

Визуальная помощь проектированию

Выбор элементов для схемы

Размещение элементов на схеме

Соединение элементов на схеме

Безрежимная разводка

Разводка следящим проводником

Текущий индикатор курсора

Использование клемм (зажимов)

Обозначения элементов

Функции редактирования блоков

Практика создаёт совершенство

Аннотирование схемы

Создание новых устройств

Сохранение, печать и вычерчивание плоттером

Подробнее о создании устройств

Создание мультиэлементных устройств

Визуальный инструмент компоновки

Создание подобных устройств

Перемещение элементов на схеме

Проводник проекта

Формирование отчетов

Большой проект


Обзор редактора ISIS

Navigation: ISIS >

Обзор редактора ISIS

 Return to chapter overview

Предположим, что сейчас у Вас уже установлен пакет программ в удобном для вас каталоге.

Чтобы запустить ISIS, кликните на кнопке Пуск и выберите Программы, Proteus 7 Professional, а затем ISIS 7 Professional.

Наибольший участок экрана называется окном редактирования (Editing Window) и действует как окно для черчения (здесь Вы размещаете и соединяете элементы схемы). Наименьший участок в левом верхнем углу экрана назывется окном краткого обзора (Overview Window). Обычно окно предпросмотра используют, как и предполагает его название, для краткого обзора полного рисунка. Синий контейнер показывает границы текущей схемы, а зеленый – участок схемы, в настоящее время отображенный в окне редактирования. Однако, когда выбирается новый объект в переключателе объектов, окно краткого обзора используется для предварительного просмотра выбранного объекта.

i5-1

1 – окно редактирования
2 – переключатель объектов
3 – окно краткого обзора

Изменение вида, отображенного в окне редактирования, производится двумя операциями: настройка масштаба рисунка и настройка участка рисунка для отображения (панорамирование). Эти методы несколько пересекаются и обсуждены более подробно ниже:

Масштабирование

Есть несколько способов увеличить или уменьшить участок схемы:

· Наведите мышь на место, которое хотите увеличить или уменьшить, и покрутите ролик мыши вперед, чтобы увеличить масштаб, или назад, чтобы уменьшить.
· Наведите мышь на место, которое хотите увеличить или уменьшить, и нажмите F6 или F7 соответственно.
· Зажмите клавишу SHIFT и растяните контейнер левой кнопкой мыши вокруг участка, который хотите увеличить. Это так называемое Shift масштабирование.
· Используйте иконки zoomin увеличить, zoomout уменьшить, zoomall увеличить всё, zoomarea увеличить территорию на панели инструментов.

i Клавиша F8 может использоваться в любое время, чтобы отобразить чертеж целиком.

i Методы Shift масштабирования и ролика мыши могут также использоваться на окне краткого обзора. То есть Вы можете позиционировать мышь над окном краткого обзора и покрутить ролик мыши или использовать Shift масштабирование, чтобы увеличить или уменьшить масштаб схемы.

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

Как и с масштабированием есть несколько вариантов панорамирования окна редактирования.

· Нажмите на среднюю кнопку мыши, чтобы войти в режим панорамирования слежением. Это введёт ISIS в режим, при котором схема “подцепляется” и двигается всед за движением мыши. Курсор панорамирования укажет, когда Вы вошли в этот режим. Чтобы выйти из режима панорамирования слежением, кликните левой кнопкой мыши.
· Чтобы просто ‘переместить’ окно редактирования вверх, вниз, влево или вправо, поместите указатель мыши на желательную часть окна редактирования и нажмите клавишу F5.
· Зажмите клавишу SHIFT и сдвиньте мышь к границе окна редактирования, чтобы переместиться вверх, вниз, влево или вправо. Это так называемое Shift панорамирование.
· Если Вы хотите переместить окно редактирования совсем в другую часть рисунка, самый быстрый способ состоит в том, чтобы просто навести курсор в центр нового участка в окне краткого обзора и нажать левую кнопку мыши.
· Используйте иконку панорамирования panicon на панели инструментов.

i Заметьте, что при использовании метода панорамирования слежением Вы можете также изменять масштаб, прокручивая ролик мыши. Нажмите среднюю кнопку мыши, чтобы подцепить схему и переместите её, перемещая мышь, и измените масштаб изображения, прокручивая ролик мыши. Кликните левой кнопкой мыши, чтобы ‘отпустить’ схему и выйти из режима панорамирования слежением.

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

Чтобы для визуальной помощи в окне редактирования была отображена сетка точек, используйте команду Сетка (Grid) в меню Вид (View) или нажмите клавишу ‘G’, или щелкая иконку сетки gridicon на панели инструментов. Сетка помогает в выравнивании элементов и проводников и менее пугает, чем чистый экран. Если Вам кажется тяжелым смотреть на сеточные точки, настройте контрастность на вашем мониторе светлее (по умолчанию сеточные точки отображены светлосерыми) или измените их цвет в Установке значений проекта по умолчанию (Set Design Defaults) в меню Шаблон (Template).

Ниже окна краткого обзора находится переключатель объектов (иногда известный как ‘контейнер элементов’), который Вы используете, чтобы выбрать приборы, символы и другие объекты библиотек. Ознакомимся с использованием переключателя объектов позже.

Наконец, внизу экрана находится индикатор координат, который показывает координаты, где находится указатель. Эти координаты измеряют в 1 thou (или 0,0254 мм), а начало координат находится в центре рисунка.

i5-2
Индикатор координат в ISIS.

i Заметьте, что ISIS позволяет Вам переместить все значки панелей инструментов так же, как переместить и изменить размеры переключателя объектов и окна краткого обзора. Однако знайте, что в документации указываются положения панелей и окон, установленные по умолчанию.


Основы рисования схем

Navigation: ISIS >

Основы рисования схем

 Return to chapter overview

Схема, которую мы собираемся нарисовать, показана ниже. Может показаться, что это будет довольно трудоёмким занятим. Однако некоторые её части похожи (если быть точным, четыре фильтра на операционных усилителях), что даёт возможность использовать средства копирования блока.

i6-1
Схема руководства

Визуальная помощь проектированию

ISIS разработан так, чтобы быть удобным в использовании насколько это возможно, и двумя способами помогает Вам видеть то, что происходит в процессе проектирования – объекты окружаются пунктирной линией (или ‘подёргиваются’), когда на них наводят курсор мыши, и курсоры мыши изменятся согласно функции. По существу, подёргивание говорит Вам, над каким объектом находится курсор мыши (‘горячий’ объект), а курсор мыши говорит Вам, что случится, когда Вы кликните левой кнопкой мыши на этом объекте. Хотя это и интуитивно понятно, все курсоры с соответствующими действиями приведены ниже:

standcurs | Стандартный курсор (используется в режиме выделения, когда не над ‘горячим’ объектом)
placecurs | Курсор размещения (размещение объекта начинается с клика левой кнопкой мыши)
hotplacecurswire | Горячий курсор размещения для проводников (появляется в начале и в конце размещения проводника при нажатии на левую кнопку мыши)
hotplacecursbus | Горячий курсор размещения для шин (появляется в начале и в конце размещения шины при нажатии на левую кнопку мыши)
selcurs | Объект под курсором мыши будет выделен при клике левой кнопкой мыши.
movecurs | Объект под курсором будет перемещен вслед за курсором мыши при зажатой левой кнопкой.
wiresegmentcurs | Сегмент проводника может быть передвинут вслед за курсором мыши при зажатой левой кнопкой.
leftclickcurs | Клик левой кнопкой мыши задаст объекту указанное свойство (используется инструмент задания свойств (Property Assignment Tool))
Выбор элементов для схемы

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

Вы можете выбрать элементы из библиотек одним из двух способов:

1. Нажмите на кнопку P в верхнем левом углу переключателя объектов как показано ниже. Вы можете также использовать вызов Браузера библиотек (Browse Library) нажатием горячей клавиши (по умолчанию это клавиша P на клавиатуре).

i6-2
Выбор элементов из переключателя объектов.

2. Кликните правой кнопкой мыши на пустом участке схемы и выберите Разместить – Элемент – Из Библиотеки (Place – Component – From Libraries) в появившемсяконтекстном меню, как показано ниже:

i6-3
Выбор элементов через контекстное меню.

Любой из этих двух способов заставит появиться диалоговое окно Браузера библиотек.

Следующий этап – найти в библиотеках необходимые элементы. Вы можете искать элементы библиотек множеством способов. В случае, когда Вы знаете название элемента, лучший способ – искать по нему. Попробуйте ввести 741 в поле Ключевые слова (Keywords). Есть много элементов с 741 в их названии или описании, но Вы можете уточнить результаты, выбрав категорию Операционные усилители (Operational Amplifiers), как показано ниже:

i6-4
Диалоговое окно Браузера библиотек.

· i Вы можете настроить информацию, отображенную в списке результатов Браузера библиотек, кликнув по нему правой кнопкой мыши. Контекстное меню снабдит Вас опциями включения отображения Категории (Categories), Подкатегории (Sub-Categories), Изготовителя (Manufacturer) и Библиотеки (Library) рядом с каждым результатом.

Наконец, дважды кликните на строке в списке результатов, чтобы выбрать элемент ‘741’ в проект. Тогда элемент появится в переключателе объектов как показано ниже:

i6-5
Переключатель объектов, содержащий операционный усилитель 741.

Теперь нам надо выбрать некоторые резисторы. В частности, нам нужны резисторы 1 кОм, 10 кОм, 12 кОм, 15 кОм, 56 кОм, 68 кОм и 100 кОм. Это даёт нам шанс ознакомиться с различными поисковыми механизмами доступными в диалоговом окне Браузера библиотек.

Один очень полезный способ – искать элементы через соответствующие ключевые слова. Это подобно вводу ключевых слов в поисковике Google: Вы печатаете ряд уместных слов и получаете список соответствующих результатов. Пробуйте это, изменяя текст ключевых слов на ‘12k resistor’. Вы должны будете увидеть список результатов, каждый из которых содержит условия поиска. Для наших целей подойдет элемент ‘MINRES12K’, выберем его тем же самым способом, как и прежде.

Мы могли конечно повторить этот способ для оставшихся резисторов, но вместо этого мы охватим некоторые из других доступных методов поиска. Разумно предположить, что в именах элементов библиотек есть логика. Если мы изменим текст пароля на ‘MINRES1’, то отфильтруем результаты так, что среди них можно найти резисторы 1 кОм, 10 кОм, 15 кОм и 100 кОм.

Другой, более универсальный способ поиска элементов библиотек – через систему индексации. Это особенно полезно, если Вам нужен элемент, в названии которого или его описании Вы не уверены. Пробуйте это, стерев текст в поле ключевых слов и выбрав категорию ‘Resistors’. Листая вниз список результатов Вы должны будете увидеть MINRES резисторы. Выберите в проект обычным способом резисторы 56 кОм и 68 кОм и закройте диалоговое окно.

Стоит отметить, что Вы можете использовать эти методы в тандеме. Например, Вы, возможно, ввели ‘1 k’ в поле описания, а затем выбрали категорию Resistors, чтобы отфильтровать из результатов все резисторы, содержащие 1 k в их описаниях. В то время как вышеупомянутое пояснение может казаться несколько запутанным, Вы быстро найдете самый подходящий для Вас способ поиска.

Теперь, когда у нас есть основные элеметы схемы, мы можем переместить и разместить их на схеме проекта.

Размещение элементов на схеме

Теперь, когда мы выбрали элементы, необходимо перейти к следующему – к их размещению на области расположения рисунка – в окне редактирования. Начнем с самого простого – буфера, показанного в левом верхнем углу схемы руководства. Более подробно он показана ниже:

i7-1
Законченный вид первого блока схемы,
которую необходимо нарисовать.

Удостоверьтесь, что Вы находитесь в режиме элемента (то есть, что выбран component значок элемента) и начните, кликнув мышью на 741 в переключателе объектов. Вы должны будете увидеть, что окон краткого обзора над переключателем изменилось на окно предварительного просмотра выбранного устройства. Скриншоты ниже показывают состояние переключателя объектов и окна краткого обзора после выделения элемента 741.

i7-2 | i7-3
Переключатель объектов. | Окно краткого обзора.
· Окно краткого обзора показывает не только предварительный вид устройства, но его текущую ориентацию. Когда Вы вращаете или отражаете элемент (с помощью значков Вращение rotation и Отражение mirrorx mirrory ), устройство повторно прорисовывается, чтобы предварительно просмотреть его новую ориентацию. Предварительный вид устройства остается в окне до тех пор, пока оно не будет размещено или пока не будет выполнена другая команда или действие.

Теперь переместите указатель мыши в середину окна редактирования и нажмите левую кнопку. Контур операционного усилителя появится под указателем мышью и будет следовать за ним, когда Вы перемещаетесь по окну редактирования. Когда Вы снова нажмете левую кнопку, элемент будет помещен на схему и прорисуется полностью. Пробуйте это, поместив операционный усилитель где-нибудь в середине окна редактирования.

i7-4
Контур элемента двигается всед
за указателем мыши в режиме размещения.

Выберите устройство MINRES1K и разместите один резистор над операционным усилителем, как показано на схеме выше. Нажмите один раз левую кнопку на иконке вращения против часовой стрелки (показано ниже); заметьте, что предварительный вид резистора в окне краткого обзора показывает, что он повернут на 90°. Наконец, разместите второй (вертикальный) резистор R2.

i7-5
Иконки вращения
(выбрано вращение против часовой стрелки).

· Вы можете также вращать элементы ‘оперативно’, т.е. в режиме размещения. Один левый клик мышью вводит в режим размещения (в этот момент Вы будете видеть, что контур элемента следует за мышью), а затем использование клавиш ‘+’ и ‘-’ вращает размещаемый элемент. Второй левый клик завершает размещение обычным способом.

Если Вы недостаточно опытны, Вы вряд ли с первой попытки разместите элементы так, как это необходимо, поэтому рассмотрим, как их переместить. Объекты в ISIS для дальнейшего редактирования выбираются ‘выделением’. Есть несколько способов выделить объект в ISIS:

· Выберите значок выделения instant , а затем кликните левой кнопкой мыши на объекте. Это стандартный способ, который можно найти в большинстве графических приложений, отметит любой объект. Имейте в виду, что при использовании этого способа, если Вы желаете выполнить другие действия типа размещения элементов, Вам необходимо будет вернуться назад в режим элемента.
· Клик правой кнопкой мыши на объекте и выделит объект, и выдаст контекстное меню, содержащее доступные действия для этого объекта.
· Простой левый клик на объекте, когда курсор мыши – курсор выделения. Это ‘безрежимное’ выделение – прекрасный способ для основного использования, оно отметит все объекты, кроме проводников (левый клик на проводнике начинает размещение примыкающего проводника), и 2D графики (левый клик запустит размещение 2D графики).
· Растяните прямоугольник выделения вокруг объекта, зажав левую кнопку мыши и перемещая мышь, чтобы образовать контейнер, окружающий объект, который должен быть выбран. Этот способ будет работать для любого объекта (или набора объектов). Метки установки размеров позволяют Вам изменить размеры прямоугольника выделения, когда он полностью не окружает объект.

i7-6
Контейнер выделения, окружающий ОУ.

Точно так же Вы можете снять выделение (или совокупность выделений) или левым кликом на пустом месте, или правым кликом на пустом месте и выбором пункта Очистить Выделение (Clear Selection) в появившемся контекстном меню.

i7-7
Снятие выделения со всех объектов
через контекстное меню.

Когда элемент выделен, он может быть перемещен, зажав левую кнопку мыши над элементом (или в прямоугольнике выделения, если Вы используете этот способ), переместив мышь к необходимому месту и отпустив левую кнопку мыши. Курсор мыши изменится, чтобы показать, что элемент может быть перемещен, как показано ниже.

i7-8
Перемещение выделенного ОУ.

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

· Помните, что Вы можете вращать объект во время перемещения, используя клавиши ‘+’ и ‘-’ цифровой клавиатуры.

Всё вышеупомянутое может показаться запутанным при первом прочтении, но окажется чрезвычайно простым на практике. Хотя мы и склоняемся к тому, что безрежимный механизм выделения – самый простой для работы, Вы должны выбирать способ для работы, исходя из собственных предпочтений. Следующие простые эксперименты помогут Вам ознакомиться с различными доступными методами и очистят ваши сомнения:

3. Кликните левой кнопкой на операционном усилителе, чтобы выделить его, затем зажмите левую кнопку мыши над ОУ и переместите мышь, чтобы переставить его, отпустите кнопку мыши в точке, где Вы хотите его разместить.
4. Кликните правой кнопкой на всё еще выделенном ОУ и выберите Врачать по часовой (Rotate Clockwise) rotateclockwise в появившемся контекстном меню, чтобы повернуть ОУ.
5. Используйте клавиши ‘+’ и ‘-’ цифровой клавиатуры, чтобы повернуть ОУ назад к его первоначальному положению.
6. Кликните левой кнопкой на пустом месте схемы, чтобы снять выделение с ОУ.
7. Кликните правой кнопкой на резисторе MINRES1K и выберите Перетащить объект (Drag Object) в появившемся контекстном меню. Переместите мышь (контур резистора будет следовать за мышью), и затем кликните левой кнопкой мыши, чтобы разместить объект.
8. Кликните правой кнопкой на пустом месте схемы и выберите Очистить Выделение (Clear Selection) в появившемся контекстном меню.
9. Зажмите левую кнопку мыши в верхнем левом углу окна редактирования, растяните прямоугольник к правой нижней части окна редактирования и отпустите кнопку мыши. Это даст Вам прямоугольник выделения, и всё, что внутри него, будет выделено.
10. Используйте метки установки размеров, чтобы лучше позиционировать прямоугольник выделения так, чтобы он охватывал только объекты схемы.
11. Зажмите левую кнопку мыши на прямоугольнике выделения и переместите мышь, чтобы переместить все объекты одновременно, и отпустите кнопку, когда Вы хотите разместить объекты.
12. Кликните левой кнопкой на пустом участке схемы, чтобы очистить выделение.

Этот способ является и простым и интуитивным и его стоит выбрать для того, чтобы в дальнейшем размещать и поворачивать устройства в ISIS. Чтобы закрепить изложенное выше, поэкспериментируйте немного над повторной обработкой схемы так, чтобы объекты были размещены так же, как на скриншоте в начале этого раздела.

Соединение элементов на схеме

Как и размещение и позиционирование, соединение элементов – одна из самых основных задач, которые Вы выполняете. Есть три основных метода разводки:

Безрежимная разводка

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

· Исключение – режим выделения instant , который, как и предполагает название, будет всегда выделять объект под указателем мыши. Если Вы в режиме отбора, то Вам необходимо переключить режим, чтобы начать соединять элементы.
Разводка следящим проводником

После начала разводки соединения, преполагаемый проводник будет следовать за движением мыши перпендекулярно концу проводника.

Текущий индикатор курсора

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

Мы увидим все вышеуказанные особенности в действии, когда бедем соединять существующие элементы на схемы. Начнем наведением курсора на верхний вывод R2 (если Вы сейчас находитесь в режиме выделения, переключитесь сначала из него), и заметьте, что курсор мыши изменился на зеленый карандаш, чтобы показать, что проводник может быть здесь размещен.

i8-1
Курсор мыши показывает,
что находится над выводом.

Когда курсор мыши изменился, кликните левой кнопкой мыши, чтобы начать размещение проводника. ISIS автоматически определяет, что Вы навели курсор на вывод элемента, и делает вывод, что Вы желаете начать вести отсюда проводник. Курсор мыши изменяется на бесцветный карандаш, чтобы показать, что происходит разводка, и предполагаемый путь проводника будет тогда следовать за движением мыши к концу проводника, позволяя Вам, чтобы видеть сразу топологию проводника. Это пример следящей разводки, показывающий простой способ быстро собрать схему. Вы можете увидеть теперь это в действии, перемещая мышь к выводу инвертирующего входа операционного усилителя (смотрите законченную схему в предыдущем разделе).

i8-2
Следящая разводка в ISIS.

Для контроля большего количества процессов разводки введено понятие якорей привязки при формирования соединений. Клик левой кнопкой в любой точке во время формирования разводки разместит точку привязки (показана маленьким крестиком на проводнике), таким образом фиксируя секцию проводника перед продолжением разводки. Это очень полезный инструмент при размещении больших проводников или разводке вокруг препятствий. Клик правой кнопкой, во время формирования разводки, удалит размещенный перед этим якорь или завершит монтаж проводника, если якорей не существует.

i8-3
Проводник в ISIS, показывающий
использование точек привязки.

· Заметьте, что Вы можете отменить следящую разводку совсем, просто удерживая клавишу CTRL при размещении проводника, это запретит алгоритмы формирования разводки и даст Вам полностью ручное управление.

Поэкспериментируйте с этими методами, подключая R1 согласно схеме в начале раздела. Ознакомьтесь с привязкой, и попробуйте выделить объекты и немного передвигать их,наблюдая как WAR переразводит проводники.

Следящая разводка в ISIS проста и интуитивна, но с ней важно ознакомиться, чтобы использовать больше её возможностей. В частности технология привязки неоценима для получения с первой попытки правильной разводки больших проводников. Если Вам не понравилась разводка, выполненная автомаршрутизатором, Вы можете отредактировать её вручную после размещения. Чтобы сделать это, выделите проводник (кликнув на нем правой кнопкой), а затем попробуйте переместить его сначала за углы, а затем за середину прямой секции. Если Вы хотите вручную формировать разводку, Вы можете сделать так, просто кликните левой кнопкой на первом выводе и кликайте левой кнопкой в каждой точке, где Вы хотите согнуть проводник, а затем в конце кликните левой кнопкой на втором выводе. Через некоторое время, Вы почувствуете, с чем WAR справится сам, а что Вы должны будете взять на себя.

Использование клемм (зажимов)

Чтобы завершать эту первую часть схемы, Вы должны разместить и соединить несколько клемм. В частности нам нужны две универсальные клеммы, корпусная клемма и две клеммы питания. Сначала выберите значок Клемма terminalicon и заметьте, что переключатель объектов стал показывать список доступных клемм.

i8-4
Список типов доступных клемм
в переключателе объектов.

Теперь разместите и подключите шину питания операционного усилителя. Выберите клемму питания, проверьте, что при предпросмотре (в окне краткого обзора) она показана в правильном положении, и разместите её над выводом 7 ОУ 741. Как и говорилось ранее, ISIS достаточно гибок, чтобы обеспечить Вас несколькими способами редактирования элементов, выберите себе более предпочтительный метод для редактирования клемм из следующих:

· Кликните дважды на клемме.
· Кликните правой кнопкой на клемме, чтобы выделить её и вызвать контекстное меню, а затем выберите вариант Редактировать Свойства (Edit Properties).
· Войдите в режим выделения instant , кликните левой кнопкой, чтобы выделить клемму, а затем кликните правой кнопкой, чтобы вызвать контекстное меню, и выберите вариант Редактировать Свойства (Edit Properties). Не забудьте выйти из режима выделения, когда закончите.

i8-5
Контекстное меню клемм с выбранным
Редактировать Свойства.

Теперь запустив диалоговое окно клемм, напечатайте +12V в поле редактирования, как показано ниже, и нажмите OK, чтобы выйти отсюда.

i8-6
Клемма питания, обозначенная как ‘+12V’.

· Везде, где это необходимо, ставьте ‘+’ или ‘-’ перед числовыми значениями клемм.

Соедините клемму с выводом 7 операционного усилителя и повторить процесс для шины отрицательного питания с другой (повернутой) клеммой питания, обозначая её -12V и соединяя с выводом 4 операционного усилителя. Теперь разместите корпусную клемму, проверьте, что на предварительном виде она в правильном положении, и поместите её как раз под R2.

i8-7
Корпусная клемма в необходимом
для размещения положении.

Затем выберите в переключателе стандартную клемму (Default) и разместите две клеммы, как показано на схеме, обозначив их DAC1 и DAC2.

i8-8 i8-9
Размещение стандартных клемм на схему.

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

· Если Вы незнакомы с клеммами и их использованием, то более подробно они рассмотрены в разделе Спецификации объектов.

Клеммы имеют следующие свойства:

Свойство | Описание
NET | Метка сети клеммы.
SYMBOL | Обозначение, используемое клеммой. Это могут быть как стандартные обзначения, так и определенный пользователем.
TYPE | Тип клеммы. Она может быть пассивной (PASSIVE), входной (INPUT), выходной (OUTPUT), двунаправленной (BIDIR) и питающей (POWER).

Теперь Вы должны быстро научиться, как выделять, размещать, редактировать и соединять элементы в редакторе схем ISIS. Если Вам кажется сложным выполнять действия в ISIS, хороший способ поступать так: ‘если сомневаешься, то нажимай правую кнопку мыши’. Все объекты в ISIS имеют контекстное меню, которое содержит список допустимых действий в точке, где Вы его вызываете.

В настоящий момент наше схема должна выглядеть примерно так.

i8-10
Текущее состояние схемы руководства.


Обозначения элементов

Navigation: ISIS >

Обозначения элементов

 Return to chapter overview

Вы можете увидеть, что все элементы, которые Вы разместили, имеют и уникальные обозначения, и величины. Обозначение установливается, благодаря функции ISIS – Аннотированию в реальном времени (Real Time Annotation), которая может быть найдена в меню Инструменты (Tools) и включена по умолчанию. В основном, эта функция включается, чтобы она аннотировала элементы, которые Вы размещаете на схеме, сохраняя Вам время и усилия при выполнении этого вручную.

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

Редактирование обозначений элементов

Если Вы остановитесь на любом резисторе, который разместили, то увидите, что ISIS отметил его уникальным обозначением (например ‘R1’), а также величиной (например ‘1k’). Вы можете редактировать оба этих поля и их видимость через диалоговое окно Редактирование Элемента (Edit Component). Вызовите это диалоговое окно двойным нажатием левой кнопки мыши на резисторе (или используя один из альтернативных способов, рассмотренных выше).

Диалоговое окно редактирования элемента показывает
обозначение элемента и его сопротивление.

В появившемся диалоговом окне Вы можете редактировать и обозначение элемента и, в этом случае, сопротивление. Наиболее интересными являются опции видимости (выделены на скриншоте выше). Это может быть полезно, особенно в плотно заполняемых схемах, чтобы скрыть некоторые детали, отображенные около элементов, и тогда, чтобы увидеть обозначения и величины элементов, Вам необходимо будет вызывать окно редактирования, как показано выше.

На этом этапе стоит ознакомиться с редактированием элементов и сокрытием и показом их обозначений и величин.

· При изменении обозначений элементов этим способом требуется некоторое предостережение. Если, например, Вы измените ‘R1’ на ‘R2’, то будете иметь на схеме два элемента с одним и тем же обозначением. Это вызовет проблемы позже, когда список связей будет переноситься в ARES. Неопытным пользователям рекомендуется изменять аннотации через Глобальный Аннотатор, как рассмотрено позже в этом руководстве.

Перемещение обозначений элементов

Так же как сокрытие обозначениий элементов, возможно и перемещение их в более удобное место. Это обычно используется, когда Вы хотите разместить проводник на месте, где сейчас расположено обозначение, и необходимо освободить некоторый участок экрана. Попробуем это с обозначениями ‘U1’ и ‘741’, переместив их так, как показано на образцовой схеме.

Самый простой способ выделить операционный усилитель состоит в том, чтобы сначала изменить настройки сетки. Когда указатель над окном редактирования, приращение на индикаторе координат кратно шагу, заданному вначале, 100th (2,54 мм). Это называется фиксацией и дает возможность Вам позиционировать элементы и другие объекты в четкой сетке. Шаг фиксации может быть выбран командами Фиксировать (Snap) в меню Вид (View) или прямо через горячие клавиши.

Сначала нажмите F2, чтобы уменьшить шаг сетки фиксации до 50th (1,27 мм) (в начале он была 100th), а затем выделите операционный усилитель. Теперь наведите курсор на обозначение ‘U1’ и с зажатой левой кнопкой, переместите его под ОУ. Затем сделайте то же самое с обозначением ‘741’.

i9-2
Перетаскивание обозначений в ISIS.

Когда Вы закончите с расстановкой обозначений, вернитесь к сетке 100th, нажав F3. Хотя с функцией Фиксации в реальном времени (Real Time Snap) ISIS и может определить местоположение выводов и проводников не на текущей сетке фиксации, но при работе постоянно с одной и той же сеткой фиксации рисунки смотрятся более четко и аккуратно.


Функции редактирования блоков

Navigation: ISIS >

Функции редактирования блоков

 Return to chapter overview

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

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

i10-1
Выделение блока в ISIS, используя контейнер выделения.

· Заметьте, что контейнер имеет перетаскиваемые маркеры для того, чтобы Вы могли легко подобрать захватываемый участок (соответственно и объекты), на который будет воздействовать блочная операция.

Чтобы переместить элементы в верхний левый угол листа, поместите мышь на прямоугольник выделения (курсор мыши изменится, чтобы показать, что элементы могут быть перемещены), зажмите левую кнопку мыши и перетащите группу элементов к нужному месту.

i10-2
Перемещение блока в ISIS.

· Хотя в этом примере это и несущественно, но тот факт, что Вы можете выбрать ‘точку захвата’ для перетаскивания, зажав кнопку мыши где-нибудь на прямоугольнике выделения, чрезвычайно удобен и очень помогает, когда необходимо точно позиционировать блоки электрической схемы.

И наконец, кликните левой кнопкой вне пределов прямоугольника выделения, чтобы снять выделение и удалить прямоугольник выделения.

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

i10-3
Контекстное меню для операций с блоками.

На скриншоте выше Вы можете увидеть, что Вам доступны все блочные операции. Не стесняйтесь экспериментировать с ними; результаты операций могут быть отменены, используя команду Отменить (Undo) (горячие клавиши по умолчанию CTRL+Z)

· Вращение блока элементов в ISIS является ортогональным, и Вы не можете вращать группу элементов, содержащую подсхемы или графики (поскольку это объекты с фиксированной ориентацией).


Практика создаёт совершенство

Navigation: ISIS >

Практика создаёт совершенство

 Return to chapter overview

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

i11-1
Первый фильтр на ОУ на схеме руководства.

Сначала выберите из библиотек конденсатор и TL074, используя описанные ранее способы. Для простоты мы будем использовать в этом проекте керамические конденсаторы, поэтому найдите керамический конденсатор 220пФ. Используйте различные методики редактирования, чтобы правильно разместить все элементы. Корректно разместите обозначения и величины элементов.

Когда фильтр на ОУ будет готов, используйте прямоугольник выделения и опцию контекстного меню Копировать Блок (Block Copy) [image] , чтобы создать копию справа. Обратите внимание, что на схеме руководства эти два блока идентичны за исключением некоторых резисторов.

Выберите в переключателе объектов MINRES12k, нажмите левую кнопку, чтобы войти в режим размещения, а затем поместите курсор мыши над резистором 15 кОм, который мы хотим заменить на правом блоке.

i11-2

i11-3

Выделение и перетаскивание элемента на уже созданный элемент,
чтобы выполнить замену.

Поместите контур резистора, который хотите установить, на корпус уже существующего резистора, удостоверившись, что выводы у них совпадают, а затем кликните левой кнопкой, чтобы заменить MINRES15k выбранным MINRES12k с сохранением существующей разводки схемы. В окне подсказки подтвердите замену. Теперь Вы можете сделать то же самое, заменяя резистор 100 кОм на резистор 10 кОм.

Повторите процесс с двумя нижними фильтрами на схеме руководства (не забывая выбрать из библиотеки керамический конденсатор 1,5 нФ) так, чтобы у Вас теперь было четыре фильтра, как и в конечной схеме руководства. Как и раньше, Вы должны будете заменить резисторы в скопированном блоке, чтобы схема соответствовала схеме руководства.

Когда у Вас будет четыре этих фильтра, соедините их, и поместите на рисунок ключ SW-SPDT (SW1).

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


Аннотирование схемы

Navigation: ISIS >

Аннотирование схемы

 Return to chapter overview

ISIS обеспечивает Вас четырьмя возможными способами аннотирования (именования) элементов (доступными в меню Инструменты (Tools)):

· Ручное аннотирование (Manual Annotation) – Этим способом Вы уже пользовались, отмечая первый операционный усилитель и резисторы. Любой объект может быть отредактирован двойным кликом на нем или через контекстное меню объектов, как описывалось ранее. Каким бы способом Вы ни воспользовались, появится диалоговое окно, в котором Вы можете ввести подходящие свойства, такие как Обозначение (Reference), Величина (Value) и т.д.
· Инструмент задания свойств (Property Assignment Tool) (PAT) – Этот инструмент может генерировать фиксированную или инкрементирующую последовательности и присваивать получившийся текст или всем объектам, или всем выделенным объектам (на всех листах или только на текущем), или к объектам, которые Вы будете размещать после. Использование PAT более быстро, чем ручное аннотирование, хотя медленнее, чем использование автоматического аннотатора (Automatic Annotator). Однако, это действительно избавляет Вас от необходимости проверки имен установленных элементов.
· Глобальный Аннотатор (Global Annotator) – Использование Автоматического аннотатора обеспечивает аннотирование целого проекта всего за несколько секунд. Инструмент знает о мультиэлементных устройствах, подобных логическим элементам И-НЕ TTL микросхем серии 7400, и правильно разместит эти элементы. Однако, этот процесс неинтерактивен, поэтому у Вас будет меньший контроль над размещаемыми названиями, чем с двумя предыдущими методами.
· Аннотирование в реальном времени (Real Time Annotation) – Эта функция, когда включена, аннотирует элементы, когда Вы размещаете их на схеме, устраняя любую необходимость Вашего вмешательства в размещение обозначений и величин в вашем проекте. Как и с Автоматическим аннотатором этот инструмент делает процесс неинтерактивным и не предлагает никакой пользовательской проверки над процессом аннотирования. Аннотирование в реальном времени может включено или выключено через команду Аннотирование в реальном времени (Real Time Annotation) в меню Инструменты (Tools) (заданные по умолчанию горячие клавиши CTRL+N).

На практике Вы обычно по умолчанию используете Аннотирование в реальном времени (как мы сделали в этом проекте), и затем используете Автоматический аннотатор или Инструмент задания свойств, если требуется изменить аннотацию. Механизм ручного аннотирования обычно используется только для мультиэлементных неоднородных устройств (таких как реле и пара контактов), где Вы должны определенно сказать ISIS, какой обмотке какие контакты принадлежат.

· Использование мультиэлементных неоднородных устройств – это тема, выходящая за пределы этого руководства. Но она будет рассмотрена подробно в соответствующем разделе.

Чтобы сэкономить время в будущем, рассмотрим более подробно другие механизмы аннотирования.

Инструмент задания свойств (PAT)

Предположим, ради примера, что Вы хотите переаннотировать несколько резисторов, начиная с R5 и далее, используя PAT. Поэтому мы хотим генерировать последовательность, которая начинается с R5 и инкрементируется (позволяет нам аннотировать R5, R6, R7, и т.д.). Чтобы сделать это, выберите Инструмент задания свойств (Property Assignment Tool) в меню Инструменты (Tools). Введите REF=R# в поле Строка (String), затем переместите курсор в следующее поле (поле Подсчет (Count)) и введите значение 5. Удостоверьтесь, что выбран On Click, а затем нажмите кнопку OK или клавишу ENTER. Символ решетки (‘#’) в поле Строка (String) будет заменяться текущим значением поля Подсчет (Count) каждый раз, когда PAT присваивает строку объекту, после чего значение поля Подсчет (Count) инкрементируется. Это показано ниже:

i12-1
Инструмент задания свойств задает аннотирование резисторов, начиная с R5.

ISIS автоматически выбирает значок Выделение (Selection) [image] так, чтобы Вы могли аннотировать заданные объекты, кликая по ним левой кнопкой. Например, наведите курсор на резистор R7 и кликните левой кнопкой мыши. PAT переаннотирует резистор так, чтобы текст изменился на R5, и элемент прорисуется заново. Теперь сделайте то же самое для старого резистора, у которого была аннотация R5, и смотрите, как значение поля Подсчета (Count) PAT’а увеличится и аннотирует этот резистор как R6. Вы можете теперь переаннотировать обозначения оставшихся резисторов.

Попробуйте сделать это самостоятельно, чтобы понять, как работает PAT; хотя сначала это немного сложно, но это чрезвычайно мощный инструмент, и он может избавить от большого и утомительного редактирования.

· Заметьте, что, как и с ручным аннотированием, Вы можете переаннотировать с PAT’ом так, что в итоге будете иметь два элемента с одинаковыми обозначениями (что вызовет ошибку при генерации списка соединений). Поэтому требуется немного внимания, чтобы гарантировать правильную аннотацию.
· Хотя это здесь и не применяли, но PAT может также использоваться, чтобы изменить величину и, конечно же, любое другое свойство элемента; это действительно неоценимый инструмент, экономящий время при разработке схемы.

Глобальный Аннотатор

ISIS содержит в себе глобальный аннотатор, который выберет для Вас обозначения элементов. Он может аннотировать все элементы, или только те, которые еще не аннотировались, то есть у которых в обозначении стоит ‘?’.

Автоматический аннотатор включает в себя два режима работы, которые описаны ниже:

· Инкрементирующее Аннотирование (Incremental Annotation): Аннотирование воздействует только на те элементы в пределах заданных границ (весь проект или текущий лист), которые еще не аннотировались.
· Полное Аннотирование (Total Annotation): Аннотируются все элементы в пределах заданных границ(весь проект или текущий лист).

С включенным аннотированием в реальном времени все элементы, кроме мультиэлементных неоднородных устройств, при размещении автоматически получают уникальное обозначение. Так как у нас нет на схеме руководства никаких устройств этого типа, то прогоним Глобальный Аннотатор в полном режиме. Чтобы сделать это, вызовите команду Глобальный Аннотатор (Global Annotator) в меню Инструменты (Tools), нажмите на кнопку Полный (Total), как показано ниже, и затем нажмите на OK.

i12-2
Глобальный Аннотатор в режиме полного аннотирования.

Схема будет прорисована заново, почти немедленно отобразив новую аннотацию.

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


Создание новых устройств

Navigation: ISIS >

Создание новых устройств

 Return to chapter overview

Данный раздел использует цифровой аттенюатор 7110 и даёт возможность изучить как делаются новые устройства в ISIS.

В ISIS новые устройства создаются непосредственно рисованием - как в режиме редактирования, причем не отдельного устройства, не считая отдельной программы. Новые устройства создаются размещением совокупности 2D графики и выводов, комментированием выводов, и затем окончательной их маркировкой и запуском команды "Создать устройство" (Make Device).

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

i1-1
Законченный цифровой аттенюатор 7110

Вычерчивание нового элемента

Первым делом необходимо определить свободный участок нашего проекта, где может быть создан новый элемент, – клик левой кнопкой мыши по левой нижней области окна обзора (Overview Window) к позиции окна редактора (Editing Window) на том участке в проекте.

i2-1
Перемещение по схеме из окна обзора.

Начнём с чертежа корпуса нового прибора. Выберите иконку прямоугольника (Box icon). Справа вы можете увидеть переключатель объектов (Object Selector), показывающий перечень графических стилей (Graphics Styles). Графический стиль определяет в показателях цвета и толщины линии, цвета и стиля заполнения и т.д. как будет выглядеть чертёж, который мы нарисуем. Каждый перечисленный стиль имеет отличительные установки определенных свойств и определяет направление, как будут выглядеть различные части схемы.

i2-2
Отображение графических стилей в переключателе объектов.

ISIS поддерживает мощную систему локальных и глобальных графических стилей и возможность локальных стилей отслеживать и подчиняться глобальным стилям, что позволяет вам легко и гибко изменять внешний вид вашей схемы. Смотрите раздел "Графические и текстовые стили" ( Graphics and Text Styles) для полного объяснения как работают стили и как они используются.

И так, рисуем корпус элемента, выберите графический стиль КОМПОНЕНТ (COMPONENT), поместите курсор мыши на окно редактора, один левый клик, затем двигайте мышь до тех пор, пока форма контура тени не станет прямоугольником нужной формы, и сновакликнете левой кнопкой на том месте. Не беспокойтесь о том, чтобы в точности получить правильный размер, – позже вы всегда сможете изменить размеры прямоугольника. Вы сможете увидеть результат выбора графического стиля КОМПОНЕНТ (COMPONENT), прямоугольник выглядит так же как и остальные элементы схемы (тот же цвет, заполнение и т.д.).

Следующее, что следует сделать – размещение выводов для нового устройства. Чтобы сделать это сначала выберите иконку вывода устройства (Device Pin Icon). Переключатель объектов (Object Selector) перечислит типы доступных выводов (обратите внимание, что вы можете также создать в ISIS свои собственные объекты выводов, хотя это не освещено в данном руководстве). Выберете тип вывода “по умолчанию” (DEFAULT), окно обзора (Overview Window) обеспечит предварительный просмотр вывода и его имени и номера, изображаемыми строками NAME и 99, и его основания и конца, обозначенных меткой начала и крестом соответственно, – крест означает конец, который вы возможно подсоедините к проводу.

i2-3
Конфигурация ISIS для размещения выводов.

Используйте иконки вращение (Rotation) и зеркала (Mirror), чтобы развернуть вывод в окне предварительного просмотра перед размещением выводов с левой стороны, а затем кликните левой кнопкой мыши в окне редактора на левой грани прямоугольника, где вы хотите, чтоб отображалось основание вывода. Разместите выводы для VIN, D0..D5, S1..3 и DGND. Обратите внимание, что вы можете использовать клавишу со стрелкой вниз, чтобы двигать курсор мыши вниз на одну клетку сетки, а последующее двойное нажатие кнопки ENTER заменит левую кнопку мыши – это иногда быстрее, чем использование кнопок мыши. Теперь левый клик на иконке зеркала (Mirror), а затем разместите три правых вывода: RFB, IOUT и AGND. Чтобы закончить, разместите два вывода, один на верхней грани и один на нижней грани прямоугольника, используя иконки вращение (Rotation) и зеркало (Mirror) перед их размещением, так, чтобы их точки были снаружи корпуса устройства, эти выводы будут питающими выводами VDD и VBB и в конечном итоге будут скрыты (вот почему они не показаны на образцовом элементе на странице 1).

В данном руководстве тема принципов создания элементов со скрытыми питающими выводами более детально затронута в разделе "Действия с питающими выводами" (Dealing with Power Pins).

На этом этапе вы можете перемещать выводы и изменять размер прямоугольника, как требуется. Чтобы двигать вывод, пометьте его правой кнопкой мыши и выберите Переместить объкт (drag object) в появившемся контекстном меню, чтобы переориентировать его, используйте пункты меню Вращение (Rotation) и зеркало (Mirror). Чтобы подогнать размер прямоугольника корпуса прибора, пометьте его правым кликом на границе графики, затем нажмите и удерживайте левую кнопку мыши на одной из восьми «перетаскивающих меток» (черные квадратики на углах и серединах граней прямоугольника) и переместите метку на новую позицию. Если вы подогнали ширину, то теперь вам нужно нарисовать метку-прямоугольник вокруг выводов и двигайте блок как описано в предыдущем разделе по их перемещению.

i2-4
Чтобы выбрать объект, кликните на его границе.

Важный момент то, что выделение объектов 2D графики (такое как контур компонента выше) должно производиться кликом на границе чертежа, так как вы возможно захотите иметь комбинированные чертежи или графический объект позади или перед другими объектами.

И так, располагая, как необходимо, прямоугольником корпуса устройства и выводами, нам теперь необходимо снабдить комментариями выводы с именами и номерами и установить им электрический тип. Электрический тип (вход, питание, подтяжка и т.д.) используются при проверке электрических соединений (Electrical Rules Check), чтобы гарантировать, что соединены только выводы с корректными электрическими типами.

Сначала установим имена, электрические типы и видимость. Начнем с редактирования первого вывода (наверху слева) правым кликом на нем и выбором Редактировать Свойства (Edit Properties) в полученном контекстном меню.

i2-5
Открытие диалогового окна редактирования вывода в ISIS.

Теперь, используя законченный элемент как образец, заполните следующую информацию о выводе:

· Введите имя вывода в поле Имя (Name). Оставьте поле Номер (Number) пустым, чтобы установить номера выводов позже в процессе выбора корпуса помощью программы Visual Packaging Tool;
· Выберите подходящий для вывода электрический тип – выход (Output) для IOUT, питание (Power) для VDD, VBB, AGND и DGND, и вход (Input) для остальных;
· Выберите выводы, которые должны быть скрыты, снятием «галочки» Чертить Объект (Draw body) – выводы VDD и VBB – стандартные питающие выводы и могут быть скрыты. Выводы AGND и DGND не стандартные и должны оставаться видимыми потому, что они могут подключаться соответствующе проекту, в котором используется элемент.

Теперь воспользуйтесь клавишей PGDOWN или кнопкой NEXT, чтобы перейти к следующему выводу (вы можете увидеть, что следующий вывод будет автоматически выделен) и повторите процесс. Повторяйте этот процесс, пока все выводы не будут снабжены комментариями как в образце, а затем нажмите кнопку ОК, чтобы выйти из диалоговой формы.

i2-6
Вывод VIN снабжен комментариями и можно перейти к следующему выводу устройства

На этом этапе мы имеем набор графики, похожий на устройство, которое мы хотим. Финальный этап – это использование команды Создать Устройство (Make Device) для преобразования этого набора в элемент библиотеки ISIS.

Теперь, когда у Вас есть собранный аттенюатор 7110, Вы можете разместить и собрать оставшуюся часть схемы руководства, как показано ниже:

i13-1
Конечный скриншот оставшихся элементов схемы.

Обозначение и скобка, объединяющая шесть входов DA0-DA5, сделаны с использованием 2D графики. ISIS обеспечивает Вас средствами для размещения line линий, box прямоугольников, circle кругов, arc дуг и text текста на ваших рисунках; все из них доступны через иконки на панели инструментов Переключателя режимов.

Скобка делается из трех линий, разместите их, выбрав значок Линия line (Line), а затем нажимая кнопку мыши в начале и конце каждой линии. Затем разместите текст FROM PIO-1A, как показано на рисунке, выбрав значок Текст text (Text), установив значок Поворот rotation (Rotation) на 90°, а затем кликнув левой кнопкой мыши в точке, где хотите установить символ ‘F’. Вы можете конечно выделять и перетаскивать объекты 2D-графики, как только хотите.

В завершение Вы должны разместить границу листа и блок заголовка. Эти объекты должны быть помещены на главном листе. Эта тема подробно рассмотрена в руководстве по шаблонам, но в основном содержимое главного листа видно на всех листах, но доступно для редактирования только, когда выбран главный лист. Поэтому в многолистовом проекте (или конечно же при запуске нового проекта) эти поля видны, тем самым обеспечивая совместимые стиль и планировку.

· Полная настройка внешнего вида нового проекта и конструкция стилей размещения рассмотрены в руководстве Шаблоны (Templates).

Поэтому не рассматривая теоретическую часть, чтобы разместить границу листа, сразу перейдите к главной странице (go to the Master Sheet) в меню Шаблон (Template), выберите значок Прямоугольник box (Box), уменьшите масштаб, чтобы видеть контур страницы целиком (темно-синий) и затем разместите на него прямоугольник. Важно понять, что темно-синий контур листа не появляется на твердой копии; если Вам нужен ограничивающий прямоугольник, Вы должны разместить его как графический объект.

Чтобы теперь разместить заголовок, выберите значок Символ (Symbol) и затем нажмите левую кнопку мыши на кнопке P Переключателя объектов, чтобы отобразить диалоговое окно Переключателя Библиотек Символов. Выбор символов из библиотек символов подобен выбору устройств из библиотек устройств за исключением того, что нет никакого переключателя кодов. Выберите объект HEADER (Заголовок) из библиотеки символов SYSTEM и закройте диалоговое окно. Теперь с текущим символом HEADER (Заголовок), кликните левой кнопкой, чтобы войти в режим размещения, переместите заголовок в необходимое место и кликните левой кнопкой, чтобы разместить блок заголовка.

i13-2

i13-3

Размещение блока заголовка на главном листе.

После размещения этих элементов мы должны покинуть главный лист и вернуться к основанию проекта. Чтобы сделать это перейдите в меню Проект (Design) и выберите наш лист внизу меню.

i13-4
Возврат к основанию проекта из главного листа.

Некоторые из полей в блоке заголовка заполнятся автоматически; другие, такие как Заголовок Проекта (Design Title), Заголовок Страницы (Sheet Title), Автор (Author) и Редакция (Revision) должны быть введены, используя команды Редактирование свойств проекта (Edit Design Properties) и Редактирование свойств страницы (Edit Sheet Properties) в меню Проект (Design). Заметьте, что поле Имя страницы (Sheet Name) на диалоговом окне Редактирование свойств страницы (Edit Sheet Properties) отличается от Заголовка страницы (Sheet Title); имя страницы (Sheet Name) – короткое обозначение, которое используется в иерархическом проекте. Заголовок страницы (Sheet Title) – полное описание электрической схемы на той странице, которое появится в блоке заголовка.

· Вы должны будете увеличить масштаб на заголовке, чтобы увидеть все эффекты вашего редактирования.
· Как и с главной страницей, обсуждение конфигурирования блока заголовка выходит за рамки этого руководства и тем более этого раздела, поэтому не волнуйтесь выше приведенное объяснение показалось Вам запутанным. Подробная информация может быть найдена в руководстве Шаблоны (Templates).


Сохранение, печать и вычерчивание плоттером

Navigation: ISIS >

Сохранение, печать и вычерчивание плоттером

 Return to chapter overview

Вы можете сохранить вашу работу в любое время посредством команды Сохранить (Save) в меню Файл (File), и сейчас как раз подходящее время для этого! Опция Сохранить как (Save As) позволяет Вам сохранить проект именем файла, отличным от того, под которым Вы его загрузили.

Чтобы распечатать схему, сначала выберите правильное устройство для печати, используя команду Настройка печати (Printer Setup) в меню Файл (File). Это активирует общий диалог Windows для выбора и настройки устройства для печати. Таким образом, детали зависят от специфики вашей версии Windows и вашего драйвера принтера, для деталей проконсультируйтесь с документацией Windows и драйвера принтера. Когда Вы выбрали нужное устройство для печати, закройте диалоговое окно и выберите команду Печать (Print) в меню Файл (File), чтобы распечатать ваш проект. Есть множество опций, доступных в этом диалоговом окне, каждый из которых имеет контекстно-зависимую справку и также рассмотрены более подробно в разделе Твердая Копия (Hard Copy). Для наших целей мы просто выровняем схему на странице по центру и распечатаем. Сделайте это сейчас, кликнув правой кнопкой на предварительном просмотре печати (Print Preview) и выбирая опцию Вывод Позиции по Центру (Position Output at Center), как показано ниже.

i14-1
Диалоговое окно печати, конфигурируемое так,
что схема выводится по центру.

· Если у Вас демонстрационная версия, пожалуйста заметьте, что Вы можете печатать только немодифицированные образцовые проекты. Чтобы сейчас попробовать это, используйте команду Загрузить (Load) в меню Файл (File), чтобы загрузить образцовый проект.


Подробнее о создании устройств

Navigation: ISIS >

Подробнее о создании устройств

 Return to chapter overview
Создание мультиэлементных устройств

Теперь мы теперь создадим основной библиотечный элемент для счетверённого операционного усилителя TL074. Так как в одном корпусе TL074 находится четыре отдельных операционных усилителя, наше руководство покажет Вам, как создавать мультиэлементные устройства, используя Визуальный Инструмент Компоновки (Visual Packaging Tool) (доступен в меню Инструменты (Tools)).

i15-1
Один элемент счетверённого операционного
усилителя TL074 перед его сборкой.

Иллюстрация выше показывает новый элемент операцинного усилителя перед его сборкой. Операционный усилитель собирается из нескольких элементов 2D-графики, пяти выводов и маркера начала координат. Хотя мы и можем вычертить графические обозначения на пустом месте (как с предыдущим примером на 7110), самый простой способ создания графических обозначений операционных усилителей – использование уже заданного символа OPAMP. Продолжите следующим образом:

· Нажмите на значок Символ symbol (Symbol), затем нажмите кнопку P в левом верхнем углу Переключателя Объектов Символов. Это вызовет диалоговое окно Переключателя Библиотек Символов.
· Дважды кликните на OPAMP в библиотеке System и сверните диалоговое окно, используя кнопку Minimise Windows на правой области заголовка.
· Наведите указатель мыши на пустой участок окна редактирования и используйте левую кнопку мыши, чтобы разместить операционный усилитель. Операционный усилитель автоматически появится в графическом стиле КОМПОНЕНТ (COMPONENT), поскольку этот стиль использовался, чтобы создать символ.

Теперь разместите и отредактируйте выводы на корпусе элемента. Это та же самая технология, что и при создании ранее аттенюатора 7110:

· Выберите значок Вывод устройства devicepin (Device Pin), чтобы получить список доступных типов выводов и выберите тип, заданный по умолчанию (Default).
· Используйте значки Вращать rotation (Rotate) и Отразить mirrorx mirrory (Mirror), чтобы ориентировать выводы перед размещением их на схеме.
· Разместите выводы на графическом обозначении операционного усилителя согласно образцу на скриншоте. Выводы питания называются V + и V- и относятся к электрическому типу Питание (POWER); если Вы размещаете их на наклонных сторонах операционного усилителя, то заметите, что они касаются сторон ОУ своими концами, обозначенными крестиками, только на пересечении координатной сетки. Если бы в подобном случае, они не касались, Вы могли бы ‘растянуть’ основание вывода, разместив перемычки, используя значок строки 2D-графики и выключенную привязку мыши. Входные выводы называются +IP и - IP и относятся к электрическому типу Вход (INPUT). Выходной вывод называется OP и относятся к электрическому типу Выход (OUTPUT).
· Редактируйте выводы как и прежде, переименовывая их, но не нумеруя (это делается через визуальный инструмент компоновки (Visual Packaging Tool)). Мы должны переименовать выводы так, чтобы можно было обратиться к ним в Инструменте компоновки, однако, мы не хотим, чтобы название было отображено (поскольку назначение выводов операционного усилителя уже показано их графическим обозначением), поэтому проверьте, чтобы переключатель Отображать Имя (Draw Name) был выключен.

Заключительный этап – размещение маркера начала координат. Выберите значок Маркер marker (Marker), чтобы отобразить список системных обозначений маркеров в Переключателе Объектов. Выберите маркер начала координат (Origin) и затем разместите обозначение маркера в центрах графических обозначений операционных усилителей. Маркер начала координат отображается как прямоугольник с перекрестием, и он указывает ISIS, как новое устройство должно появиться по отношению к указателю мыши, когда его перемещают или размещают на схеме.

i15-2

i15-3

Размещение маркера начала координат
перед сборкой устройства.

Завершим теперь изготовление устройства. Выделите составные части (обозначение операционного усилителя, выводы и маркер начала координат), растягивая прямоугольник выделения вокруг них, используя левую кнопку мыши, а затем вызовите команду Создать устройство (Make Device) в меню Библиотека (Library). Затем продолжите следующим образом:

· Введите Имя устройства (Device Name) – TL074, и Префикс (Prefix) – U.
· Нажмите кнопку Далее (Next) на странице компоновки и нажмите Добавить/Редактировать (Add/Edit), чтобы запустить инструмент компоновки.

Визуальный инструмент компоновки

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

Запустив инструмент компоновки, первое необходимое действие состоит в том, чтобы создать корпус:

· Нажмите кнопку Добавить (Add). Это запустит браузер библиотек ARES.
· Выберите библиотеку КОРПУС (PACKAGE), и дважды кликните на элементе DIL14.

Затем для компоновки нам нужно сделать следующие изменения в настройках по умолчанию:

· Измените номера элементов с 1 по 4. Это соответствует тому, что в одном корпусе DIL14 находится четыре операционных усилителя.
· Отметьте выводы V + и V- как общие. Это означает, что они будут иметь тот же самый номер вывода на каждом элементе, и что Вы можете подсоединяться ко всем или только к некоторым из выводов элементов на схеме. Все такие соединения будут считаться связанными.
· Нажмите на переключатель Вентили взаимозаменяемы (Gates are Interchangeable). Это значит, что элементы идентичны, и ARES может выполнять с этом устройством операции перестановки элементов.

Тогда Вы должны будете увидеть экран, подобный приведенному ниже:

i16-1
Визуальный инструмент компоновки готов к назначению выводов.

Теперь зададим номера выводов. Реальная цоколёвка операционных усилителей, которая нам нужна, показана ниже:

i16-2
Четыре элемента TL074.

Продолжите следующим образом:

· Кликните левой кнопкой на ячейке +IP в столбце ‘A’.
· Кликните на выводе ‘3’ на изображении корпуса или введите ‘3’ с клавиатуры и нажмите TAB. Любой из этих способов, выделит вывод ‘3’ на корпусе, чтобы показать что, Вы задали его, а курсор передвинется к строке -IP.
· Теперь, повторите процесс для других номеров выводов, пока все выводы на изображении корпуса не будут подсвечены. Это обеспечивает визуальную помощь, чтобы Вы не пропустили ни одного вывода.

В завершение нажмите кнопку Задать Корпус (Assign Packages), чтобы вернуться в мастер создания устройств, и затем сохраните устройство в вашу библиотеку USERDVC, как Вы сделали с 7110.

Как Вы возможно поняли, в инструменте компоновки есть много встроенных функциональных возможностей. Для детального обсуждения и дальнейших примеров смотрите раздел Библиотека устройств (Device Libraries).

Создание подобных устройств

Создав TL074, Вы можете также почти немедленно создать микросхемы TL064 и TL084 . Просто разместите TL074 на схеме, выделите его и вызовите команду Создать устройство (Make Device); измените название на TL064 (или любое другое) и сохраните его. Что может быть проще? Если бы Вам надо было добавить что-то к основному TL074 (возможно еще некоторые графические обозначения), Вы могли бы просто добавить их поверх размещенного на схеме TL074 перед вызовом команды Создать устройство (Make Device). В качестве альтернативы, если бы TL074 был почти правилен, но нуждался в некотором небольшом редактировании прежде, чем стал бы подходить для нового устройства, то Вы могли бы разделить его обратно на составные части, выделив его, выбрав команду Разобрать (Decompose) в меню Библиотека (Library), отредактировав и/или добавив к нему что-либо, а затем создать новое устройство.

Перемещение элементов на схеме

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

Символы и библиотека символов

Выделите три линии, которые образуют скобку вокруг входов 7110. Затем вызовите команду Создать Символ (Make Symbol) в меню Библиотека (Library), введите название символа TEST и нажмите ENTER. Теперь выберите значок Символ symbol (Symbol). Вы увидите, что в Переключателе объектов появился пункт TEST. Выберите и попробуйте поместить его на рисунок. В основном это применяется для вещей, подобных OPAMP, которые необходимы для многих типов устройств, логотипов, эмблем и т.д.

Особое использование символов – блок заголовка HEADER, который мы рассматривали вкратце ранее.


Проводник проекта

Navigation: ISIS >

Проводник проекта

 Return to chapter overview

ISIS снабжает нас мощным инструментом для управления и исследования схемы в виде проводника проекта (Design Explorer), доступного в меню Проект (Design). Это чрезвычайно сложный и универсальный инструмент, который подробно рассмотрен в другом месте (Основные понятия – Проводник проекта), но мы используем этот раздел, чтобы познакомить Вас с особенностями вещей, для которых он может использоваться.

Начните вызовом Проводника проекта (Design Explorer) в меню Проект (Design) (заданные по умолчанию горячие клавиши ‘ALT+X’). Проводник проекта запустится в виде так называемого ‘Перечня элементов’ (Physical Partlist View) и отобразит список всех элементов, используемых на текущей странице (показанной в левой области окна).

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

i17-1
Проводник проекта, запущенный в проекте руководства.

Прямо сейчас мы можем увидеть, что у нашего коммутатора нет никакого, связанного с ним корпуса (красный текст ‘missing’ (отсутствует) в столбце корпус), что было бы проблемой, если бы мы переходили бы к ARES для создания печатной платы. Быстрая визуальная проверка схемы с проводником проекта для поиска глупых ошибок, подобных этой, занимает несколько секунд и может сэкономить значительное время на более поздних этапах.

Мы можем использовать проводник проекта, чтобы быстро определить местоположение элемента (или сети, или страницы) через значок, находящийся наверху окна проводника. Попробуйте это, определяя местоположение конденсатора C4, напечатав C4 в диалоговом окне поиска, а затем используя значок ISIS наверху проводника, чтобы изменить масштаб и перейти к элементу.

i17-2
Использование проводника проекта, чтобы найти элемент и перейти к нему.

· Проводник проекта – это неизменяемое окно, находящееся всегда поверх остальных окон; он сворачивается на панель задач, когда Вы используете его для перехода на схему, чтобы сохранить полезную площадь экрана. Вы конечно можете развернуть его снова обычным способом и продолжить проверку проекта.

Мы можем также использовать проводник проекта, чтобы проверить соединения. Найдите и дважды кликните на элементе ‘U3’ на правой области окна; проводник проекта изменит вид, как показано ниже, с перечнем всех выводов элемента U3, отображенного теперь в правой области окна, в то время как перечень всех элементов на странице показан на левой области окна.

i17-3
Проводник проекта показывает все выводы элемента U3.

Если мы теперь кликнем правой кнопкой, например, на U3-VIN, то появившееся контекстное меню позволит Вам перейти к сети схемы (Goto Schematic Net). Это обеспечивает превосходный визуальный метод быстрой проверки соединений сети.

i17-4
Подсветка сети, подключенной к VIN,
на схеме с помощью проводника проекта.

· Обратите внимание, что с помощью значка ISIS Вы так же можете перейти через это контекстное меню к элементу схемы (или к странице схемы).

В качестве альтернативы, мы можем просто дважды кликнуть в проводнике проекта на интересующем нас выводе. Это действие фактически переключает проводник проекта из ‘Перечня элементов’ (Physical Partslist View) к ‘Списку соединений’ (Physical Netlist View) и дает Вам оперативное представление соединений схемы. Так как мы активировали это для вывода U3, то мы увидим в правой области окна список соединений сети, связанной с этим выводом. Чрезвычайно простой и мощный способ проверить соединение!

i17-5
Проводник проекта показывает подключения к сети,
подключенной к выводу VIN U3.

Теперь стоит потратить одну минуту, чтобы подвести итог того, что мы сейчас имеем. Левая область окна отображает список сетей, где есть отдельные значки и для глобальных сетей, и для одиночных сетей выводов (чрезвычайно полезные сами по себе). Они рассмотрены более подробно в разделе Основные понятия. Сейчас мы находимся в представлении списка соединений, а не в представлении перечня элементов, что значит, что мы видим список сетей, а не список элементов.

i17-6
Проводник проекта показывает список соединений.

Особенностью проводника проекта является то, что выводы – это связь между списком соединений и физическим элементом. Двойной щелчок на выводе в списке соединений, и Вы переключитесь к перечню элементов, с правой областью окна, показывающей все выводы этого элемента. Попробуйте это сейчас с выводом SW1-COM, показанным в правой области окна.

i17-7
Проводник проекта показывает перечень элементов.

Теперь мы смотрим на список выводов элемента SW1 в представлении перечня элементов. Точно так же, если мы теперь дважды кликнем на выводе SW1-NO, то увидим все выводы, связанные с этим выводом в представлении списка соединений.

i17-8
Проводник проекта в представлении списка соединений
показывает все выводы, подключенные к SW1-NO.

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

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

i17-9
Проводник проекта в представлении списка соединений
показывает все подключения к корпусу GND.

Проводник проекта способен к намного большему, чем мы обсудили здесь, но такие функциональные возможности выходят за границы этого руководства. Подробная информация может быть найдена в разделах по Перекрестному Исследованию (Cross Probing), а также в основной главе по Проводнику Проекта (Design Explorer).


Формирование отчетов

Navigation: ISIS >

Формирование отчетов

 Return to chapter overview

Теперь, когда схема закончена, Вы можете сформировать для неё Список соединений (Netlist), Перечень элементов (Bill of Materials (BOM)) и отчет о проверке правильности принципиальной электрической схемы (Electrical Rules Check (ERC)). Каждый отчет формируется вызовом соответствующей команды в меню Инструменты (Tools). Конечный отчет отображается во всплывающем окне средства просмотра, где он может быть сохранен в файл выбором кнопки Сохранить как (Save as) или помещением его в буфер обмена для использования в других приложениях, используя кнопку Копировать в буфер обмена (Copy to clipboard).

Название перечня элементов (Bill of Materials) должно само говорить о содержимом отчета, хотя Вы можете получить дополнительную информацию в разделе Перечень элементов (Bill of Materials).

Отчет о проверке правильности принципиальной электрической схемы будет содержать довольно много ошибок, так как схема руководства – это не законченный проект. Дальнейшая информация дается в разделе Формирование отчетов (Report Generation). И хотя в разделе Формирование списка соединений (Netlist Generation) покажется запутанным создание и использование списка соединений, для тех из Вас, кто купил ISIS, чтобы использовать его с ARES, подробности того, как связать два пакета вместе, рассмотрены в разделе ISIS and ARES.


Большой проект

Navigation: ISIS >

Большой проект

 Return to chapter overview

В этом последнем разделе мы рассмотрим приготовленный проект EPE.DSN. Это многостраничная, иерархическая схема для микропроцессора, контролирующего программатор/эмулятор EPROM (EPE). Также, она представляет существенную часть электроники с низкой степенью интеграции в проект, которую Вы могли бы хотеть спроектировать с вашей системой ISIS.

Проект EPE состоит из трёх страниц размером A3 (процессор, эмулятор и блок питания). Субстраницы используются, чтобы представить 4 банка данных оперативной памяти эмулятора, дающих возможность эмуляции 32 битов, и 6 программируемых источников питания (PPSU), которые должны работать с EPROM 27-ой серии.

Откройте проект в ISIS, используя команду Открыть проект (Open Design) в меню Файл (File), и затем выбрав EPE.DSN. Вы найдете его в “Samples\Schematic & PCB Design” в папке, где установлен Proteus. В качестве альтернативы, Вы можете рассмотреть любой из типовых проектов, запустив файл справки SAMPLES в меню Помощь (Help).

Первая страница – это центральный процессор, посмотрите её с помощью обычных средств панорамирования и изменения масштаба. Затем, чтобы увидеть проект подробнее, вызовите проводник проекта, и перемещайтесь по схеме, как было описано выше.

Вы можете также увеличить масштаб до подсхемы: наведите курсор на одну из подсхем и нажмите горячие клавиши для увеличения масштаба до ‘дочерней’ схемы (по умолчанию это CTRL+C). ISIS выгрузит страницу Управления Эмулятора (Emulator Control) и загрузит страницу банка памяти (ERAM bank). Взгляните на схему банка ERAM и в частности обратите внимание на несколько номеров элементов. Чтобы выйти, нажмите горячие клавиши для изменения масштаба до ‘родительской’ схемы (по умолчанию это CTRL+X). Увеличьте масштаб на другом банке ERAM и сравните номера элементов в нем с первым; хотя оба образца подсхемы совместно используют одну и ту же схему (если Вы изменяете один образец схемы, это будет немедленно отражено в других, что упрощает модификацию проекта), каждый имеет свой собственный набор аннотаций элементов; это работа Глобального Аннотирования Проекта (Design Global Annotation).

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


ARES

Navigation: »No topics above this level«

ARES

 Return to chapter overview

Трассировщик печатных плат

Введение

Обзор редактора схем

Основные приемы расстановки и трассировеи

Краткий обзор

Выбор корпуса

Размещение корпуса

Выделение и перемещение корпуса

Трассировка

Примечание

Контур платы

Средства редактирования групп элементов

Точное выделение с фильтром выделения

Точное выделение с использьзованием движков

Редактирование проводников

Контекстное меню

Размещение сквозных отверстий

Выделение проводников

Перемещение выделенного проводника

Удаление выделенного проводника

Изменение ширины проводника

Автоматическое сужение проводника

Переразводка

Подсвечивание связанных объектов

3D визуализация

Формирование печатной копии

Библиотека корпусов

Библиотека символов

Трассировка печатной платы из списка соединений

Подготовка схемы для трассировки печатной платы

Размещение элементов

Редактирование размещенных элементов

Связи

Ручная трассировка

Автотрассировка

Комбинирование ручной и автоматической трассировки

Стратегии трассировки

Проверка правильности соединений

Перекрёстная проверка

Трассировка (antzol)


Введение

Navigation: ARES >

Введение

 Return to chapter overview

Цель этого руководства - ознакомить вас как можно быстрее с основными возможностями программы ARES, чтобы Вы могли использовать пакет для реальной работы. Пользователям со скромной компьютерной грамотностью понадобится день или два, чтобы изучить пакет и развести свою первую плату.

· основные методы размещения элементов и трассировки;
· трехмерная визуализация платы;
· разработка, основанная на списке соединений, включая ручную и автоматическую трассировку.

Больше передовых методов редактирования, таких как редактирование блока и редактирования соединений.

· формирование отчетов
· формирование распечатки
· создание элементов библиотек

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

Заметьте, что во всём этом руководстве (и в документации в целом) указываются горячие клавиши, как способ выполнения специальных команд. Здесь указываются сочетания горячих клавиш, заданные по умолчанию. Информация относительно конфигурирования ваших собственных горячих клавиш может быть найдена в "Общие понятия" – "Конфигурация клавиатуры".


Обзор редактора схем

Navigation: ARES >

Обзор редактора схем

 Return to chapter overview

Предположим, что вы уже установили пакет в некоторый удобный для вас каталог на вашем жестком диске.

Чтобы запустить программу ARES, щелкните на кнопке Пуск и выберите Программы, Proteus 7 Professional и затем ARES 7 Professional. После чего загрузится редактор схем ARES.

Если у вас демонстрационная копия программы, вы можете запустить ARES через Proteus 7 Demonstration в меню Пуск.

Наибольший участок экрана занимает окном редактира, которое выглядит, как показано на рисунке, здесь вы будете размещать и разводить плату. Самый маленький участок в левой верхней части экрана называется окном обзора. При обычном использовании окно обзора отображает, как и предполагает его название, краткий обзор полного рисунка - синий прямоугольник показывает границы текущей схемы, а зеленый - участок схемы, который в настоящее время отображен в окне редактирования. Однако, когда в переключателе объектов выбран новый объект, окно обзора используется для предварительного просмотра выбранного объекта (об этом будет рассказано позже).

a2-1
Обзор редактора схем ARES.

Полоса управления внизу приложения достойна дальнейшего упоминания и по существу разбивается на четыре секции:

Слева находится фильтр выбора объектов (Selection Filter), который позволяет вам конфигурировать уровни и объекты, которые могут быть выбраны в текущем рабочем режиме. Обычно заданные по умолчанию правила всех удовлетворяют, и этот фильтр служит для удобного изменения степени детализации выбора, когда это необходимо. Выпадающий список переключателя слоёв определяет установку текущего слоя, а также к каким объектам печатной платы возможно обращение.

a2-2
Фильтр выбора объектов в редакторе схем ARES.

В середине - строка состояния, которая снабжает текстовыми 'подсказками' объекты, над которыми в настоящее время находится курсор мыши. Это особенно полезно, когда вы останавливаете мышь, к примеру, над контактной площадкой, поскольку это сообщит вам, к какой сети принадлежит эта контактная площадка.

a2-3
Строка состояния в редакторе схем ARES.

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

a2-4
Индикатор норм проекта в редакторе схем ARES.

В правом краю строки состояния находится индикатор координат, соответствующих положению курсора. Они отражают не точную позицию курсора, а место, к которому эта позиция была привязана. Стандартный вариант привязки, выбираемый через меню Вид (View) (или через клавиши CTRL+F1 и F2, F3 и F4), и значения привязки могут быть конфигурированы в диалоговом окне установки координатных сеток (Set Grids) в меню Система (System).

a2-5
Индикатор координат в редакторе схем ARES.

Координаты могут быть в имперских или метрических единицах, смотря, включена ли команда Метрический (Metric) (по умолчанию задана клавиша М). Вы можете также установить ложное начало координат, используя команду Начало отсчёта (Origin) (по умолчанию задана клавиша O), в этом случае координаты изменят цвет с черного на сиреневый.

Точечная сетка в окне редактирования может быть включена или выключена, используя команду Сетка (Grid), или через 'горячую' клавишу (по умолчанию это - G). Интервал между точками обычно отражает текущую установку привязки, кроме случая, когда используется мелкий масштаб. В этом случае, интервал между точакми равен произведению интервала привязки на соответствующий множитель.

В ARES можно установить, чтобы отобразить крестик X в позиции, на которую курсор был фиксирован. Делается это с помощью команды Х-Курсор (X-Cursor) или заданной по умолчанию клавиши X.

Теперь, завершив обзорную экскурсию по редактору плат, применим всё вышеупомянутое в практическом использовании в последующих разделах руководства.


Основные приемы расстановки и трассировеи

Navigation: ARES >

Основные приемы расстановки и трассировеи

 Return to chapter overview

Краткий обзор

Выбор корпуса

Размещение корпуса

Выделение и перемещение корпуса

Трассировка

Примечание

Контур платы


Краткий обзор

Navigation: ARES > Основные приемы расстановки и трассировеи >

Краткий обзор

 Return to chapter overview

Краткий обзор

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

a3-1
Различные виды простой образцовой платы.

Это займёт одну минуту прежде, чем мы начнем работу с ARES, и поможет вам понять, что происходит в течение разводки платы. Есть две основных техники:

ARES будет 'подсвечивать' объект, когда тот находится под курсором мыши, и фильтр отбора допускает выбор объектов этого типа. Это используется, чтобы показать, когда объект 'горячий'.

ARES обеспечивает динамические курсоры, которые изменяются, показывая, что можно сделать кликом левой кнопки мыши в данный момент (разместить объект, выбрать объект, переместить объект и т.д.). Список типов курсора показан ниже:

standcurs Стандартный курсор.

placecurs Курсор монтажа - левый клик разместит объект согласно режиму.

selcurs Курсор выделения - левый клик выберет объект под мышью.

movecurs Курсор перемещения - при перемещении мыши, зажав левую кнопку, перемещаете выбранный объект(ы).

Во всём этом руководстве, да и всякий раз, когда вы работаете с ARES, вы должны использовать эти визуальные индикаторы как подсказки программы.


Выбор корпуса

Navigation: ARES > Основные приемы расстановки и трассировеи >

Выбор корпуса

 Return to chapter overview

Выбор корпуса

Самый простой способ создать черновую разводку платы состоит в том, чтобы управлять ARES в режиме Корпуса (Package). В этом режиме вы можете выбрать посадочные места элементов или корпуса прямо из библиотеки и разместить их на рабочей области.

attention Этот режим работы не рекомендуется ни для чего, кроме наиболее простых плат. Проекты с документированным списком соединений из пакета сбора данных (ISIS) допускают дополнительные функциональные возможности (проверяемая маршрутизация соединений, конфигурирование стратегий, полная поддержка проектирования и т.д.), этот режим рекомендуется работы. Это обсуждено позже в руководстве и во всём справочном описании.

В нашем простом примере используется три корпуса

· CAP20
· DIL08
· RES40

Вы можете начать, выбрав их из библиотеки корпусов. Чтобы сделать это, сначала нажмите на иконке package Корпус (Package). Затем, нажмите на переключатель 'P' в левом верхнем углу переключателя объектов. Появится окно указателя библиотек, как показано ниже.

a4-1
Указатель библиотек готов к выбору.

i Вы можете также вызвать броузер библиотек через быструю клавишу. По умолчанию это ‘P’, но Вы можете изменить её на другую через команду Установка горячих клавиш (Set Keyboard Mappings) в меню Система (System).

Броузер библиотек - очень мощный инструмент, и вы можете искать нужную элемент библиотеки множеством различных способов. Вероятно наиболее простой (и возможно наиболее мощный) метод состоит в том, чтобы просто напечатать некоторые ключевые слова, которые описывают элемент, который вы ищете. Это работает аналогично поисковой системе Google в интернете, сопоставляя искомые вами термины описаниям коррусов в наших библиотеках. Поробуйте это теперь с конденсатором, вводя термин ‘200th pitch radial capacitor’ (цилиндрический конденсатор с расстоянием между выводами 0,2 дюйма) в поле Ключевые слова (Keywords). Вы должны будете видеть, что элемент CAP20 теперь перечислен в списке результатов как показано ниже

a4-2
Вид указателя библиотек с ключевыми словами, как описано выше, и с CAP20 в списке результатов.

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

Двойной клик мыши на элементе CAP20 выберет его в переключатель объектов как на скриншоте ниже.

a4-3
Переключатель объектов с CAP20 в списке.

i Если вы знаете название элемента, который вы хотите найти, то вы можете также использовать поле Ключевые слова, чтобы искать по имени. В нашем примере выше, печать CAP20 в поле ключевых слов дала бы также желаемый результат.

Вы могли, конечно, повторить описанный выше процесс для выбора двух оставшихся корпусов в нашей простой плате, но вместо этого мы рассмотрим другие методы отбора. Под полем Ключевые слова на левой стороне диалогового окна находится множество фильтров, которые могут использоваться независимо от записи ключевого слова. Они особенно полезны для просмотра библиотек, когда вы не совсем уверены, какие ключевые слова лучше всего подходили для элемента, который вы ищете. Попробуйте это с элементом DIL08, очистив поле ключевых слов от текста и выбрав категорию интегральных схем (Integrated Circuits), тип со сквозными отверстиями (Through Hole) и подкатегорию двойная линейная (Dual Inline). Снова двойное нажатие на DIL08 в списке результатов выберет элемент в проект.

a4-4
Вид указателя библиотек с набором фильтров, как описано выше, и DIL08 в списке результатов.

Наконец, мы будем использовать комбинацию вышеупомянутых методов, чтобы найти и выбирать RES40. Выберите категорию Дискретные элементы (Discrete Components) и тип RES40 в списке ключевых слов. В этой ситуации поиск по ключевым словам ведётся только в тех частях в подмножестве библиотек, которые фильтрованны через поля категория и тип. Выберите элемент в проект обычным способом и закройте диалогое окно.


Размещение корпуса

Navigation: ARES > Основные приемы расстановки и трассировеи >

Размещение корпуса

 Return to chapter overview

Размещение корпуса

Три названия корпусов должны были теперь появиться в переключателе объектов как показано ниже, при этом выбранный вами последнии подсвечен.

a5-1
Переключатель объектов с выбранными необходимыми пакетами.

Начнем с размещения DIL08 на чертеже. Удостоверьтесь, что выбран этот элемент, левым кликом на нём в переключателе объектов. Предварительный просмотр элемента будет показан в окне краткого обзора в его текущей ориентации. Вы можете использовать иконки вращения (показаны ниже), чтобы повернуть элемент в желательное для размещения положение - окно краткого обзора обновится, чтобы показать установившееся положение.

a5-2
Иконки вращения в ARES.

Чтобы поместить элемент где-нибудь в середине окна редактирования, кликните на нём левой кнопкой мыши. Появится зеленое очертание 8-выводной микросхемы, которое будет следовать за мышью, если вы будете перемещать её в окне редактирования. Поместите курсор примерно в центр и кликните левой кнопкой мыши, чтобы зафиксировать элемент и выйти из режима расстановки.

a5-3
Установка DIL08 в режиме расстановки.

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

i В режиме расстановки вы можете также динамически вращать элемент с помощью клавиш ‘+’, и ‘-‘ на дополнительной числовой клавиатуре. Как со всеми командами в ARES это горячие клавиши, заданные по умолчанию, и перестраиваются по вашим предпочтениям через команду Установка горячих клавиш (Set Keyboard Mapping) в меню Система (System).

Теперь выберите корпус RES40 и разместите эти два резистора на расстоянии 0.1" (2 квадрата сетки координат) и точно над выводом 8 микросхемы. Точно так же разместите эскиз конденсатора, только под выводом 1.

Если вы на самом деле не специалист, вы можете расставить элементы не совсем точно, поэтому теперь рассмотрим, как выбирать и перемещать объекты.


Выделение и перемещение корпуса

Navigation: ARES > Основные приемы расстановки и трассировеи >

Выделение и перемещение корпуса

 Return to chapter overview

Выделение и перемещение корпуса

Сначала поместим курсор мыши над границей посадочного места элемента. В зависимости от того, где находится курсор, контактная площадка или само посадочное место будет окружаться тонкой белой пунктирной линией (выделение объекта). Дополнительно курсор мыши изменится на руку с поднятым указательным пальцем (динамическое изменение на курсор выделения).

a6-1 | a6-2
Курсор над контактной площадкой | Курсор над элементом

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

a6-3
Выделенное посадочное место перед перемещением.

Зажав левую кнопку мыши и перемещая элемент, вы можете установить его как требуется, отпустив кнопку мыши в нужном месте. Левый клик на свободной области платы снимет выделение с посадочного места.

В качестве альтернативы, когда курсор над границей посадочного места, вы можете кликнуть правой кнопкой мыши. Это выделит посадочное место и выведет контекстное меню действий, которые могут быть выполнены с посадочным местом. Очевидно, что в текущем контексте необходимое действие - Перетащить объект (Drag Object).

a6-4
Перемещение посадочного места через контекстное меню правого клика.

Рекомендуем поэкспериментировать с этими приёмами при перестановке корпусов.


Трассировка

Navigation: ARES > Основные приемы расстановки и трассировеи >

Трассировка

 Return to chapter overview

Трассировка

Режим трассировки запускается нажатием на иконку Проводник (Trace). Переключатель объектов заменится на показ списка 'Стилей проводников' (Trace Styles) - для выбора ширины проводника из значений заданных по умолчанию. Выберите T20 для ширины проводника 0,020 дюйма (20th).

a7-1

a7-2

Выбор проводника 20th в ARES

Проводники размещаются левым кликом на контактной площадке, а затем в каждой точке по заданному пути, и в конце кликом правой кнопкой на последней контактной площадке. Рзведите теперь печатную плату вручную согласно скриншоту в начале руководства, удостоверяясь, что вы начинаете и заканчиваете каждый проводник на контактной площадке. Заметьте, что курсор мыши изменяется, чтобы показать, что выполнении клика левой кнопкой начнётся размещение проводника.

Другие пункты, на которые стоит обратить внимание, о режиме трассировки:

· Двойной клик в какой-либо точке размещает переход на другой слой как определено командой Установка пар слоёв (Set Layer Pairs) в меню Система (System). Выбор типа перехода может быть показан, если нажать на иконку via Переход (Via).
· Выполняя разводку, вы можете изменить текущий слой, нажатием клавиш PGUP и PGDN ключи. Кроме того CTRL-PGUP выбирает верхний слой, а CTRL-PGDN - нижний слой.
· Если зажать клавишу CTRL, вы сможете разместить искривленный проводник. Величина дуги (на сколько горизонталь больше чем вертикаль, или наоборот) определена тем, как вы отодвигаете мышь от фиксированной точки. Необходимо нажать и удерживать CTRL, затем переместить мышь, кликнуть левой кнопкой, и только потом отпустить CTRL.


Примечание

Navigation: ARES > Основные приемы расстановки и трассировеи >

Примечание

 Return to chapter overview

Примечание

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

Чтобы снабдить элементы примечаниями, сначала покиньте режим проводника, например, выбирав режим выбора (Selection Mode), а затем кликните дважды левой кнопкой мыши на элементе (первый клик выделит элемент, и следующий вызовет диалоговое окно редактирования корпуса).

Или войдите в режим выбора, а затем кликните правой кнопкой мыши на корпусе и выберите Редактировать свойства (Edit Properties) в появившемся контекстном меню.

a8-1
Редактирование свойств корпусов из контекстного меню при клике правой кнопкой мыши.

Каждый раз, когда вы делаете это, появляется окно с полями для идентификатора элемента и его величины.

a8-2
Диалоговое окно редактирования элемента с примером идентификатора элемента и значением, введенным для резистора.

В качестве альтернативы, может использоваться команда Автоматический генератор имени (Auto Name Generator), чтобы генерировать численные последовательности для нумерации элементов.

Идентификаторы и значения элементов могут быть перемещены, если выделить исходный объект, затем навести курсор на идентификатор или значение и перетащить, используя левую кнопку мыши. Имейте также в виду, что вы можете установить различные сетки захвата в меню Дисплей (Display), или используя горячие клавиши (по умолчанию это CTRL-F1 и F2-F4 - команды горячих клавиш могут быть изменены через команду Установка горячих клавиш (Set Keyboard Mapping) в меню Система (System)).

Заданный по умолчанию размер для этих обозначений может быть изменен, используя команду Установить шаблон (Set Template) в меню Система (System).


Контур платы

Navigation: ARES > Основные приемы расстановки и трассировеи >

Контур платы

 Return to chapter overview

Контур платы

ARES имеет специальный слой - слой Контур (EDGE), который предназначен для того, чтобы содержать двумерные изображения, которые представляют собой контур печатной платы. Объекты, помещенные на слое Контур, появятся на чертеже, сгенерированном для любого из других слоев.

В этом случае контур печатной платы только контейнер.

Чтобы разместить прямоугольнй контур печатной платы:

1. Выберите иконку box Прямоугольник (Box).
2. Выберите слой Контур (EDGE) в переключателе слоёв (Layer Selector).
3. Поместите курсор в том месте, где вы хотите, чтоб находился верхний левый угол контейнера, и кликните левой кнопкой мыши.
4. Перетащите контейнер, чтобы охватить печатную плату, и снова кликните левой кнопкой, чтобы разместить чертеж.
5. Если вам надо изменить размеры контейнера, выделите его кликом правой кнопкой (игнорируйте появившееся контекстное меню), а затем перемещайте зеленый контур,используя левую кнопку мыши и устанавливая необходимые размеры.

a9-1 a9-3 a9-2
Размещение прямоугольника контура платы на слой

Полностью поддерживаются печатные платы неправильной формы или искривленные; граница может быть образована из строк и дуг, или же при выборе иконки path Контур (Path) вычерчивается цельный контур объекта.

Когда вы закончите экспериментировать с этим упражнением, сохраните проект, если вы затем создать новый чертеж для следующего упражнения, используя команду Новая схема (New Layout) в меню Файл (File).


Средства редактирования групп элементов

Navigation: ARES >

Средства редактирования групп элементов

 Return to chapter overview

Мы видели уже, что объект может выделен наведением на него курсора и кликом левой кнопкой мыши (использование в качестве визуальных индикаторов курсоров и выделения пунктирной линией) или кликом правой кнопкой (связанно контекстным меню). Когда объект выделен его можно переместить (левая кнопка) или удалить (правая кнопка). Однако есть несколько других способов выделить объекты. Если курсор не наведен ни на один объект, то, удерживая правую кнопку, и переместите курсор мыши, появится ограничивающий прямоугольный контейнер. Когда вы отпустите кнопку, объекты в контейнере будут выделены. Загрузите 'PPSU.LYT' из каталога Samples (расположен в подкаталоге Tutorials) и затем пробуйте охватить контейнером выделения весь чертеж.

Точное выделение с фильтром выделения

Точное выделение с использьзованием движков


Точное выделение с фильтром выделения

Navigation: ARES > Средства редактирования групп элементов >

Точное выделение с фильтром выделения

 Return to chapter overview

Точное выделение с фильтром выделения

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

a10-1 | a10-2
Фильтр выделения по умолчанию | Линии связи включены, элементы выключены

Самый левый значок фильтра выделения контролирует, какие слои допускаются для выделения. Его переключение делает выбор между всеми слоями (значение по умолчанию) и только текущим слоем. Вы можете увидеть это, переключившись в режим package Корпус, затем выделив всю плату, как было описано выше. Заметьте, что, если вы переключаете значок выбора слоя, то выделяются элементы только на стороне монтажа, именно в этом случае снимается выделение с контура печатной платы.

a10-1 | a10-3
Фильтр выделения по умолчанию в режиме Корпус | Выделен только текущий слой

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

i Вы можете даже настроить значения по умолчанию какого-либо режима через Настроить фильтр выделения (Set Selection Filter) в меню Система (System), если вы предпочитаете специфический набор выделения, который не предусмотрен. Мы не рекомендуем делать этого, пока вы не привыкли и не познакомились с тем, как работать в системе.


Точное выделение с использьзованием движков

Navigation: ARES > Средства редактирования групп элементов >

Точное выделение с использьзованием движков

 Return to chapter overview

Точное выделение с использьзованием движков

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

a11-1
Перемещение прямоугольника выделения, чтобы ограничить выбранные объекты.

Дополнительное управление осуществляется пиктограммой выбора границы проводников фильтре выделения. Она переключает режимы полностью "внутри" (проводники, которые будут выделены, должны быть полностью ограничены прямоугольником выделения) и "частично внутри" (проводники, которые частично ограничены прямоугольником выделения, также будут выделены).

a11-2 | a11-3
Режим - проводник полностью внутри прямоугольника | Режим - проводник частично за пределами границы

i По очевидным причинам этот значок включается, только когда включен значок выделения проводников.

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

· Когда выделяете отдельные объекты смотрите визуальные индикаторы. Подсветка объекта скажет вам, над каким объектом находится курсор мыши, а форма курсора скажет вам, что случится, если вы нажмете левую кнопку мышь.
· Если при наведении на объект курсора он (курсор) не принимает вида руки с поднятым указательным пальцем и объект не подсвечивается, попробуте изменить режим или уточните доступные для выделения объекты и слои, используя фильтр выделения.

Теперь, освоив основы выделения, рассмотрим более подробно операции с блоками. Начнём с вычерчивания контейнера выделения на чертеже PPSU. Заметьте, что, когда курсор мыши находится в контейнере выделения, его вид изменяется на курсор 'перемещения' (перпендекулярно пересекающиеся стрелки). Зажав левую кнопку мыши и перемещая её так, вы сможете переместить блок со всем, что внутри прямоугольника выделения. Кроме того, получше определите 'примерное место’ согласно точке в контейнере, где вы отпустите левую кнопку мыши.

a11-4
Перемещение блока левой кнопкой мыши

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

a11-5
Операции с блоками через контекстное меню правой кнопки мыши

Поэксперементируйте теперь с этими операциями, контролируя выделение через методы с фильтром и контейнером выделения, и выполняя различные операции с блоками как расписано выше. Вы можете отменить ваши изменения через команду Отменить (Undo) на меню Правка (Edit) или через сочетание быстрых клавиш CTRL+Z.

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

i Чтобы размещать проводники, вы должны сначала выбрать значок trace Проводник (Trace), а затем выбрать желаемый стиль проводника в переключателе объектов.


Редактирование проводников

Navigation: ARES >

Редактирование проводников

 Return to chapter overview

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

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

Перед продолжением вам необходимо перезагрузить с диска проект PPSU.LYT.

Контекстное меню

Если вы кликните правой кнопкой мыши на проводнике, проводник будет подсвечен, и появится всплывающее меню с опциями:

· Удалить, копировать и переместить проводник.
· Изменить слой и стиль проводника.
· Изменить стиль сквозного отверстия.
· Управлять скосом проводника под 45°.
· Подстроить выделение как требуется для дальнейших операций.

Команда Копировапть (Copy) служит, чтобы запомнить шины, а затем повторять рисунки разводки. Вы можете делать столько много копий, сколько требуется, неоднократно щёлкая левой кнопкой мыши. А чтобы закончить, кликните правой.

a12-1
Полное контекстное меню для выделенного проводника.

Размещение сквозных отверстий

В почти всех случаях, сквозные отверстия размещаются для вас автоматически. Чтобы увидеть это в действии выберите значок trace Проводник (Trace) и разведите участок проводника, кликнув левой кнопкой в двух точках. Теперь второй раз кликните левой кнопкой на второй точке, затем в третьей точке, и наконец нажмите правую кнопку, чтобы прервать разводку.

a12-2
Автоматическое размещение сквозных отверстий, используя пары слоёв.

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

Какой слой выбирается, задано командой Установка пар слоёв (Set Layer Pairs) в меню Системна (System). Вы можете также изменить слой вручную при размещении проводника, используя клавиши PGDN и PGUP, но заметить, что сквозное отверстие в этом случае не будет размещено.

Тип использованного сквозного отверстия может быть изменен выбором значка via Сквозное отверстие (Via) и выбиром одного из стилей сквозных отверстий в переключателе объектов. Вы можете также размещать, заменять, выделять, перемещать и удалять сквозные отверстия в этом режиме вручную. Левая и правая кнопки мыши работают так же как при управлении элементами.

Для многослойных печатных плат, вы можете выбрать, какое отверстие размещается при выборе иконки via Сквозное отверстие (Via) и настройке переключателя слоёв (Layer Selector) - обычное, глухое или скрытое.

Выделение проводников

Чтобы переразвести, удалить, подредактировать или скопировать участок дорожки, вам необходимо сначала выделить его. Как и при редактировании объекта, вы можете сделать это, кликнув на нём правой кнопкой. Это выделит дорожку и выведет контекстное меню со списком действий, которые могут быть выполнены с проводником. Однако, для проводников есть дополнительные усовершенствования, позволяющие вам выделять отдельные участки какой-либо дорожки.

Правый клик на проводнике выделит проводник целиком и вызовет контекстное меню с четырьмя вариантами для уточнения выделения.

a13-1
Варианты уточнения выделения в контекстном меню для проводника.

· Trim to vias - ограничить сквозными отверстиями;
· Trim to current layer - ограничить текущим слоем;
· Trim to single segment - ограничить одним сегментом;
· Trim manually - ограничить вручную.

Первые три опции довольно очевидны, но последний вариант, 'Ограничить вручную' (Trim Manually), возможно, нуждается в некотором пояснении. Его выбор прежде всего зафиксирует один конец выделения в той точке на проводнике, где вы кликнули мышью. Зеленая стрелка будет следовать за курсором мыши, позволяя вам определить другую оконечную точку для выделения - клик левой кнопкой мыши в другом месте на проводнике выделит участок проводника между этими двумя оконечными точками.

a13-2

a13-3

Выделение вручную участка проводника.

Как и с редактированием объектов, наведение курсора на пустую область и клик на ней левой кнопкой мыши снимает с дорожки выделение.

Предлагаем, вам перед тем, чтобы продолжить, попрактиковаться с выделением дорожек на схеме - это очень важно, хотя нисколько нетрудно понять, как работает эта функция.

Перемещение выделенного проводника

Как только у вас будет подсвеченный участок дорожки, вы сможете переместить любой из его сегментов, наведя на него курсор и перетащив с помощью левой кнопки мыши. Вы можете легко и интуитивно редактировать дорожки в ARES, но для справки детальное пояснение приведено в теме "Размещение и редактирование разводки" раздела "Общие понятия" справочной системы.

a13-4
Перетаскивание сегмента дорожки в ARES.

Вы можете сделать быстрое ‘выделение и перемещение’, с помощью клика правой кнопкой мыши по проводнику, с последующим выбором 'Переместить проводники' (Drag Routes) в появившемся контекстном меню. Это работает при условии, что вы хотите воздействовать на текущий участок дорожки, иначе вы должны сначала определить участок дорожки, с которым будете работать через опции 'ограничить' контекстного меню как описано выше.

a13-5
Опции контекстного меню для перетаскивания текущего сегмента дорожки.

Удаление выделенного проводника

Есть два способа удалить проводник.

· Значок blockdel Удалить блок (Block Delete) удалит все подсвеченные объекты на схеме. Во время редактирования разводки, это обычно только проводники, которые вы выделили, поэтому это работает как быстрый способ стереть выделенную разводку.
· Вы можете также удалить одиночную секцию дорожки, используя контекстное меню, появляющееся при правом клике, и выбирая опцию Удалить проводник (Delete Route).
Изменение ширины проводника

Если вам необходимо изменить ширину участка дорожки, вы должны сначала выделить нужный участок проводника, а затем изменить его стиль.

Кликните правой кнопкой на проводнике, измените выделение, как описано выше, а затем просто нажмите правую кнопку и выберите опцию Изменения стиля проводника (Change Trace Style), выбирая один из доступных стилей.

a14-1
Варианты изменения стиля проводника в контекстном меню.

i Вы конечно можете, если необходимо, создать ваши собственные стили проводников с помощью команды Новый стиль проводника (New Trace Style) на меню Правка (Edit). Об этом будет рассказано позже.

Помните, чтобы глобально изменить размеры проводников, вы можете всегда редактировать соответствующий стиль проводника, выбрав его и кликнув на кнопку 'E' в переключателе объектов. Заметьте, что это будет глобальным изменением во всей схеме, воздействуя на все проводники редактируемого стиля.

a14-2 | a14-3
Иконка режима разводки. | Кнопка редактирования стиля проводника.
Автоматическое сужение проводника

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

Эта функция контролируется командой Установить нормы по умолчанию (Set Default Rules) в меню Система (System). Диалоговое окно позволяет вам установить просветы для пар контактная площадка - контактная площадка (pad-pad), проводник - контактная площадка (pad-trace) и проводник - проводник (trace-trace), а также стиль проводника, чтобы делать сужение. Заданный по умолчанию стиль сужения - это T10 (ширина дорожки - 0,01 дюйма).

Переразводка

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

Заметьте, что лишние сквозные отверстия (как в третьем примере) будут удалены вместе с перемычкой.

Подсвечивание связанных объектов

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

Чтобы увидеть эту функцию в действии, выберите значок conhighlight Подсветка связанных объектов (Connectivity Highlight). Кликните левой кнопкой на контактной площадке элемента с отведённой дорожкой, и вы увидете, что всё, связанное с той контактной площадкой, будет подсвечено ярким белым цветом. Все подсвеченные так объекты останутся подсвеченными, независимо от изменения панорамы и масштаба изображения, пока вы не вызовете команду Перерисовка (Redraw) (по умолчанию клавиша 'R').

a15-1

a15-2

Подсветка связанных объектов через
выделение контактной площадки.

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

a15-3

a15-4

a15-5

Подсветка связанных объектов через
переключатель сети.

Щелчок на иконку blockdel Удалить (Delete) сотрёт проводники или сквозные отверстия, подсвеченные с помощью вышеупомянутых методов, таким образом обеспечивающих способ стереть всю схему или только её часть.


3D визуализация

Navigation: ARES >

3D визуализация

 Return to chapter overview

3D визуализация

Предположим, что печатная плата уже разведена и готова к изготовлению, и мы сначала хотим исследовать её в трехмерном виде, чтобы можно было должным образом предварительно просмотреть, как она будет выглядеть в реальности и возможно сделать заключительные изменения в проекте перед макетированием. Начнём, вызовом механизма 3D визуализации в меню Выход (Output) в ARES.

a16-1
Начальный вид 3D нашей платы PPSU.

Основы навигации

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

· опции в меню Вид (View) в программе просмотра 3D;
· навигационная панель внизу программы просмотра 3D;
· горячие клавиши от F8 до F12, когда в программе просмотра 3D.

a16-2
Навигационная панель 3D.

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

· прокручивание ролика мыши от себя и к себе (рекомендуется);
· опции меню Вид (View);
· значки на панели навигации;
· горячие клавиши F6 (увеличение) и F7 (уменьшение).

Поэкспериментируйте сейчас с изменением масштаба изображения и различными заданными видами. Это довольно субъективно, но мы предполагаем, что большинство пользователей изменяют вид через панель навигации или через горячие клавиши и используют ролик мыши, чтобы изменить масштаб.

Настраиваемые виды

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

a16-3
Курсор мыши, когда вызван режим навигации.

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

Например, если мы начинаем в виде спереди (используем быструю клавишу F9) и хотим исследовать резисторы справа, мы могли бы продолжить следующим образом:

1. Клик левой кнопкой мыши, чтобы войти в режим навигации.
2. Переместите мышь поверх резисторов.
3. Ролик мыши, чтобы увеличить, как требуется.
4. Клик правой кнопкой мыши, чтобы выйти из режима навигации.

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

Помните, что, если вы пытались получить какой-либо вид, то можете использовать горячие клавиши или панель навигации, чтобы возвратиться к одному из заданных видов. Однако вы обнаружите, что даже с небольшой практикой вы становитесь опытными в навигации.

Подведём итоги:

· Левый клик вводит в режим навигации.
· Камера следует за мышью вокруг печатной платы в режиме навигации.
· Использование ролика мыши (или быстрых клавиш) позволяет вам изменить размер окна, когда вы перемещаете камеру.
· Зажатие левой кнопки мыши в режиме навигации позволяет вам вращать печатную плату.
· Правый клик мыши выводит из режима навигации.

Когда закончите, закройте программу просмотра 3D через меню Файл (File), чтобы вернуться в ARES.

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


Формирование печатной копии

Navigation: ARES >

i i Формирование печатной копии

 Return to chapter overview

Формирование печатной копии

И последнее, но ни в коем случае не по значимости, мы подошли к важному делу воспроизведения удобной экранной графики на бумаге или пленке. Под Windows, большинство приборов печатных копии поддерживается через обычные драйвера принтеров для Windows. Дополнительно мы поставляем наши драйвера для перьевых графопостроителей, фотоплоттеров Gerber и сверлильных станков Excellon NC.

Мы будем иметь дело здесь исключительно с печатью на обычном принтере Windows, маловероятно, что Вы будете иметь на руках фотоплоттер. Первый шаг - это выбор правильного прибора для печати, используя команду Установка принтера (Printer Setup) в меню Выход (Output). Это активирует общий диалог Windows для выбора и настройки принтера. Подробности, таким образом, зависят от вашей версии Windows и драйвера вашего принтера - с деталями ознакомьтесь в справочной системе Windows и в документации принтера.

Затем, с загруженным монтажной схемой, вызовите команду Печать (Print) в меню Выход (Output). Диалоговые формы предлагают множество средств управления, все из которых имеют контекстно-зависимую справку, связанную с ними (контекстно-зависимая справка на диалоговых формах доступна с механизмом ‘наведи и сними’ через кнопку ‘?’ в правом верхнем углу диалоговой формы). Уже с настройками по умолчанию можно кое-что получить, и вы начинаете формирование выходной копии, нажимая на OK. Вывод может быть прерван нажатием клавиши ESC, хотя возможна небольшая задержка прежде, чем все остановится, пока ARES и ваш принтер/плоттер освобождают свои буферы.

В частности с плоттерами вы вероятно будете экспериментировать с перьями, бумагой, и различными параметрами настройки на диалоговой форме Установки прибора, чтобы получить оптимальные результаты. Все детали могут быть найдены в разделе Формирование печатной копии.

Вы можете также компенсировать любую неточность масштабирования в вашем устройстве вывода, используя схему CALTEST.LYT (в каталоге "Samples\Schematic", где установлен Proteus) и поля X-компенсация/Y-компенсация, которые расположены на диалоговой форме Печать (Print).

i ARES будет помнить ваши настройки принтера из диалоговой формы Установки принтера (Printer Setup) и поддерживать их независимо от ваших настроек принтера для других приложений. Это означает, что вы можете конфигурировать заданные по умолчанию опции принтера исключительно для использования с программой ARES.

CADCAM выход и просмотр Gerber описаны в CADCAM выход.


Библиотека корпусов

Navigation: ARES >

Библиотека корпусов

 Return to chapter overview

Библиотека корпусов

Корпуса создаются размещением контактных площадкок, чертежей трафаретов (если необходимо, то и проводников) на рабочей области, их выделением, а затем вызовом команды Создать корпус (Make Package) в меню Библиотека (Library). Следующий быстрый и простой пример выделит основные процедуры.

Сначала выберите значок Круглая контактная площадка (Circular Pad) и затем стиль C-80-30 в переключателе объектов как показано ниже.

a18-1 | a18-2
Иконка круглой контактной площадки | Переключатель объектов с выделенным стилем контактной площадки С-80-30

Разместите две контактные площадки на расстоянии 0,5 дюйма между ними, а затем выберите значок box Прямоугольник (Box) и вычертите контейнер вокруг этих двух контактных площадок. Ваша заготовка посадочного места должна теперь напоминать следующее:

a18-3
Скриншот простого пробного посадочного места.

Наконец выделите всё это, окружая контейнером выделения (зажав правую кнопку мыши), и вызовите команду Создать корпус (Make Package) в меню Библиотека (Library). Введите TESTPKG, как название, и создайте новую категорию, назвав её TESTS. После заполнения соответствующим образом остальных полей (смотрите скриншот ниже), мы можем переключиться на вторую диалоговую форму, чтобы настроить параметры 3D визуализации.

a23-3
Диалоговая форма создания корпуса для нашего примера.

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

a18-5
Страница 3D визуализации для нашего тестового корпуса.

Когда вы закончите, нажмите на кнопку OK, чтобы передать изменения библиотеке.

i Заметьте, что описание, которое вы вводите через диалоговое форму создания корпуса, будет использоваться через браузер библиотек при поиске через ключевые слова. Хотя в нашем тестовом случае это и не имеет особого значения, вы должны при создании элемента подумать, какие ключевые слова гарантируют, что элемент будет найден при поиске.

Если вы теперь выберите значок package Корпус (Package), то увидите, что TESTPKG появился в переключателе объектов, и может быть размещен подобно любому из корпусов, которые Вы использовали до этого. Если вы работали с браузером библиотек (как было описано выше), вы должны легко найти ваше элемент через категорию TESTS, или напечатав в название корпуса. Наконец, если вы размещаете элемент на монтажной схеме и вызываете программу 3D визуализации в меню Выход (Output), вы сможете увидеть трехмерное изображение элемента.

Ориентир или точка привязки для корпуса - это всегда первая помещенная контактная площадка, если же она не была явно определена, то используется маркер начального адреса, когда создавался корпус.

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

Чтобы редактировать существующий корпус, выберите его в библиотеке, разместите его на схеме, кликните на нем правой кнопкой, а затем вызовите команду Разобрать (Decompose) в появившемся контекстном меню.

a18-6
Разложение корпуса на составляющие.

Это разберёт корпус на элементарные составляющие (контактные площадки и 2D чертежи). Не рекомендуется делать этого с элементом, который является частью монтажной схемы.


Библиотека символов

Navigation: ARES >

Библиотека символов

 Return to chapter overview

Символы - просто совокупности двумерных графических объектов, которые записаны в библиотеке для общего использования. Они обычно применяются для обозначения вещей, подобных мишеням сверления, чертежам неэлектрических элементов, например, скобки и теплоотводы, и возможно эмблема вашей компании.

Вы можете создать символ, выделив двумерные графические объекты, которые его образовывают (включая, если необходимо, другие символы), а затем вызвав команду Создать символ (Make Symbol). Заметьте, что, когда создаётся символ, информация слоя игнорируется.

Символ может также быть отредактирован, используя команду Разобрать (Decompose), как описано для корпусов


Трассировка печатной платы из списка соединений

Navigation: ARES >

Трассировка печатной платы из списка соединений

 Return to chapter overview

В предыдущем упражнении, вы использовали ARES не больше, чем как компьютеризированную чертежную доску. Однако, ARES 7 на самом деле предназначен для совместного использования с ISIS. Так как с ним намного проще контролировать правильность монтажной схемы, и как конечный результат - повышение качества вашего проектирования. Также, список соединений можно использовать для того, чтобы ARES показывал вам, что надо соединять, а что - нет, и больше нет необходимости постоянно обращаться к описаниям для проверки цоколевки.

Подготовка схемы для трассировки печатной платы

Для этого упражнения, Вы должны закрыть ARES, не сохраняя любые изменения (так, чтобы печатная плата PPSU вернулась к своему первоначальному состоянию) и загрузить проект примера PPSU.DSN. Вы найдете его в каталоге "Samples\Tutorials", где у вас установлен Proteus.

Этот проект показан ниже:

a20-1
Схема проекта PPSU.

Элементы библиотеки ISIS уже содержат информацию о корпусах для печатной платы, на основании их свойств КОРПУС (PACKAGE). Таким образом, вы можете перейти прямо к разработке печатной платы, выбрав команду Список соединений в ARES (Netlist to ARES) в меню Инструменты (Tools) в ISIS.

book Более полное описание подготовки схемы для разработки печатной платы смотрите в главе ISIS и ARES в справочнике ISIS.

Размещение элементов

В файле примера PPSU.LYT уже всё размещено, поэтому первая вещь, которую вы должны сделать, - удалить элементы оттуда. Чтобы сделать это, обведите элементы прямоугольником выделения (то есть всё, что внутри контура печатной платы), используя правую кнопку мыши, а затем удалите все объекты за исключением контура печатной платы, который мы можем оставить на месте. Чтобы сделать это, используйте фильтр выделения, который был описан выше. Когда вы сделаете это, кликните правой кнопкой мыши на выделении и выберите Удалить (Delete) в появившемся контекстном меню (или просто нажмите клавишу DEL на клавиатуре).

a21-1
Фильтр выделения, сконфигурированный так, чтобы отметить
всё, кроме чертежей (контура печатной платы).

Как только это сделано, выбор иконки component Компонент (Component) покажет все элементы в переключателе объектов как показано ниже.

a21-2
Переключатель объектов для проекта примера PPSU
после удаления элементов с монтажной схемы.

Размещение объектов точно такое же, как и в предыдущем упражнении, хотя на сей раз вы будете должны использовать значки Вращение (Rotation), чтобы выбрать ориентацию для некоторых из элементов. Это может быть сделано перед размещением (используя значки Вращение (Rotation)), в течение монтажа (используя клавиши ‘+’ и ‘-‘ на цифровой клавиатуре), или выделяя объект после монтажа и выбирая соответствующие значки вращения в появившемся контекстном меню.

a21-3
Вращение операционного усилителя после монтажа.

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

Когда вы размещаете элементы, они исчезают из переключателя объектов, и это хорошо показывает, сколько элементов остается разместить. Если размещенные элементы удалить, они будут восстановлены к переключателе объектов. Заметьте, подобным образом обрабатываются только элементы занесённые в список соединений. И даже, если элементы, помещенные в режиме Корпус (Package), были снабжены комментариями, к ним эта обработка не применяется.

a21-4
Монтажная схема PPSU со всеми элементами до формирования разводки.

Редактирование размещенных элементов

Есть несколько вещей, которые вы можете сделать с размещенными элементами:

· Перемещать выделив их оптом и перетаскивая мышью за корпус или контактную площадку, но не за метку. Перемещая, вы можете использовать клавиши вращения (по умолчанию '+' и '-' ), чтобы вращать их.
· Перемещать его метку, выделив объект целиком, а затем перетаскивая только метку.
· Перемещать любую из его контактных площадок, выделив элемент, выбрав значок instant Мгновенное редактирование (Instant Edit), а затем перемещая контактную площадку левой кнопкой мыши.
· Вращать или отразить его, выделив и затем выбрав соответствующий пункт контекстного меню (как на иллюстрации).
· Редактировать его метки, выделив его, а затем кликнув левой кнопкой непосредственно по метке.
· Изменять любую из его контактных площадок, размещая на них новые в режиме Контактной площадки (Pad).

Связи

Когда вы будете размещать элементы, вы увидите, как появляются зеленые "линии связей" или "соединения". Можно догадаться, что чем длиннее линии связи, тем менее оптимально место для размещения элемента, и это действительно так - оптимизация размещения элементов эквивалентна уменьшению длины соединения. К сожалению, решение этой проблемы - больше искусство, чем наука!

· Помните, что вы можете использовать горячие клавиши, чтобы вращать элемент, когда размещаете или перемещаете его (по умолчанию это '+' и '-'). Вместе с отображением связей это дает вам быстрый способ для оптимизации ориентации каждого элемента при его размещении.
· Также стоит заметить, что на сей раз нет никакой потребности аннотировать элементы - когда вы будете размещать U1, установится корпус DIL08, а не что-то другое.

ARES пересчитывает связи не только, когда элементы установлены, но также и в то время как их перемещают. Это подразумевает, что линии связи могут 'двигаться' между различными возможными точками соединения так же как и контактные площадки элемента.

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

Кроме того, ARES показывает "вектора силы" для каждого помещенного элемента. Они появляются как желтые стрелки, которые указывают на оптимальное место для размещения элемента. Чем короче векторы силы, тем лучше в итоге монтаж. Вектор силы для перемещаемого элемента также обновляется в реальном времени, хотя его влияние на вектора силы других элементов не показывается, пока элемент не будет установлен. Как только все проводники от элемента будут разведены, его вектор силы автоматически исчезнет.

Вы теперь готовы начать трассировку платы.

Ручная трассировка

Если хотите, то можете начать этот раздел, перезагрузив файл PPSU.LYT, который представляет собой то, что вы должны сейчас иметь. Вы найдете этот файл в каталоге "Samples\Tutorials", где установлен Proteus.

Выберите значок [image] Проводник (Trace) и кликните левой кнопкой на выводе 4 операционного усилителя. В этом месте произойдет несколько вещей:

· Появится подсказка в строке состояния, указывающая на то, что вы разводите часть сети "земля".
· Подсветится ближайшая контактная площадка, с которой есть соединение, и линия связи также станет указывать на неё.
· Переключатель проводников автоматически отобразит стиль проводника T25. Это связано со свойством стратегии сети, но пока просто возьмите толщину, заданную по умолчанию для силовых сетей. Заметьте, что это происходит, только если включена опция автовыбора проводника (Auto-Trace Selection) в меню Инструменты (Tools).
· Затенённый проводник будет следовать за курсором - это покажет вам, где будет помещен сегмент дорожки, а также на каком слое, если вы кликните левой кнопкой мыши.
· Наведите курсор на левый вывод C1 и кликните левой кнопкой во второй раз. ARES будет считать, что вы завершили разводку, и заменит линию соединения дорожкой шириной 0,025 дюйма. Снова кликните левой кнопкой на выводе 4 U1, переместитесь вверх на 1 квадрат сетки координат, кликните левой кнопкой, переместитесь на 1 квадрат в сторону нижнего вывода R2 и затем вниз на сам вывод.

a22-1
Разводка от вывода 4 U1 к выводу 2 R2.

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

a22-2
Интерактивный контроль проектных норм (DRC) сообщает, что нарушений нет.

Если, например, вы кликните правой кнопкой на только что помещенном проводнике (вывод 4 U1 к выводу 2 R2), а затем перетащите центральную часть проводника вниз так, чтобы он пересекал вывод 2 R1 (ясное нарушение), вы увидите, что ARES обнаружит проблему, как только вы отпустите кнопку, и предупредит вас в строке состояния.

a22-3
Интерактивный контроль проектных норм (DRC) сообщает о нарушении.

Один левый клик на сообщении об ошибках в строке состояния запустит средство просмотра DRC (контроля проектных норм), которое отобразит нарушение, допустимое свободное расстояние, установленное в проектных нормах, и фактическое свободное расстояние. Двойной клик на записи в средстве просмотра изменит масштаб изображения печатной платы в месте того нарушения.

Так как в этом случае причина нарушения очевидна и намеренна, просто используйте команду отмены (по умолчанию CTRL+Z), чтобы вернуть печатную плату в правильном состоянии. Заметьте, что, когда вы сделаете это, контроллер DRC вернётся к сообщению об отсутствии нарушений.

i Проектные нормы могут быть установлены независимо для основных стратегий через команду Установить стратегии (Set Strategies) в меню Система (System). Для получения дополнительной информации смотрите ниже стратегии трассировки.

i Интерактивная проверка проектных норм (DRC) - чрезвычайно мощная помощь при формировании разводки, и вместе с настраиваемыми техническими нормами проекта она действует и как превосходное средство обеспечения качества разработки и сокращения времени на трассировку.

Возвратив печатную плату к её предыдущему состоянию, продолжим формировать разводку, соединяя вывод 4 U1 с эмиттером Q2. В этом случае, заметьте, что вы можете не разводить проводник от вывода к выводу - средства альтернативного управления списком соединений дают возможность ARES удалить эту связь, даже если вы проведёте дорожку от эмиттера Q2 до угла дорожки над выводом 4 U1.

Следующее соединение, которое неообходимо сделать - от вывода 2 U1 к R1. Предположив, что мы хотим развести его на верхней стороне печатной платы над нижней строкой выводов U1, нажимаем клавишу "пробел" или среднюю кнопку мыши. Это выбирает другой слой в текущей паре слоёв - в этом случае "верхний медный слой" (Top Copper). Разводите соединение как и прежде, отмечая, что выбранный тип проводника является теперь заданным по умолчанию для сигнальной стратегии (Signal). Также заметьте, что проводник выходит в красном цвете, показывая (с заданными по умолчанию цветами), что он находится на верхнем медном слое. Теперь завершите эту дорожку соединением к R2.

Фактически можно развести эту печатную плату вообще без сквозных отверстий. Однако, для целей обучающей программы мы разведём соединение от вывода 3 U1 к C1, используя два сквозных отверстия. Сначала выберите нижний медный слой (Bottom Copper), нажмите левой кнопкой на выводе 3 U1, а затем дважды кликните левой кнопкой чуть ниже этого вывода. Двойной левый клик в окрестностях вывода размещает сквозное отверстие и также меняет основной и дополнительный слои. Сквозное отверстие размещенное на слое, определяется режимом сквозного отверстия текущей стратегии (нормальный, углубленный или скрытый). Получив одно сквозное отверстие, двигайтесь к выводу цели, дважды кликните левой кнопкой и завершите разводку на нижней стороне печатной платы.

И в завершение вы можете срезать под углом 45° некоторые проводники или все дорожки платы, чтобы она выглядела более аккуратно, чтобы минимизировать длину проводников, или чтоб избежать замыканий припоем.

Автотрассировка

Использование автотрассировки чрезвычайно просто - достаточно одного действия, чтобы компьютер сделал всю работу. Чтобы уидеть это в действии, сначала перезагрузите PPSU.LYT, а затем вызовите команду Автотрассировщик (Auto-Router) в меню Инструменты (Tools). Примените для этой печатной платы настройки по умолчанию, нажав на OK, и сидите и ждите. Строка состояния внизу экрана показывает, что происходит и какие действия выполняются. Желтый проводник - это тот, который сейчас разводится. На современных компьютерах эта печатная плата разведётся, так быстро, что вам повезёт, если вы вообще увидите процесс разводки!

Комбинирование ручной и автоматической трассировки

Хотя вышеупомянутое упражнение формировало разводку печатной платы полностью автоматически, вы, если пожелаете, можете проявить намного больше контроля над работой. Перезагрузите PPSU.LYT и затем выберите значок ratsnest Связь (Ratsnest). Переключатель тогда отобразит список сетей в проекте. Выберите сеть "земля" (GND) и кликните на переключателе 'T' как показано ниже. Это отметит все соединения в сети.

a23-1 | a23-2
Иконка Связь (Ratsnest). | Переключатель объектов с выбранной сетью "земля".

В этом режиме вы можете также:

· Выделять соединения, щелкая по ним правой кнопкой мыши.
· Выделять соединение, щелкая по нему правой кнопкой мыши.
· Снимать выделение со всех соединений, щелкая правой кнопкой по пустому месту.

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

i Как только печатная плата разведена, вы можете глобально задать скос под 45° для всех проводников на плате.

Стратегии трассировки

ARES управляет проблемой трассировки различных сетей с различными размерами проводников и сквозных отверстий очень сложным и удобным способом. Каждая сеть в проекте назначена (явно или неявно) именной стратегии, которая определяет, как она должна быть разводена. Например, это означает, что сети под названием 12VRAIL может быть назначена стратегия Питание (Power) на схеме, но детали разводки Питания (Power) могут быть неопределены, пока печатная плата не начнёт принимать определенную форму. В то же самое время, избегают потребности указывать отдельно все свойства для каждой сети в проекте.

Для понимания того, что является возможным, вызовите команду Установить стратегии (Set Strategies) в меню Система (System), выберите стратегию Силовая (Power). Окно редактирования стратегии позволяет вам определить, как сети, назначенные на эту стратегию, должны быть разведены.

Вы увидите, что есть поля для стилей проводников и сквозных отверстий, алгоритм использования (то есть питание (POWER), шина (BUS) или сигнал (SIGNAL)), контроль, позволяющий диагонали и должны ли углы быть оптимизированы (то есть срезаны под 45°) - каждая опция в диалоговом окне имеет контекстно-зависимую справку, связывающую её со справочной системой. В стратегии допускается до 4 пар, и каждая пара может использовать различные слои. Если H и V слои для трассировки одинаковые, тогда будет выполнена односторонняя разводка платы.

Вы можете также установить индивидуальные проектные нормы для каждой стратегии. Это может быть полезно, когда некоторые проводники должны нести высокие напряжения и должны быть расположены на большем расстоянии, чем те, которые несут сигналы с низким напряжением.

a23-3
Диалоговое окно установки стратегий в ARES с выбранной стратегией Силовая.

i Для более сложных проектов вы можете создать и конфигурировать ваши собственные стратегии. Вы создаете стратегию маркировкой сети в ISIS (см. справочник ISIS) - тогда она появится в диалоговом окне Установки стратегий (Set Strategies) в ARES, где она может быть настроена, как описано выше. Это даёт очень мощный способ управлять сетями, которые требуют специального рассмотрения на печатной плате.

Дальнейшие подробности относительно всех этих свойств могут быть найдены в разделах Управление списком соединений (Netlist Management) и Автотрассировка (Autorouting).

Проверка правильности соединений

Этот инструмент устанавливает, какие выводы связаны друг с другом (отслеживая и сквозные отверстия), и сравнивает их с выводами, которые были внесены на ту же самую сеть в списке соединений. Запускаемый из меню Инструменты (Tools), он создаёт и записывает в отдельный файл интерактивный отчет, показывающий 'сетевые группы' в пределах каждой сети. Также перечисляются любые элементы, определённые в списке соединений, которые еще не были размещены и представленные в всплывающем окне. Если вы нажмете на элементы в списке, сеть или сети, в которых есть ошибки, будут подсвечены.

Если вы разводите из списка соединений впервые, и особенно если используете автотрассировщик, вы скорее ошибочно пропустите соединение, чем сделаете лишнее. Однако, отсутствие ошибок в отчете проверки правильности соединений (CRC) действительно дает вам дополнительную уверенность, что ваша разработка правильна.

Силовые поверхности

Как пример возможности формирования сложных силовых поверхностей, мы создадим простую поверхность "земли" для печатной платы PPSU. Начнём следующим образом:

1. Загрузите файл PPSU.LYT.
2. Разведите плату автотрассировщиком.
3. Выберите значок conhighlight Подсветка соединённых (Connectivity Highlight).
4. Выберите сеть GND=POWER в переключателе объектов.
5. Нажмите кнопку 'T' для выделения этой сети в переключателе объектов.
6. Нажмите значок blockdel Удалить (Delete).

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

Затем

1. Выберите команду Формирователь силовой поверхности (Power Plane Generator) в меню Инструменты (Tools).
2. Выберите сеть "земли" GND (она может появиться как "GND=POWER").
3. Нажмите OK.

ARES тогда сформирует поверхность "земли".

book Функциональные возможности силовых поверхностей в ARES всесторонни и чрезвычайно мощны. Здесь мы только слегка коснулись этой темы, более подробно она обсуждена в разделе "Силовые поверхности" справочной системы.

Перекрёстная проверка

Комплект проектирования Proteus снабжён мощным средством анализа - Проводником проекта (Design Explorer), который более подробно обсуждён в документации ISIS. Во время разводки он предназначен для перекрестной проверки, которая позволяет вам сопоставлять посадочное место (или сеть) в ARES с соответствующим элементом (сетью) в ISIS. Чтобы увидеть это в действии перезагрузите с диска PPSU.LYT, а также загрузите файл PPSU.DSN в редакторе схем ISIS.

На этом этапе в типовом проекте мы имеем готовую схему (PPSU.DSN) с формированным списком соединений для размещения макетов корпусов и разводки печатной платы. Запустите в ISIS Проводник проекта (Design Explorer) и перейдите в Просмотр спецификаций (Physical Partslist View).

a24-1

a24-2

Запуск Проводника проекта в ISIS.

Затем, кликните правой кнопкой мыши на каком-либо элементе в Проводнике Проекта и выберите команду Перейти к элементу на печатной плате (Goto PCB Part) в появившемся меню.

a24-3
Переход к посадочному месту от элемента в Проводнике Проекта.

Вы увидите, что элемент в ARES будет выделен, и что он будет показан в окне редактирования в увеличенном масштабе. Это чрезвычайно удобно при анализе вашего проекта, особенно, если схема состоит множества листов, и/или если корпуса плотно расставлены на плате, или и то, и другое.

Если вы переключитесь назад на Проводник Проекта и перейдёте в Просмотр списка соединений (Physical Netslist View), то сможете тогда точно таким же способом выделить сеть в ARES.

Из этого следует, что, проводя проект от принципиальной схемы, вы можете использовать Проводник проекта (перекрёстную проверку) в течение размещения элементов для проверки и после него для анализа.

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

Производство печатных плат

Как правило, вы будете формировать данные для изготовителя печатных плат в формате Gerber/CADCAM. Это делается с помощью команды CADCAM Выход (CADCAM Output) в меню Выход (Output) в ARES, более подробно читайте в разделе "CADCAM Выход" справочной системы.


Трассировка (antzol)

Navigation: ARES >

Трассировка (antzol)

 Return to chapter overview

18.07.2007

antzol

Трассировка печатных плат в Proteus.

Вот небольшое руководство по трассировке печатных плат в Протеусе (как я это делаю). В принципе, возможно (а скорее всего так есть J) есть лучший и более простой способ, но поскольку материалов на эту тему на русском языке не встречал, представляю на суд сей труд.

Вот, к примеру, имеется какая-то схема

Каждому элементу схемы должен быть сопоставлен какой-то корпус.

Это параметр – PCB Package.

Тип корпуса можно изменить, тыкнув на [?]. Кстати, для резисторов и керамических конденсаторов он обычно называется как-нибудь типа RES40 или С20, где число – это расстояние между выводами. 10th = 2,5мм (тогда RES40 => 10мм между выводами).

Некоторым элементам корпус изначально не сопоставлен (светодиоды), поэтому придется это сделать самим. Разумеется, корпус должен быть соответствующим J (для светодиодов выводы промаркированы как анод и катод).

Некоторым же элементам пока невозможно сопоставить корпус, это, например светодиодные индикаторы, катушки индуктивности, кнопки… У них даже нет такого параметра как PCB Package!

Если корпус есть в стандартной библиотеке, можно сопоставить при экспортировании в ARES (этот способ подходит например для потенциометра). Если же в стандартных библиотеках нет подходящего корпуса, то есть 2 выхода:

1) взять нужные корпуса из нестандартных библиотек (в инете их полно). Этого я не пробовал, так что не знаю, будет ли всё работать как и со стандартными или придется прописать “руками” недостающие соединения (ведь в ARES экспортируется не сама схема, а список соединений между корпусами элементов);

2) 2-ой способ, которым я и пользуюсь, состоит в том, чтобы добавить в схему дополнительные разъемы (благо их тут огромный выбор J) и соединить с выводами этих элементов, а потом в ARES расставлять не сами элементы, а эти разъемы, разумеется соответственно цоколевке J.

Например, вот тот индикатор со схемы (всё согласно цоколевке):

Про то, что в ISIS надо было сделать, вроде всё…

Итоговая схема у меня немного усложнилась… Появились дополнительные узлы схемы, входные и выходные разъемы и дополнительные разъемы под индикатор, кнопки, катушки.

Далее нажимаем кнопку [ARES] (наверху, самая правая). Если проект был не сохранен, то ISIS предложит сохранить.

Когда откроется ARES, если каким-то элементу не был сопоставлен корпус (у меня это все кнопки, катушки, индикатор и потенциометр), то появится окно с предложением сделать это сейчас.

Для всех элементов, кроме потенциометра, я пропускаю этот этап, нажимая Skip. Для потенциометра выбрал корпус PRE-SQ3.

Всё! Мы в ARES!

Далее нужно ограничить размер печатной платы. Это делается на слое Board Edge с помощью инструментов 2d-графики (наиболее удобен прямоугольник).

Элементы на плате можно расставить руками и автоматически.

Автоматическая расстановка, на мой взгляд, не очень удачна, поэтому лучше это делать руками. Но если всё же хочется, то некоторые элементы стоит расставить заранее, эти элементы будут неподвижны друг относительно друга. Это делается для того, чтобы, например, конденсатор и катушка контура не оказались в разных углах платы. Кроме контуров я так расставлял элементы, которым сопоставлял разъемы (например, индикатор, разъемы ставил согласно его размерам), все цепи индикации и управления и входные и выходные разъемы платы (но это уже всё для удобства J).

Получается что-то типа этого.

Нажимаем кнопку авторасстановки [auto-placer].

Далее, появляется окно:

В нем выбираются элементы, которые надо расставить, шаг сетки, предпочтительное расположение элементов, степень группирования….

В общем всё расставили…

И наконец, трассировка…

Первым делом необходимо настроить стратегию трассировки. Для этого заходим в system а set strategies

1) В самом верху окна сначала выбирается, для каких цепей будем редактировать стратегию, для сигнальных (signal) или для питающих (power).

2) Столбик Pair1 – Pair4. Тут выбирается по какой стороне платы будут идти дорожки и по какой стороне они будут вертикальны или горизонтальны.

Top Copper – сторона элементов.

Bottom Copper – задняя сторона.

Если одну из сторон выключить (None),то плата для этих цепей (сигнальных или питающих) будет односторонней.

3) Группа Vias

Выбирается, по какой стороне будут идти перемычки (top blind, bottom blind), или по обоим сторонам будут идти дорожки (normal), или дорожки будут идти только по одной стороне без перемычек (buried).

4) Tactics – это и так понятно J Как располагать дорожки как питающие, как шину или как сигнал.

5) Corners

optimize? – срезать ли углы. Если выключить, то все углы будут по 90º.

diagonal? – ну это понятно…

6) design rules – здесь устанавливаем минимально допустимые расстояния: площадка-площадка, дорожка-дорожка, площадка-дорожка… Я обычно оставляю площадка-площадка по умолчанию, а остальное ставлю 20, чтоб удобнее было паять.

И так, возвращаемся к плате. Для включения трассировки нажимаем кнопку [autorouter] (находится справа от [auto-placer]).

Появляется окно. Тут я меняю только шаг сетки, ставлю обычно 20 или 25.

Ну всё, тыкаем ОК и ждем J

Получается что-то типа этого:

Если ARES не смог развести дорожки, то переставляем элементы и по новой.

Если же ARES развел плату, но выдал предупреждение об ошибках, то это значит, что расстояние между площадками и дорожками где-то меньше допустимого. Смотрим, в каком это месте и намного ли меньше, и если это не критично, то можно оставить такой вариант платы.

Для того, чтобы распечатать рисунок на заготовку надо зайти в Output а Set Output Aria и выделяем площадь, которую надо распечатать. Далее Output а Print, там выбираем какую сторону печатать, зеркально или нет, и печатаем.

И напоследок, как я сам развожу плату (вдруг кому пригодитсяJ)

- задаюсь размерами платы (board edge);

- расставляю элементы какого-нибудь узла схемы, например генератора;

- запускаю автотрассировщик;

- смотрю как идут дорожки, удачно ли расположил элементы;

- откатываю назад

- если были какие-то недочеты, переставляю элементы, если же не было, то расставляю соседний узел;

- снова запускаю трассировщик;

- и так далее пока не соберется вся схема.

Делаю так потому, что трассировщику не всегда удается сразу развести всю плату (иногда не может провести какие-нибудь дорожки), да и сам ARES далеко не всегда нормально расставляет элементы.

Ну вроде бы всё… Прошу не судить строго J

18.07.2007

antzol


Proteus VSM

Navigation: »No topics above this level«

Proteus VSM

 Return to chapter overview

Система виртуального моделирования.

Proteus VSM

VSM

Руководство по интерактивному моделированию

Моделирование с ипользованием диаграмм


VSM

Navigation: Proteus VSM >

VSM

 Return to chapter overview

J{e ошибается лишь тот, кто ничего не делает.

PROTEUS VSM

Система виртуального моделирования.

Наверняка многие начинающие радиолюбители сталкивались с ситуацией когда, решив собрать понравившееся и, несомненно, нужное устройства, по неопытности а может из за ошибок в схеме или же по другим «форс-мажорным» обстоятельствам ,просто-напросто сжигали с трудом приобретенные дорогие радиодетали. И скорей всего большинство, обжегшись на первых неудачах, забрасывали занятие радиоэлектроникой навсегда.

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

Одна из таких программ PROTEUS VSM . Но симуляция радиоэлементов это не единственная способность программы . Proteus VSM , созданная фирмой Labcenter Electronics на основе ядра SPICE3F5 университета Berkeley, является так называемой средой сквозного проектирования .Это означает создание устройства, начиная с его графического изображения (принципиальной схемы) и заканчивая изготовления печатной платы устройства , с возможностью контроля на каждом этапе производства.

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

В «сферу-влияний» PROTEUS VSM входят как простейшие аналоговые устройства так и сложные системы созданные на популярных ныне микроконтроллерах. Доступна огромная библиотека моделей элементов, пополнять которую может сам пользователь, естественно для этого нужно досконально знать работу элемента и уметь программировать. Возможность анимации схем позволяет программе стать прекрасным учебным пособием на уроках в школе и ВУЗ. Достаточный набор инструментов и функций, среди которых вольтметр, амперметр, осциллограф, всевозможные генераторы, способность отлаживать программное обеспечение микроконтроллеров, делают PROTEUS VSM хорошим помощником разработчику электронных устройств.

Сайт разработчиков программы http://www.labcenter.co.uk .

Программа не прихотлива к системным требованиям. Как заявлено создателями работает в Windows 98/Me/2k/XP и выше. Запускается даже на Pentium I 150 МГц. Но все-таки для комфортной работы и более полного использования возможностей программы

рекомендуется процессор не ниже 500 МГц, объем оперативной памяти 64 МБ, звуковая карта совместимая с DirectX и разрешение монитора не ниже 1024 х 768 точек.

Proteus VSM по умолчанию устанавливается в папку C:\Program Files\Labcenter Electronics\Proteus 6 Demonstration. Другие пути установки и варианты с системой стоящей на другом диске, например XP на диске D ,мной не проверялись.

Proteus VSM состоит из двух самостоятельных программ ISIS и ARES .ARES это трассировщик печатных плат с возможностью создания своих библиотек корпусов и здесь ее не будем.

Основной программой является ISIS, в ней предусмотрена горячая связь с ARES для передачи проекта для разводки платы.

При запуске программы появляется основное окно.

рис 01

Самое большое пространство отведено под окно редактирования EDIT WINDOW . Именно в нем происходят все основные процессы создания, редактирования и отладки схемы устройства.

рис 02

Слева вверху маленькое окно предварительного просмотра Overview Window с его помощью можно перемещаться по окну редактирования (щелкая левой кнопкой мыши по окну предварительного просмотра, мы перемещаем окно редактирования по схеме, если конечно схема не вмещается в окно).

Перемещать окно редактирования по схеме можно еще так - удерживая нажатой кнопку SHIFT двигать курсор мыши, не нажимая ее кнопок, по окну редактирования.

Приближать и отдалять схему в окне можно соответственно кнопками F6 и F7 или же колесом мыши, F5 центрирует схему в окне а нажатие F8 подгоняет размер схемы под окно редактирование.

Под окном предварительного просмотра находится Object Selector список выбранных в данный момент компонентов, символов и других элементов. Выделенный в списке объект отображается в окне предварительного просмотра.

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

рис 03

В самом низу основного окна расположены: слева направо кнопки вращения и разворота объекта вокруг своей оси, панель управления интерактивной симуляцией ( выглядит как магнитофонная и функции такие же : ПУСК -ПОШАГОВЫЙ РЕЖИМ -ПАУЗА-СТОП) ,

рис 03a

строка статуса ( в ней отображаются : ошибки , подсказки ,екущее состояние процесса симуляции и т.д.) и координаты курсора отображаемые в дюймах .

Для освоения основных функций программы нам понадобится «жертва». Откроем один из уже имеющихся проектов. Выберем в меню FILE опцию LOAD DESIGN. Загрузим файл SAMPLE/ANIMATION CIRCUIT/AC01.DSN .

рис 04

Запустим проект, нажав на панели кнопку ПУСК.

рис 05 Эта схема демонстрирует действие переменного тока в цепи. Частота генератора занижена до 0.5 Гц для наглядности.

Цвет и яркость проводов определяют полярность и уровень напряжение, стрелки направление тока. Красная точка на изображение генератора показывает текущее «положение» синусоиды.

Для того чтобы манипулировать объектами их нужно сначала выделить, это можно сделать только на остановленном проекте. Для выделения одного объекта надо щелкнуть по нему правой кнопкой мыши. Для выделения группы можно либо удерживая CTRL последовательно щелкать правой кнопкой по всем объектам либо удерживая правую кнопку протащить область выделения по необходимым объектам. Выделять объекты надо осторожно, повторный щелчок правой кнопкой мыши по выделенному объекту удалит его, (удалить выделенные объекты можно еще, нажав кнопку DELETE) .

Но это не страшно отменить последние и все предыдущие действия по порядку можно с помощью кнопок отмены (UNDO, REDO).

рис 06

Кнопки отмены действуют как назад, по хронологии так и вперед.

Выделенные объекты можно перемещать по схеме, ухватив их левой кнопкой мыши

передвинув в нужное место отпустить кнопку. А с помощью этих кнопок производятся групповые операции с выделенными объектами. По порядку: копирование, перемещение, поворот и удаление.

рис 07

Потренируетесь на этом проекте. Не бойтесь «испортить» чего-либо. Изменения не внесутся в проект пока вы, не сохраните его.

Откроите следующий проект Diode07.DSN находящийся в той же папке, предыдущий закроется, автоматически спросив вас «не желаете ли сохранить изменения». Ответьте, нет. Запустите проект.

рис 08

Проект иллюстрирует работу двухполупериодного выпрямителя, проще сказать, диодного моста. Хорошо видны все процессы, проходящие в схеме. Так же как и в предыдущем проекте, частота генераторов снижена. Переделаем схему в реальную. Нам нужна частота 50 Гц. Для этого нам придется отредактировать свойства генераторов. Чтобы открыть окно редактирования компонента, нужно либо выделив компонент щелкнуть по нему левой кнопкой мыши либо поместив на него курсор, не нажимая кнопок мыши, нажать CTRL + E . Откроем окно редактирования.

рис 09

Внесем в поле Frequency (Частота ) 50. Закройте окно, нажав OK.Измените частоту и для второго генератора. Запустите проект .Да ,что то получилось не то .

Добавим в схему конденсатор. Тот, что находится в списке ,CAPACITOR придется заменить. Дело в том, что проект существует с самой первой версии программы, модель разработчики изменили, а внести изменения в схему не потрудились. Такого рода «жучков» в старых проектах достаточно. Ну не чего страшного!

Все элементы находятся, как на складе, в библиотеке компонентов. Чтобы попасть на этот «склад» перейдем в режим COMPONENT (компоненты), нажав соответствующую пиктограмму.

рис 10

Теперь либо щелкнув по пиктограмме P (Pick devices) либо дважды щелкнув левой кнопкой в поле выбора компонентов Object Selector , мы попадем на «склад».

рис 11

Компоненты можно выбирать по категориям Category , подкатегориям-Sub category , по производителю Manufacturer или же искать по ключевым словам Keywords. Выберем CAPACITOR библиотеки ACTIV . Дважды щелкнем по строке с названием объекта, подтверждая выбор компонента.

рис 12

Программа спросит, желаете ли вы заменить существующий в списке схемы компонент попутно сообщив, что компонент библиотеки и схемы имеют разное время создания, библиотечный свежее. Ответьте да. Закройте «склад» нажав OK или же закрыв окно. Выберете компонент, в списке щелкнув по нему левой кнопкой. Изображение конденсатора появиться в окне предпросмотра. Если необходимо разверните его как вам нужно.

Поместим конденсатор после диодного моста, просто щелкнув там левой кнопкой.

рис 14

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

рисунки 15 ,16 ,17

Соедините нижний вывод сами. Измените емкость конденсатора на 500 мкФ. Запустите симуляцию. Ну, вот совсем другое дело. Количество плюсиков и минусов на обкладках конденсатора указывает на уровень заряда. Измените обратно частоту обоих генераторов на 0,2 Гц, в качестве разделителя в десятичной дроби Proteus VSM использует точку (английская раскладка клавиатуры). Запустив, проект вы увидите процесс зарядки-разрядки конденсатора в динамике.

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

Откроем проект Basic07.DSN .

рис 18

Простейшая схема. Запустите проект. У тумблера и реостата имеются красные стрелки в кружках. Это и есть активаторы. Нажимая на них левой кнопкой можно переключать тумблер или же перемещать движок реостата, изменяя, таким образом, его сопротивление. Включите тумблер и переместите движок реостата в крайнее правое положение. Ну вот! Предохранитель сгорел. Ничего при рестарте проекта он будет целым.

рис 19 Загрузите проект Comb01.DSN .

Это схема демонстрирует работу логического примитива И. Запустим. Попробуем изменить логические уровни на входе, щелкая левой кнопкой по активаторам, подсоединенным к входам элемента. Ничего не получается. Симулятор сообщает Real time Simulation in progress Press ESC to Stop.

Здесь та же история что и с конденсатором. Модель LOGICSTATE изменена и в схеме не активна. Когда щелкаем по органу, симулятор, не воспринимая модель как активную, думает, что мы собираемся редактировать работающую схему и ругается. Ну что ж исправим это. Откроем библиотеку и найдем элемент LOGICSTATE (логический уровень) он находится в категории Debugging tools . Поместим его в наш список, дважды щелкнув по строке. Программа снова спросит нас о замене. Ответьте утвердительно. Закройте библиотеку, и запустите проект. Вот теперь все в порядке. Изучите работу элемента изменяя, логические уровни на его входах и сравнивая с таблицей истинности. Потренируйтесь с остальными проектами из серии Comb .

Мы овладели необходимым минимумом, настало время создания своих проектов. Создайте новый проект, используя меню FILE > NEW DESIGN. Это можно не делать, если вы только что открыли программу, так как при запуске PROTEUS автоматически создаст новый проект с именем UNTITLED.DSN — безымянный.

Установим для удобства свои размеры листа схемы, Откроем меню SYSTEM > SET SHEET SIZE (Установить размеры листа). Выберем вариант USER — пользовательский, в окошках введем 6 in 4 in (высота и ширина в дюймах). После этого нажмите F8 , чтобы подогнать размер листа схемы под окно редактирования.

Соберем схему согласно рисунку.

рис 20

Для начала определимся со списком деталей.

Итак нам нужны: микроконтроллер PIC16F84A 1 штука, светодиод красный 1 штука,

кнопка и два резистора по 1 кОм каждый. Догадываюсь

вы уже спрашиваете,

- А как же кварц, конденсаторы и элементы питания?

Все это эмулируется программно, и нет необходимости добавлять их в схему. Хотя

если вы будете разрабатывать проект до его логического конца, то есть до изготовления

печатной платы, элементы придется добавить.

Вперед за компонентами! Откройте библиотеку компонентов. Чтобы вам долго не искать

подскажу, наберите в окне KEYWORDS pic16f84a .Теперь либо дважды нажав ENTER ,

но тогда закроется библиотека и придется заново ее открывать, либо

дважды щелкнув левой кнопкой по строке с описанием компонента, появившейся в окне

RESULTS (результат), вы переместите выбранный вами компонент в список Object

Selector .Выберите, таким образом, резистор, набрав RES ,кнопку BUTTON и светодиод

LED-RED .

Компоненты набираются по одному экземпляру, размножить их можно уже потом

просто выбирая в списке Object Selector .Закройте библиотеку, нажав OK или же закрыв

окно. Со временем к вам придет опыт, и вы будете, сами определять, какие нужны

компоненты и где они находятся. Надеюсь, все прошло без ошибок и в окне Object Selector появился список набранных нами компонентов. Если так то разместим их на схеме, щелкнув левой кнопкой сначала по названию компонента в списке, а затем в нужном нам месте на пустой пока еще схеме. Разместите и разверните, если это необходимо все компоненты. В итоге получится, что-то вроде этого. Нам не хватает еще одного важного элемента — «земли» или «корпуса». Элементы такого типа (терминалы) выбираются в режиме INTER SHEET TERMINAL .

рис 22

Выберите элемент GROUND (земля) и поместите его на схеме под кнопкой и светодиодом. Теперь соедините компоненты меж собой как показано на схеме. Как проводить соединения показывалось выше на примере конденсатора. Измените сопротивление резисторов на 1 кОм. Также измените, тип модели резисторов на digital (цифровой), это необходимо, чтобы симулятор не тратил время на обсчет аналоговых свойств резисторов. Нам нужно только, горит или нет свето диод и нажата кнопка или нет, то есть чисто логические уровни. Схема готова.

рис 23

Сохраните проект, в свою папку, чтобы не путаться, под именем LED.DSN . Сделаем небольшое отступление. Если вы собираете схему на микроконтроллерах и хотите только отладить программу, не старайтесь точно воспроизвести схему источник, Насколько это возможно меньше применяйте аналоговые устройства или же старайтесь заменить их цифровыми примитивами. Многие модели имеют два варианта аналоговый и цифровой, например тот же резистор. Транзисторы, работающие ключами можно заменить либо инверторами, либо буферами исходя из их проводимости. Это поможет разгрузить процессор. Конечно, PROTEUS имеет более продвинутые средства решения этой проблемы, например «магнитофон» TAPE, который позволяет разбить схему на несколько частей записать сигналы с одной части в промежуточный файл, затем заморозить эту часть и использовать записанные сигналы для других частей, симулируя только выбранные не затрагивая остальных . Но этот вариант, если и будет рассмотрен, то только не сейчас. Так что старайтесь максимально упростить схему, тем более, если у вас не особо шустрый компьютер.

Попробуем оживить схему. Для этого нам необходим файл исходник. Среда PROTEUS

поддерживает много средств разработки, среди них и HI-TECH Си компилятор и

CROWHILL PIC BASIC и BASIC STAMP. И это только для микроконтроллеров фирмы

MICROCHIP . Мы воспользуемся ассемблером MPASM .

В поставку PROTEUS входят компиляторы MPASM и MPASMWIN от MICROCHIP, но

они старые, созданные еще в 2001г., и многие типы микроконтроллеров не поддерживают,

так что придется заменить на новые.

Желательно от MPLAB версии 6.30 . В 6.50 уже нет MPASM . Я пользуюсь MPASM

потому что MPASMWIN не поддерживает пути длинней 62 символа. Но MPASM , a

возможно и MPASMWIN , поддерживают только формат имени файла 8.3 .Так что будьте

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

читатели уже имеют опыт общения с компилятором MPASM фирмы MICROCHIP .

Ну,с начнем.

Вот он, исходник. Набейте его в каком-нибудь текстовом редакторе . Я использую

редактор MED, у него есть много просто необходимых функций, например создание своей

схемы подсветки синтаксиса.

(Кстати к PROTEUS можно подключить внешний редактор, заменив встроенный. Для

этого зайдите

в меню SOURCE пункт SETUP EXTERNAL TEXT EDITOR.

Нажмите BROWSE (просмотр) и найдите свой любимый редактор.)

Продолжим. Сохраните набитый файл, в папку с нашим проектом, под именем LED.asm.

list p=16f84

#include <p16F84A.inc>

__CONFIG _CP_OFF & _WDT_OF

#define LED PORTB,0 DelayL equ 0x0C DelayM equ 0x0D DelayH equ 0x0E

org 0h clrf DelayL clrf DelayM clrf DelayH clrf PORTA CLRF PORTB bsf STATUS,RP0 clrf TRISA clrf TRISB bcf STATUS,RP0

start bsf LED

call Delay500 bcf LED call Delay500 goto start

Delay500 clrf DelayL clrf DelayM movlw 3h movwf DelayH

Wait1 decfsz DelayL

goto Wait1 decfsz DelayM goto Wait1 decfsz DelayH goto Wait1 return end

Добавим наш исходник в проект. Для этого в меню SOURCE (исходник) выберем ADD/REMOVE SOURCE FILE (добавить/удалить файл) . В появившемся окне нажмем кнопку NEW (новый). В строке SOURCE CODE FILINAME выберем наш исходник, с помощью кнопки CHANGE (сменить), а в строке CODE GENERATION TOOLS компилятор MPASM .Подтвердим наш выбор, нажав OK . Соберем проект, то есть сотворим файл прошивки. Откроем меню SOURCE и нажмем BUILD ALL . Откроется лог компилятора, сообщая, что все в порядке если вы не допустили ошибок, или же появятся строки с ошибками.

Закроем окно лога. «Прошьем» микроконтроллер. Для этого в окне свойств микроконтроллера, как открыть это окно рассказывалось выше, в строке PROGRAMM FILE выберем файл прошивки LED.HEX , который появился в нашей папке после компиляции. В строке PROCESSOR CLOCK FREQUENCY (тактовая частота процессора) выставьте 4 МГЦ. В строке PROGRAMM CONFIGURATION WORD (слово конфигурации) выставлять ничего не надо, если соответствующие данные есть в файле-исходнике. Остальные установки также изменять пока нет необходимости. Сохраним еще раз проект.

Посмотрим на дело рук своих, запустив проект. Замигал светодиод? Все в порядке.

Конечно, просто созерцать на мигание проку мало, поэтому посмотрим, что нам предлагает PROTEUS в качестве инструментов отладки программы и просмотра внутренностей микроконтроллера. Поставьте проект на паузу. Появится окно отладчика,если этого не произошло, то в меню DEBUG отметьте пункт PIC CPU SOURCE CODE .

На рисунке под цифрами:

1 Выбор файла отладки, если было два и более исходника, один, например, на СИ или бэйсике а другой на ассемблере. Продолжить выполнение программы.

1 Шаг без входа в подпрограмму.
2 Шаг с входом в подпрограмму.
3 Исполнять код до возврата из подпрограммы. Фактически остановка происходит на следующей за RETURN командой. Использовать эту опцию можно естественно, только находясь в подпрограмме.
4 Исполнять пока не будет достигнута выделенная полосой строка (курсор).
5 Триггер точек остановки (брейк пойнт), то есть вкл /выкл точку.

Щелкнув правой кнопкой по окну отладчика можно изменить его настройки.

В появившемся меню есть такие опции:

GOTO LINE перейти на линию

перейти на адрес

GOTO ADDRESS

найти

FIND

TOGGLE (SET/CLEAR) BREAK POINT ENABLE ALL BREAK POINT DISABLE ALL BREAK POINT CLEAR ALL BREAK POINT

установить / очистить точку установки разрешить все точки остановки запретить все точки (не удалить !) удалить все точки

FIX-UP BREAKPOINTS ON LOAD зафиксировать (разрешить) точки при загрузке

проекта Отметьте эту опцию.

DISPLAY LINE NUMBERS DISPLAY ADDRESSES DISPLAY OPCODES

SET FONT

показывать номера линии показывать адреса команд показывать опкод команд

выбор шрифта

Чтобы видеть символы кириллицы выберите шрифт COURIER NEW , а для того чтобы все убралось в окне, поставьте размер шрифта 8.

SET COLOR выбор цвета текста, фона и т.д.

Поставьте точку остановки на строку с номером 0. Как это сделать, думаю, вы уже сами поняли. У номера строки появится красная точка, индикатор того, что точка остановки активна. Если вместо точки окружность, то значит, установленная точка не активна. Выключите проект и снова запустите. Программа прервалась именно там, где мы поставили точку. Красный треугольник (маркер) показывает на текущую строку. Поставьте свои точки. Потренируйтесь, запуская проект и используя опции пошаговой трассировки.

Но что это нам дает? Пока ничего, просто перемещаемся по коду не видя ни спецрегистров ни регистров пользователя.

- Спокойствие, только спокойствие! - как говаривал великий Карлсон, сейчас они появятся. В том же меню DEBUG отметьте пункт PIC CPU REGISTER .Теперь при трассировке кода вы сможете наблюдать содержимое спецрегистров. -А как же регистры пользователя, спросите вы.

Есть два способа увидеть содержимое регистров пользователя и спецрегистров одновременно, первый не очень удобный отметьте в меню DEBUG пункт PIC CPU DATA MEMORY .He удобный, потому что отображаются они все сразу, в виде таблицы и только во время паузы или на точке остановки.

Второй более продвинутый способ это WATCH WINDOW. Отметьте соответствующий пункт в меню DEBUG . Напоминаю, что выбор всех этих окон, возможен только на, находящемся в паузе или работающем проекте. Щелкните правой кнопкой по появившемуся окну WATCH WINDOW.

И так по пунктам:

ADD ITEMS (BY NAME) добавить элемент по имени

ADD ITEMS (BY ADDRESSES) добавить элемент по адресу

WATCHPOINT CONDITION условие для остановки

SELECT ALL выбрать все элементы

RENAME ITEM переименовать

COPY CLIPBOARD копировать в буфер обмена

DELETE ITEM удалить выбранное

в каком виде представлять данные (строка

(строка, байт,

DATA TYPE
слово и т.д.)
DISPLAY FORMAT формат данных (двоичный, десятичный и т.д.)

SHOW ADDRESSES

SHOW GRIDLINES

SHOW WATCH EXPRESSIONS

MINIMUM SIZE

показывать адрес показывать сетку показывать условие минимизировать размер

Щелкните по ADD ITEMS (BY NAME) , в появившемся списке выберите PORTA дважды щелкнув левой кнопкой по нему. Элемент добавится в окно WATCH WINDOW. Добавьте также PORTB , TRISA , TRISB . Когда закончите, закройте окно, нажав DONE . Добавьте DELAYL с адресом 0 0C , DELAYM 0X0D и DELAYH 0X0E . Для этого выберете ADD ITEMS (BY ADRESSES) , в поле NAME введите имя регистра, например, DELAYL , в поле ADDRESS естественно адрес и выберите формат

USIGNED INTEGER (целое без знака). Нажмите ADD. Добавьте остальные регистры самостоятельно.

Теперь измените формат отображения данных регистров TRISA , TRISB , PORTA и PORTB на двоичный BINARY . Нам удобнее рассматривать эти регистры как отдельные биты (выводы).

Снимите все точки остановки с программы. Запустите проект. Сейчас хорошо видно и изменение регистров в подпрограмме задержки и смена бита PORTB .

(рис prot_027)

Но и это далеко не все возможности. Добавим остановку по совпадению условия. Выберите WATCHPOINT CONDITION в меню WATCH WINDOW.

По порядку:
Turn off (disable) watch pointleftleftзапретить остановку по условию

Suspend the simulation if any expression is trueleftleftостановить симулятор если любое

условие соблюдено .

Stop the simulation only when all expression is true остановить симулятор когда все условия соблюдены.

ITEMleftleftвыбор регистра для которого применяются условие

MASKleftleftмаска AND, OR , XOR и значение маски

CONDITIONleftleftвыбор условия (равно , больше чем , меньше чем и т.д.)

VALUEleftleftзначение с которым сравнивается регистр.

Введите в поле ITEM PORTB ,в поле MASK AND 0X01 далее EQUALS (равно) 0X01. Таким образом, мы выставили условие симулятору остановиться, когда бит 0 PORTB буден равен 1. Также отметьте Suspend the simulation if any expression is true .

Запустите симулятор. Первая остановка внеплановая. Из-за того, что при старте в регистре был мусор. Продолжите симуляцию, теперь остановки будут проходить как нужно. И так, мы остановились. Посмотрите в окне отладчика, на какой команде встал симулятор. Правильно, на CALL DELAY 500 , а предыдущая была BSF LED именно она и установила

бит 0 PORTB в 1.

равен

Попробуйте сами ввести условие, например, остановиться, когда DELAYL

.

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

56

Создайте новый проект с такими же как и у предыдущего размерами листа схемы. Наберите следующие элементы: PIC16F84 , 7SEG-MPX4CC-BLUE это семисегментный четырехразрядный индикатор с синим свечением, находится в категории OPTOELECTRONICS .

Подсоедините PORTA к катодам, a PORTB к сегментам. Ну, как? Получилось нечто страшное.

рис 29

Как же быть ? Вот если бы все провода связать в «пучок».Без проблем! Удалим все соединения. Выберем режим BUS шина.

рис30

Теперь отмечая левой кнопкой точки, проведем шину как на рисунке. Конец шины отмечается щелчком правой кнопки.

рис 31

Соедините выводы микроконтроллера и индикатора напрямую с шиной . А как же определять, какой провод куда подключен? Для этого существуют метки. Перейдем в режим WIRE LABLE (метка провода), щелкнув

по пиктограмме с надписью LBL.Начните с индикатора, щелкая по выводу, вы открываете окно ввода и редактирования метки. Чтобы не запутаться давайте имена меткам в соответствии с именами выводов индикатора ( A-A B-B 1-1 и т.д.) Если не «попадаете» по проводу, увеличьте схему, покрутив колесо мыши или нажав F6. Закончив с индикатором переходите к микроконтроллеру . Здесь уже нет необходимости вводить с клавиатуры символы . Все те символу которые вы ввели , уже присутствуют в списке. Нажмите в поле ввода кнопку выбора и вы сами все увидите.

Подключите так RA0-4...RA3-1 , RB0-AleftleftRB7-H(DP).

Теперь что бы убедиться, что все это работает, откомпилируйте этот исходник (MPX.ASM) и подключите полученную прошивку к проекту. Выставьте тактовую частоту 4 МГц .

list p=16F84A

#include <p16F84A.inc>

leftleftCONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON &_HS_OSC

CBLOCK 0x0C w_temp,status_temp,tik , scan scantemp ,CAT_1 , CAT_2 ,CAT_3 ,C

ENDC ;

OPTION_SETUP EQU B'00000110'

; Определяем регистры ; и переменные

; Резисторы подтяжки ; включены ,редделитель ; к TMR0 1:16 , приращение ; от внутреннего источника

; СТАРТ (СБРОС) *

ORG 0x000 goto init

; Вектор сброса

; Вектор

; ПРЕРЫВАНИЕ

;

ORG 0x004

movwf w_temp movf STATUS,w

*

прерывания

; Сохраняем временно ; STATUS регистр и

movwf status_temp

аккумулятор

INCF tik,f

BCF STATUS, RP0 RLF scan,W BTFSS scan,1 MOVF CAT_3,W BTFSS scan,0 MOVF CAT_2,W BTFSS scan,3 MOVF CAT_1,W BTFSS scan,2 MOVF CAT_4,W MOVWF scantemp CLRF PORTB RLF scan MOVF scan,W

ANDLW 0FH MOVWF PORTA MOVF scantemp,W MOVWF PORTB

movlw 0XAA movwf TMR0

bcf INTCON,T0IF

movf status_temp,w movwf STATUS swapf w_temp,f swapf w_temp,w retfie

; Увеличим счетчик

; (пока он считает только

; прерывания)

; Движок мультиплексора ; индикатора

;

;

;

;

Маскируем 4 ; разряд PORTA для ; будущего

; В TMR0 костанту ; отсчета

; Сбросим флаг чтобы ; при выходе из прерывания ; сразу же не попасть в него

; Востановим сохраненые нами ; регистры и вернемся из ; прерывания

; ИНИЦИЛИЗАЦИЯ РЕГИСТРОВ

*

init

;

; Очищ

; ; ;

clrf PORTA

clrf PORTB

clrf TMR0

bsf STATUS, RP0

MOVLW OPTION_SETUP

movwf OPTION_REG

movlw B'00000000'

movwf TRISB

movlw B'11100000'

movwf TRISA

bcf STATUS, RP0

clrf INTCON

аем спецрегистры

; и делаем все биты PORTB ; выходами ; биты 0-4 PORTA выходы

movlw 0x0C movwf FSR

;

clear_mem

clrf INDF incf FSR, F btfss FSR, 6 goto clear_mem clrf FSR

movlw 0EEh MOVWF scan movwf PORTA

movlw 0XAA movwf TMR0 movlw b'10100000' movwf INTCON GOTO MAIN

; Чистим регистры ; пользователя

;

;

; Грузим в scan

; первоначальное состояние

; катодов индикатора

; В TMR0

точку отсчета

; Разрешаем прерывания

; от TMR0 и общее

; и переходим на основной цикл

; ОСНОВНОЙ ЦИКЛ

*

;

MAIN

movlw 0x73 movwf CAT_1 movlw 0X3F movwf CAT_2 movlw 0X78 movwf CAT_3 movlw 0x6D movwf CAT_4

LOOP NOP NOP GOTO LOOP

грузим значения для индикаторов

и зацикливаемся навсегда

END

Запустите проект.

Если все в порядке на индикаторе появится надпись StOP с маленькой t .

Поставьте условие остановки WATCHPOINT CONDITION: INTCON , AND 0X04 ,

EQUALS , 0X04.

Теперь мы будем прерываться каждый раз, когда возникает прерывание по переполнению

таймера TMR0, то есть при переходе его с FF на 00, перед самым переходом на обработку

прерывания. Чтобы убедиться в этом, запустите проект. Мы встали на строке 0045 с

меткой LOOP , таймер, как и следовало, ожидать, равен 0 , флаг прерывания TOIF (бит 3

INTCON ) выставлен. Нажмите кнопку шаг и попадем прямиком на адрес 0004 , который

как вы знаете, является вектором прерывания.

И на «сладкое» немного о инструментах.

Сначала выберем осциллограф. Включим режим VIRTUAL INSTRUMENTS и в

появившемся списке выберем OSCILLOSCOPE.

Осциллограф двухканальный. Подключите канал A к катоду 1 , канал B к катоду 2. Запустите проект. Если у вас получилась другая картинка, установите ручки переключатели в соответствии с рисунком. Поэкспериментируйте с органами управления осциллографом. Управление такое же, как и у реального. Так что, если возникнут вопросы, обращайтесь к соответствующей литературе.

и

рис 32

Анализатор логических уровней. Выберете режим инструментов.

В окне выбора щелкните по LOGIC ANALISER .Разместите и подсоедините его как показано на рисунке.

рис33

Поставьте проект на паузу, нажав соответствующую кнопку. Настройте анализатор как показано на рисунке и запустите проект, нажав ПУСК.

рис 34 Триггер сработает, и на экране анализатора появится следующие:

рис 35

Для чего нужен анализатор, теперь думаю объяснять не надо. К анализатору можно подключать восемь одиночных каналов и две шины. Слева экрана находятся окна выбора условий для срабатывания триггера. Восемь для каналов и два для шин. Для каналов условия определяются логическими уровнями, а для шин шестнадцатеричным числом от 0 до FF. Триггер сработает если все условия совпадут. Регуляторы справа экрана: нижний это выбор разрешения, верхний -увеличение экрана просмотра .Кнопка с надписью Armed Trigger взвод триггера . Под ней кнопка выбора заполнения буфера анализатор до и после точки срабатывания триггера , которая обозначена на экране пунктирной вертикальной линией .Два регулятора сверху перемещают временные маркеры , оба равнозначны, но имеют разные цвета . В окошках под регуляторами отображается время от начала буфера до маркера. В окошке с надписью Delta B-A показана разность значений верхних окон, то есть «расстояние» от одного маркера до другого.

С использованием оставшихся инструментов попробуйте разобраться сами. Экспериментируйте, не бойтесь испортить чего-либо.

Есть более мощные средства анализа, чем описанные выше осциллограф и логический анализатор. Собранны они в группу SIMULATION GRAPH. Описание всех их и их возможностей займет очень много времени. Поэтому приведу лишь небольшой пример, который поможет вам разобраться в принципе использования анализаторов. Выберите режим SIMULATION GRAPH. В списке щелкните по DIGITAL (цифровой). Теперь щелкнув в пустом месте схемы, не отпуская левой кнопки, растяните прямоугольник. Это окно анализатора. Сейчас нам нужно добавить пробники. Включите режим VOLTAGE PROBE . Разместите пробники на проводах идущих к катодам

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

Если не получается, попробуйте увеличить схему.

Теперь поместив курсор на окне анализатора, не нажимая кнопок мыши, нажмите пробел.

(рис prot_036)

Чтобы развернуть или наоборот свернуть окно анализатора щелкните левой кнопкой по зеленой полосе вверху окна.

Максимов Алексей aka Dosikus aka Maksimus


Руководство по интерактивному моделированию

Navigation: Proteus VSM >

Руководство по интерактивному моделированию

Return to chapter overview

Введение

Цель данного руководства – показать вам на примере создания простой схемы, как проводить интерактивное моделирование, используя Proteus VSM. Пока мы сконцентрируемся на использовании Активных Компонентов (Active Components) и возможностях отладки редактора ISIS, мы также рассмотрим основы трассировки и основы управления схемами. Полный обзор этих тем может быть найден в Инструкции ISIS

Схема, которую мы будем использовать для моделирования – это два светофора, соединенных с микроконтроллером PIC16F84 как показано ниже.

Пока мы будем рисовать схему с нуля, законченную версию можно будет найти по пути "Samples\Tutorials\Traffic.DSN" в папке, где у вас установлен Proteus. Пользователи, которые знакомы с основными способами работы в ISIS, могут выбрать уже готовую схему и перейти к разделу о программе микроконтроллера. Однако, обратите пожалуйста внимание на то, что файл этого проекта содержит предумышленную ошибку – прочитайте для более подробной информации.

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

Вычерчивание схемы

Размещение элементов:

Начнем с размещения двух светофоров и PIC16F84 на новом макете схем. Начните новый проект, выберите иконку Компонент (Component) (все иконки имеют всплывающие подсказки и контекстно-зависимую справку, что помогает их использованию). Затем левый клик на букве ‘P’ наверху переключателя объектов (Object Selector), чтобы открыть окно Браузера Библиотек (Library Browser), которое появится поверх окна редактора (смотрите Основы Ввода Схем в Инструкции ISIS для более подробной информации).

Нажмите кнопку ‘P’ на клавиатуре и напечатайте ‘Traffic’ в поле “Ключевые слова” (Key words), и дважды кликните на результате, чтобы переместить светофоры в переключатель объектов. Сделайте то же самое для PIC16F84A.

Единожды выбрав в проект светофоры и PIC16F84, закройте Браузер Библиотек и кликните один раз на PIC16F84 в переключателе объектов (это выделит ваш выбор и элемент будет показан в окне предварительного просмотра в правом верхнем углу экрана). Теперь левый клик на окне редактора, чтобы поместить элемент на схему, – повторите процесс, чтобы разместить на схеме два светофора.

Перемещение и ориентация:

Мы создали узлы схемы, но случайно не идеально разместили их. Чтобы переместить элемент, кликните на нем правой кнопкой мыши (это выделит элемент), затем зажмите левую кнопку мыши и перетащите элемент (вы увидите контур элемента “следующий” за курсором мыши) на требуемую позицию. Когда контур будет там, где вы хотите, отпустите левую кнопку мыши, и элемент переместится на заданную позицию. Обратите внимание, что в данный момент элемент всё еще выделен – правый клик на пустом месте окна редактора вернет элементу нормальное состояние.

Чтобы повернуть элемент, правый клик на нем так же, как и в предыдущем случае, а затем левый клик на одной из иконок вращения (Rotation). Это повернет элемент на 90 градусов – повторите это столько раз, сколько требуется. Опять же, хороший способ – правый клик на пустом месте схемы, когда вы закончили, чтобы восстановить первоначальное состояние элемента.

Размечайте схему осмысленным способом (например, исходя из простоты восприятия), двигайте и поворачивайте элементы, как требуется. Если у вас возникли проблемы, советуем поработать с руководством в справке ISIS – ISIS Tutorial.

Для нашей цели, мы игнорируем 2D графику, чтобы не запутываться, и сконцентрируемся на создании моделируемой схемы – для тех, кому интересно, полный доклад о графических возможностях ISIS можно найти в разделе 2D графика (2D Graphics).

Масштаб и захват:

Как правило, при разводке схемы полезна возможность изменения масштаба требуемой территории. Нажатие клавиши F6 или иконки Увеличить (Zoom In) увеличит масштаб вокруг текущей позиции мыши, или, в качестве альтернативы, зажмите клавишу SHIFT, и зажав левую кнопку мыши, выделите территорию, которую нужно увеличить. Чтобы уменьшить масштаб, нажмите клавишу F7 или иконку Уменьшить (Zoom Out), или, если вы хотите уменьшить так, чтобы видеть всю схему целиком, нажмите клавишу F8 или используйте колесо мыши, чтобы уменьшить или увеличить требуемую территорию. Соответствующие команды могут быть доступны меню Вид (View).

ISIS имеет очень мощные возможности, называемые Real Time Snap. Когда курсор мыши находится поблизости от конца вывода или проводника, местоположение курсора захватывается этими объектами. Это позволяет легко редактировать и управлять схемой. Эта возможность может быть найдена в меню Инструменты (Tools) и по умолчанию включена.

Более подробная информация о масштабе и захвате может быть найдена в Инструкции ISIS – Окно Редактора.

Трассировка соединений:

Простейший способ соединения схемы – это использовать опцию автотрассировки проводника (Wire Auto Router) в меню Инструменты (Tools). Убедитесь, что она включена (должна быть видна отметка в меню слева от опции). Для более подробной информации смотрите раздел “Автотрассировка проводника” в Инструкции ISIS. Увеличьте PIC, чтобы все выводы были видны, затем поместите курсор мыши на конец вывода 6 (RB0/INT). Вы увидите маленький ‘х’-курсор на конце мыши. Это показывает, что мышь в правильной позиции для присоединения проводника к этому выводу. Левый клик мышью, чтобы начать соединение, и затем переместите мышь к выводу, соединенному с красным фонарём одного из светофоров. Когда вы снова получите ‘х’-курсор над этим выводом, кликните левой кнопкой мыши, чтобы завершить соединение. Повторите этот процесс для подключения обоих светофоров как показано образце схемы.

Пара вопросов о процессе разводки, заслуживающих упоминания:

· Вы можете делать соединения в любом режиме – ISIS достаточно сообразителен, чтобы понять, что вы делаете.
· Когда включена автотрассировка проводника (Wire Auto router), разводится вокруг препятствий и, как правило, ищется удобная траектория между соединениями. При этом способе, как правило, вам только нужно сделать левый клик на обоих концах соединения и предоставить ISIS возможность позаботиться о пути между ними.
· ISIS автоматически переместит экран, если вы затронете границу окна редактора, перемещая проводник. Учитывая это, вы можете увеличить масштаб до подходящего уровня и, при условии, что вы знаете приблизительную позицию элемента-цели, просто подталкивайте экран, пока не увидите его. В качестве альтернативы, вы можете увеличивать и уменьшать масштаб, пока перемещаете проводник (используя клавиши F6 и F7).

В заключение, мы должны соединить вывод 4 с клеммой питания. Выберите иконку “Клемма” (Terminal) и выделите “Питание” (POWER) в переключателе объектов. Теперь сделайте левый клик на подходящем месте и поместите клемму. Выберите подходящую ориентацию и присоедините клемму к выводу 4, используя тот же способ, что и раньше.

На этом этапе рекомендуем вам загрузить законченную версию схемы – это избавит от любой неразберихи, если нарисованная вами версия в каком-то месте отличается от нашей! Также, если вы не приобрели библиотеку моделей pic-контроллеров, для того, чтобы продолжить, вы должны загрузить приготовленный файл примера.

Написание программы

Листинг исходной программы

Для успеха нашей консультации мы подготовили следующую программу, которая записывается в PIC для управления светофорами. Эта программа приготовлена в файле TL.ASM и может быть найдена в папке "Samples\Tutorials".

   ; PIC16F844 is the target processor

   LIST    p=16F84

   ; Include header file

   #include "P16F84.INC"

   ; Temporary storage

   CBLOCK 0x10

     state

     l1,l2

   ENDC

   org     0         ; Start up vector.

   goto    setports  ; Go to start up code.

   org     4         ; Interrupt vector.

halt

   goto    halt      ; Sit in endless loop and do nothing.

setports

   clrw              ; Zero in to W.

   movwf  PORTA  ; Ensure PORTA is zero before we enable it.

   movwf  PORTB  ; Ensure PORTB is zero before we enable it.

   bsf    STATUS,RP0 ; Select Bank 1

   clrw              ; Mask for all bits as outputs.

   movwf  TRISB      ; Set TRISB register.

   bcf    STATUS,RP0 ; Reselect Bank 0.

initialise

   clrw              ; Initial state.

   movwf  state      ; Set it.

loop

   call   getmask    ; Convert state to bitmask.

   movwf  PORTB      ; Write it to port.

   incf   state,W    ; Increment state in to W.

   andlw  0x04       ; Wrap it around.

   movwf  state      ; Put it back in to memory.

   call   wait       ; Wait :-)

   goto   loop       ; And loop :-)

   ; Function to return bitmask for output port

   ;for current state.

   ; The top nibble contains the bits for one set

   ;of lights and the lower nibble the bits for

   ;the other set. Bit 1 is red, 2 is amber  and

   ;bit three is green. Bit four is not used.

getmask

   movf   state,W ; Get state in to W.

   addwf  PCL,F   ; Add offset in W to PCL to calc.goto.

   retlw  0x41    ; state==0 is Green and Red.

   retlw  0x23    ; state==1 is Amber and Red/Amber

   retlw  0x14    ; state==3 is Red   and Green

   retlw  0x32    ; state==4 is Red/Amber and Amber.

   ; Function using two loops to achieve a delay.

wait

   movlw  5

   movwf  l1

w1  call   wait2

   decfsz l1

   goto   w1

   return

wait2

   clrf   l2

w2

   decfsz l2

   goto   w2

   return

   END

На самом деле в коде есть предумышленная ошибка, но подробнее об этом позже…

Прикрепление исходного файла

Следующий этап – присоединить программу к нашей схеме, чтобы мы могли успешно моделировать ее поведение. Сделаем это через команды меню Исходник (Source). Теперь перейдите в меню Source и выберите команду “Добавить/удалить исходные файлы” (Add/Remove Source Files). Нажмите кнопку New, зайдите в папку “Samples\Tutorials” и выберите файл TL.ASM. Нажмите “открыть” и файл появится в выпадающем списке имен файлов исходных кодов (Source Code Filename).

Теперь нужно выбрать программу формирования кода для файла. Для нашей цели подойдет программа MPASM. Эта опция будет доступна из выпадающего списка Code Generation Tool, выберите ее обычным способом, кликая левой кнопкой мыши(обратите внимание, что если вы планируете использовать новый ассемблер или компилятор, вам нужно зарегистрировать его, используя команду “Определить программу формирования кода” (Define Code Generation Tools)).

В завершение, необходимо установить с каким файлом работает процессор. В нашем примере это будет tl.hex (hex-файл, генерируемый MPASM, являющийся результатом трансляции tl.asm). Чтобы прикрепить этот файл к процессору, кликните на pic-контроллере сначала правой кнопкой мыши, а потом левой. Это откроет диалоговую форму редактирования элемента, которая содержит поле “Файл программы” (Program File). Если в нем еще не установлен tl.hex, то введите путь к файлу либо вручную, либо просматривая место, где находится файл, нажав ‘?’ справа от поля. Установив hex-файл, нажмите ОК, чтобы выйти из диалоговой формы.

Теперь мы прикрепили исходный файл к проекту и установили, какая будет использоваться программа формирования кода. Более детальное разъяснение системы управления исходными кодами доступно в данной документации далее.

Отладка программы

Моделирование схемы

Чтобы смоделировать работу схем, кликните левой кнопкой мыши по кнопке Play на анимационной модели в правом нижнем углу экрана. Строка состояния покажет время, в течение которого запущена анимация. Обратите внимание на то, что один из светофоров зеленый в то время как другой красный, на схеме также можно увидеть логические уровни на выводах. Однако заметьте, что светофоры не изменяют состояния. Это из-за того, что в код внесена предумышленная ошибка. На данном этапе это подходит для того, чтобы отладить нашу программу и найти проблему.

Режим отладки

Чтобы удостоверить, что мы тщательны в отладке, мы остановим текущее моделирование. Покончив с этим, вы можете начать отладку нажатием CTRL+F12. Появятся два окна – первое хранит текущие значения регистров, второе показывает исходный код программы. Любое из них может быть активировано из меню “Отладка” (Debug) вместе с совокупностью других информационных окон. Мы также хотим активировать смотровое окно (Watch Window), в котором мы можем наблюдать внесенные изменения в параметры состояния. Полное разъяснение этого элемента доступно в разделе, озаглавленном “Смотровое окно”, в данной документации.

Установка точки останова

Взгляните на программу, можно заметить, что она замкнута в повторяющемся цикле. Поэтому будет хорошей идеей перед тем, как начать, установить точку останова в начале этого цикла. Вы можете сделать это выделением мышью строки (по адресу 0005 и 000E), а затем нажатием F9. Затем нажмите F12, чтобы запустить прогон программы. Теперь вы увидите сообщение в строке состояния, показывающее, что достигнута цифровая точка останова, а также адрес счётчика команд. Он соответствует адресу первой точки, которую мы установили.

Список клавиш отладки можно найти в меню Debug, но мы, большей частью, будем использовать F11, чтобы пошагово отлаживать программу. Теперь нажмите F11 и заметьте, что красная стрелка слева переместилась вниз к следующей инструкции. Мы фактически выполнили инструкцию ‘clrw’, а затем остановились. Вы можете проверить это, взглянув на регистр W в окне регистров и обратив внимание, что он обнулен.

Теперь нужно определить, что должно произойти при выполнении следующей инструкции, а затем проверить, действительно ли это произошло. Для примера, следующая инструкция перемещает содержимое регистра “W” в PORT A, т.е. PORT A будет очищен. Выполнение этой инструкции и проверка окна регистров подтверждают, что это на самом деле так. Продолжайте в том же духе пока не достигните нашей второй точки останова, обратите внимание, что оба порта настроены на выход (как предписано регистром TRISB) и установлены в нули.

И так, мы остановились на вызове функции, у нас есть опция перешагивания через функции (Stepping Over) (нажатием клавиши F10), но для полноты мы прошагаем через каждую инструкцию. Нажатие здесь F11 переносит к первой выполняемой строке функции getmask. Шагнув вперед, мы видим, что операция перемещения была успешна, и что мы попадаем в правильном месте для добавления нулевого сдвига в нашей таблице соответствия. Следовательно, когда мы возвращаемся в основную программу, мы имеем “маску”, которую и ожидали. Делая следующий шаг и записывая маску в порт, мы можем видеть правильный результат на схеме. Еще один шаг для инкриментирования режима также успешен, что подтверждается окном регистров, где значение в регистре W увеличилось на 1.

Следующий шаг содержит инструкцию, предназначенную для охватывания режима нулями, когда он возрастет выше 3. Это, как можно увидеть из смотрового окна, не выполняется. Очевидно, что режим увеличился здесь до 1, что соответствует маске и верно для следующего выполнения цикла.

Поиск ошибки

Скрытый анализ показывает, что причина проблемы в побитовом И с четверкой вместо тройки. Режимы, которые мы хотим 0, 1, 2, 3 при побитовом И их с 4 дают 0. Вот почему, когда запущено моделирование, режим светофоров не меняется. Решение в простой замене проблемной инструкции на И с 3 вместо 4. Это означает, что режим увеличивается до 3, и когда регистр W увеличится до 4, режим будет обнулен. Альтернативное решение в проверке, когда ‘W’ возрастет до 4, и сбросе его в ноль.


Моделирование с ипользованием диаграмм

Navigation: Proteus VSM >

Моделирование с ипользованием диаграмм

 Return to chapter overview

Введение

Цель данного руководства: показать вам, используя простую усилительную цепь, как выполнять моделирование на основе диаграмм, используя PROTEUS VSM. Оно шаг за шагом охватит:

· размещение диаграмм, пробников, генераторов;
· выполнение эффективного моделирования;
· использование диаграмм для отображения результатов и проведения измерений.

Руководство не охватывает основные направления использования ISIS, такие как процедуры размещения элементов, соединение их проводниками, маркировка объектов и т.д. Они рассмотрены в некоторой степени в руководстве по интерактивному моделированию или, более подробно, в инструкции ISIS. Если вы не ознакомились с использованием ISIS, вы должны сделать это перед тем, как опробовать это руководство.

Мы строго рекомендуем всё делать, как написано в руководстве, перед тем, как пробовать делать свои собственные моделирования на основе диаграмм: усваивание идей сделает намного проще понимание материала справочных глав и сохранит много времени и нервов.

Начало работы

Схема, которую мы собираемся моделировать, - аудио усилитель на основе 741 операционного усилителя, который показано ниже. Она демонстрирует 741 в необычном включении, работающий от однополярного источника 5 вольт. Резисторы обратной связи R3 и R4 устанавливают коэффициент усиления около 10. Элементы R1, R2 и C1 устанавливают смещение на неинвертирующем входе и его разделение по постоянному току от входа схемы.

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

p2-1
Скриншот части проекта ASIMTUT1.DSN

Если хотите, можете начертить схему сами, или можете загрузить уже готовый файл проекта из папки “Samples\Tutorials\ASIMTUT1.DSN” внутри папки, где у вас установлен Proteus. Что бы вы не выбрали, на данном этапе у вас должен быть запущенный ISIS и нарисованная схема.

Генераторы

Чтобы проверить схему, мы должны обеспечить ее соответствующим входным сигналом. Будем использовать генератор прямоугольных импульсов для нашего испытательного сигнала. Объект генератор generators будет использоваться для получения необходимого сигнала.

Кликните на иконке Генератор generators , переключатель объектов покажет список доступных типов генераторов. Для нашего моделирования мы хотим генератор импульсов (Pulse). Выберите тип Pulse, переместите курсор мыши на окно редактора, справа от клеммы IN, и кликните левой кнопкой на проводнике, чтобы поместить генератор.

Объекты генераторов, как и другие объекты ISIS, поддерживают операции предварительного просмотра и поворота перед размещением, редактирования, перемещения, поворота и удаления объекта после размещения. (смотрите раздел Генераторы и Пробники данной инструкции).

Генераторы могут быть размещены на схеме обычным способом, с последующим соединением их проводниками, или как сделали мы, опустив его на уже имеющийся проводник. Если вы перетащите генератор, то ISIS решит, что вы хотите отсоединить его, и не перетащит за ним проводник, как он делает это для элементов.

Обратите внимание, как генератор автоматически установил связь с клеммой IN. Когда генератор подсоединяется к объекту проводником (или помещается прямо на имеющийся проводник), ему устанавливается имя узла схемы, к которому он подсоединен. Если у узла нет имени, тогда по умолчанию используется имя вывода ближайшего элемента.

В завершение, мы должны подредактировать генератор, чтобы установить форму импульсов, которую хотим. Чтобы редактировать генератор, выделите его правой кнопкой, а затем левый клик на нем сделает доступной диалоговую форму редактирования генератора (Edit Generator). Выберите поле “Максимальное напряжение” (High Voltage) и установите величину 10 мВ. Также установите длительность импульса (pulse width) 50 мкс (50u).

Нажмите кнопку ОК, чтобы принять изменения. Генераторы и Пробники дают полное описание свойств, поддерживаемых всеми типами генераторов. Для этой схемы нужен только один генератор, но их количество на схеме не ограничено.

Пробники

Определив вход нашей схемы, используя генератор, мы теперь должны разместить пробники в точках, которых мы хотим контролировать. Нам очевидно интересен выход, и несимметричный вход будет также полезен для исследования. Если нужно, то всегда можно добавить больше пробников в важные точки и повторить моделирование.

Чтобы установить пробник, левый клик на иконке Пробник напряжения (Voltage Probe) (убедитесь, что случайно не выбрали пробник тока – мы подойдем к нему позже). Пробники могут быть установлены на проводники или сначала размещены, а затем соединены проводниками, таким же способом как и генераторы. Переместите мышку на окно редактора, слева от вывода 3 U1, и кликните левой кнопкой, чтобы установить пробник на проводник, соединяющий вывод 3 с R1 и R2. Убедитесь, что установили пробник на проводник, так как нельзя его устанавливать на сам вывод. Обратите внимание, что он получил имя ближайшего элемента, к которому подсоединен, с именем вывода в скобках. Теперь установите второй пробник левым кликом только уже слева от клеммы OUT, на проводнике между узлом и клеммой.

Объекты пробников подобно генераторам и большинству других объектов ISIS поддерживают процедуры предпросмотра и ориентирования перед размещением, и редактирование, перемещение, переворачивание и удаление после размещения (смотрите раздел "Пробники" для более подробной информации). Пробники могут редактироваться, как правило, для изменения их метки-указателя. Имена, заданные по умолчанию, хорошо подходят в нашем случае, но, полезный совет, когда выделяете его, цельтесь в кончик пробника, а не в тело или метку-указатель.

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

Диаграммы

Диаграммы играют важную роль в моделировании: они не только действуют как средства демонстрации результатов, но и фактически определяют, какое моделирование выполняется. Разместив одну или более диаграмму и указав типы данных, которые вы предполагаете увидеть на диаграмме (логические уровни, напряжение, импеданс и т.д.), ISIS узнает, какой тип или типы моделирования выполнить, и какие части схемы должны быть включены в моделирование. Для анализа переходных процессов нам нужен аналоговый тип диаграммы (Analogue). Название “аналоговый” предпочтительнее, чем “переходная характеристика”, для того, чтобы отличать его от цифрового типа диаграмм (Digital), который используется для отображения результатов цифрового анализа, который в действительности специализированная форма анализа переходных процессов. Оба могут быть отображены одновременно, используя смешанную диаграмму (Mixed).

Чтобы разместить диаграмму, выберите иконку Диаграмма (Graph): переключатель объектов покажет список доступных типов диаграмм. Выберите тип Аналоговый (Analogue), переместите мышку на окно редактора, нажмите и удерживайте нажатой левую кнопку мыши, растяните прямоугольник до подходящего размера, а затем отпустите кнопку мыши, чтобы разместить диаграмму.

Диаграммы работают подобно другим объектам ISIS, хотя они имеют немного особенностей. Мы рассмотрим возможности, имеющие отношение к руководству, но следует внимательно прочитать справочную главу о диаграммах. Вы можете выделить диаграмму обычным способом, правой кнопкой мыши, а затем (используя левую кнопку мыши) перетащите одну из меток-манипуляторов или всю диаграмму, чтобы изменить размер и/или переместить диаграмму.

Теперь нам нужно добавить наши генератор и пробники на диаграмму. Каждый генератор имеет ассоциированный с ним пробник, поэтому не нужно помещать пробник прямо на генератор, чтобы увидеть форму колебаний на входе. Есть три способа добавления пробников и генераторов на диаграмму:

· Первый способ – по очереди выделять каждый пробник/генератор, перетаскивать их на диаграмму и отпускать там – как раз так же, как если бы мы перемещали объект. ISIS обнаружит, что вы пытаетесь поместить пробник/генератор на диаграмму, вернет пробник/генератор в первоначальное положение, и добавит запись в диаграмму с таким же указателем как и у пробника/генератора. Записи могут быть ассоциированы с правой и левой осями на аналоговой диаграмме, и пробники/генераторы добавятся к оси, ближе к которой они были опущены. Не обращайте внимания, где опустить пробник/генератор, новая запись всегда добавится ниже уже созданных.

Второй и третий способы добавления пробников/генераторов на диаграмму используют команду “Добавить запись” (Add Trace) в меню Диаграмма (Graph); эта команда всегда добавляет пробники в текущую диаграмму (когда более одной диаграммы, текущая диаграмма – диаграмма выбранная в данный момент в меню Graph).

· Если активировать команду Add Trace без выделенных пробников и генераторов, тогда появится диалоговая форма “Добавить краткую запись”, и пробник может быть выбран из списка всех пробников проекта (включая пробники на других схемах).
· Если уже выделены пробники/генераторы, то активировав команду Add Trace, вы получите предложение быстро добавить выделенные пробники в текущую диаграмму; выбор варианта NO активирует диалоговую форму “Добавить краткую запись”, описанную ранее. Выбор варианта YES добавит все выделенные пробники/генераторы на текущую диаграмму в алфавитном порядке.

Мы воспользуемся Quick Add для добавления наших пробников и генератора на диаграмму. Выделите любой пробник или генератор, или, если больше одного, растяните прямоугольник выделения вокруг всей схемы – команда Quick Add игнорирует все выделенные объекты, кроме пробников и генераторов. Выберите опцию Add Trace из меню Graph и ответьте напоминанию Да. Записи появятся на диаграмме (ISIS думает, что это текущая диаграмма, так как он единственный и использовался последним). В настоящий момент, записи состоят из имени (на левой оси) и пустой области данных (основное тело диаграммы). Если записи не появились на диаграмме, то это вероятно из-за того, что она слишком мала, чтобы ISIS начертил их. Измените размер диаграммы, выделив его и перетащив угол, чтобы сделать достаточно большим.

Когда это произойдет, наши записи (расположенные в алфавитном порядке) появятся в рациональном виде. Однако вы можете перетасовать их. Чтобы сделать это, обеспечьте, чтобы диаграмма не была выделена, кликните правой кнопкой на имени записи, которую вы хотите переместить или редактировать. Запись подсветится, чтобы показать, что она выделена. Теперь вы можете, используя левую кнопку мыши, перетащить запись вверх или вниз или редактировать запись (левым кликом без перемещения мыши), правой кнопкой удалить запись (т.е. удалить ее из диаграммы). Чтобы снять выделение со всех записей, кликните правой кнопкой мыши где-нибудь на диаграмме, но не на метке записи (это выделит или удалит запись).

Остался последний этап установки, который нужно выполнить перед началом моделирования, и это установка времени выполнения моделирования. ISIS моделирует схему столько времени, сколько указано на конце оси х диаграммы, а для новой диаграммы по умолчанию это одна секунда. Для нашей цели мы хотим, чтобы входные прямоугольные импульсы были довольно высокой звуковой частоты, скажем, около 10кГц. В итоге нужен период 100мкс. Выделите диаграмму и левым кликом вызовите диалоговую форму редактирования диаграммы переходных процессов. Эта форма содержит поля, которые позволят вам озаглавить диаграмму, точно установит время начала и окончания моделирования (это соответствует левой и правой крайним точкам на оси х), промаркировать левую и правую оси (это не отображается на цифровых диаграммах), так же указать основные свойства цикла моделирования. Всё, что нам нужно – это изменить время останова с 1.00 на 100мкс (вы можете буквально записать 100u – ISIS конвертирует это в 100E-6) и выбрать ОК.

Проект теперь готов для моделирования. На этом этапе вероятно будет лучше загрузить нашу версию проекта (“Samples\Tutorials\ASIMTUT2.DSN”), чтобы избежать каких-либо проблем во время текущего моделирования и в последующих параграфах. В качестве альтернативы вы можете продолжить со схемой, которую ввели сами, и загрузить ASIMTUT2.DSN только, если возникнут проблемы.

Моделирование

Чтобы смоделировать схему, всё, что вам необходимо, запустить команду Моделировать (Simulate) в меню Graph (или использовать “горячую” клавишу клавиатуры: пробел). Команда Simulate обеспечит моделирование схемы и обновление текущей диаграммы (которая отмечена в меню Graph) в соответствии с результатами моделирования.

Сделайте это сейчас. Строка состояния покажет, как быстро проходит процесс моделирования. Когда моделирование будет завершено, диаграмма перерисуется заново с новыми данными. Для текущей версии ISIS (7.1.sp2) и ядра симулятора начальное время диаграммы игнорируется – моделирование всегда начинается с нулевого момента и продолжается пока не достигнет времени останова, или пока симулятор не достигнет состояния покоя. Вы можете прервать моделирование в середине нажатием клавиши ESC.

Протокол моделирования сохраняется для последнего выполненного моделирования. Вы можете увидеть протокол, используя команду View Log в меню Graph (или горячими клавишами CTRL+'V'). Протокол для аналогового моделирования редко делается для захватывающего чтения, за исключением докладов о предупреждениях и ошибках, которые произошли, и где вы можете точно найти, какие детали вышли из строя. Однако в некоторых случаях протокол моделирования предоставляет полную информацию, которая труднодоступна в записях диаграммы.

Если вы запустите команду Simulate во второй раз, вы можете заметить необычное – моделирование не происходит. Это потому что сектор управления ISIS достаточно сообразителен, чтобы решить, изменились ли компоненты проекта, влияющие на конкретную диаграмму, и выполняет моделирование только, если необходимо. Так как на нашей схеме ничего не изменилось, моделирование не запустится. Если по какой-то причине вы хотите всегда моделировать диаграмму заново, то вы можете поставить галочку Всегда моделировать (Always Simulate) на диаграмме в диалоговой форме редактирования анализа переходных характеристик. Если вы сомневаетесь, что моделирование было на самом деле, вы можете проверить галочку Протокол списка соединений (Log Netlist) в той же диалоговой форме; это включит список соединений симулятора в протокол моделирования.

И так первое моделирование завершено. Взгляните на кривые на диаграмме, какие-то детали на них увидеть трудно. Чтобы проверить, работает ли схема, как ожидалось, нам нужно сделать несколько измерений.

Проведение измерений

Диаграмма, расположенная рядом со схемой, уменьшена. Чтобы измерить время, мы должны ее увеличить. Чтобы сделать это, сначала удостоверьтесь, что диаграмма не выделена, а затем кликните левой кнопкой мыши на строке заголовка диаграммы; диаграмма перерисуется заново в собственном окне. При этом строка меню вверху экрана сохранится. Ниже нее, на левом краю – экрана область, на которой показаны метки записей, а справа от нее сами записи. Внизу экрана, слева – панель инструментов, а справа – область состояния, которая показывает информацию о положении курсора времени. И так это новая диаграмма, и мы пока еще не проводили измерений, поэтому курсор невидим на диаграмме, и строка состояния показывает просто заглавное сообщение.

Графики обозначены цветами, которые соответствуют их меткам. Графики OUT и U1(POS IP) сгруппированы наверху экрана, в то время как график IN лежит внизу. Чтобы рассмотреть графики более подробно, нам нужно отделить график IN от остальных двух. Это может быть достигнуто перетаскиванием левой кнопкой мыши метки графика на правую сторону экрана. Это вызовет появление правой оси y, которая проградуирована отдельно от левой. Теперь график IN кажется намного больше, потому что ISIS выбрал для правой оси более мелкий масштаб, чем для левой. Чтобы очистить диаграмму, возможно лучше удалить график IN совсем, так как вполне достаточно U1(POS IP). Повторный правый клик на метке IN удалит его. Теперь диаграмма вернулась к одиночной (левой) оси y.

Мы измерим два параметра:

коэффициент усиления по напряжению схемы; примерное время среза на выходе.

Эти измерения проводятся, используя маркеры.

Каждая диаграмма имеет два маркера, называемых как Базовый и Простой. Базовый маркер отображается красным цветом, а простой – зеленым. Маркер всегда “заперт” на графике, график, который “захватил” маркер, отмечается маленьким крестиком, который перемещается по временной диаграмме. Маленькие метки на обоих х- и у-осях соответствуют позиции и перемещению крестика, что на порядок облегчает отсчитывание показаний на осях. Если перемещать, используя клавиатуру, маркер переместится к следующему маленькому делению на оси х.

Начнем с установки Базового маркера. Используются одинаковые клавиши/действия для обращения к обоим, Базовому и Простому маркерам, выбор которых фактически осуществляется использованием клавиши CTRL на клавиатуре. Базовый маркер, наименее часто используемый из двух, всегда доступен при нажатой клавише CTRL. Чтобы установить маркер, всё, что вам нужно, – это указать на график (не на метку графика – это используется для другой цели), где вы хотите поместить маркер, и кликнуть левой кнопкой. Если клавиша CTRL нажата, вы поместите (или передвинете) Базовый маркер; если клавиша CTRL не нажата, то вы поместите (или передвинете) Простой маркер. Вы можете перемещать маркер, нажата пока кнопка мыши (и вспомогательная клавиша для Базового маркера). И так, нажмите (и удерживайте нажатой) клавишу CTRL, передвиньте курсор мыши к правому краю диаграммы и нажмите на левую кнопку мыши. Появится красный Базовый маркер. Передвиньте маркер (всё ещё удерживая клавишу CTRL) на 70 или 80 микросекунд на оси х. Надпись в строке состояния удалится, и теперь показывается время маркера (красное, слева) и напряжение маркера рядом с именем данного графика (справа). Мы хотели, чтобы это был график OUT.

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

Теперь поместите Простой маркер на график OUT между 20 и 30 микросекундами. Порядок действий в точности такой же, что и с Базовым маркером, только уже не нужно зажимать клавишу CTRL. Время и напряжение для простого маркера теперь добавлены в строку состояния (они зеленого цвета).

Также отобразится разница по времени и по напряжению между позициями обоих маркеров. Разница напряжений получается примерно 100 мВ. Входной импульс был высотой 10 мВ, следовательно, усилитель имеет коэффициент усиления по напряжению 10. Обратите внимание, что разность положительна, потому что Простой маркер выше Базового, а величина изменения рассчитывается Простой минус Базовый.

Мы можем также измерить время спада, используя величину разницы по времени, расположив маркеры на обеих сторонах спада выходного импульса. Сделать это можно, перетащив маркеры мышкой или с помощью клавиш со стрелками вправо и влево (не забывайте про клавишу CTRL для Базового маркера). Только Простой маркер должен быть на кривой справа (для упорядочивания результата), а Базовый должен быть на углу, где начинается задний фронт. Вы обнаружите, что задний фронт составляет меньше 10 мкс.

Использование пробников тока

Теперь, когда мы закончили наши измерения, мы можем вернуться к схеме, только закройте окно диаграммы обычным способом или, чтоб быстрее, нажмите ESC на клавиатуре. Сейчас мы будем использовать пробник тока, чтобы проверить ток в цепи обратной связи, измерив ток через резистор R4.

Пробники тока используются подобно пробникам напряжения, но с одним важным отличием. Пробник тока нуждается в направлении, поставленном ему в соответствие. Пробники тока разрывают проводник и вставляются в разрыв, следовательно, им нужно знать, в каком направлении развернуться. Это делается просто путём их размещения. При ориентации по умолчанию (наклон вправо) в горизонтальном проводнике пробник измеряет силу тока слева направо. Чтобы измерить силу тока в вертикальном проводнике, необходимо повернуть пробник на 90° или 270°. Размещение пробника на вершине угла – ошибка, о которой будет сообщено при запуске моделирования. Если сомневаетесь, то взгляните на стрелку условного обозначения. Она указывает на направление тока.

Выберите пробник тока, кликнув на иконке “Пробник тока” (Current Probe) [image] . Кликните левой кнопкой на иконке вращения по часовой стрелке, чтобы стрелка указывала вниз. Затем поместите пробник на вертикальном проводнике между правой стороной R4 и выводом 6 U1. Добавьте пробник на правую сторону диаграммы выделением и перетаскиванием пробника на правый край свернутой диаграммы. Правая сторона – хороший выбор, потому что их размерность отличается от пробников напряжения, поэтому нужно отделит ось, чтобы детально их отобразить. Сейчас для пробника тока график не нарисован. Нажмите клавишу Пробел, чтобы по новой смоделировать диаграмму, и график появится.

Даже по свёрнутой диаграмме мы можем увидеть, что ток в цепи обратной связи близок по форме к сигналу на выходе, как и предполагалось для операционного усилителя. Ток изменяется от 10 мкА до 0 на высокой и низкой частях графика соответственно. Если желаете, то диаграмму можно развернуть до максимума и рассмотреть график более подробно.

Частотный анализ

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

Чтобы выполнить частотный анализ, необходима частотная диаграмма. Кликните левой кнопкой на иконке Диаграмма (Graph), чтобы отобразить список типов диаграмм в переключателе объектов, и кликните на типе Частотный (Frequency). Затем поместите диаграмму на схему как раньше, перетаскивая прямоугольник левой кнопкой мыши. Не нужно удалять имеющуюся диаграмму переходной характеристики, но вы возможно хотите сделать это, чтобы увеличить свободное пространство (кликните дважды правой кнопкой на диаграмме, чтобы удалить ее).

Теперь чтобы добавить пробники. Мы добавим оба пробника напряжения, OUT и U1(POS IP). На частотной диаграмме две оси у (левая и правая) имеют специальное назначение. Левая ось у используется, чтобы отображать амплитуду исследуемого сигнала, а правая – фазу. Чтобы их обеих видеть в надлежащем порядке, мы должны добавить пробники на оба края диаграммы. Выделите пробник OUT и перетащите его на левый край диаграммы, а затем на правый. Каждый график как обычно имеет отдельный цвет, но они оба имеют одинаковые имена. Теперь выделите и перетащите пробник U1(POS IP) только на левый край диаграммы.

Величины амплитуды и фазы должны быть указаны по отношению к некоторой эталонной величине. В ISIS это делается указыванием опорного генератора. Опорный генератор всегда имеет на выходе 0 дБ (1 вольт) на 0°. В качестве опорного генератора можно указать какой-нибудь из имеющихся генераторов. Все остальные генераторы цепи в частотном анализе игнорируются. Чтобы установить генератор IN как опорный в нашей цепи, просто выделите и перетащите его на диаграмму, как если бы вы хотели добавить его как пробник. Так как это генератор, ISIS предположит, что вы добавляете его как опорный, и выведет в строке состояния сообщение, подтверждающее это. Сделайте это без ошибок, или моделирование будет работать некорректно.

Редактировать свойства диаграммы не нужно, так как частотный диапазон, выбранный по умолчанию, подходит для наших целей. Однако, если вы сделаете это (наведением на диаграмму и нажатием CTRL+E), вы увидите, что диалоговая форма редактирования частотной диаграммы мало отличается от такой же формы для переходной характеристики. Здесь не нужно обозначать оси, так как их назначение фиксировано, и здесь есть “галочка”, которая переключает отображение графика амплитуды в децибелах или в абсолютных единицах. Эту опцию лучше установить в дБ, как абсолютные величины, отображенные иначе, чем фактические значения, представленные на схеме.

Теперь нажмите Пробел (с мышкой над частотной диаграммой), чтобы начать моделирование. Когда оно закончится, кликните левой кнопкой на строке заголовка диаграммы, чтобы развернуть ее. Рассматриваем сначала график амплитуды OUT, мы можем увидеть, что усиление в полосе пропускания чуть выше 20дБ (как и ожидалось), а используемый диапазон частот примерно от 50Гц до 20кГц. Маркеры работают таким же образом, как и в предыдущем примере, – вы можете так же можете проверить утверждение, сказанное выше. График фазы OUT показывает вероятные фазовые искажения на краях частотной характеристики, спад до -90° справа на графике, на частоте единичного усиления. Эффект фильтра верхних частот входной цепи может быть отчетливо виден, если исследован график амплитуды U1(POS IP). Обратите внимание, что ось х в логарифмическом масштабе, и чтобы считывать значения с оси, лучше использовать маркеры.

Исследования при изменяющихся переменных

С ISIS возможно увидеть, как повлияет на схему изменение некоторых ее параметров. Сделать это позволяют два типа анализа – качание постоянного и переменного тока (DC Sweep и AC Sweep). Диаграмма качания DC показывает ряд величин рабочих точек по отношению к меняющейся переменной, а диаграмма качания AC показывает ряд величин в одной точке частотного анализа, по амплитуде и фазе подобно частотной диаграмме.

Эти формы анализа похожи, мы рассмотрим только одну – качание DC. Через резисторы входного смещения, R1 и R2, течет маленький ток, который подается на U1. Чтобы увидеть, как влияет изменение величины обоих резисторов на рабочую точку, используется DC Sweep.

Для начала поместите диаграмму качания DC на неиспользуемое пространство схемы. Затем выделите пробник U1(POS IP) и перетащите на левую сторону диаграммы. Нам нужно установить качающийся параметр, это делается редактированием диаграммы (наведите на нее мышь и нажмите CTRL+E). Диалоговая форма редактирования качания DC содержит поля для установки имени качающейся переменной, начального и конечного значения, и количество шагов. которые берутся при качании. Мы хотим, чтобы величина резистора менялась в диапазоне от 100кОм до 5МОм, поэтому установим в поле Start 100k, а в поле Stop 5M. Кликните ОК, чтобы принять изменения.

Конечно, чтобы сделать их меняющимися, необходимо изменить резисторы R1 и R2, или точнее их постоянные значения. Для этого кликните правой, а затем левой кнопкой мыши на R1, чтобы редактировать его, и измените поле Value с 470k на X. Обратите внимание, что качающаяся переменная в диалоговой форме диаграммы была также X. Нажмите ОК и повторите редактирование для R2, чтобы установить его величину как X.

Теперь вы можете смоделировать диаграмму, наведя на него и нажав пробел. Затем, развернув диаграмму, вы можете увидеть, что уровень смещения уменьшается в то время, как сопротивление цепи смещения увеличивается. При 5МОм он изменен очень сильно. Конечно, изменение этих резисторов влияет также на частотную характеристику. Мы можем провести анализ качания AC, скажем порядка 50Гц , чтобы увидеть эффект на низких частотах.

Наверх

Анализ шума

В заключение рассмотрим анализ шума. В этой форме анализа симулятор рассматривает величину теплового шума, который создает каждый элемент. Все эти шумовые вклады затем складываются (возведенные в квадрат) в каждой исследуемой точке. Результаты вычерчиваются по отношению к ширине шумовой полосы частот.

Некоторые важные особенности анализа шума:

· время моделирования прямо пропорционально количеству пробников напряжения (и генераторов) в схеме, так как каждый принимается во внимание;
· пробники тока не имеют значения в анализе шума и игнорируются;
· много информации представлено в протокола моделирования;
· PROSPICE вычисляет и входной, и выходной шум. Чтобы сделать формирователь, должна быть определена ссылка на вход – это делается перетаскиванием генератора на диаграмму, как с опорной частотой. График входного шума затем покажет эквивалентный шум на входе в каждой выходной исследуемой точке.

Чтобы выполнить анализ шумов нашей цепи, мы сначала должны вернуть R1 и R2 на 470кОм. Сделайте это сейчас. Затем выберите тип диаграммы Шум (Noise) и поместите на неиспользуемую территорию схемы. Нам действительно интересен только выходной шум, поэтому выделите пробник напряжения OUT и перетащите его на диаграмму. Как и раньше, стандартные значения для моделирования подходят для наших нужд, но вам нужно установить ссылку на вход на входной генератор IN. В диалоговой форме редактирования шумовой диаграммы есть галочка для включения отображения результата в децибелах. Если вы используете эту опцию, то 0дБ примется за 1 вольт действующего напряжения. Кликните Cancel, чтобы закрыть диалоговую форму.

Смоделируйте диаграмму, как и раньше. Когда диаграмма развернута, вы можете увидеть, что результаты этой формы анализа обычно крайне малы (в нашем случае пВ), как вы, возможно, ожидали от анализа шумов этой модели. Но как вы найдете источники шума в вашей схеме? Ответ лежит в протоколе моделирования. Просмотрите протокол моделирования сейчас, нажав CTRL+V. Используйте иконку со стрелкой вниз, чтобы пройти мимо распечатки рабочих точек, и вы увидите строку, которая начинается текстом:

Total Noise Contributions at ...

Это список индивидуальных шумовых вкладов (во всем частотном диапазоне) для каждого элемента схемы, который создает шум. Большинство элементов на самом деле внутри операционного усилителя, они с приставкой U1_. Если вы выберите опцию протокола спектральных вкладов (Log Spectral Contributions) в диалоговой форме редактирования шумовой диаграммы, вы получите даже больше данных, показывающих вклад каждого элемента на каждой фиксированной частоте.


Виртуальный терминал

Navigation: Proteus VSM >

Виртуальный терминал

 Return to chapter overview

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

Виртуальный терминал имеет следующие характеристики:

· Полный дуплекс – последовательно поступающие данные отображаются, как символы ASCII, в то время как нажатия клавиш передаются так же, как последовательные данные ASCII.
· Простой двухпроводный интерфейс данных: RXD для полученных данных и TXD для передаваемых данных.
· Простой двухпроводный аппаратный интерфейс установления связи: RTS (ready-to-send) – готов к передаче, и CTS (clear-to-send) – очищен для передачи.
· Скорость от 300 до 57 600 бодов.
· 7 или 8 информационных разрядов.
· Четность, нечетность или нет.
· 0, 1 или 2 стоповых бита.
· Процедура установления связи программного обеспечения XON/XOFF в дополнение к аппаратной процедуре установления связи.
· Нормальная или отрицательная полярность сигналов и для RX/TX, и для RTS/CTS.

Наверх

Использование виртуального терминала

Чтобы подключить терминал к Вашей моделируемой системе:

Выберите значок мультиметра на правой панели, выберите Виртуальный Терминал (VIRTUAL TERMINAL) и разместите его на схеме.

· Подключите выводы RX и TX к передающей и приёмной линиям тестируемой системы. RX – вход, TX – выход.
· Если Ваша целевая система использует аппаратную процедуру установления связи, подключите выводы RTS и CTS к соответствующим шинам управления потоком. RTS – выход, сигнализирующий, что виртуальный терминал готов принять данные, а CTS – вход, на котором должен быть высокий уровень (или он должен висеть в воздухе), чтобы виртуальный терминал начал передачу.
· Отредактируйте настройки виртуального терминала: скорость в бодах, длину слова, четность, управление потоком данных и полярности сигналов.
· Запустите моделирование обычным способом. Терминал отобразит входящие данные, как только получит их; чтобы посылать символы в систему, удостоверьтесь, что фокус сейчас на окне терминала, а затем напечатайте требуемый текст на клавиатуре персонального компьютера.
· Как только начнется моделирование, дальнейшие функциональные возможности будут доступны в контекстном меню, которое появится при клике правой кнопкой мыши на окне терминала. Это меню дает возможность Вам приостановить дисплей, и копировать и вставлять текст в буфер обмена и из него.

attention Обратите внимание:

· Виртуальный терминал поддерживает управляющие ASCII коды CR (0x0D) (возврат каретки), BS (0x08) (возврат) и BEL (0x07) (звуковой сигнал). Все другие коды, включая перевод строки LF (0x0A), игнорируются.
· Виртуальный терминал – это просто цифровая модель, и также не требует никаких специфических уровней напряжения на своих выводах. Это предполагает, что он будет нормально работать как непосредственно с микропроцессором или другим универсальным асинхронным приемопередатчиком, так и с устройством вывода с RS232 драйвером типа MAX232, который содержит логические инверторы.
· Уровень активного состояния на выводах RX и TX по умолчанию высокий. Таким образом состояние холостого хода – высокий уровень, стартовый бит – низкий уровень, а стоповый бит – высокий уровень. Информационные разряды появляются как высокий уровень при ‘1’ и низкий уровень при ‘0’. Это напрямую совместимо со встроенными модулями UART во многих микроконтроллерах, и также с внешними универсальными асинхронными приемопередатчиками типа 6850 и 8250. В другом случае (например, если Вы подключаете терминал на выход RS232 драйвера), Вы должны будете установить полярность RX/TX отрицательной.
· На выводах RTS и CTS активный уровень также высокий. Если Вы желаете подключить их к инвертированным шинам управления, Вы должны установить полярность RTS/CTS отрицательной.
· По умолчанию, терминал не отображает печатаемые Вами символы (echo); предполагается, что ведущая система, к которой он подключен, делает это. Если Вы желаете, чтобы терминал отображал напечатанные символы самостоятельно, Вы должны выбрать Эхо печатаемых символов (Echo Typed Characters) в контекстном меню.
· Вы можете предопределить текст, который будет послан в вашу схему при запуске, используя свойство ТЕКСТ (TEXT), например:
TEXT=“Hello World”
пошлет в схему текст “Hello World”. Текст скрипта посылается один раз после запуска, если сброс передатчика CTS не неактивен.

Наверх

Модель MAX232

В Proteus VSM есть модель драйвера RS232 – MAX232, таким образом можно соединить виртуальный терминал с целевым процессором как показано ниже:

p5-2
attention Однако, стоит обратить внимание, что MAX232 содержит логические инверторы, и поэтому полярность RX/TX виртуального терминала должна быть изменена на отрицательную, чтобы схема моделировалась должным образом.

Пожалуйста обратите внимание также, что MAX232 моделируется только на цифровом уровне, т.е. не пытайтесь моделировать работу её внутренних преобразователей напряжения и т.п. Моделирование этих свойств потребовало бы огромных дополнительных ресурсов для небольшой схемы. Такой же удар по производительности будет нанесен, если Вы подключите любые аналоговые элементы (резисторы, конденсаторы, осциллограф и т.д.) к выводам TxOut/RxIn.


Цифровой частотомер

Navigation: Proteus VSM >

Цифровой частотомер

 Return to chapter overview

Цифровой частотомер VSM – это многоцелевой цифровой прибор, который может использоваться, чтобы измерять интервалы времени, частоту сигнала и подсчитывать импульсы.

Цифровой частотомер поддерживает следующие режимы работы:

· Режим таймера (секунды), разрешающая способность 1мкс;
· Режим таймера (часы, минуты, секунды), разрешающая способность 1ms;
· Режим частотомера, разрешающая способность 1Гц;
· Режим счетчика, максимальный счет 99 999 999.

Значения времени, частоты или счета отображаются и на элементе схемы, и на развернутом цифровом частотомере (если он открыт), как показано выше. Вы можете развернуть частотомер, кликнув левой кнопкой на элементе частотомера или выбрав его в меню Отладка (Debug), когда выполняется моделирование.

Режим измерения интервалов времени

Чтобы измерить интервалы времени:

· Выберите значок мультиметра на правой панели, выберите Цифровой частотмер (COUNTER TIMER) и разместите его на схеме.
· Если нужно, подключите вывод CE (запуск счёта) к сигналу, который будет управлять временем обновления индикатора. Если Вам не требуется функция запуска счета, Вы можете оставить этот вывод висящим в воздухе.
· Если нужно, подключите вывод RST (сброс) к сигналу, который, изменяя своё состояние, обнуляет значение таймера. Если Вам не надо сбрасывать таймер от схемы, то можете оставить этот вывод висящим в воздухе.
· Выделите цифровой частотомер и нажмите CTRL+E, чтобы редактировать его настройки.
· Выберите требуемый режим таймера (секунды или часы-минуты-секунды) и полярности логических сигналов для функций CE и RST.
· Запустите моделирование обычным способом.

Обратите внимание:

· Вывод RST запускается срезом импульса (фронтом или спадом), противоположным уровню запуска. Если Вам надо удерживать таймер в нуле, Вы можете использовать совместно выводы CE и RST.
· Развернутый цифровой частотомер обеспечивает физическую кнопку сброса, которая сбросит таймер, чтобы обнулить его в любое время в течение моделирования. Это может быть особенно полезно при работе встраиваемых систем, где Вы можете использовать цифровой частотомер, чтобы определить время, которое требуется для выполнения каких-либо секций программы.

Режим измерения частоты

Чтобы измерить частоту импульсного сигнала:

· Выберите значок мультиметра на правой панели, выберите Цифровой частотомер (COUNTER TIMER) и разместите его на схеме.
· Подключите вывод CLK (импульсы) к сигналу, который Вы желаете измерить. Выводы CE и RST не используются в режиме частотомера.
· Выделите цифровой частотомер и нажмите Ctrl+E, чтобы редактировать его настройки, а затем выберите Режим частотомера (Frequency Mode).
· Закройте диалоговое окно и запустите моделирование обычным способом.

attention Обратите внимание:

· Частотомер работает, считая количество положительных фронтов импульсов, встречающихся в каждой секунде времени моделирования. Следовательно требуется полная секунда устойчивого входного сигнала, чтобы отобразить правильные показания. Также, если моделированиие не выполняется в режиме реального времени (из-за большой нагрузки на процессор), частотомер возьмет больше реального времени, чтобы произвести снятие показаний.
· Цифровой частотомер – это просто цифровой элемент. Чтобы измерять частоту аналогового сигнала низкого уровня, Вы будете должны разместить примитив аналого-цифрового преобразователя с соответствующими порогами логической схемы перед выводом CLK цифрового частотомера. Также, вследствие того, что моделирование непрерывных процессов приблизительно в 1000 раз медленнее, чем цифровое моделирование, цифровой частотмер не является действительно подходящим прибором для определения частоты цепей аналоговых генераторов, работающих на частотах значительно выше 10кГц. В таких случаях Вы должны использовать виртуальный осциллограф (или диаграмму), чтобы измерить период сигнала.

Режим счетчика

Чтобы подсчитать импульсы:

· Выберите значок мультиметра на правой панели, выберите Цифровой частотомер (COUNTER TIMER) и разместите его на схеме, подключите вывод CLK (импульсы) к источнику сигнала.
· Если нужно, подключите вывод CE (запуск счёта) к сигналу, который будет контролировать, когда будет идти подсчет. Если Вам не требуется функция запуска счёта, Вы можете оставить этот вывод висящим в воздухе.
· Если нужно, подключите вывод RST (сброс) к сигналу, который, изменяя своё состояние, обнуляет значение счетчика. Если Вам не надо сбрасывать счетчик от схемы, Вы можете оставить этот вывод висящим в воздухе.
· Выделите цифровой частотомер и нажмите CTRL+E, чтобы редактировать его настройки.
· Выберите Режим счетчика (Counter Mode) и установите полярность логических сигналов для функций CE и RST.
· Запустите моделирование обычным способом.

attention Обратите внимание:

· Счет увеличивается при переходе через положительный фронт имульса на входе CLK, когда CE активен.
· Вывод RST запускается срезом импульса (фронтом или спадом), противоположным уровню запуска. Если Вам надо удерживать счетчик на нуле, то можете использовать совместно выводы CE и RST.
· Развернутый цифровой частотомер обеспечивает физическую кнопку сброса, которая сбросит счетчик, чтобы обнулить его в любое время в течение моделирования.


FAQ (ЧаВО) по PROTEUS для начинающих и не только.

Navigation: »No topics above this level«

FAQ (ЧаВО) по PROTEUS для начинающих и не только.

 Return to chapter overview

HALEX
FAQ (ЧаВО) по PROTEUS для начинающих и не только.
Это третья, надеюсь, последняя версия FAQ по Proteus. Учитывая опыт предыдущих, она построена несколько иначе. Первые три-четыре страницы предназначены в основном для начинающих. Здесь будут разобраны установка и настройка ПО, а также назначение основных функций меню и кнопок в программе ISIS, т.к. именно она вызывает повышенный интерес у Российских пользователей. Здесь же будут приведены советы по быстрому редактированию схем в ISIS, поскольку многие пользователи из-за отсутствия знаний английского языка не заглядывают в прилагаемый к программам HELP и просто не подозревают об этих возможностях.
При подготовке данного материала использовалась информация от следующих участников форума Kazus.ru, посвященного теме "Микроконтроллеры и их применение":
AndreiVV, Andronio, avr123-nm-ru, dosikus, Gordey, Kabron, Nemo78, retro55, TEHb (сотрудник Labcenter Electronics), Um, vgololobov, Worker и многих других.
С уважением, Halex07.
1. Краткие общие сведения о програмном продукте PROTEUS.

1.1. Протеус - что это такое?
Proteus - это коммерческий пакет программ класса САПР, объединяющий в себе две основных программы: ISIS - средство разработки и отладки в режиме реального времени электронных схем и ARES - средство разработки печатных плат. В качестве автоматического встроенного трассировщика в ARES, начиная с версии 7.4, используется программа ELECTRA Autorouter. До этого она являлась дополнительным и самостоятельным средством трассировки и устанавливалась в отдельную папку. Для создания собственных VSM (программных) моделей с версиями до 6.3 распространялась библиотека VSM SDK (папка INCLUDE), которая в более поздних версиях отсутствует, т.к. разработчик посчитал необходимым закрыть данную информацию с целью предотвращения "плагиата" моделей другими фирмами.

1.2. Сайт автора программы.
Разработчиком пакета Proteus является фирма Labcenter Electronics (Великобритания). Сайт разработчика: http://www.labcenter.co.uk.

1.3. В чем отличие от других подобных программ.
Отличие от аналогичных по назначению пакетов программ, например, Electronics Workbench Multisim, MicroCap, Tina и т.п. в развитой системе симуляции (интерактивной отладки в режиме реального времени и пошаговой) для различных семейств микроконтроллеров: 8051, PIC (Microchip), AVR (Atmel), и др. Протеус имеет обширные библиотеки компонентов, в том числе и периферийных устройств: светодиодные и ЖК индикаторы, температурные датчики, часы реального времени - RTC, интерактивных элементов ввода-вывода: кнопок, переключателей, виртуальных портов и виртуальных измерительных приборов, интерактивных графиков, которые не всегда присутствуют в других подобных программах.

1.4. Системные требования. Различия в версиях программы.
Протеус устойчиво работает под управлением Windows 2k, ХP, Vista. Имеются сведения об успешном запуске Proteus в Linux с помощью Windows эмуляторов (В частности автор этих строк успешно опробовал работу Proteus 7.5.SP3 в Ubuntu 7.10 под Wine). C "пиратскими" версиями операционных систем возможны проблемы устойчивой работы Протеуса.
Протеус активно развивается на протяжении 12 лет, начиная с ранних версий 4.хх и кончая последней на сегодняшний день версией 7.5SP3. Готовится к выходу версия 7.6. Если не рассматривать ранние четвертые версии, то наиболее распространенными являются версии 6 и 7. Главное отличие версий в постепенном увеличении количества компонентов в библиотеках и соответственно размера дистрибутива, а также в некоторых функциях кнопок мыши, которые в шестых версиях более напоминают настройку для "левши", что без некоторого навыка непривычно. Это напоминает езду на автомобилях с правым рулем и при левостороннем движении.

1.5. Что и где прочитать о Протеусе на русском языке.
Русскоязычные публикации на данную тему чрезвычайно скудно представлены в сети, а в печатном виде их и того меньше. Из известных печатных изданий можно порекомендовать серию статей А. Максимова в журналах "Радио" №№4-6 за 2005 г. и третью часть книги В. Гололобова "Экскурсия по электронике" - online публикация доступна по адресу: http://vgololobov.narod.ru/content/proteus/Proteus.html
Вот еще некоторые онлайн ресурсы посвященные Протеусу:
http://kazus.ru/programs/viewdownload/kz_0/cid_190.html - учебник по Протеус на русском, правда к старой версии и довольно краткий и "кое-что" еще по Протеус.
http://www.proteus123.narod.ru - станичка AVR123-nm-ru
http://www.radiokot.ru/forum/viewtopic.php?t=3739- страничка на сайте Радиокот
имеются также странички и на других сайтах посвященных радиоэлектронике:
pro-radio.ru, radioprog.ru, форумы на telesys.ru, caxapa.ru и др.

2.1. Где взять инсталляционный пакет Протеус.
На официальном сайте компании Labcenter Electronics доступна последняя демо-версия на данный момент v.7.5.SP3. Она имеет существенные ограничения: отсутствует опция сохранения проекта, симулируются в реальном времени в основном примеры из прилагаемой папки Samples. Учитывая географическую удаленность "туманного Альбиона" и приличный размер инсталлятора - более 60 Мбайт, я бы не рекомендовал скачивание в ознакомительных целях данного пакета тем, у кого медленное Интернет-соединение. Но мир не без "добрых" людей. Давать здесь конкретные ссылки на сайты файлообменники нет смысла, жизнь файлов там ограничена по времени. Поэтому воспользуйтесь поиском в Google или другом поисковике с параметрами Proteus v.7 (или 6), Proteus VSM или Proteus ISIS и вы легко найдете свежие ссылки. Только не стоит использовать поиск по одному слову "Протеус" или "Proteus", если вы не стремитесь приобрести одноименный силовой тренажер для накачки мускулатуры.
2.2. Установка программы на компьютер.
Для установки необходимо запустить инсталляционный пакет Setup.exe. В ходе установки Proteus (если это не демо версия) запросит путь к файлу лицензии. Если на этот момент файл лицензии отсутствует можно просто выбрать вариант наличия лицензии на сервере, а окно сервера оставить пустым, но перед первым запуском все равно необходимо будет установить лицензию файл licence.lxk, воспользовавшись менеджером лицензий. По умолчанию программа устанавливается в директорию:
Program Files\ Labcenter Electronics\ Proteus 7 , однако при желании можно изменить путь. Как уже отмечалось для профессиональной версии после установки необходимо установить лицензию. Для этого запускается программа менеджер лицензий (рис.1):
ПУСК=>Все программы=>Proteus x Professional=>Licence Manager
в левом окне через кнопки Browse For Key File (вручную) или Find All Key File (автопоиск) выбирается путь к файлу лицензий, затем нажимается кнопка Install, которая становится доступной при щелчке по нужной лицензии в левом окне, и выбранная информация должна появиться в правом окне. После чего менеджер можно закрыть. Обращаю Ваше внимание, что напротив изображения ключей перечисляются доступные для данной лицензии функции программы.
Рисунок 1

2.3. Первый запуск и первые проблемы.
I. При попытке запуска ISIS или ARES появляется окно с сообщением:
Cannot find a valid licence key for ISIS (ARES) on this computer.
Коментарий: отсутствует лицензия, т.е. не выполнен или не до конца выполнен предыдущий пункт.
II. При запуске симуляции (в том числе и прилагаемых примеров из папки Samples) она не функионирует, а в Simulation log (Рис.2) появляется сообщение:
Cannot open 'C:\DOCUME~1\=ТЕКПОЛЬЗ=\Local Setting\Temp\LISAxxx.SDF'
Simulation FAILED due to fatal simulator errors
где вместо \=ТЕКПОЛЬЗ=\ непонятные закорючки (крякозябры)
Коментарий: Данная проблема не актуальна для версий начиная с 7.4 и выше. До этого Протеус категорически отвергал кириллицу в имени пользователя компьютера, а также и в пути к файлу проекта и в самом названии файла.
Есть два пути решения этой проблемы:
1) Изменить имя пользователя на английский вариант.
2) Зайти в Мой компьютер=>Свойства=>Дополнительно=>Переменные среды. В верхнем окне, выбрав переменную TEMP, нажать Изменить и вместо %USERPROFILE%
набрать %ALLUSERPROFILE% (при этом необходимо, чтобы в папке Document and Setting\All Users имелись соответствующие папки Local Settings и Temp их можно просто перекопировать из текущего пользователя (папки СКРЫТЫЕ) или создать вручную). Можно по совету Nemo78 изменить путь на %SYSTEMROOT%\Temp (именно так без Local Settings), тогда Протеус будет использовать папку TEMP в системном каталоге Windows.
III. Симуляция запускается, но через несколько секунд (минут) программа закрывается. Симуляция работает только с некоторыми типами моделей. Примеры из Samples симулируются без проблем.
Коментарий: Отсутствует лицензия на одну из используемых моделей. Вы используете "неофициальную" (крякнутую) версию и кряк либо не установлен, либо неправильно установлен. Протеус имеет многоступенчатую защиту от нелегального использования, которая многократно проверяется в процессе симуляции. Защищаются файлы как в основной папке программы \BIN (Isis.exe, Ares.exe, Licence.dll, Prospice.dll), так и в папке библиотек моделей \Models (Avr.dll, Lcdalfa.dll, Lcdpixel.dll, LedMPX.dll, Pic16.dll, Pic18.dll, Mcs8051.dll и некоторые другие модели). Поэтому симуляция будет работать только с теми библиотеками, на которые имеется лицензия, или к которым применялась "доработка".
2.4. Интерфейс программы ISIS.
Ниже приведено основное окно программы ISIS с пояснениями по назначению основных элементов интерфейса. В дальнейшем я буду придерживаться именно такой терминологии в несколько сокращенной форме, т.е.: левое меню, верхнее меню команд, верхнее основное меню, кнопки симуляции, селектор объектов. Окно программы немного не соответствует полностью развернотому окну, поскольку при уменьшении размеров некоторые меню изменили положение. Так же как и во многих других программах для Windows меню можно перетаскивать в удобное для вас место внутри окна программы. Зацепив через левую кнопку мышки за стартовый элемент меню (прямоугольная серая полоска для горизонтальных меню слева, а для вертикальных - сверху) не отпуская кнопки перетаскиваете, например, меню ориентации (на картинке стартовый элемент виден над стрелокй вращения вправо) внутри окна к правой вертикальной границе окна и после отпускания кнопки оно "приклеится" вертикально справа. Аналогично можно поступить и с любым из верхних командных меню. Таким образом можно настроить удобное для себя расположение элементов программы. Другая приятная "фишка" программы: если щелкнуть внутри окна селектора правой кнопкой мышки и во всплывающем окне щелкнуть левой кнопкой по функции Auto Hide, то селектор будет автоматически сворачиваться, если на него не наведен курсор мышки. Это позволяет на мониторах с форматом 4:3 выиграть некоторое пространство для окна редактирования. Отмена этого режима повторными действиями.

Рисунок 2

2.5. Папка Samples - кладезь примеров проектов для начинающих.
При первом запуске ISIS появляются два всплывающих окна. В одном из них будет предложено проверить обновления - здесь можно смело поставить галочку - "больше не показывать". Другое окно предлагает открыть многочисленные примеры Sample Designs, прилагаемые вместе с программой. Если Вы действительно начинающий пользователь, не торопитесь ставить аналогичную галку блокировки повторного показа. Ну а если уже заблокировали это окно - не отчаивайтесь. Быстрый доступ к примерам всегда возможен через верхнее меню Help => Sample Designs . Почему я так настойчиво рекомендую ознакомиться с примерами? Да потому-что третья часть вопросов приходящих на форум имеют готовые ответы в прилагаемых с программой примерах. К сожалению, для того чтобы ознакомиться с содержимым того или иного примера приходиться его открывать, так как в большинстве случаев по имени файла невозможно понять - что там внутри. С шестыми версиями Протеуса прилагался Help по примерам, но в седьмых версиях разработчик почему-то тихо его умыкнул. Описать содержимое всех примеров здесь не представляется возможным из-за большого объема информации. Поэтому, я остановлюсь только на самых значимых для начинающих и приложу оригинальный файл SAMPLES.HLP от версии 6.9sp5. Конечно, в нем отсутствует описание примеров для новых МК добавленных в следующих версиях, а также примеров программных генераторов из версий 7.4 и 7.5, но для владеющих даже начальным английским этот Help большое подспорье. Тем более, что даже с установленными последними версиями при щелчке мышью по зеленому названию проекта в хелпе он открывается автоматически.
Schematic & PCB Layout - одна из самых интересных папок для начинающих. Все проекты, за исключением Shiftpcb , содержащиеся в ней не предназначены для симуляции в реальном времени но при этом имеют как законченный вариант схемы xxx.DSN в ISIS, так и проект платы xxx.LYT в ARES.
Обратите внимание на проекты Cpu с использованием МК Z80 и Dbell - дверной звонок. В этих проектах имеются промежуточные файлы PSB (плат) с именами Cpuu.LYT и Dbellu.LYT с не установленными на плату компонентами. Открыв эти проекты в ARES Вы можете самостоятельно опробовать функцию автоматического размещения компонентов. Достаточно выбрать в верхнем меню Tools => Auto Placer и в раскрывшемся окне просто щелкнуть OK. В проектах Cpu.LYT и Dbell.LYT компоненты уже размещены, но можно аналогично попробовать автотрассировку дорожек Tools => Auto Router . Проекты Cpur.LYT и Dbellr.LYT содержат уже оттрассированные платы. На любом этапе в ARES через верхнее меню Output => 3D Visualization можно вызвать трехмерное изображение платы и зацепив ее левой кнопкой мыши повращать и обследовать со всех сторон (Рис.3).
Отдельно остановлюсь на проекте Shiftpcb.DSN - 16-ти битный сдвиговый регистр на мелкой логике. Он заслуживает внимания по двум причинам. Во-первых в нем применена 4-х ступенчатая иерархическая структура, т.е. это сложный проект. На первом листе помещены четыре модуля четырехразрядных сдвиговых регистров. Чтобы посмотреть структуру каждого модуля необходимо щелкнуть по нему правой кнопкой мышки (элемент станет красным) и выбрать во всплывающем меню опцию Goto Child Sheet (Ctrl+C) - переход на дочерний лист. Аналогично можно попасть на следующий уровень и далее до конечного, содержащего обычный RS-триггер на элементах 2И-НЕ. Возврат на предыдущий уровень также щелчком правой кнопки только по свободному месту в окне редатирования выбираем опцию Exit to Parent Sheet (возврат на родительский лист). Во-вторых здесь можно запустить симуляцию после некоторой коррекции проекта и посмотреть воочию работу сдвигового регистра. В исходном виде проект адаптирован под помещенный на первом листе график, поэтому при симуляции через кнопку управления симуляцией Play мы получим в логе предупреждение (желтый восклицательный знак) о загрузке ЦП компьютера 100% и невозможности симуляции в реальном времени:
Simulation is not running in real time due to excessive CPU load
Окно откроется, если щелкнуть по Simulation Log левой кнопкой мыши. Сразу же привыкайте к принципу светофора в Simulation Log : красный знак - грубая ошибка - симуляция невозможна; желтый ("горчичник") - предупреждение - симуляция может и выполняться, но результат некорректен и зеленый - симуляция протекает нормально без ошибок. Поэтому, чтобы избежать предупреждения необходимо в свойствах генераторов D и Clk (доступны через правую кнопку мыши опция Edit Properties Ctrl+E) установить соответственно Pulse width 200m и 100m (в данном случае миллисекунды). Запустив кнопкой Play симуляцию после этого можно на контактах разъема J2 наблюдать состояние выходов сдвигового регистра.
В этой же папке содержатся другие примеры:
EPE.DSN - большой проект программатора EPROM на трех листах (переход между листами доступен через верхнее меню Design или щелчком правой кнопко мышки по свободному месту в окне редактирования и выборе соответствующего листа 1, 2 или 3). На некоторых листах содержатся субмодули. Вы уже усвоили, что они имеют темно-синюю обводку и соответственно доступные дочерние листы.
FEATURES.DSN - в проекте показаны различные способы выполнения схем в ISIS. Обратите внимание на правый верхний угол: вариант стереофонического предусилителя, оформленный в виде 2-х субмодулей с дочерними листами.
PPSU.DSN - очень простой проект стабилизатора напряжения. Имеет два варианта PSB: PPSU.LYT - для микросхемы в корпусе DIL8 (монтаж в отверстия) и PSMT.LYT - м/сх в планарном корпусе SO8. Обратите внимание, что DIL - Dual-In-Line почему-то у нас в России принято называть DIP. Если для PSB в Протеусе выбрать корпус DIP Dual-In-Plane - отверстий в плате вы не увидите! "Гробик" будет выведен в ARES как планарный с шагом 2,54 мм.
SIGGEN.DSN - проект генератора сигналов. В хелпе лихо заявлено, что симулируется - да, но после значительной правки.
STYLE1, 2, 3 - примеры различного оформления одного и того же проекта.
THERMO - термометр с термопарой в качкестве датчика и индикацией на семисегментных индикаторах. Здесь не симулируется, но в папке VSM for PIC18\MAX6675 Thermometer есть работающий проект с программой на PICC18 и проектом для MPLAB.
dsPIC33_REC - проект устройства регистрации давления аналогично предыдущему имеет рабочий дубль в папке VSM for dsPIC33.
Interactive Simulation - папка содержит подпапку Animated Circuits с очень простыми анимированными примерами для начинающих.
Вasic - примеры начинающиеся с этой аббревиатуры основаны на базовых познаниях электротехники: лампочка, батарейка, выключатель, потенциометр и показывают протекание тока в цепи.
MVCR - ряд примеров с использованием виртуальных приборов вольтметр/амперметр.
PCV - примеры с потенциометром ограничителем тока.
Intres - примеры на внутреннее сопротивление источника тока.
Cap - три примера работы конденсатора.
AC - примеры с переменным током.
Diode - примеры на применение диодов и диодных мостов.
Inrel - примеры сприменения индуктивностей и реле.
TRAN - семь примеров с транзисторами.
Opamp - шесть различных примеров с операционными усилителями. Заслуживают особого внимания. Там есть вариант включения ОУ, как компаратора (Opamp1.DSN). Все это анимировано, обвешано виртуальными приборами, можно покрутить и посмотреть на реакцию ОУ.
Osc - примеры генераторов. Osc03.DSN и Osc04.DSN на таймере 555, содержащем дочерний лист с внутренней структурой таймера на примитивах Spice. Это "стартовая площадка" для освоения создания собственных моделей.
Comb и Seq - примеры для освоения работы логических цифровых микросхем.
Ну и несколько познавательных примеров: TRAFFIC.DSN - светофор, COUNTER.DSN - четырехразрядный счетчик на 74LS390, TTLCLOCK.DSN - часы на TTL логике, LISSAJOUS.DSN - применение виртуального осциллографа для наблюдения фигур Лиссажу и LM3914.DSN - применение одноименного драйвера для управления линейной светодиодной шкалой.
Остальные подпапки из Interactive Simulation содержат примеры проектов на использование одноименных виртуальных инструментов из библиотек Протеуса: Counter Timer - применение виртуального таймера/счетчика в режимах таймера и частотомера. Motor Examples - примеры проектов с шаговыми двигателями. Pattern Generator - примеры применения виртуального генератора кодовой последовательности. COMPIM Demo - пример использования виртуального COM-порта и виртуального терминала в Протеусе. Последнему для выполнения симуляции необходимо наличие на компьютере двух реальных COM-портов, соединенных нуль-модемным кабелем, либо установки на компьютер программы виртуального COM-порта для имитации соединения с реальным. При этом в режиме симуляции можно организовать обмен данными через это соединение из программы ISIS с любой программой на компьютере, позволяющей работать с COM-портом, например: стандартной Hyper Terminal.
Остальные подпапки из папки Samples содержат примеры проектов с использованием соответствующих серий микроконтроллеров (например VSM for PIC16 - примеры с МК Microchip PIC16). Я не буду их рассматривать подробно сейчас, так как к наиболее интересные будут рассматриваться позже, по мере освоения программы ISIS.
Здесь только перечислю, что Graph Based Simulation содержит примеры применения различных типов графиков для исследования схем, к папке Tutorials мы обратимся при создании собственных моделей. Особо отмечу две папки: VSM MPLAB Viewer и VSM AVR Studio Viewer . Эти папки содержат примеры совместного использования соответствующих инструментариев. При этом Протеус ISIS выступает в качестве продвинутого отладчика, интегрированного в данные пакеты. Естественно при этом необходимо иметь установленные на компьютере MPLAB IDE версии не ниже 7.5 для микроконтроллеров PIC и AVR Studio версия 4.16 для микроконтроллеров AVR. Данные продукты абсолютно бесплатны и доступны для скачивания с соответствующих сайтов. Предвидя лишние вопросы "чайников", вот ссылки на страницы этих программ:
http://www.microchip.com/stel...DocName=en019469&part=SW007002
http://www.atmel.com/dyn/prod...ts/tools_card.asp?tool_id=2725
Но имейте ввиду, что они имеют большой объем, как и Протеус.

ДАЛЬШЕ СТАРАЯ ВЕРСИЯ ЧАВО
2.3.Установил – не запускается, отсутствует лицензия.
При попытке запуска ISIS или ARES появляется сообщение:
Cannot find a valid licence key for ISIS (ARES) on this computer.
Если вы устанавливаете версию Professional, уже в процессе установки Proteus запросит путь к файлу лицензии licence.lxk. При установке можно указать, что лицензия находится на сервере, однако потом ее все-равно необходимо установить. Для этого запускаем менеджер лицензий: ПУСК=>Все программы=>Proteus x Professional=>Licence Manager, нажимаем Browse For Key File для указания пути к файлу вручную, либо Find All Key File для автоматического поиска файлов лицензий на компьютере. Все имеющиеся файлы отобразятся в левом окне. Для установки нужной лицензии выбираем ее мышкой и жмем Install. Когда лицензия отобразится в правом окне, менеджер можно закрыть.

2.4. Установил – не запускается симуляция даже для прилагаемых Examples.
Основная ошибка всех начинающих работать с Протеусом – установка и запуск программы от имени пользователя компьютера, набранного кириллицей. Протеус не дружит с русскими буквами в путях к файлам. Поэтому, если у текущего пользователя имя «Вася», «Мария Ивановна» и т.п. вы рискуете при запуске симуляции получить следующее красное сообщение в окне log:
Cannot open 'C:\DOCUME~1\ТЕКПОЛЬЗ\Local Setting\Temp\LISAxxx.SDF’
Simulation FAILED due to fatal simulator errors
где вместо ТЕКПОЛЬЗ закорючки. Это объясняется тем, что при запуске симуляции Протеус пытается создать в данной папке свой файл LISAxxx.SDF [b], но не понимает русские буквы в абсолютном пути. Есть два пути решения этой проблемы:
[b] 1) Изменить имя пользователя WINDOWS на английский вариант.
2) Зайти в Мой компьютер=>Свойства=>Дополнительно=>Переменные среды. В верхнем окне, выбрав переменную TEMP, нажать Изменить и вместо %USERPROFILE%
набрать %ALLUSERPROFILE% (при этом необходимо, чтобы в папке Document and Setting\All Users имелись соответствующие папки Local Settings и Temp их можно просто перекопировать из текущего пользователя (папки СКРЫТЫЕ) или создать вручную). Можно по совету Nemo78 изменить путь на %SYSTEMROOT%\Temp (именно так без Local Settings), тогда Протеус будет использовать папку TEMP в системном каталоге WINDOWS.2.5.Симуляция запускается, но через несколько секунд (минут) программа закрывается. Симуляция работает только с некоторыми типами моделей.
Отсутствует лицензия на одну из используемых моделей. Вы используете «неофициальную» (крякнутую) версию и кряк либо не установлен, либо неправильно установлен. Протеус имеет многоступенчатую защиту от нелегального использования, которая многократно проверяется в процессе симуляции. Защищаются файлы как в основной папке программы \BIN (Isis.exe, Ares.exe, Licence.dll, Prospice.dll), так и в папке библиотек моделей \Models (Avr.dll, Lcdalfa.dll, Lcdpixel.dll, LedMPX.dll, Pic16.dll, Pic18.dll, Mcs8051.dll и некотороые другие модели). Поэтому симуляция будет работать только с теми библиотеками, на которые имеется лицензия, или к которым применялось "хирургическое вмешательство". 2.6. Две (или несколько) версий Proteus на одном компьютере.
Совет от Kabron:
Разные версии устанавливаются последовательно. При этом для каждой версии нужно выполнить следующие действия:
a) установить программу в отдельную папку (например: Proteus Pro v6_7, Proteus Pro v7_2_SP2 и т.п.);
b) установить лицензию, настроить пути во вкладке программы System=>Set Paths…;
c) В папке \BIN каждой установленной версии создать пустую папку, например Regs
d) запустить любой редактор реестра (например штатный Пуск=>Выполнить=>regedit) и выполнить экспорт следующих веток реестра:
HKEY_CURRENT_USER\Software\Labcenter Electronics
HKEY_LOCAL_MACHINE\SOFTWARE\Labcenter Electronics
в соответствующую папку Regs. Пример:
HKСU_Labcenter_Electronics.reg
HKLM_Labcenter_Electronics.reg
После чего указанные ветки (перед установкой следующей версии) удалить.
Создать командный (текстовый в блокноте Notepad) файл следующего содержания:

Код:

reg import .\Regs\HKLM_Labcenter_Electronics.reg
reg import .\Regs\HKСU_Labcenter_Electronics.reg
isis.exe
reg export "HKLM\Software\Labcenter Electronics".\Regs\HKLM_Labcenter_Electronics.reg
reg export "HKCU\Software\Labcenter Electronics" .\Regs\HKU_Labcenter_Electronics.reg

сохранить его с расширением .cmd вместо .txt например Start.cmd и положить в каждую папку \BIN
e) для каждой версии создать на рабочем столе ярлык к этому файлу с оригинальным названием, например для Proteus Pro v6_7\BIN\ Start.cmd назовем Протеус_6 и т.д. Теперь запуск соответствующей версии осуществляем через нужный ярлык, при этом не надо закрывать окно командной строки до окончания работы с ISIS, чтобы сохранились изменения в реестре (см. последние две строки командного файла) после выхода из программы.
Немного упустил один нюанс и получил вопрос в личку. Исправляюсь:
Дело в том, что Протеусы из одной серии 6-й (или 7-й) при установке друг за другом выполняют апдэйт, т.е. обнаруживают предыдущую версию (например 7.4 обнаружит 7.2, но не 6.х) и выполняют обновление в этой папке. Поэтому, если вы установили 7.2.SP6 и хотите иметь отдельно 7.4, то после выполнения настроек и чистки реестра (как указано выше) переместите папку Proteus_7_2 куда-нибудь подальше из Program Files (лучше вообще на другой диск, а после установки новой версии в папку с другим именем (например Протеус_7_4), верните ту папку на место. Для меня это было очевидно, поэтому как-то упустил упомнить об этом раньше. Спасибо Zandy за своевременный вопрос.

Мой личный вариант нескольких версий:
если не использовать последние две строчки командного файла, а предыдущую строчку записать как start isis.exe, то окно DOS после старта ISIS закроется само. Как правило, при уже настроенном ISIS редко вносятся изменения, отражаемые в реестре. Поэтому если корректно выходить из программы с сохранением последних изменений в проекте, то нет необходимости при завершении работы лишний раз сохранять ветки реестра для данной версии. Единственное, чем это грозит – не сохранится путь к последнему открытому проекту. Текст файла .cmd в этом случае выглядит так:

Код:

reg import .\Regs\HKLM_Labcenter_Electronics.reg
reg import .\Regs\HKСU_Labcenter_Electronics.reg
start isis.exe

И последнее замечание по данному вопросу. Рассмотренный метод применим и к ARES, если isis.exe заменить на ares.exe. Для внесения изменений в реестр Windows XP текущий пользователь должен обладать правами Администратора системы.

2.7. Русификация програмного интерфейса Протеус.
Русифицировать или нет программу – дело вкуса пользователя. В сети Интернет, да и здесь на сайте Kazus по ссылке: http://kazus.ru/programs/viewdownload/kz_0/cid_190.html можно найти варианты как бесплатных, так и платных вариантов русификации интерфейса программы. Однако, как уже подчеркивалось, программа имеет многоступенчатую защиту и, если после русификации некоторые функции будут работать некорректно, - причину в первую очередь ищите в стремлении «облегчить себе жизнь». Протеус имеет достаточно обширную справочную систему на английском языке, но с русифицированным интерфейсом Вам придется заниматься «обратным переводом», чтобы понять: для чего предназначена та или иная кнопка и функция в программе. Не проще ли выучить азы английского и технические термины на этом языке, тем более, что большинство документации по импортным компонентам в Интернет представлено только в английском варианте. Как показала практика, последнее утверждение уже проявило себя, особенно при создании собственных моделей

3. Proteus ISIS - вопросы по симуляции (ошибки и электропитание).
3.1. Нарисовал самую простую схему, но симуляция не работает. В чем ошибка?
Самый частый вопрос новичков в Протеусе.
Обязательно обращайте внимание на сообщения в Simulation Log рядом с кнопкой СТОП симуляции. Окно Simulation Log доступно и после останова при щелчке по нему левой кнопкой мыши. Здесь действует принцип светофора: зеленые – сообщения об успешной компиляции, желтые – предупреждения, красные – ошибка симуляции. Англоязычные пользователи могут непосредственно узнать в чем их ошибка. Для тех, кто «читаю и перевожу со словарем» рассмотрим наиболее часто вылетающие сообщения.
Ошибка симуляции:
No model specified for (обозначение элемента)
Simulation FAILED due partition analysis error(s)
При выборе модели элемента из библиотеки обратите внимание на верхнее правое окно Schematic Preview, где над схемным изображением элемента появляется его характеристика. Если там стоит No Simulator Model, не пытайтесь добавлять его в схему, которую будете отлаживать в ISIS. Эти элементы (кстати к ним относятся почти все разъемы) предназначены для создания принципиальной схемы с передачей в ARES и последующей разработки печатной платы устройства. Все остальные модели, а это: Schematic Model, VSM DLL Model, SPICE Model, и различные Primitive предназначены для симуляции. Более подробно модели будут рассмотрены при рассмотрении вопроса создания собственных моделей.

Ошибка симуляции:
(External) Model DLL (обозначение элемента) not found
Simulation FAILED due partition analysis error(s)
Наиболее часто встречается при попытке запустить симуляцию проекта созданного в более поздней версии Протеуса. Вы скачали чей-то готовый проект, но в вашей версии отсутствует библиотека для этого элемента, либо автор применил свой собственный (External) элемент и «забыл» приложить к нему библиотеку. Иными словами в свойствах элемента прописана библиотека DLL, но она отсутствует и в папке с проектом и в папке MODELS Протеуса, в которой хранятся библиотеки симулируемых элементов. Может быть и так, что у вас не прописан путь к библиотекам Proteus в закладке меню System=>Set Paths…

Ошибка симуляции:
PROGRAM property not specified
Real Time Simulation failed to start
При симуляции схемы, содержащей микроконтроллер в его свойствах не указан (или неправильно указан) файл микропрограммы. В качестве такого файла могут использоваться бинарные с расширением .hex, а также файлы, создаваемые некоторыми компиляторами с языков высокого уровня с расширением .cof, .elf. Последний необходимо набрать непосредственно с клавиатуры, т.к. в окне выбора Program File в свойствах микроконтроллера он явно предлагаться не будет.

Предупреждение симуляции:
Simulation is not running in real time due to excessive CPU load
При этом обычно внизу фигурирует CPU load 100% . Симуляция не может выполнятся в режиме реального времени из-за стопроцентной загрузки процессора компьютера. Обычно проявляется на схемах перегруженных аналоговыми компонентами. Типичная ошибка у начинающих - слепое копирование принципиальной схемы устройства и попытка "оживить" ее в симуляторе в реальном времени. Подумайте: нужен ли, например, блокировочный конденсатор (типичный аналоговый элемент) на шине питания вашей схемы, если вы собираетесь ее отлаживать в симуляторе ISIS, который не будет иммитировать импульсные помехи по питанию. Если вам необходимо передавать схему в ARES, он необходим для установки на печатную плату, но его можно добавить и после отладки схемы. Еще хуже обстоит дело с гасящими помехи RC цепями и индуктивными элементами. Чтобы Протеус смог иммитировать их работу в реальном времени необходим сверхмощный компьютер.
А вот что по этому поводу гласит Proteus VSM Help: ADVANCED TOPICS => How to make interactive simulations run faster (Как ускорить интерактивную симуляцию). Использование цифровых (Digital) моделей резисторов и диодов:
"Моделирование цифровой схемы на два три порядка (т.е. вплоть до 1000 раз) быстрее, чем аналоговой. Это объясняется тем, что входящий в PROSPICE цифровой симулятор при обработке цифровых элементов опускает множество ненужных вычислений.
Например, компьютер с процессором Пентиум III 600 МГц может обрабатывать до 2 миллионов цифровых событий в секунду, но у того же компьютера при симуляции синусоидального генератора частотой 2 кГц загрузка ЦПУ достигнет 100%.
Для многих компонентов интуитивно можно определить: какое моделирование требуется - аналоговое или цифровое. Например, почти вся ТТЛ-логика и часть КМОП требуют цифрового моделирования, в то время, как аналоговые ИС: операционные усилители, компараторы требуют аналогового. Все компоненты представленные (имеется ввиду в библиотеках) стандартными SPICE моделями требуют только аналоговой симуляции
Для некоторых целей строго аналоговые по своей природе компоненты диоды и резисторы могут быть представлены цифровой моделью. Это справедливо для монтажного ИЛИ, подтягивающих резисторов, элементов с открытым коллектором на выходе и диодно-резисторной логики"
Я нарочно привел почти дословный перевод раздела, чтобы показать, как полезно почитать входящий в стандартную поставку HELP. Перевести резистор или диод в режим Digital можно в свойствах этого компонента в окне Model Type.
Многие из последних проектов, которые авторы выкладывают на форуме с просьбой о помощи, грешат именно этой ошибкой, поэтому я так подробно остановился на ней. Некоторые начинающие умудряются даже сетевой трансформатор с диодным мостом дорисовать в проект и пытаются запустить их симуляцию. Подумайте: а нужно ли оно там, если вы не проектируете конкретно блок питания? Добавлю сюда еще о кварцевом резонаторе - тот CRYSTAL , который в библиотеках Протеуса - это фильтр. Кто не верит - откройте одноименный проект в папке Протеуса \SAMPLES\Graph Based Simulation\. Щелкните по кварцу правой лапкой мышки и выберите Goto Child Sheet (Перейти на дочерний лист) - там представлена схематичная модель этого кристалла. Поэтому, если вы вклеили в схему элементы для PSB (печатной платы в ARES) заранее, в свойствах этих элементов отметьте галочкой пункт Exclude from Simulation (Исключить из симуляции) - это избавит Вас от лишней головной боли.

Предупреждение симуляции:
[SPICE] TRAN: Timestep to small; timestep=(значение): trouble with node #значение#branch
Ключевым в данном сообщении является фраза: Timestep to small . Обычно этому предупреждению предшествуют еще несколько предупреждений Spice о DELMIN и GMIN. Вот наиболее подробный и толковый разбор этой проблемы от retro55:
Протеус ругается, что шаг по времени достиг минимальной величины. Если Протеус не может найти решение, то он начинает его искать все более мелкими шагами по времени, пока не достигнет минимальной разрешенной тобой величины TMIN. Подобные проблемы сходимости решаются следующим образом. Заходишь System->Set animation option->Spice option->Transient-TMIN=1E-25, NUMSTEPS=500. Затем на вкладке количества итераций для поиска решения Iteration начиная с третьего параметра увеличиваешь допустимое количество итераций в 10 раз, то есть везде дописываешь нолики.SRCSTEPS=1200, GMINSTEPS=1200 и так далее. Если решение не будет сходиться, ты разрешаешь Протеусу искать его большее количество шагов. Далее на вкладке tolerance ослабляешь требование к точности вычисления.
ABSTOL =1e-10, VNTOL=1e-5 CHGTOL=1E-10 GMIN=1E-10 RSHUNT=1e10 TRANSGMIN=1E-8 и так далее. Как они пишут очень важный параметр GMIN, если проводимость в какой либо цепи меньше этой величины, то такая цепь считается разорванной.
Дополнение от Worker:
Лечится увеличением до GMIN=1е-11, у меня большинство проблем по сходимости решалось именно таким образом! Нашел это решение в хэлпе по Протеусу.
И опять отошлю пытливых к Proteus VSM Help . Раздел TROUBLESHOOTING подробно описывает данную проблему. А попасть туда можно напрямую из окна Simulation Log если щелкнуть мышкой по знаку вопроса в сообщении.

Предупреждение симуляции:
Logic contention(s) detected on net #(номер цепи)
Типичная ошибка для начинающих. В цифровой цепи с номером #(номер цепи) обнаружен конфликт сигналов. Если щелкнуть мышкой по номеру откроется список цепи в которой обнаружен конфликт. Обычно, когда два или более выхода с различными состояниями 0 и 1 объединены в одну цепь в текущий момент времени. Часто вылетает, когда используется интерактивная кнопка, замыкающая вывод на землю или шину питания без дополнительного резистора, т.е. при симуляции вы ее замкнули, а в этот момент на выводе элемента появился противоположный сигнал. Еще одна причина в несогласованности по времени, например, двух микропроцессоров связанных между собой.

Предупреждение симуляции:
Иногда однотипные желтые предупреждения симулятора идут сплошным потоком и забивают окно Simulation Log , мешая творческому процессу отладки, хотя симуляция при этом идет успешно. В качестве примера приведу популярный компилятор CCS PICC . Для 14-разрядных МП (например: архипопулярного у начинающих PIC16F84A) CCS PCM 14 bit использует при компиляции архаичную команду TRIS, которая жутко не нравится Протеусу и он начинает каждый раз при изменении порта B выводит сообщения типа:
TRISB instruction deprecated for PIC1684
(TRISB нежелательная инструкция для PIC1684), хотя программа выполняется правильно.
Если Вы уверены в своей правоте, то можно отключить это сообщение, равно, как и другие сообщения диагностики, войдя во вкладку: Debug => (жучок) Configure Diagnostics...
для выбранного элемента, установив флажок Disabled для данного типа сообщений.

3.2. Вопросы касающиеся электропитания симулируемой схемы.
Начинающим необходимо сразу усвоить, что по умолчанию в ISIS при создании New Design автоматически конфигурируются три шины питания: VCC/VDD с потенциалом +5V; GND – 0V и VEE – -5V. Второй важный момент: для всех микросхем, имеющих скрытые ( HIDE ) выводы питания, а это все цифровые микросхемы, микроконтроллеры и ряд других при запуске симуляции их выводы питания автоматически подключены к упомянутым выше.
Если вам необходимо иметь другие значения напряжений VCC/VDD GND или VEE, необходимо изменить их значения во вкладке Design => Configure Power Rails…
Если необходимы дополнительные шины питания, или земляная, отдельная от существующей по умолчанию поступаем следующим образом:
На листе проекта добавляем необходимый элемент POWER или GROUND, но в свойствах (Edit Properties) указываем конкретный потенциал обязательно таким образом: +12 или
-0.5V или +0 т.е. начинается со знака и заканчивается цифрой или символом V. Тогда он будет автоматически добавлен в Configure Power Rails…Если вы дадите буквенное название (например VCC2), необходимо затем зайти в Configure Power Rails… и уже там создать (кнопкой New) шину питания с данным названием и необходимым потенциалом и добавить (кнопка Add ) к ней созданную вами на листе цепь (она будет отображаться в окне Unconnected Power Nets ).
Если необходимо питать конкретную микросхему со скрытыми выводами питания отличным от стандартного напряжением (наш пытливый русский народ всегда стремится отчебучить что-нибудь эдакое), заходим в свойства (Edit Properties) и щелкнув по кнопке Hidden Pins вводим вместо VDD и VSS нужное нам питание и потенциал земли как и выше.(См.картинку ниже) .
Если необходим двухполюсник питания не связанный с землей, то используем BATTERY или VSOURCE из библиотеки Simulator Primitives => Sources для источников постоянного или ALTERNATOR, VSINE, V3PHASE (трехфазный!) для переменного напряжения.

3.3. Вопрос касающийся генерации напряжения сети и применения синусоидальных генераторов.
Он плавно вытекает из упомянутых выше генераторов синусоидального напряжения. Здесь необходим ряд пояснений.
Если используется генератор из левого вертикального меню GENERATORS (однополюсники), то генерация сигнала осуществляется относительно земли (GND). Для аналоговых генераторов периодических колебаний (Sine) амплитудное значение напряжения в корень из 2 выше действующего. Это необходимо помнить при симуляции сети 220V (амплитудное значение устанавливаем 310V).
И еще одна особенность, а вероятнее всего глюк самого Протеуса – ну не хочет гореть лампочка (Lamp - Active Model) от синусоидальных генераторов кратных 10 Гц, т.е. 10, 20, 30…50…100 и т.д. А у трехфазного генератора это относится только к верхней фазе. Но достаточно установить частоту на 1 Гц отличающуюся от скажем 50 (например: 49 или 51) и модель лампочки имитирует свет! Имейте это ввиду те, кто пытается моделировать в ISIS различные светорегуляторы и т.п.

3.4. Визуализация выводов питания.
Иногда необходимо подвести провод питания к скрытому выводу (например VCC и VSS микропроцессора). Для этого придется немного поколдовать с моделью. Вся технология визуализации сводится к следующим действиям:
- Выбираем из библиотеки необходимый элемент (например PIC16F84A). Помещаем его на чистый лист, чтобы не зацепить что-нибудь лишнее при выделении. Щелкаем по нему правой лапой мыши или по соответствующему значку в верхнем меню и «разбиваем молотком» Decompose .
- После такой «варварской» разборки на составляющие мы и увидим сверху и снизу скрытые выводы питания бледно-серого цвета. Щелкаем по нужному выводу правой лапкой мыши и заходим в свойства ( Edit Properties ). Ставим нужные галочки: Draw Body (обязательно чтобы вывод стал видимым), остальные по вкусу (имя и номер и как их изображать горизонтально или вертикально). Убеждаемся, что вывод относится к PP (вывод питания) и давим ОК .
- Теперь выделяем левой лапкой мышки всю область с «разбомбленой» микросхемой, обязательно включая нижний текстовый скрипт. Все должно стать «как наши алые знамена». Щелкаем теперь уже правой лапой мыши внутри выделения и выбираем Make Device (можно соответствующей кнопкой в верхнем меню).
В первом появившемся окне обзываем наш девайс в Device Name по своему (чтобы не портить оригинал в библиотеке), например PIC16F84A_USER . Дальше Next -им окошки до последнего (кнопка Next станет не активной), убеждаемся, что наш девайс будет помещен в пользовательскую библиотеку USERDVC и давим OK. Убираем разбомбленный мусор с листа кнопкой Delete, а в левом окошке имеем наш микропроцессор с видимыми выводами питания, который и помещаем в свой проект. С аналогичным названием он будет фигурировать рядом с родным PIC16F84A в библиотеках Протеуса до тех пор, пока Вы не сподобитесь почистить пользовательскую библиотеку через Library Manager .
Если после разборки микросхемы серых выводов не обнаружится придется их дорисовать самостоятельно, присвоив им соответствующие имена и номера пинов и сконфигурировав как описано выше.
Любителей крутых Мег (от 64 и выше) вынужден пока расстроить: эти выводы в них реализованы только начиная с версии 7.3. Попытка дорисовать их ручками в 7.2.SP6 к желаемому результату не привела. В Packaging Tool они все равно остаются Hidden (скрытыми). Но выход из положения ищется.

3.5. Вопросы по индикации и ндикаторам.
3.5.1 Алфавитно-цифровые ЖК дисплеи на основе HD44780.
В Протеусе эта группа сосредоточена в библиотеке Optoelectronics => Alphanumeric LCDs . А соответствующая им библиотека DLL носит название LCDALPHA.DLL . Большинство вопросов можно разделить на две группы: неправильно выводятся или не выводятся совсем символы и русский текст на дисплее.
Основная масса ошибок касающихся неправильного вывода символов возникает у тех, кто пишет программы на ассемблере, либо слепо использует чужие асм-коды и прошивки МК. Им следует помнить, что модель HD44780 , используемого в Протеусе, написана строго по даташиту на данный контроллер, т.е. работает в соответствии с заложенными последовательностью и временами отработки команд и ответов на них. Некоторые авторы пренебрегают этим, т.к. реальные дисплеи допускают пропуски части команд в последовательности инициализации или отклонение времени их выполнения. Вот здесь чаще всего и возникают конфликты, причем «в железе» работает, а в симуляторе – нет. Рекомендация только одна – изучайте описание дисплея (Datasheet) и ищите ошибку. Тем более, что для LCD искать даташит по просторам Интернета и не потребуется. Достаточно при подключенном канале щелкнуть в ISIS правой кнопкой мыши по LCD помещенному в проекте и выбрать активный пункт Display Datasheet . Протеус сам предложит скачать даташит (406 кбайт английский PDF) и сохранит его для дальнейшего автономного использования в папке Documents and Settings\All Users\Документы\Downloaded Data Sheets\ . При щелчке правой кнопкой доступнен автономно и файл помощи – пункт Display Model Help , правда довольно краткий. Описанным способом можно скачать даташиты и на другие компоненты: графические дисплеи, микроконтроллеры, цифровые микросхемы, если активен пункт Display Datasheet . Причем легальный или нет у вас Протеус в данном случае не важно – регистрация не требуется – главное наличие подключенного канала Интернет.
Тем, кто использует для написания микропрограмм языки высокого уровня: Си, Бейсик, Паскаль повезло несколько больше – о них, как правило, позаботились авторы используемых компиляторов. В подавляющем большинстве компиляторов присутствуют готовые библиотеки для работы с LCD. Но и здесь есть «подводные камни». По умолчанию большинство компиляторов используют матрицу 5х7, в то время как для нормального отображения некоторых русских символов, например Щ (щука), требуется матрица 5х10, иначе нижний хвостик буквы будет усечен и ваш дисплей станет слегка «шепелявить». Здесь уже требуется хирургическое вмешательство в соответствующие библиотеки компилятора. Необходимо там найти команду установки режима дисплея (по даташиту это Function Set) и в ней поменять бит F (2-й бит) с нуля на единицу. Для наиболее распространенного 4-х битного режима с 2-х строчным дисплеем это выглядит как команда 0х28 (матрица 5х7) а необходима 0х2С (матрица 5х10).

3.5.2 Русский текст на экране LCD на основе HD44780 в Протеусе.
Теперь о русификации самой библиотеки LCDALPHA.DLL . Для ее перевода в русскоязычный режим в свое время одним из экс- (к сожалению) участников нашего форума и одновременно сотрудником Labcenter Electronics – Тенью была предложена утилита charset.exe . Утилита многократно проверена и работает. Суть ее действия заключается в следующем: вы берете указанную библиотеку из папки MODELS , извлекаете из нее ресурс в виде битмэп картинки, содержащей оригинальную таблицу символов и заменяете ее русифицированной таблицей, прилагаемой к утилите. Есть два замечания. Во-первых, необходимо использовать LCDALPHA.DLL именно от установленной у вас версии Протеуса, поскольку эта библиотека защищенная и меняется от версии к версии. Во-вторых, если вы не всегда используете русифицированные дисплеи, то не обязательно заменять оригинальную библиотеку модифицированной. Протеус имеет одну особенность, которой можно воспользоваться. Сначала он ищет доступные библиотеки и модели в папке с симулируемым проектом, а уже потом в своих библиотеках. Поэтому достаточно поместить русифицированную LCDALPHA.DLL в папку с вашим проектом в котором необходим русский текст на дисплее. Ну и последнее, при написании микропрограммы используются не русские буквы,слова и фразы, а массивы шестнадцатеричных кодов русских символов в тех местах, где необходим наш великий и могучий… На русском сайте компании ATMEL лежит бесплатная утилита для перекодировки русского текста в коды символов вот прямая ссылка на эту программу:
http://www.atmel.ru/Binary/HD-44780.exe
В прилагаемом ниже архиве содержится утилита charset.exe , русифицированная таблица charset.bmp и текстовый файл с инструкцией к применению.

3.5.3 Динамическая индикация на семисегментных индикаторах в Протеусе.
Сразу же хочу обратить внимание всех, кто создает проекты с семисегментными индикаторами в Протеусе, что модели многоразрядных индикаторов чисто цифровые. Кто не верит – щелкните по индикатору правой кнопкой и выберите пункт Display Model Help (переведите первое предложение второго абзаца самостоятельно или посмотрите на приложенную картинку). Так что привешивание к ним в Протеусе всевозможных мощных транзисторных ключей, токоограничивающих резисторов и т.п. – это из разряда «аналоговых извращений» и здесь не рассматривается. Отмечу только, что это касается многоразрядных (2 и более) моделей, одноразрядные Schematic модели обладают аналоговыми свойствами, поэтому если их навешать достаточное количество – возникнет перегрузка ЦПУ компьютера. И еще, поскольку многоразрядные модели цифровые – яркость их свечения не меняется, чего не скажешь о реальных индикаторах. Поэтому при проектировании реального устройства необходимо учесть следующие азы:
1) человеческий глаз не замечает мерцания с частотой выше 25 Гц (вспомним про эффект 25 кадра), поэтому для исключения мерцания необходима минимальная частота обновления 25 х N (количество индикаторов);
2) для того чтобы сохранить яркость свечения индикаторов в динамическом режиме – ведь средний ток через сегменты упадет – необходимо уменьшать токоограничивающие резисторы, а при большом количестве разрядов возможно и увеличивать напряжение питания индикаторов;
3) вот исходя из предыдущего пункта и вылезут на свет мощные ключевые элементы и т.п, так как засветка, например, всех восьми сегментов (учитывая точку) знакоместа с током сегмента от 3 до 10 мА даст суммарный ток от 24 до 80 мА, но это в статике. Средний же ток через ключ, учитывая скважность импульсов для восьмиразрядного N=8 для сохранения яркости свечения грубо необходимо увеличить в 8 раз (в реальности зависимость нелинейна и несколько меньше) т.е. получим от 192 до 640 мА!!! Здесь есть над чем поломать голову. Необходимо учесть и длительность импульса и реальные импульсные характеристики конкретного индикатора по его даташиту, чтоб его не спалить. Так что Протеус в данном случае может дать результат отличный от того, что вы увидите и увидите ли в реальном устройстве.

3.5.4 Анализ динамической индикации с помощью цифрового (DIGITAL) графа.
В примерах (SAMPLES), прилагаемых к Протеус, я нашел только один, который демонстрирует характерные особенности использования динамической индикации – это AVR Tiny15 Demo . На нем и остановимся, т.к. в нем четко просматриваются те принципы, на которые в свое время в одной из веток форума указывал Dosikus , за что ему отдельное спасибо. До недавнего времени эта ветка существовала по ссылке:
http://kazus.ru/forum/topics/10434.html
Кроме того, материал из этой ветки с любезного разрешения автора размещен на сайте Каллиграфа:
http://www.kaligraf.narod.ru/nedodellki.html
Суть реализации метода заключается в том, что на момент смены разрядов индикация прерывается на короткий промежуток времени. Если этого не сделать – наблюдается наползание разряда на разряд и вместо желаемых цифр в лучшем случае будут отображаться восьмерки (все сегменты засвечены), а иногда и полная чехарда в виде отдельных горящих сегментов. Итак, копируем папку AVR Tiny15 Demo из \SAMPLES\VSM for AVR\ в удобоваримое место на диске, чтобы слегка модифицировать пример. Дело в том, что в исходном примере от версии 7.2 SP6 мне не удалось симулировать цифровой граф – Протеус ругался на модель семисегментного индикатора, а для рассмотрения особенностей динамической индикации он нам потребуется. Проблема решилась когда я удалил используемый индикатор из проекта и вновь добавил из библиотеки 7.2 SP6 (т.е. двойной щелчок по индикатору в проекте правой мышиной лапкой, затем в меню Edit по метле Tidy , ну а затем добавляем из библиотеки 7SEG-MPX4СA). Навешиваем Voltage Probe на выводы 1, 2, 3, 4 индикатора и на стробирующий выход МК - PB4/ADC3 . Добавляем из Graph Mode в меню слева цифровой (Digital) граф в проект, добавляем в него по одному Add Traces => Probe1 установленные пробники, ограничиваем в свойствах графа время Stop Time на 80m или 100m (мсек) и шлепаем по пробелу (или Simulate Graph ). Я так подробно здесь рассматриваю использование графов, чтоб не описывать их использование отдельно по ним тоже часто задаются вопросы. На приведенных на рисунке графах хорошо видно что в конце засвечивания каждого знакоместа (высокий уровень 4,3,2,1) проходит гасящий строб ( PB4/ADC3 ) на нижнем графе это место увеличено. Делается это следующим образом: щелкаем по графу правой лапкой мыши выбираем Maximaze внизу в меню на раскрывшемся графе будут дополнительные кнопки прокрутки времени (стрелки) увеличения и уменьшения (4 различных лупы Zoom). Если необходимо поставить маркеры щелкаем по тому месту где он нужен (зеленый) и с нажатой Ctrl вторую точку (красный) внизу на черной полоске отразится их временное положение в цифровой форме и приращение (dx) между ними. Слева на оси Y отображается состояние сигнала для зеленого ( основного) маркера. Итак, поигравшись с нашими графами, мы имеем следующее: суммарный период индикации 4 цифр составляет около 43 мсек (частота соответственно около 24 Гц), длительность сигнала на знакоместе около 10,5 мсек при этом в конце его следует гасящий стоб длительностью около 10 мксек.

Подведем итоги нашего исследования:
*** В классическом рабочем, прилагаемом с Протеусом, примере применен именно тот метод, который предложил в свое время Dosikus . И метод работает на все 100%.
*** Для того, чтобы избежать чехарды на индикаторах в Протеусе необходимо организовать гашение индикации на период смены разрядов. Время, на которое гасится индикация может быть достаточно малым, но оно должно быть. Как его организовать – это уже прихоть разработчика. Если у вас внешние буферные микросхемы (как в расмотренном примере) то можно стробировать их отдельным сигналом, если индикаторы подключены непосредственно к порту МК, можно, например, переводить выходы порта в высокоимпедансное состояние – фантазия тут безгранична – главное результат.
*** Использование одноразрядных аналоговых моделей индикаторов (на моем Атлоне 64 с частотой 3200 МГц свыше трех штук) приводит к 100% загрузке процессора компьютера и срыву симуляции в реальном времени.
*** Ну и наконец главное – моделирование динамической индикации в Протеусе не дает полной гарантии работоспособности реального устройства, т.е. потребуется еще и отработка на макете, но тем не менее позволит значительно сократить время разработки.

Cписок наиболее интересных на мой взгляд ресурсов и литературы, в которых рассматриваются вопросы динамической индикации:
Книги (ссылки ищите в соответствующей ветке форума):
*** Вольфганг Трамперт «Измерение, управление и регулирование с помощью AVR-микроконтроллеров» (глава 2 полностью посвящена динамической индикации, приведен расчет токоограничивающих резисторов).
*** В. Н. Баранов «Применение микроконтроллеров AVR: схемы, алгоритмы, программы» (глава 4 посвящена динамической индикации) .Тот же материал опубликован в журнале «Схемотехника», № 5, 6 за 2006 г. Автор имеет свой сайт: http://bvn123.narod.ru/
Он-лайн ресурсы:
*** А. В. Микушин Цикл лекций по теме «Цифровые устройства» на сайте СибГУТИ
http://www.sibsutis.ru/~mavr/contCVT.htm (раздел 7.4 посвящен динамической индикации)
*** Динамическая индикация 9 разрядного индикатора по последовательной шине.(от DimAlt) у Радиокота http://radiokot.ru/lab/controller/08/ (приложен рабочий проект для Протеуса с тестовой программой для Atmega8 на WinAVR).
*** Динамическая индикация и регулировка яркости http://arv.radioliga.com/inde...ent&task=view&id=101&Itemid=49(интересная идея по ШИМ регулировке яркости индикаторов от Романа Абраша автора цикла статей по МК в журнале «Радиолюбитель»)

3.6. Подробнее о графах (или графиках, если кому-то нравится такое название). 3.6.1. Что можно сделать с помощью графов?
Мой ответ однозначный - практически все, даже тогда, когда реал-тайм симуляция бессильна или у вас старенький "ПЕНЬ", а не суперкомпьютер. В частности HELPe авторами программы упоминаются такие исследования, как анализ слабых сигналов, шумов и параметрический анализ. Я не знаю, почему так незаслуженно обходится стороной их применение у русскоязычных пользователей Протеуса. Те, кто работает с этой программой не первый год, наверное давно раскусили возможности этой опции ISIS, но помалкивают о подробностях. Попробую приобщить начинающих к применению графов в своих разработках. Графы по своей сути очень близки к запоминающему осциллографу, плюс к тому в отличие от интерактивного осциллографа, который в седьмой версии не лишен некоторых "глюков", дают более реальную картинку происходящего процесса. К тому же в отличие от четырехканального осциллографа на графе можно расположить большее количество одновременно наблюдаемых сигналов. Мы уже проделали это пунктом раньше, расположив 5 наблюдаемых каналов в цифровом графе и это не предел! Итак, вопросу применения графов для анализа посвящен раздел GRAPH BASED SIMULATION в ProSPICE HELP (он же PROTEUS VSM HELP ) - многое там понятно по карьинкам и без знания английского. Кроме того, в Samples к Протеусу есть отдельная папка Graph Based Simulation , полностью посвященная примерам с использованием графов. Заниматься подробным переводом HELP-а я не имею ни возможности, ни желания, но остановлюсь на некоторых ключевых моментах.
3.6.2. Какие графики можно симулировать в Протеусе? Примеры использования.
Эти вопросы рассмотрены в разделе ANALYSIS TYPES того же ProSPICE HELP. Остановлюсь на самых употребимых к остальным попытаюсь дать только ссылки на примеры в Протеусе.
Щелкнув по соответствующему значку в левой панели, мы получим меню для выбора типа графика, размещаемого в проекте (всего их 13 типов). Наиболее употребимые в обиходе (с моей точки зрения) это: ANALOGUE (аналоговый), DIGITAL (цифровой), MIXED (смешанный). А в последнее время я все чаще стал их эксплуатировать INTERACTIVE - интерактивный граф и CONFORMANCE - график соответствия. На них чуть ниже остановимся особо. Остальные:
FREQUENCY - частотный анализ, NOISE - анализ шумов, DISTOTION - анализ искажений. Смотрите в примере 741.DSN. При запуске анализа будут вылетать "горчичники" об отсутствии Pin1 и Pin2 на дочернем листе - это соответственно выводы коррекции 1 и 5, которые в дочернем листе не прорисованы. Для всех этих графов в свойствах (Properties) аналогично: Reference - источник, Start и Stop Frequency - начальная и конечная частоты исследования, Interval - шаг по оси X, No Steps/Interval - количество шагов исследования на интервал.
TRANSFER - анализ передаточных характеристик. Смотрим одноименный TRANSFER.DSN. Ба, да это готовый справочник по импортным транзисторам. Да еще в стиле старых добрых советских справочников, только меняй тип транзистора из библиотеки. В современных этих графиков не найдешь. Я думаю, в назначениях свойств разберетесь самостоятельно, или с помощью старого справочника по транзисторам, где помещались подобные передаточные характеристики.
DC SWEEP и AC SWEEP - создают соответственно график изменения напряжения (тока) и семейство частотных характеристик в зависимости от изменения какого либо параметра компонента. Смотрите в примере SWEEP.DSN. Для DC показана зависимость изменения тока через диод от приложенного напряжения, а для AC семейство частотных характеристик RC-цепочки при изменении R. В свойствах графа также довольно легко понять что и как меняется.
AUDIO и FOURIER - как и следует из названия соответственно анализируют звуковые сигналы и спектральный анализ сигнала по Фурье. Смотрите пример их применения в FOURIER.DSN. Великолепный классический пример синтеза прямоугольного сигнала из ряда синусоидальных сигналов.

Теперь подробно о моих излюбленных:
ANALOGUE - сродни обычному запоминающему осциллографу. На нем можно анализировать как аналоговые, так и цифровые сигналы. Графики различных сигналов будут различаться цветом, но при этом накладываться один на другой. В свойствах графа (см. картинку) можно задать начальное ( Start Time ) и конечное ( Stop Time ) время анализа. В Left и Richt Axis Label можно ввести названия которые будут показываться у соответствующих вертикальных шкал. Если щелкнуть по кнопке Set Y-Scales , можно установить фиксированные значения для верхнего и нижнего предела каждой шкалы, установив галочку Lock Value . Для цифрового графа эта функция будет неактивна.

DIGITAL - практически заменяет многоканальный логический анализатор. В отличие от последнего позволяет наблюдать сигнал непосредственно на многопроводных шинах. Для этого на шину устанавливается V-пробник с именем, соответствующим лэйблу шины. Естественно на шину предварительно как на провод вешается Label, но наименование у него должно быть несколько отличное от отдельных проводов. Например в шину входят 4 провода с именами от D0 до D3 . Тогда установленный Label должен иметь название D[0..3] и такое же значение присваивается пробнику. Обратите внимание диапазон охвата в квадратных скобках должен соответствовать количеству проводов в шине и между цифрами ставится не троеточие как принято у нас, а ДВЕ точки. При этом на графе в стабильные по состоянию промежутки времени высвечивается цифровое шестнадцатиричное значение шины (сиреневая трасса).

Следующие два типа предусматривают некоторое оперативное вмешательство исследователя в ход анализа.
INTERACTIVE - комбинированный тип исследования, т.е. стартует симуляция, а результат записывается в график. Это очень удобно, когда надо просмотреть реакцию устройства на изменение состояния какого либо управления (например кнопки). Устанавливаем время записи в графе достаточным, чтобы успеть "нажать" кнопку мышью на схеме (например: старт - 0s стоп - 10s) и запускаем граф и симуляцию одновременно клавишей пробел. Пока бежит прогресс-бар внизу (крестики) изменяем мышкой состояние кнопки. По окончании симуляции анализируем на графике результат.
CONFORMANCE - цифровой график совпадения (или соответствия). С этим типом графика я сам работаю недавно, но он представляет значительный интерес для разработчика. Суть его применения рассмотрим на конкретном примере:
Предположим вы разработали цифровое или микропроцессорное устройство в котором один из выходных сигналов должен находиться в строгих временных интервалах. В моем примере (Приложенная картинка) данное устройство имитирует CLOCK-генератор, который я обозвал SIGNAL и задал ему частоту 1,8 Гц. Мне необходимо изменить схему или микропрограмму, но при этом частота не должна меняться более чем на 0,2 Гц. Для контроля я поместил в проект два вспомогательных генератора одиночных импульсов и задал им параметры так, чтобы фронты моего SIGNAL находились в пределах действия положительных импульсов и желательно ближе к середине. Эти два генератора я собрал через примитив ИЛИ и обозвал сигнал CONTROL . Затем вставил в проект CONFORMANCE -граф и первым поместил туда мой контрольный сигнал. Это всегда верхняя трасса желтого цвета. Затем вставил туда свой подопытный SIGNAL и просимулировал граф. В свойствах этого графа имеются две дополнительные кнопки: Store Results (Сохранить результаты) и Reset Graph (Сбросить граф) первой из которых я потом и воспользовался. При этом все трассы на графе стали серыми (запомнились). Затем я "изменил" что-то в схеме или микропрограмме (в моем примере я просто повысил частоту до 1,9 Гц) и для проверки, что параметры у меня не выскочили из заданной вилки, снова запустил симуляцию графа. Она благополучно закончилась, поскольку фронты сигнала сползли, но при этом остались в зоне совпадения (отсюда и название) с высокими уровнями на трассе CONTROL . Этот результат видно визуально по разнице между серой (сохраненной) трассой и новой голубой. Если же я задаю частоту 2,1 Гц, то при попытке симуляции получаю сообщение:
Data mismatch at time 250m in trace 'SIGNAL'.
Data signatures were 'L' and 'H'.
Conformance analysis FAILED
Даже не переводя нетрудно понять, что на трассе SYGNAL в районе 250мсек оюнаружено несовпадение сигналов, а на графе это можно будет посмотреть визуально передний фронт улетит за пределы вилки заданной первым контрольным импульсом. Таким образом можно контролировать поведение цифровой схемы при внесении изменений.
3.6.3. Немного о зондах (пробниках) и некоторые фичи с графами.
О пробниках особенно распространятся не стану их всего два: напряжение и ток. Для начинающих только замечу, что зонды напряжения в случае установки на цифровой провод показывают логический уровень ( SHI -высокий, SLO -низкий), а не напряжение. Токовые зонды должны быть ориентированы по направлению протекания тока стрелкой в круге, за положительное направление принято от плюса к минусу. Вторая особенность токовых пробников - они работают только на аналоговых цепях так что на цифровые линии их лепить бесполезно. Оба типа пробников поддерживают запись исследуемого сигнала в файл (галочка Load to File? ), который можно потом использовать для отладки другого каскада в другом месте. Пробник напряжения содержит еще свойство Load to Ground . На нем остановлюсь подробно. Пробник измеряет напряжение относительно потенциала земли ( GND ) и если вы установили зонд в точку, не имеющую гальванической связи с землей (например, имеется разделительный конденсатор), то он у вас измерять не будет. Вот эта опция и служит для создания связи с GND и, установив флажок, в соответствующей ячейке вы должны указать сопротивление нагрузки на землю, чтобы получить реальные показания.
Теперь несколько фичей.
a) Для особо ленивых. Генераторы и зонды на граф можно запихивать прямо мышью. Первым щелчком левой лапки по генератору или пробнику "вгоняем его в краску". Затем цепляем левой лапкой за объект (он подсвечивается пунктирным прямоугольником) и, удерживая лапкой, тянем его на черное поле графа и там бросаем, отпустив лапку.
b) Максимизировав ( Maximize ) граф вы получаете два маркера зеленый при первом щелчке по полю графа, потом его можно перемещать, удерживая левой лапкой животного и красный - те же манипуляции при нажатой клавише CTRL . Цифровые значения внизу на ленте, желтым приращение по оси Х, даже считать не надо.
c) На максимизированном файле доступными становятся кнопки зумов (увеличения уменьшения масштаба по оси Х). Если вы увеличите масштаб, например кнопкой Zoom To Area (Увеличить выделенную область, ее после щелчка надо обвести с нажатой левой мышиной лапой), то, закрыв граф щелчком потом по кресту в правом верхнем углу, получите в свернутом виде на графе в проекте масштабированное изображение.Обратный процесс через кнопку зума Zoom to View Entire Sheet.
d) Любой результат можно сохранить через Export Graph Data в графическом или векторном формате. Выбрав при этом черно-белый режим, получите картинку удобную для печати на принтере и с малым размером файла.
e) При использовании интерактивного графа или симуляции иногда требуется нажать две кнопки сразу. Забейте в отдельную строку в окошке Other Properties для этих кнопок (или переключателей) строку следующего содержания: GANG=1 (для другой группы соответственно гонг 2 и т.д.). При нажатии одной кнопки вторая из этой группы будет переключаться синхронно.

4. Многостраничные проекты. Иерархия структуры проекта (дизайна) в ISIS.
Прежде чем приступить к рассмотрению создания собственных моделей хочу остановиться на простом и эффективном способе, который зачастую избавит Вас от лишних затрат времени на проектирование. Поводом послужили несколько вопросов на форуме, которые можно свести к рассмотрению двух из раздела ISIS HELP: MULTI-SHEET DESIGNS (Многостраничные проекты).

4.1. Многостраничные проекты.
Схема не помещается на листе. Как ее разместить на нескольких листах?
Тут все очень просто. В закладке Design щелкаем NewSheet и получаем второй, третий и т.д. Навигация между листами осуществляется клавишами PageUp PageDown , либо (для тех у кого правая рука приросла к животному) через всплывающее меню правой лапки хвостатого перестановкой флажка на нужный лист.
Через закладку Design можно также перемещатся между листами, отредактировать их имена (по умолчанию ISIS обзывает их Root Sheet1, 2…) или удалить листы. Кстати в Edit Sheet Properties для Sheet Title допустимо русское название. Ну и напоследок совет, который в свое время дал dosikus , и которым я тоже пользуюсь при разработке: размещайте все органы управления и индикацию на первом листе, а все, что не требует визуального контроля на последующих. Это удобно при симуляции - всегда управление под рукой. А связь между элементами на различных листах осуществляется с помощью терминалов.

4.2. Иерархические проекты
Надоело Copy-Paste-ить из проекта в проект одну и ту-же часть схемы. Как создать свою "коробочку" (правильнее "черный ящик"), чтобы потом вставлять ее в последующий проект?
Начну с почти дословной цитаты из HELP ISIS: "ISIS поддерживает иерархическую структуру проекта, который может содержать более полдюжины уровней. Как и в любом проекте самый высокий уровень может являться блок-схемой устройства и содержать как минимум один подлист с проектируемой схемой. Тот в свою очередь может содержать дополнительные дочерние листы содержащие субсхемы или модули и т.д. Таким образом можно спроектировать достаточно сложное устройство."

4.3. Примеры иерархического построения проектов поставляемые с Протеусом.
Откройте в ISIS проект EPE.DSN из папки SAMPLES\Schematic & PCB Layout\ (программатор-эмулятор EPROM). Проект содержит три листа. В свою очередь на листах 2 и 3 находятся модули (субсхемы ERAM и PPSU ). Они имеют синюю рамку. Если щелкнуть правой лапкой мыши по этой рамке становится активным пункт всплывающего меню Goto Child Sheet (переход в дочерний лист), который и содержит принципиальную схему модуля. В одном случае это модули памяти ERAM , в другом стабилизаторы напряжения PPSU Вернуться назад можно также через правую кнопку хвостатой, выбрав пункт Exit to Parent Sheet (Возврат в родительский лист).
Другой характерный классический пример - два канала стереоусилителя в файле Features.DSN . В правом верхнем углу полотна проекта находится этот пример. Прикладываю картинку на которой заодно и показан пункт перехода на дочерний лист

4.4. Создание модуля (субсхемы).
Создадим новый проект. Выбираем в левом меню режим Subсircuit или щелкнув правой лапкой мышки по полю листа выбираем Place => Sub-Circuit и уже левой кнопкой рисуем модуль нужного размера.
Выбираем в левом меню режим Terminals Mode и, щелкая левой кнопкой мыши по периметру, расставляем нужное количество требуемых портов для связи с дочерним листом (общепринято: входы слева, выходы справа). То же самое можно проделать через правую лапку мыши пункт Add Module Port .
Даем самому модулю и его портам соответствующие названия и, как описывалось выше, переходим в дочерний лист. Пока он у нас пустой. Набираем из библиотек нужные компоненты и рисуем схему как обычно. Расставляем на входах выходах терминалы и выбираем им названия в соответствии с модулем на родительском листе. Я набросал самый простой пример, чтоб поместился на картинке. Рисуем, затем переходим на родительский лист, проверяем в симуляции что светодиоды моргают в зависимости от нажатой кнопки.
Из любого листа можно произвести Export Section через меню File для последующего Import Section в другой лист, однако пока у нас составляющие модуля и подсхема не связаны тесно между собой. Если произвести копирование и вставку модуля на родительском листе, то те компоненты второго дочернего листа, которые имеют авто-нумерацию получат персональные номера в Design Explorer . Но, в моем примере применены примитивы цифровых генераторов без префиксов, их придется перенумеровывать вручную. Изменения номиналов компонентов в одном сублисте не затрагивают другой. Это не очень удобно, однако, даже в таком виде с модулями работать удобнее, например, создавая стерео УНЧ. Позднее мы устраним эти неудобства.

5. Обзор моделей компонентов используемых в Протеусе.
То как мы легко запихнули в "черный ящик" часть схемы пытливую часть пользователей Протеуса сразу натолкнет на мысль собрать таким же способом отсутсвующий в библиотеке компонент. И Протеус предоставляет Вам такую возможность. Но сначала для неискушенных рассмотрим: какими же моделями пользуется ISIS при симуляции работы схем. Далее материал будет излагаться на основе VSMSDK.HLP от версии 6.3, который в в более поздних версиях отсутствует. Поэтому желающим освоить этот материал настоятельно рекомендую скачать приложенный к этому посту архив с указанным HELP , чтобы иметь его под рукой в оригинале. Там же папка INCLUDE от версии 6.3, содержащая библиотеки для создания VSM моделей. Спасибо dosikus и as205 за предоставленный материал.
Итак все модели, которые используются в Протеусе можно подразделить на две категории: электрические и графические. Их, в свою очередь, можно поделить на более мелкие группы. Об графических моделях чуть позже, а сейчас рассмотрим электрические, т.к. именно они обеспечивают возможность симуляции (имитации) работы устройства. Дальнейший материал базируется на разделе TYPES OF MODEL вышеуказанного HELP .

5.1. Модели-примитивы (Simulator Primitives).
Эта часть элементов встроена в PROSPICE симулятор как SPICE3F5 для аналоговых или DSIM для цифровых компонентов. Эти элементы могут использоваться как непосредственно в симуляторе (такие как резисторы, конденсаторы, диоды, транзисторы, цифровые элементы), так и для создания более сложных устройств в качестве "набора-конструктора". (Вот последнее свойство для нас и важно!)
Примитивы определяются симулятором по их свойствам:
PRIMITIVE=ANALOG,NPN - аналоговый NPN-транзистор;
PRIMITIVE=DIGITAL,NAND_2 - цифровой элемент 2-И-НЕ;
Примитивы находятся соответственно в ASIMMDLS и DSIMMDLS библиотеках, а при выборе Pick from Libraries берутся из Modelling Primitives . Большинство моделей обладает дополнительными свойствами, которые редактируются в окне, вызываемом через Edit Properties (Cntl+E) . Описания свойств доступны через ProSPICE Primitivies (см. картинку), часто туда можно попасть через пункт Display Model HELP при щелчке по ней правой кнопкой или через кнопку HELP в окне редактирования свойств. Ряд моделей - Real Time Probes предназначены для создания активных моделей. В частности на них я покажу позже как сделать свой индикатор.

5.2. Схематические модели (Schematic Models).
Большинство методов моделирования более сложных схем таких, как операционные усилители, сложные цифровые микросхемы основано именно на создании схематичной модели, обладающей эквивалентным поведением в симуляторе из простых примитивов. При этом эквивалентная электрическая схема (кстати, не всегда полностью повторяющая внутреннюю структуру компонента) создается на дочернем листе. Затем эта схема тестируется и, если она совпадает по электрическим свойствам с оригиналом, компилируется с помощью встроенного в ISIS Model Compiler в файл MDF (Model Description Format).
Чтобы закрепить MDF файл за определенной моделью используется свойство MODFILE . Например, для ОУ 741: MODFILE=OA_BIP
Когда ISIS обнаруживает в схеме ОУ 741, он автоматически заменит этот компонентпри симуляции схемой и свойствами из соответствующего MDF файла. С помощью карты ( MAP ) свойств, размещенной на дочернем листе можно различным элементам назначить один MDF файл.
Так, например, Лабцентер поступил со всей логикой. И в самом деле, зачем плодить MDF файлы скажем для 7400, 74ALS00, 74HC00 и т.д., если все они содержат по четыре элемента 2И-НЕ, имеют одинаковую распиновку корпуса и все отличие в быстродействии. Достаточно создать карту, где указаны длительности фронта/спада и минимальная длительность импульса для каждого типа и скомпиллировать ее в тот же MDF, где схема. А при симуляции, в зависимости от того какой конкретно элемент стоит на схеме ISIS в соответствии с картой выберет для него нужные параметры.
MDF файлы в Протеусе объединены в библиотеки с расширением LML .

5.3. SPICE модели.
Формат Беркли SPICE фактически стал стандартным для большинства аналоговых устройств. Многие изготовители делают доступными SPICE модели для производимых ими компонентов. Для их поддержки PROSPICE снабжен несколькими тысячами таких моделей. Вы можете подключить сторонние SPICE-модели.
Так как SPICE-модели имитируются непосредственно ядром, для остальной части системы они представлены как примитивы, например:
PRIMITIVE=ANALOG,SUBCKT
SPICEMODEL=LM741/NS
SPICELIB=NATOA
SPISE-модели с определенными специфичными для группы компонентов свойствами объединены в библиотеки с расширением SML (SPICE Model Library).

5.4. VSM модели (VSM Models).
VSM модели аналогичны примитивам, за исключением того, что собраны в библиотеки DLL , а не встроены непосредственно в PROSPICE . Использование DLL представляет эффективную альтернативу схематическому моделированию особенно, когда моделируются очень сложные устройства такие, как микропроцессоры. Еще одним уникальным свойством Proteus VSM является то, что VSM модели предоставляют возможность использования графического интерфейса с пользователем. Связь ISIS и ProSpice с программной моделью устройства осуществляется через программный С++ совместимый интерфейс VSM API .
Обычно свойства VSM-моделям назначаются так:
PRIMITIVE=DIGITAL,8052
MODDLL=8051.DLL
Здесь первая строка указывает ISIS , что это примитив, моделируется непосредственно в PROSPICE и не надо искать для него MDF файл, а вторая указывает библиотеку DLL, в которой описан этот элемент.
От себя добавлю, что именно VSM позволяет имитировать в Протеусе такие сложные и быстрые устройства, как микроконтроллеры, но именно этот вид моделирования наиболее сложен и подвержен "глюкам", поскольку требует хорошего знания языка С++, функций VSM API (вот эти то библиотеки и содержатся в папке INCLUDE ), а также наличие на компьютере MS VisualC++ 6.0 или выше для компиляции исходников в библиотеки DLL.

6. Создание графической модели компонента.
Как создать графику подробно и с картинками изложено в разделе HELP ISIS: LIBRARY FACILITIES =>DEVICE LIBRARIES =>Making a Device Element . Можно понять и без перевода, но особо ленивым подскажу - возьмите готовую (наиболее похожую) микросхему из библиотеки и "разберите ее на запчасти" молотком из верхнего меню или через правую лапу мыши - Decompose . Получим готовый набор "сделай сам" (тело микросхемы, выводы, текстовый скрипт, маркер выравнивания - ORIGIN ). Теперь оттаскиваем нужное нам в свободное место на листе, компонуем по желанию и переименовываем выводы на свой вариант. Если не использовать маркер ORIGIN (квадратик с крестиком), по которому Протеус выравнивает компонент он поумолчанию будет считать его крайней левой точкой верхнего левого вывода м/сх. В ряде случаев - при создании активных моделей: переключатели, индикаторы его положение очень важно, так как от него будут позиционироваться все дополнительные графические элементы, например сегменты цифрового индикатора в горящем и погашенном состоянии.

6.1. Пример построения графической модели К176ИЕ12.
Итак, я решил создать модель старенькой часовой микросхемы К176ИЕ12. Наиболее близкой по назначению и строению оказалась CMOS модель микросхемы 4060. Для тех, кто с ней не сталкивался, поясню - это 14-разрядный двоичный счетчик-делитель со встроенной схемой генератора на инверторах, то есть практически первая половина нашей 176ИЕ12 (в ней первый счетчик 15-разрядный). Кладем микросхему 4060 на чистый лист, бъем молотком ( Decompose ) и из получившегося набора собираем свою - в этом варианте я решил слегка изменить графическое изображение (в таком виде оно лучше для пояснений принципа работы).
Текстовый скрипт, который находится под телом микросхемы для начала может содержать всего четыре строчки. Обязательно измените вторую NAME , иначе, при создании устройства вы рискуете затереть имеющуюся модель 4060:
{*DEVICE}

Код:

NAME=176IE12
PREFIX=U
{*PROPDEFS}

Теперь обводим, удерживая левую кнопку мыши, наше создание и щелкаем Маке Device - создать устройство. Там всего пять вкладок. Все время давим Next , ничего не меняя. На пятой вкладке эта кнопка станет неактивной. В окна Device Category и Device Manufacturer прописываем через сопутствующие кнопки New соответственно CMOS176 и ExUSSR . Это чтоб не потерять их потом в библиотеках Протеуса. Давим ОК . Ну вот мы и получили свою первую графическую модель.
Удаляем строительный мусор из проекта. Наша модель 176IE12 теперь существует в библиотеке Протеуса и мы всегда ее можем оттуда достать. Плюс к тому она появилась и в левой панели выбора девайсов. На картинке слева "разбитая" 4060, справа еще не "мэйкнутая" 176ИЕ12, а ниже уже созданная модель (обратите внимание: меню слева стоит в режиме добавления выводов-пинов).

6.2.Некоторые тонкости создания графики модели.
Как видно из рисунка выше я добавил линии и три надписи внутри тела компонента. Протеус имеет предустановки рисования, относящиеся ко всем элементам 2D Graphics из левого меню (линия, прямоугольник, окружность, дуга, и т.д.). При выборе любого из этих режимов они высвечиваются в левом белом меню выбора стиля ( так же как, на картинке выше в меню выбора стоит выбор типа добавляемого пина: DEFAULT, INVERT и т.д.). Я рисовал в режиме COMPONENT , поэтому линии и надписи соответствуют этому стилю (коричневые). Если бы я выбрал, например, ACTUATOR - получил бы красные, WIRE - темно-зеленые и .т.п. (примеры при выборе отображаются выше в сером окошке). Даже нарисованный элемент я в любой момент могу изменить, щелкнув по нему дважды левой лапкой мышки в режиме Selection Mode (Стрелка в меню слева) или через правую лапку мышки Edit Properties . Можно просто изменить Global Style , выбрав другой через развертывающийся список, а можно конкретно изменить что-то снимая галочки На картинке ниже я просто изменил стиль изображения PIN на штрих-пунктирный и цвет на желтый. Щелкаем кнопку[/b] This Graphics Only [/b] (Только для этого графического элемента).
Кроме того для инверсного вывода 13 176ИЕ12 я применил стиль INVERT из Device Pin Mode (рисунок выше), а для того чтобы получить Z с верхним надчеркиванием в его свойствах ввел Pin Name , ограниченное знаком доллара с двух сторон: $Z$.

6.3. Получаем полноправную No Simulator модель для ARES.
Модель 176ИЕ12, которую мы получили, абсолютно бесполезна с точки зрения разработчика. Ведь мы не можем использовать ее в симуляции, поскольку в библиотеке напротив нашей модели стоит No Simulator , да и корпус в PSB Preview отсутствует. Пришла пора добавить хотя бы корпус, чтобы можно было ее использовать в ARES при создании печатных плат. Выделяем нашу микросхему в проекте, щелкнув по ней один раз левой лапкой, или открываем контекстное меню через правую лапку мышки. Ищем гаечный ключ: Packaging Tool (он везде рядом с Make Device ), выбираем. При первом вызове всплывет еще напоминание о том, что вы можете изменить размеры окна Packaging Tool ОКеим его, а если Вам не надо больше напоминать об этом дополнительно ставим в нем галочку. В открывшемся окне Package Device у нас пока пусто. Жмем кнопку Add (добавить). В следующем появившемся окне выбираем Category => Integrated Circuit (интегральные схемы); Type => Through Hole (сквозь отверстия); Sub-Category => Dual in Line (в два ряда); Results => DIL16 . Почему именно DIL ? Потому что DIP16 у Протеуса относится к типу Surface Mount (односторонний монтаж) и не содержит отверстий. Но любители ставить микросхемы со стороны дорожек могут добавить его как второй вариант. Именно поэтому я не воспользовался поиском по ключевому слову Keywords в самом верхнем окне. Можно было сразу набрать там DIP , и Протеус нашел бы в своих библиотеках все корпуса, имеющие такое название. Жмем ОК, возвращаемся в предыдущее окно, где уже имеем корпус. Если надо еще один (тот же DIP ) жмем опять Add . Но мне достаточно корпуса под "дырявый монтаж" и я просто жму Assign Package(s). После этого Протеус предложит сохранить изменения в библиотеке USERDVC - подтверждаем. Вот и все, модель для Ares готова. Если бы в библиотеках Протеуса отсутствовал нужный нам корпус PSB , его бы предварительно надо было создать в Ares и сохранить в библиотеке корпусов, но это уже отдельная тема. При создании модели какого-либо разъема на этом можно было остановиться, но мы идем дальше к "оживлению" нашей модели.

6.4. Поближе знакомимся с вкладками Make Device
Первая вкладка Device Properties :
Ну с Device Name и Reference Prefix вроде можно догадаться из предыдущих наших действий. Если бы мы не оставили в скрипте те четыре строчки, то здесь нам бы пришлось вручную добавить Имя и Префикс с которым компонент будет вставляться в проект. Если в Префиксе пусто, то компонент не будет включаться в общий список компонентов проекта и соответственно передаваться в ARES . Это удобно для виртуальных приборов и блок-схем. В окно External Module помещается Имя внешнего файла, который вы хотите прикрепить к компоненту, когда он помещается в проект. Секция Active Component Properties относится к анимированным компонентам (индикаторы, кнопки и т.п.). Ее мы разберем подробно при создании собственного индикатора.
Вторая вкладка Packaging :
Ну она нам тоже теперь знакома (см. чуть выше). Здесь мы могли бы добавить корпус еще на этапе создания графического компонента, но я предпочитаю сразу не делать этого, т.к. те же скрытые ноги питания прикрепляются намертво и потом приходится заново проводить "мэйкование", если что-то не так прилепил.
Третья вкладка Component Properties & Definitions :
На этой вкладке прописываются те свойства компонента, которые будут доступны при вызове окна Edit Properties при двойном щелчке по нему или через правую лапку мышки. Это могут быть стандартные , которые доступны через всплывающее меню кнопки New или собственные (после нажатия кнопки New выбирается Blank Item ). При этом каждому свойству назначаются следующие определения: Name - имя, Description - описание, Type - тип значения (строка, целое число, Булево определение и т.п.), Type - тип отображения (нормально, скрытое, только для чтения), а также значение по умолчанию ( Default Value ) и видимость ( Visibility ). Для стандартных свойств часть этих значений уже предопределена. При добавлении нового вы сначала выбираете его из всплывающего New , затем редактируете и добавляете его той же New . Если добавили лишнее можно удалить Delete .
Четвертая вкладка Device Data Sheet & Help File :
Здесь, как нетрудно догадаться, прописываются пути (сетевые и локальные, в т.ч. и на CD диске) к файлам даташита (технических данных компонента) и HELP, если таковые имеются. Для создания собственных компонентов эта закладка полезна только в том случае, если вы имеете PDF даташит компонента или умеете компилить свои хелпы CHM.
И, наконец, пятая последняя вкладка Indexing and Library Selection :
На ней мы определяем: как будет классифицироваться наш компонент в библиотеках Протеуса, и в какую библиотеку он будет помещен. Отмечу, что по умолчанию в Протеусе доступна для сохранения своих компонентов только библиотека USRDVC . Если она вас не устраивает, то необходимо заранее создать новую через верхнее меню: Library => Library Manager => кнопка Create Library и далее набрать имя файла библиотеки (например: CMOS_176). После этого файл будет доступен в правом окне пятой вкладки. Что еще здесь прописывается: Device Category - категория компонентов в которой он будет показываться при выборе по Pick Device. Device Sub-category - принадлежность компонента к какому либо типу устройств (счетчики, дешифраторы и т.п.). Device Manufacturer - производитель компонента. Device Description - назначение компонента (например: counter for clock with dynamic indication - счетчик для часов с динамической индикацией). Device Notes - описание компонента. Галочка Advanced Mode убирает режим расширенного редактирования, поэтому ей лучше не пользоваться.

6.5. Утилиты Протеуса для работы с библиотеками.
Прежде чем мы начнем создание своей схематической модели 176ИЕ12, познакомимся с четырмя утилитами, входящими в состав Протеус. Две из них предназначены для работы с MDF/LML: GETMDF.EXE и PUTMDF.EXE . Аналогично для SDF/SML: GETSPICE.EXE и PUTSPICE.EXE . Расположены они в папке BIN . Соответственно те, которые GET извлекают, а PUT - вставляют файлы в соответствующие библиотеки. Обе утилиты автономны и работают в командной строке (т.е. в окне DOS). Чтобы получить помощь по использованию, как и для любых DOS-овских EXE вводим в командной строке полное имя программы и через пробел и слэш со знаком вопроса (например: GETMDF.EXE /? ). На картинке вариант ответа программы.
Поскольку всю эту возню я затеял для того, чтобы добраться до файла 4060.MDF - прототип нашей 176ИЕ12, попробуем GETMDF в действии. Остальные утилиты работают по аналогичному принципу.

6.6. Извлечение требуемого файла MDF из библиотеки LML.
Библиотек LML в папке MODELS не так уж и много. Логично предположить, что наша модель 4060, относящаяся к цифровым микросхемам, находится в библиотеке Digital.lml . Скопируем эту библиотеку и утилиту в отдельную папку, которую расположим в корневом каталоге диска, чтобы не набирать длинный путь в командной строке. Открываем через Пуск => Все программы => Стандартные => Командная строка окно MS DOS (у меня файлы расположены на диске С: в папке ExMDF ) переходим в нужный нам каталог:
C: (чтобы попасть на диск С, если окно открылось с другим диском)
cd ExMDF (чтобы попасть в нашу папку)
(в следующей строкеперед каждым ключом начинающимся с дефиса пробел обязателен!)
GETMDF.EXE -L=Digital.lml -A
Поясню действие последней строки: извлечь все файлы MDF из библиотеки Digital.lml . В результате этого в нашей папке появится огромное количество файлов mdf , среди которых и нужный нам 4060.mdf . Ненужное можно удалить, а этот файл нам потребуется для дальнейшего исследования.
Те, кто использует Total Commander , могут слегка облегчить себе жизнь. Во-первых, в коммандере легко можно вызвать командную консоль из верхнего меню, находясь уже в нужной папке, т.е. не надо "ручками" переходить в нужное место. Во-вторых в последних версиях в качестве текстового редактора по F4 используется AkePad , которым можно заранее открыть библиотеку LML и убедиться, что нужная нам модель там присутствует. Достаточно просто запустить поиск нужного текста (например: 4060). После нескольких Найти далее редактор найдет текст: Design: K:\PROLIBS\DIGITAL\CMOS\4060.DSN - это начало нужного нам файла mdf в библиотеке.

6.7. Что внутри файла MDF?
Получив 4060.mdf , откроем его спомощью стадартного блокнота Notepad . Давайте рассмотрим его структуру. Шапка файла содержит информацию об исходнике, авторе (в которой Лабцентр о себе почему-то скромно умалчивает), дате создания и модификации файла. Это все мало интересно. Далее идут более интересные сведения (текст из файла и мои пояснения):

Код:

*PROPERTIES,1
CLOCK=EXTERNAL

Одно свойство, тактовый генератор внешний.

Код:

*MAPPINGS,3,VALUE+VOLTAGE
4060+5V : TDOSC=35n, TDCQ=25n, TDMRQ=100n
4060+10V : TDOSC=13n, TDCQ=10n, TDMRQ=40n
4060+15V : TDOSC=8.5n, TDCQ=6n, TDMRQ=30n

*MAPPINGS,2,CLOCK
DEFAULT : CLKOSC=DIGITAL,CLKGATE=NULL
EXTERNAL : CLKOSC=NULL, CLKGATE=DIGITAL

Две карты первая устанавливает задержки для трех разных напряжений питания, вторая - два типа параметров тактового генератора.

Код:

*MODELDEFS,0

Раз 0 значит отсутствует

Код:

*PARTLIST,19
OSC,CLOCK,,CLOCK=<CLOCK>,INIT=0,PRIMITIVE=<CLKOSC>,PRIMTYPE=DIGITAL!
U1,INVERTER,INVERTER,PRIMITIVE=DIGITAL
U2,NAND_2,NAND_2,PRIMITIVE=DIGITAL,TDHLDQ=<TDOSC>,TDLHDQ=<TDOSC>
U3,INVERTER,INVERTER,PRIMITIVE=DIGITAL,TDHLDQ=<TDOSC>,TDLHDQ=<TDOSC>
U4,NAND_2,NAND_2,PRIMITIVE=DIGITAL,TDHLDQ=<TDOSC>,TDLHDQ=<TDOSC>
U5,DTFF,DTFF,PRIMITIVE=DIGITAL,TDHLCQ=<TDCQ>,TDLHCQ=<TDCQ>,TDRQ=<TDMRQ>

Полный список используемых в модели примитивов (я привел не весь), с указанием назначаемых параметров для каждого.

Код:

*NETLIST,35
#00000,3
U1,OP,Q
U2,IP,D1
U4,IP,D1

#00001,2
U4,OP,Q
U11,IP,CLK

#00002,3
U5,IP,CLK
U13,IP,D
U13,OP,!Q

Коммутационный список цепей. Всего их 35. Я привел первые три. Кратенько поясню на примере одной что это:
#00002,3 -номер цепи 2 количество присоединений 3, далее что с чем:
U5,IP,CLK - элемент U5 - примитив D-триггера, IP (вход от англ.INPUT) CLK -обозначение
U13,IP,D - элемент U13 - примитив D-триггера, IP (вход от англ.INPUT) D -обозначение
U13,OP,!Q - элемент U13 - примитив D-триггера, OP (выход от англ.OUTPUT) !Q - инверсный
И так далее по всем пунктам мы можем полностью воссоздать исходник дочернего листа модели 4060.

6.8. Пробуем воссоздать внутреннюю схему из MDF.
Из полученного файла 4060.MDF попробуем частично воссоздать внутреннюю структуру (дочерний лист) модели счетчика 4060. В этом нам помогут PARTLIST и NETLIST из файла MDF . В соответствии с первым набираем примитивы из библиотеки (генератор - CLOCK , инвертер - INVERTER , элемент 2И-НЕ - NAND_2 , D-триггер - DTFF ). В соответствии со вторым производим соединения набранных элементов. Я не стану здесь приводить полную структуру модели 4060, поскольку она достаточно громоздкая. Нас интересует в первую очередь воссоздание встроенного генератора и передача сигналов с него на счетчик из D-триггеров. Вот этот кусок дочернего листа я и прилагаю на картинке.
К сожалению, мои продолжительные мучения с генератором OSC из файла MDF к желаемым результатам не привели. По иронии судьбы я умудрился выбрать единственную модель в библиотеке содержащую такой генератор. Управление им идет через два скрипта MAP и PROPERTIES . Реально на дочернем листе скрипт MAP должен выглядеть следующим образом:
*MAP ON CLOCK
DEFAULT : CLKOSC=DIGITAL,CLKGATE=NULL
EXTERNAL : CLKOSC=NULL, CLKGATE=DIGITAL
а скрипт PROPERTIES вот так:
*DEFINE
CLOCK=EXTERNAL
Но на деле эта связка работать отказывается. Дело в том, что параметр CLOCK примитива генератора имеет значение PNZ - POSITIVE, NOT ZERO (положительное, не ноль). Если декомпознуть 4060, то там POZ - POSITIVE, OR ZERO (положительное, или ноль). Могу только предположить, что тот,кто делал модель 4060 использовал не этот стандартный CLOCK -генератор из примитивов, а свой модифицированный. А жаль, ведь в модели 4060 работают оба варианта: и внешние RC-цепи и, если задать параметр Oscillator Frequency (например 32768), то встроенный в модель. Ну чтож, отнесу пока это в область неразрешенных задач. А мы продвинемся дальше, т.к. пауза в создании модели из-за этого генератора слишком затянулась. Кстати в версии Протеуса 7.4 можно попробовать реализовать его через скрипт HDL .

6.9. Подробнее о картах MAP и свойствах примитивов.
Как видно из предыдущей иллюстрации в модели применены две карты. Первая задает поведение внутреннего генератора. Вторая задает временные параметры фронтов в зависимости от выбранного напряжения. Обратите внимание, что в примитивах я в соответствии с PARTLIST в режиме редактирования свойств вставил строки типа TDHLDQ=<TDOSC>. Вот они то и задают длительности фронтов и спадов в зависимости от выбранного напряжения. То есть, если вы откроете свойства 4060, там этот выбор присутствует, и если вы там меняете вольтаж, изменяется не питающее напряжение микросхемы, а именно длительности фронтов при симуляции! Это свойство присутствует во всей CMOS серии в библиотеках Протеуса.
Что касается фронтов импульсов для примитивов, из которых смоделированы все цифровые логические микросхемы в Протеусе, то достаточно посмотреть хелп на соответствующий примитив - какое свойство за что отвечает, но можно запомнить и так:
TDLHDQ - low-high (переход с низкого на высокий) - передний фронт;
TDHLDQ - high-low (переход с высокого на низкий) - задний фронт.

7. Создание схематичной модели счетчика К176ИЕ12.
7.1. Предпосылки и ограничения для создания 176ИЕ12.
Итак, первоначально мне хотелось создать универсальную модель, по аналогии с 4060, но после длительной и безуспешной борьбы со встроенным в нее генератором, придется упростить задачу. Поэтому для начала создадим модель, работающую только от внутреннего генератора. Внешние цепи, к которым в идеале подключается кварцевый резонатор, сохраним только для использования в PCB , т.е. в ARES . Учитывая, что модель кварца в Протеусе достаточно убога и ограничена, а 176ИЕ12 в основном используется с резонатором 32,768 кГц для получения точных временных интервалов для часов то это не существенное ограничение. Тем более, мы сохраним в свойствах возможность изменения частоты для получения других временных интервалов. Некоторые характеристики указанной микросхемы можно посмотреть например здесь:
http://lib.qrz.ru/?q=node/5376.
А вот здесь:
http://lib.qrz.ru/?q=node/5480
приведена схема RC генератора на 176ИЕ12. В общем то, все это взято из старых журналов Радио, но в Инете эту информацию оказалось найти проще, чем журналы почти тридцатилетней давности. Приведу заимствованную оттуда картинку структуры микросхемы. Желающие могут попробовать создать модель с внешними цепями (слева на картинке).

7.2. Временные диаграммы и питание 176ИЕ12.
В соответствии со следующей картинкой нам предстоит смоделировать внутреннюю структуру счетчиков 176ИЕ12. Если проанализировать диаграмму, то мы видим, что необходимы выходы с частотой 1024 Гц (звук на будильник), четырехтактный генератор 128 Гц для динамической индикации, выходы секундных и полусекундных импульсов S1 и S2, достаточно хитрый сигнал минутного импульса - M . Кроме того, имеется выход K с тактовой частотой 32768 Гц (на диаграмме почему-то упущен).
Теперь обратимся к электропитанию. Стандартное напряжение для 176 серии +9V. 176-я серия достаточно "тихоходная", по справочным данным параметр задержки передачи импульса при напряжении составляет по разным данным около 250нсек. Предельная частота для 176ИЕ12 составляет 1,2 МГц. Это все сведения которые мне удалось найти по этой микросхеме. Теперь попробуем создать основные внутренние функциональные узлы 176ИЕ12

7.3. 15-ти разрядный счетчик-делитель.
Поскольку мы условились, что оставляем только внутренний генератор, то первое , что нам необходимо создать - это счетчик делитель на 15 рарядов для получения частоты 1 Гц из 32769 Гц (стандартный часовой кварц обычно подключаемый к этой микросхеме). Для создания счетчика воспользуемся аналогией с 4060 и наберем его из 15-ти триггеров DTFF . Использовать для этой цели готовые универсальные многоразрядные примитивы счетчиков не стоит, поскольку они имеют встроенную логику параллельного переноса и у нас не совпадут временные параметры. Я приведу на картинке только фрагмент, который показывает внутреннюю структуру, т.к. полная картинка не влезет на страничку или получится слишком мелкой. Остальные элементы соединяются аналогично. Частоту генератора OSC задаем 32768 Hz.

7.4. Тест 15-разрядного счетчика.
Для тестирования добавим цифровой ( DIGITAL ) граф и на него поместим все пробники с генератора и выходов триггеров. Запускаем пробелом граф и получаем соответствующую картинку. Как видим, на выходе триггера U15 мы имеем импульсы с периодом 1 сек, что и необходимо было получить. Пока сохраняем этот проект и начинаем новый

7.5. Четырехтактный формирователь сигнала динамической индикации 128 Гц.
Реализуем его также на триггерах DTFF , но соединенных уже по схеме кольцевого регистра сдвига. Набираем четыре триггера, добавляем на вход генератор для тестирования и, как и раньше, проверяем через цифровой граф. Обратите внимание, что частота входного генератора для получения 128 Гц должна быть в четыре раза выше, т.е. 512 Гц. Кроме того, для первого триггера я использовал предустановку в единичное состояние: в свойствах в окне Other Properties введена строка INT=1 . В цифровом графе параметр Stop Time установлен 10m (т.е.10мсек). После тестирования можно приделать его через обычный метод копи-паст к 15-разрядному счетчику. Соответственно убираем из него генератор 512 Гц и объединяем входы RESET всех триггеров (на земле они у нас висят временно для тестирования). Вместо генератора приделываем вход CLK формирователя к прямому выходу триггера U6 15-разрядного счетчика (если вы нумеровали их последовательно, то именно там будет частота 512 Гц).
Нумерацию элементов в формирователе можно при желании изменить, чтобы продолжить последовательность из счетчика.

7.6. Формирователь минутного импульса.
Пожалуй, это наиболее сложная часть нашей модели, поскольку передний фронт этого импульса должен быть по прошествии 39 сек, а его длительность - 20 сек, т.е. после 59-й сек импульс должен быть сброшен в ноль. Поэтому также для начала собираем эту часть в новом проекте, но генератору для начала зададим частоту повыше и кратную 60, чтобы быстро измерить виртуальным частотомером при тестировании. Не будем мудрствовать и соберем эту часть все на тех же D-триггерах по схеме суммирующего счетчика. Десятичное число 60 эквивалентно двоичному 111100 , т.е. потребуется 6 триггеров. Кроме того, придется входы RESET раздвоить по ИЛИ, так как нам необходимо иметь сброс и от внешнего сигнала и при достижении отсчета 60 секундных импульсов (1 минуты). В качестве формирователя длительности импульса используем все тот же триггер DTFF, но уже как обычный RS-триггер. На вход S собираем через логический элемент И число 39 (двоичное 100111 ), на вход R - число 59 (двоичное 111011 ). В нашем случае это возможно, т.к. указанные числа имеют значительный разброс значащих единиц, но в некоторых случаях такая логика работы входов невозможна и приходится использовать инверсию незначащих нулей. В логических примитивах Протеуса это достигается добавлением для соответствующего входа строки INVERT=Dх в окне свойств, где х - номер входа (счет ведется с нуля, т.е. верхний вход пяти-входового элемента И будет D0 , а нижний D4 ). Поскольку схема достаточно громоздкая я приведу на картинке лишь ее фрагмент, а во вложенном файле проект в версии 7.2.SP6 для тестирования. Обратите внимание, что для логического элемента U7 (формирователь сброса по достижении числа 60) установлены свойства TDLHDQ=100n и TDHLDQ=100n (нарастание и спад импульса по 100 наносекунд) иначе вы просто не увидите его на графе. Если запустить симуляцию, то манипулируя кнопкой Gate Polarity прибора Counter Timer можно измерить длительность и паузу минутного импульса. Генератор я уже поставил на 1 Гц для имитации реальных условий.

7.7. Полная внутренняя структура 176ИЕ12. Коррекция после теста.
Теперь собираем все что мы уже создали в единый проект: корректируем нумерацию элементов, добавляем недостающие связи и тестируем в полном объеме с помощью все тех же цифровых графиков. Конечно, поместить полную картинку здесь не удастся, поэтому в аттаче проект для версии 7.2.SP6 . В проекте два файла: Vers1.dsn и Vers2fin.dsn . Первый вариант - это то, что получилось после сборки. Однако, при тестировании выяснилось, что фронты минутного импульса сместились на одну секунду назад (т.е. 38-я и 58-я сек. Это видно если максимизировать нижний граф). Пришлось слегка подкорректировать формирователь минутного импульса (см. прилагаемую картинку). Передний фронт - установка триггера U31 по двоичному 101000 (дес. 40), сброс по 111100 (дес. 60),. Обратите внимание, что для установки пришлось применить элемент 3-И , с инверсией по второму сверху входу (INVERT=D1). Это необходимо, поскольку иначе будет отсутствовать сброс минутного импульса (три старших разряда отличаются только нулем в середине). Кроме того, я уже заранее завесил на землю все входы, которые мы не будем симулировать. После тщательного тестирования уже можно сохранить последний вариант как секцию: File=>Export Section . Секцию потом удобнее добавлять на дочерний лист при окончательном создании модели. Осталось добавить чуть-чуть реальности и модель готова.

7.8. Добавляем реальные свойства к модели.
Cначала создадим проект для окончательного тестирования модели нашего счетчика по аналогии с помещенным в \SAMPLES\Tutorials\ Dmodtut1.DSN . Итак создаем новый проект. Помещаем на первый лист созданную ранее графическую модель 176ИЕ12. Входим в ее свойства двойным щелчком левой лапкой хвостатой и… ставим галку в окошечке Attach hierarchy module . Все, теперь нам доступен Child Sheet через правую кнопку мышки для нашей модели. "Goto -ем" туда и втаскиваем через File => Import Section нашу ранее сохраненную секцию. Правим связи терминалов на дочернем листе в соответствии с названиями ног модели на основном. Кроме того, нам придется добавить еще пару терминальчиков питания с лэйблами VSS и VDD , первый из которых заземляем, а второй просто соединяем с терминалом питания без названия (по умолчанию). Если этого не сделать при симуляции Протеус начинает грязно ругаться желтыми сообщениями об отсутствии данных связей на дочернем листе.
Получившаяся структура счетчика 176ИЕ12 вполне работоспособна и уже может быть использована в качестве схематической модели. Но давайте заглянем в ПУСК => Все программы => Proteus 7 2 SP6 (или какой у Вас) => Proteus VSM Model Help => ProSPICE Primitives и посмотрим там раздел Digital Modelling Primitives или просто щелкнув по любому примитиву в нашем проекте откроем HELP конкретно по нему. Ведь именно из этих примитивов мы собирали нашу модель. Оказалось, что по умолчанию ( Default ) параметры фронтов TDLHDQ, TDHLDQ и задержки прохождения TGQ равны нулю. Меня, да и Вас это конечно не радует. Ведь реальная КМОП микросхема имеет свои параметры. Будем исправлять по аналогии с уже разобранным ранее счетчиком 4060. Для этого в свойствах каждого триггера в нашей структуре в окошке Other Properties добавим строки:
TDHLCQ=<TDCQ>
TDLHCQ=<TDCQ>
TDRQ=<TDMRQ>
Для логических элементов аналогично добавим строки:
TDHLDQ=<TDOSC>
TDLHDQ=<TDOSC>
Добавим на дочерний лист текстовый скрипт следующего содержания:
*MAP ON VALUE+VOLTAGE
176IE12+5V : TDOSC=400n, TDCQ=500n, TDMRQ=500n
176IE12+9V : TDOSC=200n, TDCQ=250n, TDMRQ=250n
И еще один:
*DEFINE
TGQ=?
Для простой логики я принял задержки 200 нсек, для триггеров 250 нсек. Здесь я не гарантирую полной точности, особенно для напряжения 5V, т.к. взял и увеличил времена грубо вдвое по аналогии с 561-й серией, для которой это справедливо. Но какое-то реальное сходство с физической микросхемой уже будет просматриваться.
Для того,чтобы это свойство "заработало" возвращаемся на основной лист и снова "мэйкаем" нашу модель. При этом ничего не меняем кроме добавления (через кнопку New => Blank Item )следующего свойства как на картинке.
Успешно пройдя по всем вкладкам, в конце соглашаемся перезаписать существующий девайс. Теперь у нас в Пропертях появилось свойство Model Timing Voltage , которое по умолчанию равно 9V (см. на картинке Default Keyword ) и мы можем выбирать задержки для напряжения 5V. Можно попробовать симуляцию и двигаться дальше.

7.9. Добавляем свойство Clock Frequency (частота генератора) и компилируем модель.
Итак последний штрих - частота генератора. На дочернем листе в свойствах генератора OSC ставим галку Edit all properties as text и правим строчку:
CLOCK=<CLOCK>
Далее опять уходим на основной лист и снова "мэйкаем" нашу модель. По аналогии с предыдущим создаем свойство CLOCK
Только теперь мы выбрали тип - с плавающей точкой; ограничение - положительное, не равно нулю; и значение по умолчанию 32768 Гц. Вот собственно и все. Тестируем нашу модель, проверяем, что появилось свойство Clock Frequency , пробуем его менять и убеждаемся, что все работает.
Теперь во вкладке Tools верхнего меню выбираем опцию Model Compiler… и создаем с помощью ее MDF файл с названием нашей модели. По умолчанию Протеус предлагает сохранить его в своей папке MODELS .
Теперь осталось в последний раз "мэйкнуть" модель и по аналогии с предыдущими добавлениями приклеить через New => MODFILE (этот пункт уже существует как стандартный в раскрывающемся меню) наш созданный файл 176IE12.MDF , прописав его в окошке Default Value , и процедура создания модели полностью закончена.
Если что-то непонятно, можно всегда посмотреть в любой модели цифровой микросхемы, например той же 4060. Так же щелкаем по ней " Make Device " и доходим до нужной вкладки. Главное в конце не сохранять изменения (не прозевать нажать Cancel), чтобы не испортить существующую модель.

7.10. Еще одно свойство для полного счастья.
В предыдущем пункте я слегка поторопился с компиляцией модели. Когда я в П.7.8 указал, что необходимы VDD и VSS на дочернем листе, модфайл MDF еще не создавался, а эти терминалы были необходимы для отладки. Поэтому после отладки их можно благополучно удалить, а 176 IE12 придется «мэйкнуть» еще раз. И все в том же окне Component Properties & Definitions добавить еще одно стандартное свойство из всплывающего меню кнопки New – ITFMODE (интерфейс модели). Ему достаточно просто по аналогии с 4060 указать значение по умолчанию CMOS. Вот тогда все наши VSS и VDD на дочернем листе становятся просто лишними. Если же скомпилировать MDF так, как я указал выше – модель работать будет, но при останове симуляции вылетает желтое сообщение: Pin VDD not modeled. Думаю лишняя головная боль от таких предупреждений симулятора никому не нужна.
В приложенном архиве два проекта: в одном (V1_MDF.DSN) – окончательный вариант модели еще с дочерним листом, с которого компилировался 176IE12.MDF. В проекте Test.DSN дочерний лист уже недоступен, но требуется присутствие файла MDF. В нем же еще раз показано: как использовать микросхему со стандартным питанием 9V, не затрагивая при этом значение VDD=5V по умолчанию для всего проекта через Configure Power Ralls.

8. Создание моделей счетчиков 176ИЕ3 и 176ИЕ4. Создание своей библиотеки LML. Создание активной модели на примере вакуумно-люминисцентного индикатора.
8.1. Внутренняя структура исходной модели аналога CD4026.
Если досконально порыться в справочниках, то можно найти упоминание о том, что данные счетчики-дешифраторы созданы на основе счетчиков Джонсона. Для тех, кто подзабыл - напомню, что счетчик Джонсона представляет собой регистр сдвига на D-триггерах с замкнутой перекрестной связью с инверсного выхода последнего триггера на D-вход первого. У одного из этих счетчиков, а именно 176ИЕ4 имеется неполный аналог - CD4026 , представленный в библиотеке Протеуса схематичной моделью.
Желающие посмотреть на действительную внутреннюю структуру CD4026 могут скачать его даташит. Напомню, что для этого достаточно поместить его на лист проекта и при подключенном канале Интернет, выделив элемент через правую кнопку грызуна, выбрать опцию Display Datasheet , или просто воспользоваться сочетанием клавиш Ctrl+D . Файл модели 4026.MDF , который понадобится для отечественных счетчиков, расположен в той же библиотеке, что и 4060 и добывается оттуда аналогично. Однако, если мы воспроизведем по нему структуру нас ждет неожиданный сюрприз. Дело в том, что ребята из Лабцентра подошли к процессу творчески и не стали воспроизводить внутреннюю структуру "дословно", а просто из готовых примитивов собрали свой функциональный аналог счетчика-дешифратора CD4026 . И выглядит он намного компактнее и проще, чем реальная структура в даташите с дешифратором на логических элементах. Сравните картинку с той, что на странице 5 даташита.Даташит не такой уж и большой - приатачил на всякий случай.

8.2. Немного о свойствах примитивов модели 4026, и что предстоит изменить и дополнить, чтобы получить 176ИЕ4.
В приведенной выше структуре использованы новые для нас примитивы COUNTER_4 и DECODER_4_7 . Полностью список их свойств доступен на аглицком в HELP . Для тех кто "тормозит" с языком остановлюсь на важных для данного случая.
Универсальный счетчик:
ALOAD=0 - асинхронная загрузка по параллельным D0…D4 запрещена
ARESET=1 -асинхронный сброс разрешен
USEDIR=0 - вход CNTUP не используется
LOWER=0 -нижний предел счета равен 0
UPPER=9 - верхний предел счета равен 9 (а не 10!!!, хотя счетчик декадный счет то с 0 зафиксируйте себе в уме!!!)
INVERT=OE,CE,MAX -это уже знакомо входы проинвертированы, т.е. активный сигнал для них 0.
Декодер:
TYPE=7B - тип декодирования в семисегментный код 6 и 9 с горизонтальными хвостами
TG=<TG> - задержка распространения со входа на выход определяется в MAP (почему такая сокращенная запись, ведь обычно TGQ непонятно, видно Протеус проглатывает и этот вариант)
Теперь посмотрим, что необходимо изменить для нашего родного счетчика. Во первых ИЕ4 переключается по спаду импульсов на тактовом входе, значит в INVERT через запятую надо добавить UCLK . Во вторых наш счетчик должен формировать дополнительный импульс (выход UCS ) не по счету 2, а по счету 4 - изменяем для U3 на INVERT=D1 . В третьих, если посмотреть диаграмму, наш счетчик формирует положительные импульсы на выходах аналогичных UCS и CO (перенос) в отличие от импортного. Значит, в U1 убираем из INVERT MAX , для U3 добавляем через запятую Q (выход). В четвертых INH, DEI, DEO в нашем отсутствуют. Ликвидируем эти цепи и U4 , входы CE и EN U1 и U2 завешиваем на VSS . Ну и, наконец, пятое и самое важное. 176ИЕ4 имеет вход S , который используется для изменения полярности выходного кода. В нашем случае для этой цели проще всего применить на выходе дешифратора двухвходовые исключающие ИЛИ, один из входов которых объединить и обозвать S . Вот и вся реконструкция. Счетчик 176ИЕ3 отличается от ИЕ4 только коэффициентом пересчета - 6, и вместо четвертого импульса формирует второй. Ставим для U1 UPPER=5 (!!! Предупреждал выше), а вот для U3 становится актуальным INVERT=D2 . Я создам две модели, но для "особо одаренных" Подскажу, что можно поместить эти параметры в MAP , зависимое от VALUE и там прописать разницу для двух счетчиков. Тогда можно дя них создать единый MDF .
Выглядеть это будет примерно так:
В свойствах U1 UPPER=(вот засада! здесь UPPER в угловых скобках, но движок форума ловит его как тег и не отображает) , в свойствах U3 отдельной строкой INVERT =<Dx> . И дополнительный скрипт:
*MAP ON VALUE
176IE3 : UPPER=5, Dx=D2
176IE4 : UPPER=9, Dx=D1
Но на эксперименты у меня нет времени, хочу закончить эту тему до нового года, так что дерзайте сами.

8.3. Тестовая схема для проверки моделей.
В свете вышесказанного я создал графические модели счетчиков и приделал к ним дочерние листы, на которых и воссоздал нужные мне структуры. В качестве проверки правильной работы на основном листе пришлось собрать Test Jig (как ее обозвал Лабцентер), т.е. тестовую имитирующую схему. В качестве таковой я собрал как-бы секцию индикации часов от реальных электронных часов на микросхемах серии 176. Это удобно тем, что одновременно проверятся выходы переноса, 4-й и 2-й импульсы для соответствующих счетчиков и их входы сброса R при достижении 24 часов (т.е. сброс по совпадению в 00 должен произойти после 24-го секундного импульса на входе, а максимальное число индикации - 23). В качестве 176ЛА7 использована CD4011 - полный аналог нашей. Результаты на картинке, а проект во вложении. Оба счетчика имеют дочерние листы с внутренней структурой, которые также сохранены и как секции. Осталось только сгенерировать MDF-файлы с дочерних листов, а затем приклеить их к соответствующим моделям через Make Device , как и в случае с моделью 176ИЕ12 .

8.4. Тестируем все. Собираем библиотеку CMOS176.LML.
После создания MDF-файлов попробуем наши модели в действии. Я "спаял" простейшие часы на 176-й серии в файле проекта TEST2.DSN . Не могу удержаться от сарказма в сторону противников Протеуса. Ну, господа присяжные заседатели, что быстрее - сбегать в магазин за микросхемами и потом целый вечер варганить сей опус на макетке, вдыхая вожделенный, очень "полезный" для здоровья свинцовый "аромат", или повозить животное 15 минут по коврику и получить тот-же результат? Да, я затратил больше времени на создание самих моделей, но, пройдя сей путь единожды, получил "неограниченное" количество микросхем и могу "палить" их пачками без потерь в семейном или производственном бюджете. А на следующую модель, например: 176ИЕ5 или 176ИЕ8 я затрачу максимум 1 час. Но это так, лирическое отступление - двигаемся дальше.
Соберем все наши полученные MDF в одну папочку желательно в корне диска С: (так легче писать путь) и туда же поместим из папки BIN Протеуса утилиту PUTMDF.EXE . А теперь подсчитаем количество наших файлов MDF . Поясню для чего последнее - при создании библиотеки LML нам потребуется указать количество помещаемых в нее файлов. Конечно, можно указать заведомо большее, например, штук эдак 100, но под них резервируется объем в файле и он будет занимать больше места на диске. А мы и создаем нашу библиотеку, чтобы прекратить бардак в папке MODELS . Так зачем разводить его в другом месте? Поэтому если вы не планируете пополнять эту библиотеку, то надо указать именно то количество файлов, которое мы в нее поместим.
Итак, у меня три файла. Открываю командную консоль, вписываю туда путь к папке и набираю следующую команду (там где у меня подчеркивания должны быть пробелы):

Код:

PUTMDF.EXE _ -L=CMOS176.LML _-C=3

После этой операции в папке появится файл с именем CMOS176.LML . Затем вводим следующую строку

Код:

PUTMDF.EXE _ -L=CMOS176.LML _*.MDF

Должен появиться отчет о добавлении (Storring ) всех наших файлов. И размер файла LML возрастет. Можно провести эту операцию и в одной строке, а если добавить ключ -D , то исходные MDF-файлы будут удалены. Если не указывать имя библиотеки, то по умолчанию создается MODELS.LML , а переименовать ее можно потом, а если в ключе -С забыть указать количество файлов, то будет добавлен только один. Вот однострочный вариант создания библиотеки на 100 "посадочных мест" с удалением исходных файлов:

Код:

PUTMDF.EXE _ -L=CMOS176.LML _-С=100_ -D_*.MDF

После этого помещаем созданную CMOS176.LML в папку MODELS Протеуса (соответсвующие MDF-файлы там уже больше не нужны) и проверяем работу наших моделей.
Во вложении тестовый проект часов с файлами MDF , а в архиве CMOS176 - новогодний подарок для "ленивых". Скопируйте из соответствующих папок архива файлы CMOS176.LIB и CMOS176.LML в одноименные папки Протеуса и все, что написано выше можно не читать и не делать. Проверены в версиях 7.2.SP6 и 7.4.SP3 .

8.5. Исходные данные для моделирования индикатора ИВ-6.
Библиотеки Протеуса содержат достаточно большое количество разнообразных элементов индикации в разделе Optoelectonics . Однако, такой тип индикатора, как вакуумно-люминисцентный в них отсутствует. В то же время иногда возникает необходимость применить именно такой индикатор. Попробуем восполнить этот пробел и создать простенькую модель пусть и устаревшего, но иногда еще используемого радиолюбителями индикатора ИВ-6. Обратимся к справочнику Н.Вуколова и А.Михайлова "Знакосинтезирующие индикаторы"(см. картинку)
Исходя из этих данных, определимся: что мы хотим получить от нашей модели и какие она будет иметь ограничения. Мне хотелось бы, чтобы при напряжении накала ниже 0,85V индикатор был погашен, а при напряжении 1V ток накала составлял 50mA Согласно закону Ома при этом сопротивление нити составит 20 Ом. Аналогично для сетки при напряжении 30V и токе 15mA - сопротивление равно 2кОм, а для одного сегмента при 0,5mA - 60кОм. Эти данные я использую при создании модели. Ну и конечно цоколевка - соответствие выводов - сегментам. Сразу же оговорю еще одно ограничение-допущение, которое будет в модели. Аналоговыми свойствами с точки зрения нагрузки она будет обладать только для окружающей периферии. Я не планирую плавно изменять яркость свечения индикации, поскольку подозреваю, что это вызовет чрезмерное усложнение модели и соответственно нагрузку на процессор компьютера и на мои мозги тоже. Поэтому я пошел практически тем же путем, что и Лабцентровцы, а в качестве исходного материала для моделирования выбрал из раздела Optoelectonics одиночный семисегментный индикатор 7SEG-COM-AN-GRN (его MDF расположен в файле DISPLAY.LML - можно извлечь и посмотреть).

8.6. Джентльменский набор для моделирования индикатора.
Аналогично 7SEG-COM-AN-GRN.MDF для моделирования потребуются примитивы RTIPROBE - токовый пробник-индикатор реального времени и VSWITCH - управляемый напряжением включатель (практически аналог электромагнитного реле). Ну и конечно, для иммитации нагрузки примитив резистора. Напомню, что все это берется из библиотеки Modelling Primitives , а не где-нибудь еще.
Рассмотрим подробнее те свойства незнакомых примитивов, которые нам потребуются.
RTIPROBE:
MIN и MAX - соответственно минимальное и максимальное значение тока по которому определяется индицируемое состояние STATE в соответствии с формулой приведенной в HELP для модели:
STATE=(NUMSTATES-1)* ((CURRENT-MIN)/(MAX-MIN))
Где CURRENT - текущее значение тока, NUMSTATES - число состояний.
Если ток меньше MIN, то состояние принимается как MIN, если больше MAX - то максимум. Внутри диапазона дробное значение округляется к ближайшему целому.
ELEMENT - номер графического элемента (2D GRAPHIC SYMBOL), который индицирует состояния данного индикатора. Подробно применение этого свойства рассмотрено на примере BITWISE indicator (он находится в VSMSDK.HLP , который я ранее рекомендовал скачать). Чуть ниже мы им воспользуемся практически.
VSWITCH:
VT - Threshold Voltage - напряжение срабатывания
VH - Hysteresis Voltage - напряжение гистерезиса (если не 0, то включение при VT+VH/2, выключение при VT-VH/2, по умолчанию равно 0)
RON - ON Resistance - сопротивление контактов в замкнутом состоянии (по умолчанию 1 Ом)
ROFF - OFF Resistance - сопротивление контактов в разомкнутом состоянии состоянии (по умолчанию 1 МОм)
Расположение и фигурирующие в MDF названия выводов этих примитивов на картинке ниже:

8.7. Готовим исходный материал для графической модели ИВ-6.
Чтобы не начинать создание графики с нуля я воспользуюсь вышеупомянутой моделью 7SEG-COM-AN-GRN. Как и прежде втаскиваем ее на лист и доблестно расшибаем молотком (Decompose). В отличие от обычных схематичных моделей у активных имеются в составе еще и графические символы, которые после "удара молотком" доступны для обозрения и использования при нажатии кнопки S на зеленом фоне (2D Graphics Symbols Mode) в левом меню ISIS (см. картинку ниже). Здесь необходимо несколько пояснений. Символы - это те графические элементы, которыми при симуляции заменяются на изображении активного компонента в зависимости от значения RealTime пробника определенные области изображения. Они жестко привязаны по расположению относительно маркера (это тот прицел, что этажом ниже под S в левом меню. Вот теперь, я надеюсь Вам до конца понятно назначение этого маркера в графическом элементе. Для примера на картинке вытащен на поле и также "декомпозирован" погашенный верхний сегмент индикатора. Маркер станет виден только после воздействия на символ все тем же молотком. Символам при создании присваиваются названия и номера в зависимости от их принадлежности. Например в разобранном нами индикаторе имя группы - 7SEG_GRN . Оно общее для всех символов. Дальше через символ подчеркивания следует номер в группе начиная с нулевого: _0 , _1 , _2 и т.д. Именно он и является для пробника параметром ELEMENT (см. картинку выше). Для тела компонента это значение: _С. И следующий номер также через символ подчеркивания - это порядковый номер изображения для данного символа. В разобранном 7SEG_GRN их всего два: _0 - для погашенных сегментов и _1 - для засвеченных. В качестве эксперимента я рекомендую на досуге "расколотить" активный светодиод - вот там в зависимости от яркости вторичная нумерация богата. Именно эти номера и определяют яркость изображения в зависимости от параметра STATE пробника (формула в предыдущем пункте).
Итак, для чистоты эксперимента я вытащу все изображения символов на проект, разобью их и, слегка изменив, создам свои с другим цветом затененных символов (ведь на реальном ИВ-6 они бледно-серые) и заменю цвет тела компонента на грязно-желтый (тоже поближе к реальности). Кроме того, мне необходима десятичная точка, отсутствующая в прототипе.

8.8. Создание собственных символов.
В качестве примера я добавлю активные (подсвечиваемые) символы нити накала и сетки, чтобы не забыть подать на них напряжение при симуляции. Это придаст нашему индикатору своеобразную "изюминку" по сравнению с остальными семисегментными моделями Протеуса. На что здесь необходимо обратить внимание:
Положение активного (засвечивающего или затемняющего) элемента относительно маркера для всех символов имеющих одинаковые номера (ELEMENT) должны быть строго выровнены по сетке. При необходимости можно изменить шаг сетки на более мелкий через верхнее меню View => Snap. Я поступаю следующим образом: Выделяю область, где расположен базовое изображение ( в нашем случае то что мы "разбили" можно вместе со скриптом). Затем нажимаю в верхнем меню кнопку Block Copy (Два зеленых прямоугольника с жирной красной вертикальной стрелкой вниз), которая становится активной после выделения области на проекте. После этого раставляю по полю проекта левой кнопкой хвостатой нужное мне количество изображений. А потом на каждом двойным щелчком правой кнопкой удаляю ненужные мне элементы: выводы, тело и т.п. не затрагивая при этом маркер и нужный в данном символе элемент. Для самих сегментов не забудьте еще через меню Edit сделать Bring To Front (на передний план), чтобы символ не был загорожен телом при симуляции. А для тела соответсвенно: Send To Back. Теперь как это сохранять. Если мы выделим графический элемент совместно с маркером, то через правую лапку животного нам будет доступна активная опция Make Symbol. В открывшемся окне вводим имя со всеми номерами через подчеркивания (например: IV6SEG_0_0 , а для светящегося - IV6SEG_0_1 , чтобы не засорять системную библиотеку символов выбираем в окне Library => USERSYM, а Type оставляем Graphic. Жмем ОК, после чего в селекторе (см. картинку выше) в списке символов появится сохраненный нами. Я рекомендую перед сохранением первого символа сразу же скопировать в буфер обмена его имя (это для особо ленивых вроде меня) из окна Name, а потом только вставлять (Paste) его и менять цифры. Это предохранит Вас от недоразумений при симуляции (потеря символов), так как имена, за исключением номеров у всей группы должны быть строго идентичны.Все эти этапы создания графики я свел в один проект на два листа. Художник из меня никакой, так что за убогую графику приношу извинения. При создании символов обратите внимание, что вместе со светящимся элементом должен быть захвачен выделением и маркер (прицел), но больше ничего. Сиреневые линии обводки я ввел только чтобы разграничить отдельные символы их ни в коем случае нельзя захватывать. Не забудьте про символ базы ("тела") с индексом _С.
ВНИМАНИЕ!!! Добавлено!
1. Максимальное общее количество символов сегментов 32, т.е. первое число после подчеркивания не должно превышать 31, считая с 0 (от _0_x до _31_x). Это необходимо учитывать при создании многоэлементных графических моделей (например точечных матриц). Данное примечание касается Schematic моделей и не относится к VSM - там свои ограничения - о них позже.
2. Тем, кто использует на своих компьютерах автопереключатели раскладки типа Punto Switcher и т.п. - отключайте их на время работы в Протеусе и принудительно переводитесь в En раскладку. Уже были случаи - для базы ("тела") вводят русское С - клавиша совпадает, а потом удивляются - куда пропадает тело при симуляции.
3. Если вы сохраняете сегменты в USERSYM библиотеке символов, то помните, что она может хранить по умолчанию только 100 элементов. Если необходимо хранить больше - создайте свою или еще одну.
Хранимые в библиотеках символы всегда можно извлечь в селектор символов, чтобы не создавать заново. Для этого пользуемся тем же методом, что и для элементов, только переключив селектор в режим символов S в левом вертикальном меню.
Находясь в этом режиме, щелкаем P, как и для компонентов и попадаем в библиотеки символов. Двойным щелчком по нужному загоняем его в селектор.

8.9. Создаем модель. Добавляем дочерний лист и редактируем его свойства.
Внимание! В справочнике Вуколова очепятка. Левый по схеме вывод накала, он же соединен физически с катодом должен иметь номер 8. Правильное расположение выводов у индикатора ИВ-3А. Устраните это недоразумение в предыдущем вложении. Итак мы нарисовали графику, приклеили к модели выводы, пронумеровали их - пора создавать модель. Технология мало чем отличается от изложенной для 176ИЕ12. Есть одно существенное НО на первой вкладке Make Device . Что там добавляется ясно из картинки ниже. Поясню особенности:
* Simbol Name Stem - имя, которое мы присвоили нашим символам при создании. НО без подчеркиваний и номеров в конце! Эти символы при создании модели должны быть доступны при нажатии S (см. картинку в предыдущем пункте)
* No of States - количество состояний. Для бит зависимых (наш сегментный индикатор) ставим число созданных символов, учитывая, что нумерация с нуля. "Тело" не в счет. Если меняется только один элемент, то ниже нет галки, а число должно совпадать с числом его градаций яркости (например лампочка в HELP VSMSDK).
* Bitwise States - галочка ставится для многоэлементных индикаторов, как наш. Если бы мы лепили светодиод или лампочку, где меняется только один элемент по яркости - она не нужна.
Создали нашу модель пора приделать к ней дочерний лист. И здесь тоже есть особенность, с которой я долго бился. После создания дочернего листа ( Attach hierarchy module ), заходим в него и через верхнее меню Design => Edit Sheet Properties обязательно добавляем галку в окошко External .MOD file , иначе наша модель при отладке работать не будет. Лист должен иметь свое имя, чтобы файл именовался в соответствии с ним. На этом все подготовительные процедуры закончены и мы можем на дочернем листе создавать внутреннюю структуру модели, используя наш "джентльменский набор" и другие примитивы. При этом у RTIPROBE или RTVPROBE в качестве ELEMENT указываем номер (ИМЕННО НОМЕР А НЕ ПОЛНОЕ НАЗВАНИЕ) соответствующего символа, т.е. для нашего случая от 0 до 9.

8.10. Создаем внутреннюю структуру индикатора и тестируем ее.
Для создания модели, поскольку она учебная я постарался запихать на дочерний лист как говорится "всяко-разно, лишь бы не заразно". Кроме упомянутых выше RTIPROBE и VSWITCH в новый джентльменский набор вошли:
ACCVS: управляемый током источник напряжения напряжение на выходе вычисляется по формуле, которая указана в свойствах - по умолчанию: U=1,0 * I(A,B). Где I - ток. Т.е, если ток через левые выводы равен 1 А, то напряжение на выходе справа 1V. Поскольку ток у меня в mA, чтобы получить приличное напряжение на выходе и не валандаться с дробями я применил множитель 1000 вместо единицы.
CSWITCH: аналогичен VSWITCH и обладает теми же пропертями, только по входу управляется не напряжением, а током.
RTVPROBE: аналогичен RTIPROBE , но контролирует не ток, а напряжение. Свойсва и формула в хелпе похожи, но вместо CURRENT (текущее значение тока) стоит VOLTAGE (напряжение). У RTVPROBE есть еще одно дополнительное свойство: LOAD (нагрузка), которое по умолчанию отсутствует. Но я применил его для одного из пробников, чтобы нагрузить выход переключателя CSWITCH хотя бы на 1МОм, иначе даже при ROFF=1000МОм у него на выходе будет висеть напряжение.
Внутренняя структура получилась достаточно корявая, но я стремился к тому, чтобы показать как все это делается, а не к максимальной простоте и быстродействию. Отсюда и вылезли дополнительный однополупериодный выпрямитель и ACCVS на накальных выводах - стремление к достоверности, т.е. к тому, чтобы запитать накал переменным напряжением, ну прямо как у настоящего ИВ6. Я не стал полностью изолировать цепь накала от остальной схемы, хотя если покумекать, то можно это сделать. Опять сошлюсь на то, что вывод накала 8 у реального индикатора связан с катодом и позволяет питать накал постоянным током, при этом к этому выводу должен подводиться минус источника. Как видите даже это в моей модели реализовано. Во вложении проект с прикрепленным к модели дочерним листом и MOD - файлом (не путайте с MDF ), который создался из дочернего листа при установке флага External .MOD file (см. выше). Модель полностью жужжит, желающие могут поиграться с внутренней структурой на дочернем листе и с проверкой работы по внешним выводам на основном. Кому не терпится может сразу скомпилить MDF также как и для модели 176ИЕ12, тут никаких "подводных камней" не зарыто и в дальнейшем использовать ее. Однако не забудьте все же про Make Device , чтобы модель появилась в Ваших библиотеках Протеуса, т.к. сам по себе MDF - это еще не модель. Кому не ясно - вспомните, что для счетчиков 176 серии я прилагал кроме LML еще и файл .LIB , который помещается в папке LIBRARY . Это прописывается на последней вкладке при Make Device

9.1. Манипуляции с LED или программная модель без программирования.
"А русские прилетали - с молотком, зубилом и какой-то матерью за два часа починились"
(из анекдота)
В ходе создания активной модели ИВ-6 однажды меня осенила туповатая, но как оказалось верная по существу мысль. А именно: если есть в Протеусе модели двух-, четырех-, шестиразрядных 7-сегментных дисплеев, то почему не быть трехразрядным или, допустим, - десятиразрядным, тем более что у меня давно лежит парочка трехразрядников в хламе. Взял и проверил эту идею. Так что про молоток я тут не зря упомнил. Процедура старая - добываем, например, четырехразрядный индикатор с ОА, колотим его, вытираем один разряд из графики, подрезаем (смещаем границу) "тела" и выводы, чтоб не торчало лишнее и убираем четвертую ногу. Дополнительно редактируем надпись (это просто графическая надпись и никак не связана с количеством выводов) 1234 переделываем в 123. Вот и вся процедура. Обводим все это выделением и … волшебное Make Device . Только правим имя устройства (ведь у нас уже 3, а не 4 разряда) и далее по всем пунктам. На последней вкладке не забудьте внести аналогичную поправку в окошке Device Description . Модель будет создана по умолчанию в библиотеке USERDVC . Вот так в пять минут не написав ни строчки кода мы слепили первую программную модель. Чуть больше я потратил на десятиразрядник. Особо пытливые при создании девайса на вкладке Component Properties & Definitions могут посмотреть в свойстве INVERT различия у моделей с ОА и ОК.
ВНИМАНИЕ! Начиная с этого поста я прилагаю примеры в версии Proteus 7.4SP3! Для импорта в предыдущие версии прилагается Section .

9.2. Создаем свою клавиатуру (Keypad).
В стандартной поставке Протеуса есть три вида Keypad калькуляторные и телефонная клавиатуры. Однако универсальная модель Keypad.DLL позволяет создавать собственные варианты, чем мы и займемся. Все это подробно описано в HELP, доступном для вызова при установке любой из этих моделей в проект. Я взял за основу телефонную клаву. Процедуры все те же. Колошматим, создаем свою графику и мэйкаем. Некоторые замечания из HELP для не владеющих аглицким.
Графика: расставляя кнопки на своей клавиатуре необходимо зафиксировать их координаты относительно верхнего левого угла "тела", чтобы они потом фигурировали в свойствах для указания положения конкретной кнопки.На "разобранной" модели на этом месте стоит маркер ORIGIN (прицел) Наведите курсор на его центр и нажмите клавишу буквы[O]. При этом зафиксируется псевдоначало координат ( в правом нижнем углу окна ISIS позиция курсора станет 0, 0). Теперь наводя курсор на центры наших кнопок мы получим их относительные координаты и зафиксируем их на бумажке.
Выводы строк (слева) именуем латиницей А, B, С, D и т.д. Выводы столбцов цифрами 1, 2, 3, 4 и т.д. Позиция конкретной кнопки записывается как B4 или D2, E9 и т.п. Внутри кнопок можно смело вставлять надписи на русском.
Параметры: кнопки могут быть:
-квадратными - (SQUARE,координата Х, координата Y, ширина (она же высота))
-прямоугольными - (OBLONG, координата Х, координата Y, ширина, высота)
-круглыми - (ROUND, координата Х, координата Y, ширина, высота)
Пример записи для последней:

Код:

{A1=ROUND,300,-300,300,1}
или
{D3=ROUND,1100,-1500,300,#5}

Здесь нас особо интересует последнее значение перед закрытием фигурной скобки - это клавиша основной клавиатуры компьютера, которая назначена нашей кнопке. В данных примерах это 1 основной клавы и 5 цифровой дополнительной.
Назначать можно основную клавиатуру (вот здесь используем только латынь),
Дополнительную цифровую клавиатуру справа. Пример: #1 или #6.
Сочетания с CTRL. Пример: ^D, ^R.
Спец. клавиши Например: INSERT, DELETE, HOME, END, PGUP, PGDN (задавать как здесь!).
Ну и наконец глобальное назначение @5 или @R. О нем особо. Дело в том, что при симуляции кнопки становятся активными для ввода с клавиатуры только при наведении курсора хвостатой на область модели кейпада в проекте или непосредственном нажатии их левой лапой грызуна. Вот если вы хотите дать передышку мелкому зверьку - используйте такое назначение с "собакой". Тогда наводить курсор на Keypad не надо можно сразу пользоваться назначенными клавишами компа после запуска симуляции.
Ну вот вкратце все по этой модели и файл с примерами и опять с Section для предыдущих версий.

9.3. LCD Panels Display или еще одна модель в Протеусе, допускающая вольности в обращении.
Я уже хотел было совсем свернуть тему схемных моделей в ЧАВО и перейти на более высшую ступень развития - программные, как на форуме посыпались вопросы имеющие решение в моделях схематичного уровня. Поводом к написанию нескольких последующих постов послужил вопрос по модели драйвера AY0438 от Microchip, обслуживающему цифровые четырехразрядные жидкокристаллические панели. Поскольку у всех электронщиков со стажем наверняка скопилось N-е количество паленых дешевых китайских тестеров с 3 1/2 LCD индикаторами и, как правило - половина из них не битые об пол, думаю, что тема актуальна. Лично у меня по всяким закромам и дома и на работе валяется с десяток таких тестеров, в большинстве из которых спалена микросхема АЦП или дорожки переключателя печатной платы. Ну любят мои подчиненные пихать все, как попало в розетку не подумав - не увольнять же их за это. А для использования в простых устройствах - термометры, часы, и пр. девайсы я не вижу смысла приобретать дорогие LCD с контроллером на HD44780 и ему подобные. В то-же время и при покупке всегда можно подобрать дешевый цифровой ЖК индикатор, даже при отсутствии дохлых тестеров в закромах. Итак, переходим ближе к теме.
В библиотеках Протеуса цифровые ЖК индикаторы представлены двумя готовыми моделями: VI-402-DP - четыре разряда с дополнительными точками и VIM-332-DP - 3 1/2 разряда с дополнительными символами цифрового измерительного прибора. Обе модели Гонконгской фирмы Varitronix. Даташиты на указанные модели доступны для скачивания непосредственно из Протеуса упомянутым мною раньше способом. Даташиты на другие индикаторы этой фирмы можно скачать с офсайта: http://www.varitronix.ru после заполнения небольшой регистрационной формы. В китайских тестерах используются или их или аналогичные индикаторы. Еще одна ссылочка на достаточно дешевые индикаторы Intech http://www.intechlcd.com/standardpanel.htm , в основном представленные в Чипе-Дипе и Платане.
Для тех, кому лень напрягать память - напомню, что особенностью ЖК панелей является то, что на подложку необходимо подавать переменное (пульсирующее) напряжение противофазное управляющему (см. Н.Вуколов и А.Михайлов "Знакосинтезирующие индикаторы" стр.57). Именно на такое управление и расчитана DLL модель в Протеусе, на основе которой созданы вышеупомянутые индикаторы, где на сегменты для зажигания необходимо подавать импульс логической единицы, а подложку логического нуля. Если открыть свойства любого из этих индикаторов As Text, то мы увидим очень знакомую картину. Вот, например, кусочек для VI-402-DP, имеющему отдельные выводы на каждый сегмент.

Код:

{SEG1=4,400,200}
{SEG2=3,400,200}
{SEG3=2,400,200}
{SEG4=7,400,200}
{SEG5=4,1100,200}
{SEG6=3,1100,200}
{SEG7=2,1100,200}
{SEG8=7,1100,200}

А это для VIM-332-DP с объединенными сегментами для динамической индикации:

Код:

{SEG1=(11,400,50),(9,0,200),(8,0,500),(10,0,800)}
{SEG2=[13,1700,50],[12,1000,50],[22,200,200],[7,250,200]}
{SEG3=[0,900,200],[5,900,200],[4,900,200],[3,900,200]}
{SEG4=(1,900,200),(6,900,200),(2,900,200),(7,950,200}
{SEG5=(0,1600,200),(5,1600,200),(4,1600,200),(3,1600,200)}
{SEG6=(1,1600,200),(6,1600,200),(2,1600,200),(7,1650,200)}
{SEG7=(0,2300,200),(5,2300,200),(4,2300,200),(3,2300,200)}
{SEG8=(1,2300,200),(6,2300,200),(2,2300,200),(-1, 0,0)}
{SEG9=(14,2000, 0),(15,2500,0),(16,2700,450),(19, 2700,750)}
{SEG10=(18,2700, 450),(17,2700,450),(20,2700,750),(21, 2700,750)}

Дальше напрашивается банальная фраза: "Ба, знакомые все лица!". Да ведь это мы уже проходили этажом выше. Ведь здесь расписано ни что иное, как относительные координаты сегментов. Наморщив ум, каждый придет к выводу: значит можно самостоятельно создавать графику для сегментных LCD, используя LCDMPX.DLL. Процедура банально старая - Decompose молотком, редактируем графику и далее по всем пунктам. При создании (Make Device) конечно необходимо сослаться на LCDMPX.DLL на третьей вкладке и прописать сегменты там-же. На первой вкладке не забудьте про галочку Link to DLL (связь с библиотекой DLL).

9.4. Разбираем модель сегментного ЖК индикатора или обходим "грабли Лабцентра".
Те, кто рьяно рванулся калечить исходные модели из библиотеки, уже наверное успели покрыть меня трехэтажным великим и могучим. Не волнуйтесь - все под контролем, при исследовании этих моделей я так же прошелся по поводу программистов из Лабцентра. Видимо сказывается "узкая специализация" англичан светодиодные модели писал один, ЖК - другой. Архимед из меня может и посредственный, но после некоторых продолжительных посиделок над моделью, я нашел "точку опоры" и готов "сдвинуть землю". Найденные грабли заключены в следующем.
После Decompose выясняем что выводам модели слева направо начиная с 5 соответствуют сегменты SEG1, SEG2 и далее по порядку до SEG32 соответствующего выводу 37.
Разбираем на примере {SEG1=4,400,200} от модели VI-402-DP.
SEG1 - наименование символа в модели. Если посмотреть по даташиту соответствует сегменту 4Е (левому - счет разрядов индикатора справа налево см. рисунок). Теперь пришла пора выяснить что у нас зашифровано справа от знака равенства.
4 - это номер символа в одноразрядном индикаторе, где 0 - A, 1 - B, 2 - С, 3 -D, 4 - E и т.д. Если после разбития модели заглянуть в список символов по кнопке S в левом меню, то все они там представлены.
А вот дальше начинается самое интересное: 400 и 200 - это соответственно X и Y координаты относительно маркера модели, как и в модели Keypad но не самого сегмента, а его маркера (маркера символа), т.е. маркера всего знакоместа. Именно поэтому координата Y у всех символов совпадает (одна строка) и равна 200, а координата X для четырех знакомест имеет только 4 различных значения: 400, 1100, 1800, 2500 для четырех знакомест (цифр).

9.5. Процесс создания модели 8-разрядного индикатора Intech E0002.
Первоначально хотел создать Е0806, и уже было сделал, но в конце процесса обнаружилась маленькая загвоздка, которая пустила всю работу коту под хвост. Но все, что не делается - к лучшему -- обнаружилось ограничение для LCDMPX.DLL моделей. Общее количество сегментов в модели не должно превышать 64 (в Е0806 их 66, поэтому два оказались не у дел). Пришлось срочно переделать модель на Е0002, в которой как раз 64 индицирующих элемента. Можно было оставить и ту, но тогда пришлось бы пожертвовать двумя сегментами, которые не работали бы в модели. Весь процесс изложен в прилагаемом архиве, там же и даташит на Е0002, а также вспомогательная таблица в MS Exel, в которой соответствие имен выводам модели. Для тех, кто работает в версии 7.2 как всегда приложены файлы Sec. Проект на 2 листах (SHEET), поэтому секций две. На втором уже готовая модель (нижняя), которую можно потестить через симуляцию. В папке Library готовые файлы от модели для библиотеки, которые можно поместить в соответствующую папку Протеуса, чтобы модель добавилась в библиотеки Протеуса. Если произвести Make Device модели со второго листа и пробежаться по вкладкам ничего не меняя - то она добавится в USERDVC, а если воспользоваться Library, то она будет в своей Intech_LCD.

9.6. Генератор на логических цифровых элементах в Протеусе. ITFMOD.MDF и другие недокументированные свойства.
При подготовке материала по модели драйвера AY0438 я поставил себе цель все-таки реализовать то, что мне не удалось ранее с моделью 176ИЕ12, а именно универсальный генератор для модели. Если вставить внутренний генератор не составляет больших проблем, то реализация симулируемого RC генератора на цифровой логике в Протеусе уже давно загоняла меня в тупик. Еще в ранних версиях ISIS я обратил внимание, что иногда генератор запускался, иногда нет. Да еще в некоторых случаях с цифровыми моделями резистора, а в некоторых с аналоговыми. Поднимались аналогичные вопросы и участниками форума. Настало время разрубить этот "Гордиев узел" раз и навсегда. Ну во-первых использование RC цепочки в генераторе само по себе накладывает определенные требования по типу элементов. Поскольку заряд конденсатора через резистор должен производится по плавному нарастанию напряжения на обкладках - процесс носит явно аналоговый характер. В то-же время, логические элементы цифровые. Как это увязать вместе? В Samples Протеуса есть пример реализации такого генератора на инверторах и элементарных АЦП/ЦАП - Invosc.DSN. Однако, он предназначен для практического знакомства с самим процессом и содержит большое количество элементов, чтобы разделить аналоговые и цифровые части схемы. На практике такая реализация явно неудобна.
В то же время входные/выходные цепи логических элементов в Протеусе имеют ряд свойств, которые носят аналоговый характер. Давайте вспомним, что при реализации КМОП 176-й серии мы для моделей задавали свойство ITFMOD=CMOS . Тогда я не стал заострять на нем внимание, но пора познакомится с ним поближе. ITFMOD (INTERFACE MODELS) именно и описывает поведение модели для смешанного режима моделирования. Ему посвящен раздел HELP: ADVANCED TOPICS => MIXED MODE INTERFACE MODELS . Кратко укажу, что ITFMOD описывает пороговые уровни логического нуля и единицы, неопределенное состояние входов, время нарастания/спада логических уровней и пр. для различных семейств цифровых микросхем и микропроцессоров. Все это расположено в файле ITFMOD.MDF , который даже не надо ниоткуда "извлекать" он размещен в папке \MODELS . Поскольку он довольно компактный приведу его полностью:
LISA MODEL DESCRIPTION FORMAT 5.0
=================================
Design: K: \Prodev\Spice\ITFMOD.DSN
Doc.no.: <NONE>
Revision: <NONE>
Author: <NONE>
Created: 18/03/98
Modified: 23/06/05

*MODELDEFS,18
CMOS: RHI=100,RLO=100,TRISE=1u,TFALL=1u,V+=VDD,V-=VSS
NMOS: RHI=100,RLO=10,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VCC,V-=GND
TTL: RHI=50,RLO=5,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,RPOS=5k,RNEG=20k,V+=VCC,V-=GND,FLOAT=HIGH
TTLHC: RHI=5,RLO=5,V+=VCC,V-=GND
TTLHCT: RHI=5,RLO=5,V+=VCC,V-=GND
TTLLS: RHI=100,RLO=10,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,RPOS=12k,RNEG=50k,V+=VCC,V-=GND,FLOAT=HIGH
TTLS: RHI=25,RLO=2.5,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,RPOS=5k,RNEG=20k,TRISE=0.5n,TFALL=0.5n,V+=VCC,V-=GND,FLOAT=HIGH
PLD: RHI=20,RLO=20,V+=VCC,V-=GND,FLOAT=HIGH
PIC: RSHI=20,RSLO=20,RWHI=20k,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VDD,V-=VSS,TRISE=10n,TFALL=10n
PIC3V3: RSHI=20,RSLO=20,RWHI=20k,VUD=2,VTL=0.8,VHL=0.1,VTH=1.5,VHH=0.1,V+=VDD,V-=VSS,TRISE=10n,TFALL=10n
8051: RHI=20,RLO=20,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,RPOS=5k,RNEG=20k,V+=VCC,V-=GND,FLOAT=HIGH,TRISE=10n,TFALL=10n
AT89: RHI=20,RLO=20,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,RPOS=5k,RNEG=20k,V+=VCC,V-=GND,FLOAT=HIGH,TRISE=10n,TFALL=10n
HC11: RHI=20,RLO=20,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VDD,V-=VSS,TRISE=10n,TFALL=10n
AVR: RSHI=20,RSLO=20,RWHI=100k,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VCC,V-=GND,TRISE=10n,TFALL=10n
MSP430: RSHI=20,RSLO=20,RWHI=100k,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VCC,V-=GND,TRISE=10n,TFALL=10n
LPC2100: RSHI=20,RSLO=20,RWHI=100k,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=V3,V-=VSS
BSTAMP: RSHI=20,RSLO=20,RWHI=20k,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VDD,V-=VSS,TRISE=10n,TFALL=10n
RS232: VLO=-8.5,VHI=8.5,RHI=300,RLO=300,VTL=1.2,VHL=0.5,VTH=1.7,VHH=0.5,RPOS=5k,RNEG=5k,V+=VCC,V-=GND,FLOAT=HIGH,TRISE=1u,TFALL=1u
Как видим, здесь указано 18 различных типов и для каждого определен свой круг параметров по умолчанию. Не все из них описаны в вышеупомянутом разделе HELP, часть разбросана по HELP PROSPISE Primitives в частности Mixed модели ADC и DAC. Попробую здесь перечислить все, что встречаются в ITFMOD.MDF с кратким описанием на русском.
V+ и V- - наименование соответственно плюсового и минусового выводов питания для модели по умолчанию (обратите внимание, что если вы создаете свою модель и присваиваете ей свойство ITFMOD стандартного семейства, то именно так должны быть обозначены выводы питания вашей модели. Обратите также внимание, что у CMOS + питания - это VDD, а минусовой (общий) вывод VSS, а например у TTL соответственно VCC/GND).
VOLTAGE - определенное по умолчанию напряжение питания для моделей, у которых нет видимых выводов питания.
RINT - определенное по умолчанию внутреннее сопротивление источника питания (значение 0 выключает его полностью).
FLOAT - определяет HIGH (единичное) или LOW (нулевое) состояние для плавающих (неподключенных входов) по умолчанию.
RHI и RLO - соответственно внутреннее сопротивление для высокого и низкого уровня выходов.
RPOS и RNEG - соответственно сопротивление к плюсовому и минусовому выводам питания для входа при аналого-цифровом (mixed) режиме.
VLO, VHI , и VUD - уровни выходного напряжения для логического нуля, логической единицы и неопределенного состояния. Могут указываться как непосредственно (VHI=4.5) так и в процентах от питающего напряжения (VUD=50%).
VTL и VTH - соответственно низкий и высокий уровни напряжений переключения для входов. Также могут указываться непосредственно и в процентах.
VLH и VHH - соответственно гистерезисы (запаздывание по уровню) переключения с низкого на высокий и с высокого на низкий уровни. Также могут указываться непосредственно и в процентах.
TRISE и TFALL - соответственно время нарастания и спада выходного напряжения (фронты).
Есть еще ряд параметров перечисленных в HELP на ADC/DAC, но они пока нам не нужны, а желающие могут посмотреть их самостоятельно. Зато есть одно волшебное свойство, которое не упоминается в HELP нигде, но элементарно позволяет заставить любую схему генератора на логике подать признаки жизни. Имя ему - SCHMITT . Да, да тот самый триггер Шмитта - верьте своим глазам. Кто не помнит шо це таке - в любой учебник или справочник по электронике. Еще в какой то из старых веток по Протеусу я упоминал, что всегда четко в Протеусе симулируются RC генераторы выполненные, например, на м/сх 40106 . И вот решил, наконец, заглянуть чем же отличается эта модель от обычного инвертера. Оказалось, что только этим и отличается. В ее MDF четко прописано SCHMITT="D" . Напомню, что В у цифровых моделей обозначается вход. Поскольку он у инвертера единственный - цифровой индекс отсутствует. Если бы мне понадобилось превратить один из входов элемента 2-И в триггер Шмитта, то пришлось бы конкретно указать D0 или D1 . Дальше пришлось несколько вечеров повозиться, чтобы исследовать всю эту кухню с различными семействами и вышеперечисленными свойствами в действии и результат "на лице". Итоги следующие: для CMOS действует безотказно, TTLHC и TTLHCT - тоже практически не дурят, но приходится поиграться с уровнями VLO, VHI . Хуже всего дело обстоит с TTL, TTLS, TTLLS . Там обязательно в свойствах элемента, подключенного по входу к RC необходимо задирать RPOS и RNEG , поскольку они явно прописаны в файле ITFMOD.MDF . Если их установить 500k и выше - генерация стабильно работает. Дальнейшие манипуляции возможны уровнями и гистерезисами.
Я не ставил себе целью добиться в данном случае точного совпадения частоты импульсов мультивибраторов эмпирическим формулам, приведенным в публикациях, посвященным данной теме. Но в принципе, если основательно посидеть, то можно добиться и полного совпадения. Вообще всю эту возню вокруг мультивибраторов я затеял из-за того, что мне понадобился CMOS генератор с заземленным с одной стороны конденсатором для модели драйвера AY0438 . Таковой легко реализуется на одном элементе триггера Шмитта (см. рисунок). Ну а попутно пришлось разобрать и остальные варианты. Зато теперь появилась возможность обновить модель 176ИЕ12, придав ей функциональную законченность, что я в ближайшие дни и планирую сделать. В приложенном архиве возможные опробованные варианты для ТТЛ и КМОП мультивибраторов, а также несколько страниц из книги С.А.Бирюкова "Цифровые устройства на МОП интегральных микросхемах", посвященных генераторам. Для версии 7.2 как всегда одноименные импортируемые Section . Для тех, кто желает основательно покопаться вот дополнительный список использованных статей из журнала "Радио":
№8 1985 г. С. Алексеев "Формирователи и генераторы на микросхемах структуры КМОП"
№7 и №9 1995 г. С Бирюков "Генераторы и формирователи импульсов на микросхемах КМОП"
№1 2000 г. С Елимов "Генераторы прямоугольных импульсов на микросхемах КМОП"
Где расположен архив на сайте журнала "Радио" надеюсь не забыли.
Однако, этот раздел получился достаточно объемный, но надеюсь полезный. На закуску еще одно недокументированное свойство для выходов цифровых моделей ТТЛ, превращающих их в открытый коллектор - OCOPS . Поскольку это для выходов, записывается так: OCOPS="Q0,Q1" (если для первых двух выходов или просто Q , если выход единственный).

9.7. Создание модели драйвера LCD индикатора AY0438 фирмы MicroChip.
Драйвер LCD AY0438 представляет собой микросхему с последовательной загрузкой по трехпроводному интерфейсу для управления LCD индикатором, имеющим в составе 32 сегмента и общий вывод подложки. Микросхемы допускают последовательное наращивание. Как частный случай я буду рассматривать управление 8-ми разрядным семисегментным индикатором с дополнительными точками в каждом разряде, т.е. суммарно 8х8=64 с помощью двух микросхем AY0438 . Даташит (англ.) на данную микросхему доступен на сайте www.microchip.com , но необходимые для моделирования выдержки я буду приводить здесь по мере создания модели. Итак первая вставка из даташита.
На FIG.2 показана укрупненная структура драйвера, дающая понятие о принципе его работы. Из нее следует, что драйвер содержит 32-разрядный тактируемый по Clock сдвиговый регистр для загрузки через вход Data in данных с выходом Data out для передачи на последующую микросхему, 32 триггера-защелки Latches для хранения загруженных данных с управлением загрузкой по третьему проводу Load , а также встроенный тактовый генератор противофазных сиглалов для LCD, управляющий 32-разрядным выходным драйвером и сигналом на подложку Backplane индикатора, который также является входным сигналом управления LCDФ для последующего драйвера при наращивании. В случае использования внутреннего генератора ко входу первого драйвера подключается частотозадающий конденсатор емкостью от 20 до 120 пФ, второй вывод которого коннектится на землю (вот почему мне нужен был такой мультивибратор). Немного остановлюсь на принципе управления жидкокристаллическим индикатором, представленным на диаграмме FIG.3 для тех, кто имеет об этом отдаленное представление. С целью продления жизни жидким кристаллам в ЖК индикаторах применяется управление переменным или пульсирующим напряжением, подаваемым на выводы сегментов и подложки. При этом если напряжение на сегменте и подложке находится в противофазе, то когда на сегменте высокий уровень - кристаллы поворачиваются и сегмент "зажигается", если в данном случае допустим этот термин. Если напряжение совпадает по фазе, то жидкие кристаллы остаются неподвижными, т.е. сегмент прозрачен (ИМХО "не горит"). Вот вкратце и весь принцип работы данной микросхемы. Даташит достаточно компактный, поэтому для тех кому лень искать - качайте вложение. В основном все понятно и без перевода. Особо обращаю внимание на Fig.4 временная диаграмма работы драйвера, которую необходимо соблюсти при моделировании, Fig.5 - типовая зависимость частоты внутреннего генератора от емкости конденсатора и Fig.6 - демонстрирующую каскадирование драйверов.

9.8. Создание внутренней структуры регистров и выходного драйвера.
Эта задача не представляет особой сложности, поскольку в наборе цифровых примитивов имеется универсальны сдвиговый регистр на 16 разрядов, позволяющий как последовательную так и параллельную загрузку данных - примитив SHIFTREG_16 . Соединив два последовательно по переполнению первого - получаем нужные 32 разряда. Соединив выходы разрядов этих двух регистров с входами параллельной загрузки еще двух - получим требуемые 32 лэтча (защелки) для хранения данных. Первоначально хотел в качестве их использовать примитивы LATCH_8 , но их выходы с тристабильным состоянием, а нам оно будет только мешать, да и элементов потребуется больше в 2 раза. А вот в качестве стробируемого выходного каскада пришлось применить целый набор из 32-х двухвходовых исключающих ИЛИ. Ничего более подходящего в примитивах не нашлось. Здесь приведу только кусок дочернего листа, поскольку вся структура получилась довольно масштабной. Она будет доступна на дочернем листе готового тестового варианта. Надеюсь, что по этой вырезке можно понять - что с чем и как соединяется.


AVR123

Navigation: »No topics above this level«

AVR123

 Return to chapter overview
Начало работы

Запустите PROTEUS -> ярлык ISIS 7 Professional

Зайдите в меню File -> Open Design...

обычно открывается папка с примерами - SAMPLES. Откройте папку C:\Program Files\Proteus\SAMPLES\VSM for AVR\One-Wire\NETWORK

Вы увидите файл проекта PROTEUS - 1WIRE_NET.DSN - двойным щелчком по названию откройте проект. Разверните окно PROTEUS на весь экран щелкнув по квадратику в правом верхнем углу.

Вот что у вас должно получиться

Часть картинки:

Старт Шаг Пауза Стоп <- это кнопки управления симуляцией.

Для навигации по схеме мышкой перетаскивайте область видимости схемы - это зеленый квадрат вверху слева на картинке.

Масштаб изображения можно менять с помощью колеса на мышке или с помощью инструментов "лупа +" и "лупа -" в верхней панели инструментов.

Весь рабочий лист можно увидеть кликнув кнопку справа от "лупа -"

Показать определенную область схемы можно выделив ее с помощью инструмента выделения области инструментом - он еще правее.

Выделить компонент, проводник - щелчок левой кнопкой мышки. Выделенный компонент можно перетаскивать мышкой - при этом его электрические связи в схеме не нарушаться. А щелчок правой кнопкой мышки по выделенному вызывает вот такое меню:

Внимательно изучите это меню - кроме манипуляций положением компонента вы видите "молоток" - он позволяет разобрать сложный компонент на его "кусочки-кирпичики" поправив которые по своему можно опять собрать компонент кнопкой "Make Device". Вы видите вызов справки по компоненту и даже линк на скачивание даташита ! Очень удобно. Используйте. "Packaging Tool" позволяет редактировать корпус. "Show Pack ..." - показывает корпус компонента.

Фиолетовый жук - БАГ - это очень гибкие настройка опций симуляции.

Это меню можно открыть и не выделяя предварительно компонент - а просто сразу щелкнув на нем правой кнопкой мыши.

Свойства компонента - сделайте двойной щелчок левой кнопкой мышки по компоненту и откроется окно его свойств. О нем чуть ниже.

В левой верхней области экрана вы видите мини макет страницы мо мхемой и чуть ниже панель DEVICES - это компоненты которые использованы в проекте :

Кнопка с буквой "Р" открывает форму поиска компонента в библиотеках PROTEUS для добавления в схему.

Кнопка с буквой "L" открывает менеджер библиотек - с его помощью вы можете подключать новые библиотеки компонентов.

Вы видите микроконтроллер AVR AT90s8515

Несколько компонентов компании DALLAS - MAXIM - все они подключены по схеме к одному проводу интерфейса 1-Wire.

Сигнал нельзя передать по одному проводнику - поэтому у этих компонентов должны быть соединены и выводы GND.

PULLUP - это цифровой аналог резистора подтяжки к питанию - желательно по возможности применять цифровые резисторы (выбирается в свойствах резистора) - это меньше нагружает процессор вычислениями.

attention Я уже предупреждал вас - PROTEUS это интерактивный справочник по электронным компонентам!

Значит мы можем узнать что это за компоненты.

Кликните кнопку с буквой Р.

Откроется форма-меню поиска и выбора компонентов "Pick Devices".

В поле - "Keywords" вводите ключевые слова - любая часть названия компонента, или класса компонентов, или ток, напряжение, типа транзистора - то, что вы знаете и помните о нужном вам компоненте

Вот пример поиска компонентов в базе PROTEUS на ток 60 ампер

Теперь введите ds2 и затем выберите щелкнув мышкой верхний из 4-х найденных компонентов - DS2405. В поле "Description" (описание) видим "адресуемый переключатель" - т.е. к этому прибору можно обратится по его адресу и "приказать" ему сделать на выходе PIO лог. "1" или "0" и возможно перевести выход в высоко импедансное Z-сотояние - ножка с очень большим сопротивлением практически не проводящая тока - т.е. не влияющая на то, что к ней подключено.

Я пишу возможно потому что не знаком с этим компонентом и у меня нет под рукой его ДатаШита.

Подробнее о лог."1" лог."0" и Z-сотоянии - читайте на стр. 2 курса по AVR и PIC.

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

Другая часть 1-Wire приборов на схеме начинается на ds1 - введите эти символы в поле ключевых слов.

Теперь найдено 8 приборов. Причем они расположены в 2-х категориях.

Я выбрал мышкой DS18s20 - в описании написано: "Высоко точный 1-Wire цифровой термометр". На схемном изображении этого компонента видно некоторое поле напоминающее дисплей - так и есть, в нем наверняка будут выводится какие то данные в процессе симуляции.

Надеюсь вы поняли процесс поиска и выбора нужного компонента.

Поместить компонент на схему можно кликнув "ОК" затем поместите указатель мыши

в нужное место на листе схемы и щелкните мышкой. Компонент окажется на схеме. Если таких компонентов надо несколько - то сделайте несколько щелчков мышкой в нужных местах. Потом можно разместить и развернуть компоненты так как вам удобно.

Внимание ! Компонент интерактивный.

Красными стрелочками вы сможете прямо в ходе симуляции менять температуру корпуса датчика - т.е. ту которую он измеряет - щелкая по ним мышкой.

Температура отображается на дисплее компонента.

VCC - это + питания датчика DS18s20

GND - "общий провод" или "земля"

DQ - линия данных.

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

Отменить выделение ВСЕХ выделенных компонентов можно щелкнув правой кнопкой мыши в пустом месте схемы.

Удалить компонент или любой элемент со схемы можно двумя кликами правой кнопкой мыши по нему.

Левая панель инструментов - верхняя часть

L1 открыть панель DEVICES - компоненты проекта и поиск новых

L2 поставить точку соединения проводников вручную

L3 дать название проводу - одноименные провода электрически СОЕДИНЕНЫ !

L4 добавить текст в произвольное место схемы

L5 проложить шину - это жгут проводов - на схеме жирная темно синяя линия

L6 создать под-схему - т.е. некий блок содержащий в себе свою схему и соединители.

L7 кликом по компоненту сразу открывает редактирование его свойст

attention L3 и L5 - очень полезны! они позволяют не превращать схему в нечитаемую паутину из проводников - используйте!

Левая панель инструментов - средняя часть

L8 TERMINALS - питание, земля, межблочные соединения, выводы.

L9 добавить вывод к создаваемому компоненту.

L10 GRAPH - графич. отображение, сохранение и МОЩНЫЙ анализ результатов симуляции

L11 "магнитофон" для записи в файл и воспроизведения данных.

L12 генераторы любых напряжений, токов т вывод их из файлов данных.

L13 указать точку измерения напряжения на проводнике.

L14 указать точку измерения тока на проводнике.

L15 Virtual Instruments - измерительные приборы

L16 прокладка проводников на схеме, проводники можно называть с помощью L3

attention L10 - L15 - это инструментарий моделирования работы электронного устройства - т.е. главное в PROTEUS !

Помощь находится в меню: Help -> Proteus VSM Help

Часто в свойствах компонента есть кнопка "Help" - она открывает раздел справки именно по данному компоненту или модели.

Пожалуйста !

Посимулируйте примеры из папки \SAMPLES\Simulation

ЭТО НУЖНО ВАМ !

Эти кнопки позволяют изменять изображение

выделенного компонента на схеме.

они расположены в низу левой панели инструментов.

Первая и вторая - вращают на 90 градусов, ниже

поле для указания произвольного угла поворота,

еще ниже стрелки зеркального переворота компонента.

Такие же кнопки есть в выпадающем меню по двойному

щелчку леыой кнопкой мышки по компоненту.

4 кнопки управления симуляцией.

Пуск" - запуск симуляции или продолжение приостановленной симуляции.

"Шаг" - выполнить минимальный шаг по программе МК, обычно это одна инструкция на ассемблере. Этой кнопкой тоже можно начать симуляцию.

"Пауза" - пауза симуляции. Можно продолжить кнопками "Пуск" или "Шаг"

"Стоп" - остановка симуляции. После этого симуляция начнется сначала кнопками "Пуск" или "Шаг"

Напомню - у нас открыт проект - 1WIRE_NET.DSN

Откройте панель редактирования свойств компонента (Edit Component) микро контроллер AVR ATmega8515 - двойным щелчком по МК левой кнопкой мыши. Щелкните по кнопке "Hidden Pins" (скрытые выводы) - откроется дополнительное меню в котором показано как по умолчанию называются узлы (проводники) схемы к которым подключены питание МК - VCC и его общий провод - GND. Изменение этих названий позволит подключить питание МК к другим узлам схемы - это может потребоваться вам при питании МК или других компонентов разными напряжениями или от разных источников.

Нажмите "ОК" чтобы закрыть панель скрытых выводов и посмотрите внимательно

на содержимое панели редактирования компонента.

Главное для МК это программа по которой он будет работать.

В поле "Program File" нужно указать:

.cof - если вы хотите вести отладку по исходнику на языке Си программы созданной в

компиляторе CodeVisionAVR - CVAVR - я очень рекомендую его вам !

.elf - файл если вы хотите вести отладку по исходнику на языке Си программы созданой в компиляторе WinAVR - это отличный компилятор, но новичкам затруднительно его использовать.

UBROF - формат файла если вы хотите вести отладку по исходнику на языке Си программы созданой в компиляторе IAR - это самый лучший компилятор для AVR, но новичкам ОЧЕНЬ затруднительно его использовать.

.hex - это файл прошивки которую загружают и в реальный микроконтроллер. При выборе его вы можете отлаживать устройство без возможности просмотра исполняемого кода либо при использовании МК из новых библиотек в той строке где указана частота такта МК вы можете слева выбрать опцию "Дизассемблировать" прошивку и в поле справа указать "Yes" ( скриншот ниже ) - теперь в паузе симуляции вы увидите в окне исходного текста программы ассемблерный текст.

attention Все файлы проекта располагайте

в папке с проектом PROTEUS !

Вот так выглядит окно свойств микроконтроллера в версии 7.4 и выше

Галочки в низу с лева, с верху в низ - "исключить компонент из симуляции", "исключить из разводки платы", "редактировать свойства в текстовом формате".

Советую ознакомится со всеми опциями по help.

Clock Frecuency - частота такта. Именно здесь задается в PROTEUS на какой частоте будет работать МК.

attention Запомните !

Если ваша программа подразумевает наличие данных в EEPROM МК ( эти данные сохраняются при выключении МК ) то файл с ними можно указать в этом же диалоге :

Конвертировать форматы данных .bin .hex .epp

можно в программаторе - CVAVR

Ассемблер в PROTEUS - ДА !

для AVR, PIC, 8051, Motorola

Если у вас есть "исходник" текст программы на ассемблере .asm или вы хотите написать программу на ассемблере в PROTEUS - вам нужно указать в свойствах микроконтроллера название .hex файла прошивки и еще через меню: Source (исходник, источник) далее: Add/Remove Source File... (добавить - удалить исходник на ассемблере) - добавить название файла с текстом программы на ассемблере и выбрать нужный ассемблер:

Теперь при запуске симуляции будет происходить ассемблирование файла t15demo.asm

и если нет ошибок, то МК начнет работать уже по обновленному файлу T15DEMO.HEX

Это скриншот из проекта-примера PROTEUS в папке

SAMPLES \ AVR Tiny15 Demo

В нашем проекте эти поля ПУСТЫЕ ! Так как мы используем файл .cof создаваемый и обновляемый компилятором CVAVR CodeVisionAVR

Итак :

Чтобы симулировать в ПРОТЕУС работу микроконтроллера достаточно

1) найти его в библиотеках и поместить на схему

2) указать какую программу он должен выполнять (как описано выше)

3) указать частоту тактирования МК

Всё очень просто.

В микроконтроллерах PIC надо подтянуть MCLR к питанию напрямую или через PULLUP.

Повторю - это важно:

CLOCK - однозначно определяет частоту тактирования МК при симуляции !

Учтите что в свойствах некоторых МК указаны параметры встроенного делителя частоты - он работает с версии 7.4 - значит его установки влияют на частоту с которой выполняются инструкции в микроконтроллере.

Кварц и конденсаторы не нужны для симуляции, их устанавливают на схему только

для того чтобы учесть при разводке печатной платы устройства.

WDG_CLOCK - показывает частоту работы RC генератора сторожевого таймера.

Хотя она и обозначена 1MHz - "собака" не включена пока мы не добавим в свойства

МК строчку: {WDGON=1} - вам не нужно ее включать.

На рисунке видно, что МК будет работать по программе определяемой файлом ds1990.cof - его создал компилятор CVAVR.

Компилятор WinAVR создает файл с раcширением .elf - вы можете попробовать пример из папки SAMPLES\AVR and SED1520 В нем указана программа для МК EW12A03GLY.hex - замените ее на EW12A03GLY.elf - и вы сможете видеть движение программы

по исходнику на Си и АСМ-е.

Значение других параметров можно узнать в справке по кнопке - Help

Перечень поддерживаемых микроконтроллеров AVR, как подключать файлы с отладочной информацией и ограничения моделей.

Очень важно знать что НЕ симулирует модель МК - Model Limitations

Пример - ограничения моделей ATmega8 ATmega16 ATmega32

1) симулируется обчно используемый режим UART - асинхронный прием и пердача.

2 ) и 3) частота тактирования при симуляции зависит только от параметра CLOCK задаваемого в свойствах AVR на схеме.

Все же 3) ошибка наверно -

делители работают в 7.4 и выше.

4) биты boot lock не моделируются

5) JTAG не моделируется

В общем - все что нужно моделируется !

PROTEUS - лучше устанавливать для пользователя с именем из латинский символов !

Либо делать путь к папке \temp без кириллицы.

Не используйте кирилицу в названиях проектов и файлов.

Чтобы отлаживать в PROTEUS функции PRINTF и SCANF

в программах созданных в компиляторе CodeVisionAVR зайдите в меню CVAVR - "прожект" - "конфига" - "С компилер" и в списках этих функций выберите "Long..." или "Float..." и затем "ОК".

Пора запустить симуляцию.

Кнопки управления симуляцией я уже описал выше.

А давайте запустим симуляцию "по хитрому" - укажем сколько времени программе работать и потом остановиться. Откройте меню DEBUG и щелкните пункт "Execute for specified Time" - значит приказ "Отработать указанное время" - впишите время выполнения "198m" - это значит отработать 198 милиСекунд - нажмите "ОК" - программа поработает и остановится - внизу под схемой будет указано время - 0.198000000 секунд.

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

Множители в PROTEUS

p - пико x10-12 n - нано x10-9 u - микро x10-6 m - мили x10-3

k K - кило x103 M - мега x106

Сейчас можно было бы повторить такое же время или задать иное. А вы нажмите "ПАУЗА" - вот что у вас должно быть на экране после щелчка по меню DEBUG :

Вот часть картинки. Вы видите в верхней части меню команды управления ходом симуляции - моделирования устройства и соответствующие горячие клавиши.

Ctrl+F12 - начать симуляцию с начала.

F12 - пуск моделирования, продолжение если мы в паузе или стоим.

Alt+F12 - позволяет моделировать не останавливаясь на "точках останова" - "Breakpoints" - о них подробней ниже.

F10 - проскакивать функции

Ctrl+F10 - выполнить до строки отмеченной щелчком мышки (но ваша строка может оказаться не достижима по алгоритму программы)

F11 - пошаговая симуляция

Ctrl+F11 - выйти из симулируемой функции

моделируемых устройствах и настройка сообщений отладчика PROTEUS.

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

Помощь по симуляции МК находится в разделе - Proteus VSM Help

SOURCE LEVEL DEBUGGING WITHIN PROTEUS VSM

При симуляции устройства на экране мы будем видеть анимированную картинку. Режим анимации можно изменить через меню System > Set Annimation Options...

Обычный режим - экран обновляется 20 раз в сек.

- отображать напряжение и ток на щупах L13 и L14

- под Цвечивать логические уровни на выводах.

- показать цветом напряжения на проводниках (нет галочки)

- показать стрелками направление тока в проводниках (нет галочки)

Максимальное напряжение не ограничивает напряжение в симулируемой схеме!

Оно указывается для того чтобы PROTEUS мог решить каким цветом показывать логические уровни - цвета у ноже компонентов означают:

"Красный" - логическая "1"

"Синий" - логический "0"

"Серый" - неопределено - высоко импедансное "Z - состояние" (выше толковал уже).

"Желтый" - конфликт на линии.

Шаг оцифровки тока 1 мкА - вы можете уменьшить этот параметр и улучшить другие параметры для повышения точности симуляции - но это потребует бОльшей вычислительной мощности и замедлит моделирование.

SPICE Options - открывает настройку симуляции моделей, но не думаю что вам нужно туда лезть - там довольно сложные параметры.

Справку по каждой строчке можно получить щелкнув по знаку вопроса ? и подведя лампочку к интересующему пункту.

Если у вас еще не открыть проект 1WIRE_NET.DSN - откройте его.

Щелкните "СТОП" и нажмите "СТАРТ" он же "ПУСК"

Выскочит окно виртуального терминала ПК и примерно за 1 секунду программа МК сделает все, что от нее требовалось :

Это вывод из USART МК на виртуальный COM порт ПК по интерфейсу

RS-232 в терминал PROTEUS списка опознанных устройств на шине

1-Wire и их серийных номеров.

При анимации логические уровни на выводах указываются цветными квадратиками.

Красный - "Горячий" лог. "1"

Синий - "Холодный" лог. "0"

Серый - высоко омный ВХОД "Z-состояние". Для определенности ПРОТЕУС считает что на выводе половина напряжения питания МК.

Желтый - конфликт на линии. Например линия замкнута на землю а программа в МК пытается сделать на ней "сильную" лог. "1".

"сильную" - в моей терминологии это значит не pullup , а ножка настроена как выход и в порт записывается "1".

Номер "таблетки" для домофонов DS1990 написан на ней. Серийные номера приборов DSxxxx заданы на заводе и не изменяемы. В ПРОТЕУС эти номера задаются в окне редактирования свойств компонента и надо поставить "No" у "Automatic Serialization" что бы выводились заданые вами номера.

Нажмите кнопку "Стоп". Окно терминала пропадет.

Давайте отключим один 1-Wire прибор. Кликните правой кнопкой мыши на проводе от микросхемы U5 и затем левой щелкните красный крест - это удалит провод со схемы и отключит прибор от провода 1-Wire.

Нажмите кнопку "Пуск". Опять появится терминал PROTEUS но в списке опознанных приборов уже не появится отключенная U5 и уменьшится число найденных приборов до 6.

Восстановите удаленный проводник. Это можно сделать двумя способами:

1) Нажать кнопку отмены действия в верхней панели инструментов.

2) Проложить проводник заново. Выберите инструмент L16 - "проводник" - косая черточка над синим квадратом на левой панели инструментов и проведите провод от компонента U5 к проводу 1-Wire удерживая нажатой кнопку мыши и щелкните при касании провода - появится точка соединения проводников.

Снова запустите симуляцию и убедитесь что прибор опять опознан и считан.

Виртуальный терминал

Один из важнейших инструментов отладки РЕАЛЬНЫХ устройств на МК - Virtual terminal - моделирующий терминал ПК обменивающийся данными с UART (USART) МК.

Как использовать его в отладке я рассказал в задаче 4

Терминал (Virtual Terminal) находится под кнопкой L15 - "виртуальные инструменты". В ПРОТЕУС вы можете не согласовывать уровни RS232 и UART микросхемой типа MAX232, а подключать терминал напрямую к МК.

Терминал поддерживает служебные символы ASCII - управления выводом текста:

CR (0x0D), BS (0x08) и BEL (0x07). LF (0x0A) и остальные служебные коды игнорируются, т.е. выводятся как обычные числа.

Поддерживаются скорости от 300 до 57600 бод ,

Формат данных 8N1и другие.

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

Выводы RTS и CTS можно не соединять и не подключать вообще - хотя они работают как в настоящем COM-порту ПК. Терминал может передавать что-то только при отсутствии лог "0" на выводе CTS

Можно использовать несколько терминалов в одной схеме.

Если щелкнуть мышкой в окне терминала то он начнет передавать набираемые

на клавиатуре ПК символы на ножку TXD. Можно вставить из буфера обмена

информацию которую терминал так же будет выводить на ножку TXD.

Передаваемая с терминала информация не отображается в окне терминала! Курсор остается на месте. Однако вы можете поставить галочку у "Echo Typed Characters" щелкнув правой кнопкой в окне терминала при симуляции и тогда вводимый в терминал текст будет виден.

Пожалуйста прочитайте подробнее о терминале по кнопке "Help" в его свойствах.

attention Не забывайте о компоненте COMPIM который позволяет вашему виртуальному устройству подключится к

реальному COM-порту вашего ПК !

РеСтартуйте и приостановите симуляцию

для этого нажмите "Стоп" затем "Старт" и "Пауза" либо просто "СТОП" - "Пауза"на экран повыскакивают "pop-up" окна с отладочной информацией.

Перечень этих окон задается в низу выпадающего меню DEBUG - щелкните в меню

Watch Window - окно слежения наWatch Windowблюдения за данными в МК.

После настройки оно не исчезает с экрана и при симуляции и нахождении в паузе. В этом окне вы можете размещать регистры МК и не только отслеживать их содержимое по ходу программы, но и задавать некоторые условия и действия при достижении этих условий - например остановить симуляцию. Щелкните правой кнопкой мыши в этом окне и выпадет меню для добавления наблюдаемых регисторв - по имени Alt+N или по их адресу Alt+A. Выбрав "добавить по имени" вы увидите окно со списком всех регистров ( что такое регистр ? ) данного микроконтроллера - двойной щелчок по названию регистра поместит его в Watch Window - по завершении выбора нажмите "Done" - "сделано".

Если перед названием регистра в стоит квадратик с плюсом значит

вы можете развернуть регистр на группы функционально связанных битов.

Шрифт (Font) вы можете изменить по своему желанию

как здесь, так и в большинстве других окон.

В окне Watchpoint Condition можно задать некоторое условие для наблюдаемого регистра и что делать симулятору при его возникновении - т.е. это "точка останова" симуляции :

1) Отключить слежение

2) Остановить симуляцию если

верно хотя бы одно условие

3) Остановить симуляцию если

верны все условия.

Мы планируем симулировать и отлаживать программу написанную на языке Си для МК значит нам очень интересно

Окно с текстом этой программы: AVR Source Code - U9

При симуляции в ПРОТЕУС этого примера сделанного на старой версии CVAVR - это окно не помнит какой исходник показывать если в нем нет активных точек останова !

Скачайте стабильную и надежную версию CVAVR 1.25.9 и исходник программы на Си

будет появляться в окне автоматически при паузе в симуляции.

CVAVR CodeVisionAVR создает копию файла исходного кода программы .с которую называет добавляя два знака подчеркивания перед точкой __.с и именно на этот файл содержит ссылки файл .cof с отладочной информацией используемой симуляторами и ПРОТЕУС -ом тоже.

attention Важно !

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

Я рекомендую все файлы компилятора и PROTEUS размещать в одной папке проекта.

После указания файла с исходным текстом программы он появится в окне - я добавил мышкой несколько точек останова :

программы - строки можно выделить (подсветить темно-синим) кликом мышки и затем :

Двойным кликом или кнопкой F9 поставить точку останова (BP) - красный кружок.

Программа дойдя то этой точки остановится в режиме "ПАУЗА" - т.е. повыскакивают

pop-up окна с отладочной информацией.

Если нажать F9 еще раз, или еще раз сделать двойной щелчок по строчке - то BP выключится - станет красной окружностью и программа не остановится на ней.

Если нажать F9 еще раз, или еще раз сделать двойной щелчок по строчке - то BP исчезнет.

В меню DEBUG есть команда Alt + F12 - игнорировать любые BP

BP - очень эффективны при отладке программы.

в PROTEUS есть и "железные" BP - вот их перечень

Список аппаратных ("железных") точек, событий останова симуляции - BP

attention ВАЖНО ! Посмотрите внимательно какие это мощные инструменты для отладки - они позволяют засечь массу событий

- изменение логического уровня на проводнике.

- изменение логического уровня на шине - на группе проводников.

- достижение различные напряжений и токов

- выход напряжения или тока из заданного диапазона ...

Давайте попробуем точку останова "1 бит" - устанавливаемую на один проводник в схеме. Добавьте эту BP на провод 1-wire в нашей схеме вот так:

Затем двойным щелчком по ней откройте свойства этой аппаратной BP

В поле "Trigger Value" указывают значение при возникновении которого эта BP остановит симуляцию - в данном случае это логическая "1" на проводнике - т.е. когда в проводнике возникнет фронт сигнала - переход из "0" в "1" - симуляция остановится.

Запускаем моделирование нашего устройства, если вы установили 3 точки останова в программе как на скриншоте который был выше то программа вначале будет останавливаться на некоторых из них - в низу схемы выводится сообщение о причине остановки и время с начала симуляции. Нажимайте "ПУСК" пока причиной остановки не станет DBT1 - щелкните на "6 Message(s)" - появится окно лога симуляции - в нем указана причина и время остановки.

Если поставить еще одну BP на эту же линию и событием в ней назначить "0" то можно отслеживать любое изменение логического сигнала на данном проводнике.

Выше в списке вы видели что такие BP есть до 16 бит шириной.

Закончите симуляцию - нажмите кнопку "Стоп".

Отключите BP - это можно сделать так:

- удалить BP из схемы

- отсоединить от проводника удалив провод от BP

- в свойствах BP поставить галочку "Exclude from Simulation" - "исключить из симуляции".

Нажмите "Пуск".

Программа остановится на 1-й точке останова и выскочит окно с исходником на Си. Строчка на которой остановилась программа будет подсвечена серым цветом и на нее будет указывать красный треугольник слева от BP. В окно терминала будет выведена информация:

Я вручную переместил окна для этого скриншота. Размещайте окна и задавайте

им размер так чтобы удобно было видеть их на экране.

attention Важно! По тексту выведенному в терминал мы видим что остановка происходит до выполнения строки на которой находится BP

Нажмите "ПУСК" - программа остановится на следующей точке останова - т.е. на следующей строчке программы. В окне терминала видно что произошло выполнение предыдущей строки программы.

Переменные их адреса и содержимое в окне AVR Variables

Посмотрите, в программе объявлены :

Глобальный массив байтов rom_code - он двумерный 8 на 9.

Локальные переменные символьного типа : i, j, devices, n.

Что такое локальные и глобальные переменные вы можете

почитать в Язык Си для микроконтроллеров МК

Обратите внимание ! Для локальных переменных не указаны адреса и значения - это не удобно. Если вы хотите отслеживать какие то переменные в PROTEUS то сделайте их глобальными и проследите чтобы они не размещались в регистрах AVR а были в RAM памяти.

В данном примере переменные

main() {

unsigned char i,j,devices;

unsigned char n=1;

можно сделать глобальными поместив их перед main() вот так:

unsigned char i,j,devices;

unsigned char n=1;

main() {

Затем надо в свойствах проекта CVAVR в закладке "C Compiler" снять галочку у "Automatic register allocation" и скомпилировать проект заново.

Теперь переменные и их значения видны:

( Скачайте CVAVR и вы сами так сделаете )

Щелкнув правой кнопкой в окне переменных - вы откроете меню в котором можно:

- менять форму представления значения переменной

- включить отображение предыдущего значения переменной

- отключить показ глобальных переменных

- включить показ типов переменных

Щелкнув правой кнопкой в окне исходника - "AVR source code"

вы откроете меню в котором можно:

- включить нумерацию строк программы

- включить или выключить все BP

- найти что-то в исходнике

- перейти на нужную строку программы.

- изменить шрифт в окне.

Ctrl+D - включить отображение ассемблерных инструкций реализующих

код программы написанной на Си - это очень удобно:

На ассемблерном коде вы тоже можете ставить "точки останова" программы - BP

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

изменение на ножках МК или в других узлах схемы.

Теперь поработайте сами - по-симулируйте, расставьте точки останова так, что бы отследить алгоритм работы программы.

Вы можете изменить и перекомпилировать программу в компиляторе CodeVisionAVR и посмотреть результат в PROTEUS.

Использование виртуального осциллографа и логического анализатора я рассмотрю в следующих примерах этого курса.

Вы можете сами пока посмотреть примеры работы с этими устройствами в папке SAMPLES\Simulation

В SAMPLES\Simulation есть примеры использования самого мощного средства графического сбора и отображения данных

моделирования работы устройства :

Simulation Graph - попробуйте вот эти примеры:

DAC0808.DSN или Invosc.DSN - вот скриншот этого примера PROTEUS GRAPH

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

Теперь посмотрите внимательно какие сигналы показаны - найдите их названия на схеме устройства.

Главное учитесь масштабировать графики и сопоставлять данные на графиках. Пользоваться инструментами в окне графиков.

Наведите курсор на какой либо график и кликните кнопку мыши - курсор зафиксируется на этом графике и данные этого графика будут выводится в низу экрана в цифровом виде.

Вы можете двигаться мышью по линии графика - курсор

будет прилеплен к линии. Сверните щелкнув крестик окно графиков - оно не пропадет - теперь можете поменять что-то на схеме и опять посимулировать.

Промежуток времени отображаемый на графике устанавливается в меню которое открывается по щелчку правой кнопкой мыши на графе - пункт "Edit Graph", в нем же настраивается вертикальный масштаб и можно дать названия осям.

Для редактирования отображаемых сигналов откройте меню двойным щелчком по названию сигнала - давайте откроем зеленый AD1(A) и изменим масштаб его отображения умножив на 0.3 и поднимем его вверх на 2 вольта - я вписал формулу для изменения сигнала в поле "Expression" и для памяти (не обязательно) добавил к названию сигнала в "Trace name" то как он изменен - чтоб не запутаться в его реальной величине. В формулах можно использовать и другие сигналы - т.е. выводить на график комбинации сигналов - например из напряжения и тока можно получить график мощности.

Сделайте такие изменения, щелкните "ОК" и обновите данные симуляцией "Пробел" - зеленая трасса изменилась. Теперь уберите эти изменения-формулы.

Вывод комбинации аналоговых сигналов на график.

Давайте сложим 4 аналоговых сигнала и еще на 0.2 умножим сумму, чтоб они не сильно изменили диапазон графика. По-умолчанию в PROTEUS диапазон по вертикали выставляется автоматически. Для этого нажмите "плюс" левее человечка млм "Ctrl + A" - появится меню "Добавить трассу, сигнал" - я назвал сигнал SUMM, выберите Analog и в "Probe Px" укажите 4 аналоговых сигнала, затем умножаем на 0.2 - вот так :

жмем "ОК" и название нового сигнала появилось на графике. Запускаем симуляцию в GRAPH нажав клавишу "пробел" или щелкнув по человечку - вот результат:

Можно жестко задать диапазон напряжений выводимый на графике вот так:

Данные симуляции вы можете сохранить в файл через меню Graph -> Export Data

укажите название файла и где его расположить, затем нажмите "Сохранить". Вы получите файл в стандартном формате для измерительных приборов - CSV - данные разделенные запятыми - сможете затем импортировать в Excel или например в MATLAB

Графики результатов симуляции можно экспортировать в графические

и CAD форматы через меню File -> Export Graphics

В общем пакет мощный - сразу всё не расскажешь ...

Надо его активно использовать и придет опыт, умение ...

Подробно про отладку по исходному коду программы

написано в разделе помощи:

"SOURCE LEVEL DEBUGGING WITHIN PROTEUS VSM"