На
стр. 4 (Пост №40 ) часть I
стр. 7 (Пост №65 ) часть II
стр. 9 (Пост №88 ) часть III
стр. 11 (Пост №110) часть IV
находятся PDF версии для скачивания и Offline прочтения.
__________________
Осторожно , злой кот
Последний раз редактировалось Halex07; 05.01.2012 в 08:29 .
Супер-модератор
курсора захватывается этими объектами. Это позволяет легко редактировать и управлять схемой. Эта возможность может быть найдена в меню Инструменты (Tools) и по умолчанию включена.
Более подробная информация о масштабе и захвате может быть найдена в справочной системе ISIS – Окно Редактора.
Трассировка соединений
Простейший способ соединения схемы – это использовать опцию автотрассировки проводника (Wire Auto Router) в меню Инструменты (Tools). Убедитесь, что она включена (должна быть видна отметка в меню слева от опции). Для более подробной информации смотрите раздел “Автотрассировка проводника” в Инструкции ISIS.
Увеличьте PIC, чтобы все выводы были видны, затем поместите курсор мыши на конец вывода 6 ( RB0/INT ). Вы увидите маленький ‘х’–курсор на конце мыши. Это показывает, что мышь в правильной позиции для присоединения проводника к этому выводу. Левый клик мышью, чтобы начать соединение, и затем переместите мышь к выводу, соединенному с красным фонарём одного из светофоров. Когда вы снова получите ‘х’–курсор над этим выводом, кликните левой кнопкой мыши, чтобы завершить соединение. Повторите этот процесс для подключения обоих светофоров как показано образце схемы.
PROTEUS 8 для начинающих 1
Пара вопросов о процессе разводки, заслуживающих упоминания:
- Вы можете делать соединения в любом режиме – ISIS достаточно сообразителен, чтобы понять, что вы делаете.
- Когда включена автотрассировка проводника (Wire Auto router), разводится вокруг препятствий и, как правило, ищется удобная траектория между соединениями. При этом способе, как правило, вам только нужно сделать левый клик на обоих концах соединения и предоставить ISIS возможность позаботиться о пути между ними.
- ISIS автоматически переместит экран, если вы затронете границу окна редактора, перемещая проводник. Учитывая это, вы можете увеличить масштаб до подходящего уровня и, при условии, что вы знаете приблизительную позицию элемента-цели, просто подталкивайте экран, пока не увидите его. В качестве альтернативы, вы можете увеличивать и уменьшать масштаб, пока перемещаете проводник (используя клавиши F6 и F7 ).
В заключение, мы должны соединить вывод 4 с клеммой питания. Выберите иконку “Клемма” (Terminal) и выделите “Питание” (POWER) в переключателе объектов. Теперь сделайте левый клик на подходящем месте и поместите клемму. Выберите подходящую ориентацию и присоедините клемму к выводу 4, используя тот же способ, что и раньше.
На этом этапе рекомендуем вам загрузить законченную версию схемы – это избавит от любой неразберихи, если нарисованная вами версия в каком-то месте отличается от нашей! Также, если вы не приобрели библиотеку моделей pic-контроллеров, для того, чтобы продолжить, вы должны загрузить приготовленный файл примера.
Proteus
Написание программы
Листинг исходной программы
Для успеха нашей консультации мы подготовили следующую программу, которая записывается в PIC для управления светофорами. Эта программа приготовлена в файле TL.ASM и может быть найдена в папке “SamplesTutorials”.
; 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, зайдите в папку “SamplesTutorials” и выберите файл 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, и сбросе его в ноль.
Программное обеспечение для разработки электроники
В данном обзоре мы сравним несколько на наш взгляд наииболее интересных программных пакетов пакетов для проектирования электроники:
это будут Proteus, Altium designer и EAGLE.
Среда разработки электроники Proteus.
Начнем с Proteus, наверное это самый многофункциональный и многогранный программный инструмент. В состав данного программного комплекса входят инструменты для разработки схемотехники будущего устройства, имеется достаточно мощный трассировщик, и даже собственная интегрированная мини-IDE для написания и отладки кода для микроконтроллера.
Среди микроконтроллеров поддерживаются наиболее популярные у разработчиков контроллеры производства Microchip, Atmel, STM, Infineon, Texas Instrument. Причем в Proteus полностью реализована концепция сквозного проектирования, когда например инженер меняет что-то в логике работы схемотехники и программный пакет тут же «подхватывает» данные изменения в системе трассировки.
И самая ключевая особенность Proteus, как системы для проектирования – это развитый механизм симуляции работы электронных схем, позволяющий отладить и смоделировать работу достаточно широкого спектра электронных компонентов. В состав этой системы проектирования входит множество библиотек, содержащих модели электронных компонентов: от резисторов и транзисторов до достаточно сложных микроконтроллеров.
Сама система проектирования прекрасно расширяется через систему библиотек. При этом для работы в Proteus библиотека компонента должна содержать модель самого элемента с его всеми характеристиками, условное обозначение с пинами для подключения, описание корпуса с посадочными местами и распиновкой, или как ещё говорят за рубежом с паттернами. Помимо этого в состав среды входит достаточно уникальный механизм позволяющий отлаживать микроконтроллерное устройство в «железе», просто подключив его по USB и использовать как компонент виртуальной среды разработки. Но с другой стороны относительными минусами среды Proteus является не очень большой набор библиотек.
Среда разработки электроники Altium Designer.
Следующим программным пакетом в обзоре будет Altium Designer. По аналогии с Proteus данная среда позволяет спроектировать схемотехнику электронных устройств и осуществлять трассировку печатных плат.
Однако это совершенно иной программный продукт, разработчики которого в большей степени сфокусировались в большей стпени на разработке функционала по проектированию электроники именно «в железе». Именно поэтому мы не увидим в Altium Designer таких компонентов как IDE и система симуляции схемотехники. Но зато среда проектирования схемотехники является более развитой и проработанной.
Реализована достаточно богатая функциональность, ориентированная в большей степени мастистого и притязательного разработчика. В большей степени продумана работа с моделями электронных компонентов.
Для российского разработчика будет большим плюсом, то что Altium Designer позволяет создавать чертежи электронных схем, выполненные в соответствии с требованиями ГОСТ: это изображения радиодеталей как это принято в ГОСТ, форматки чертежей, и даже подписи к элементам выполненные «фирменным» шрифтом Gost A. Достаточно интересен сам функционал по проектированию печатных плат и трассировки. В этой среде можно проектировать самые сложные печатные платы, включая многослойные с переходными отверстиями.
Аналогично Proteus система разработки Altium Designer поддерживает очень тесную интеграцию схемотехнического редактора с трассировщиком. Любые изменения в схемотенике реплицируются в трассировщике печатных плат. Также Altium Designer реализует механизм расширения функционала среды проектирования с помощью библиотек. И библиотек компонентов, на наш взгляд гораздо больше чем для того же Proteus. Единственным минусом для данного программного пакета являются весьма высокие системные требования, сопоставимые с ПК для профессонального 3D моделирования.
Среда разработки электроники EAGLE .
И теперь возможно самый интересный программный продукт. EAGLE – это вовсе не «орёл» как можно подумать, а аббревиатура E.A.G.L.E. Easily Applicable Graphical Layout Editor. Итак, ключевая особенность данной среды проектирования – это кроссплатформенность. Данный программный пакет работает под Шindows, MacOS, Fedora Linux, Ubuntu Linux.
В состав EAGLE входит схемотехнический редактор, весьма развитый трассировщик и редактор печатных плат, также имеется так называемый CAM –процессор – инструмент для формирования файлов для линий автоматического монтажа и подготовки печатных плат, сверловки, gerber и пр. Особенностью схемотехнического редактора является немного непривычный интерфейс, и для инженера «набившего руку» в работе c Altium Designer возможно придётся немного переосмыслить свои представления в плане работы в редакторе схемотехники. Также как Altium или Proteus среда разработки электроники поддерживает библиотечный механизм для работы с электронными компонентами, благодаря которому можно интегрировать в среду разработки модели любых электронных компонентов. Если измерять количественными критериями то число библиотек под среду EAGLE будет приближаться к таковому у пакета Altium Designer. Точно также как и в двух выше упомянутых средах разработки, реализована глубокая интеграция редактора схемотехники и редактора печатных плат.
По сравнению с Proteus в EAGLE отсутствует система моделирования работы электронных схем, но это не отменяет других замечательных свойств данной среды разработки. Например в EAGLE существет весьма продуманный функционал по автоматизации рутинных процедур инженера-разработчика: таких как массовое назначение меток пинам больших микросхем, интеллектуальный трассировщик, который может оперировать не отдельными линями а целыми шинами. Ещё одной особенностью EAGLE, о которой мало кто знает, это возможность полностью легального использования функционала данного програмного пакета, с двумя небольшими ограничениями: в устройстве может быть только два слоя печатных плат с площадью в 80 cм 2 . Это обстоятельство позволит использование среды EAGLE даже радиолюбителями вместо откровенно архаичных Splan и Sprint Layout.
Источник: fantasylab.ru