Штатні моделі в ISIS можна розділити на три класи - моделі реальних пристроїв (наприклад 74HC595), моделі віртуальних пристроїв (наприклад осцилограф або Voltage probe) і моделюються примітиви. Моделюються примітиви це умовні моделі реальних пристроїв, без прив'язки до конкретної марки пристрою - наприклад пристрій RESISTOR з бібліотеки ASIMMDLS це умовна модель резистора, яка як і належить має опір, але не має ні корпусу ні виробника ні чого-небудь ще. З резистором все просто - при імпорті в ARES, система сама запропонує вибрати для нього корпус і сама його радісно прив'яже - дійсно, резистор то прив'язати не складно, а ось з нашим 7мі сегментним індикатором все дещо гірше - якщо просто імпортувати схему з його участю в ARES, то ми ... його не побачимо, навіть якщо зняти галку в його властивості з "Exclude from PCB layout". Це погано, але ми це виправимо!
Отже для початку відкриваємо ISIS і створюємо новий документ, додаємо новий компонент з бібліотеки
Виглядає він ось так:
Тут нас чекає маленьке (а для кого-то і велике!) Розчарування - у моделі всього один комплект висновків AG, і поробити з цим на жаль якщо щось і можна, то досить складно (я особисто простого шляху на жаль не знайшов, а вчити isis sdk заради пари потрібних мені модельок відверто кажучи бажання не виникло). З іншого боку, багато хто (і я в їх числі) використовують тільки один комплект висновків в 7ми сегментних дисплеях, підключаючи другий комплект (для 3х цифрових дисплеїв і третій і так далі) ніжок до першого і вибираючи включається число ніжками 1/2 (/ 3 для 3х цифрового і т.д) - в загальному це стандартна практика дозволяє економити ноги мікроконтролера або зсувних регістрів, так що біда то в цілому і не біда, але треба трохи переробити наш вчорашній корпус. Відкриваємо ARES, створюємо порожній файл, розміщуємо на ньому наш корпус 7S2D, виділяємо його натиснувши правою кнопкою миші наприклад на висновок під ніжку (нагадаю що натискати треба в сіру "дірку" по центру виведення) і вибираємо Decompose Tagged Objects
Це розбере наш корпус на складові
Я довго намагався збагнути як додати нетліст до моделі, але так і не зрозумів, на щастя на радіокоте підказали що якщо призначити пінам в корпусі однакові номери, то вони стануть автоматично об'єднуватися при автоматичній прокладці доріжок! Розібравши корпус ліземо в даташит і дивимося які ноги з якими нам треба об'єднати:
Це пін-аут нашого дисплея, видно що номер Піна А1 = 15, а номер Піна А2 = 10 тобто що-б вони автоматично об'єднувалися в одну доріжку, треба номер 10 замінити на 15, і так з усіма парними буквами (12 міняємо на 13, 8 на 1, 6 на 3 тощо). В результаті у нас виходить ось такий набір пинов в корпусі:
Корпус готовий, треба його знову зібрати - виділяємо все елементи, натискаємо правою мишкою і натискаємо Make Package - зауважте що треба виділяти не тільки Піни і ободок корпусу, а й назва (рядок NAME = 7S2D)!
При складанні корпусу система сама підхопить ім'я, опис і все опції що ми вводили при початковому його створенні, при натисканні на ОК в віконці діалогу створення корпусу, система запитає чи дійсно ми хочемо оновити вже наявний в бібліотеці корпус з такою назвою ... да хочемо! )
Треба натиснути на Yes, система запитає оновити чи все входження корпусу в поточному документі - не критично але краще теж натиснути на OK
Тепер повертаємося з ARES в ISIS, де нам треба нашу модельку дособрать! Наскільки я зрозумів, ряд властивостей моделі, ISIS використовує тільки при створенні власне моделі, і редагувати або додавати їх до вже готового пристрою на жаль марно. Отже клацають правою кнопкою миші на нашому екрані і натискаємо на Decompose
Наш дисплей розвалився на атоми, але найголовніше що ми бачимо над ним рядки з кодом, який описує власне модель:
Акуратно натискаємо на текст з кодом правою кнопкою миші (акуратно це що-б не натиснути на дисплей наприклад) і вибираємо Edit Properties
В результаті вискакує менюшка з кодом опису поки ще не нашої моделі:
Ось код стандартної моделі з протеуса:
Нам же потрібно додати всього два рядки і змінити одну, а саме:
NAME = 7S2D-CA-RED <- Это будет имя нашего устройства, вообще его можно добавить и в следующем шаге (при компоновке устройства), но мне лично почему-то так удобней. Имя естественно можно придумать свое – я пользовался вчерашней логикой по сокращениям: 7Segment2Digits-CommonAnode-Red т.е. 7ми сегментник 2х цифровой с общим анодом, красный. Вроде просто )
<- Это префикс, который будет инициализатором устройства при переносе в ARES, опять-же может быть своим, но у него есть ограничение – его длинна не может быть больше пяти символов. Его надо добавить где-нить под строчкой , например прямо перед строкой . Опять-же его можно ввести и позже ручками при создании компонента <- Эта строка у вас уже есть, нам она указывает что начались настройки свойств модели и далее под ней надо найти вот эту строку:<- Эту строчку надо найти и заменить, штатно ISIS считает что у этой модели HIDDEN PACKAGE т.е. корпус “спрятан”, нам же нужно указать имя, вчера созданного корпуса в ARES – у меня это было 7S2D
В результаті у мене вийшло так:
Натискаємо на ОК в нашій формі редагування коду, і виділяємо всі елементи розібраного дисплея (просто виділяємо їх як файліки в провіднику наприклад), після чого жмакаем правою кнопкою миші і вибираємо Make Device
І бачимо ось таку форму:
Якщо ми ввели ім'я і префікс під час редагування коду, то вони автоматично підхопить і будуть відображені у відповідних полях, якщо ви їх не вводили то введіть тут - далі можливості не буде)
Натискаємо на Next і бачимо наш чудовий корпус 7S2D з однаковими номерами пинов, натискаємо на Add / Edit.
Мета цієї форми - для визначення балансу висновків моделі до пінам в корпусі. Знову ліземо в даташит на дисплей і дивимося що до чого має підключатися. Що-б задати зв'язку висновок-пін, треба клацнути мишкою в клітинку в колонці А в ряду з тим висновком, який ми прив'язуємо, після чого треба клацнути мишкою на номер Піна на малюнку з корпусом в правій частині форми:
За фактом нам треба заповнити всі осередки з номерами висновків, крім останнього висновку Н, який в нашому дисплеї не використовується (це мабуть точка - у нас її немає). Висновки моделі 1 і 2 це Піни ПЕРЕМИКАННЯ ЦИФР! тобто харчування індкатора (яким міняємо включену на певний момент цифру!) Коли дійдемо до Піна H робимо наступну річ - натискаємо на його ряд (в табличці) правою кнопкою миші і вибираємо Suppress Pin
Це створить пусте зіставлення цього висновку в моделі тобто пін ні до чого підключений не буде - а нам і не треба! )
Для мого дисплея таблиця в результаті виходить ось така:
Тепер можна створити простеньку схемку з дисплеєм і експортувати її в ARES:
Схема трохи безглузда але корпусу покаже)) Вообщем атмега 168 керма дисплейчик через п'ятсот дев'яносто п'ятого зсувний регістр і сама вибирає цифру на дисплеї. Натискаємо на кнопочку ARES в панелі інструментів або йдемо в tools і там netlist to ares:
Відкривається ARES, розставляємо як зазвичай в ньому наші компоненти і натискаємо auto router (можна і auto placer'ом розставити - кому як подобається) В результаті бачимо ось таку картинку:
Як бачимо все Піни в нашому корпусі вдало поєдналися з іншими компонентами, а потрібні з'єдналися і всередині корпусу!
За сім перемога, нехай і маленька але перемога - на виході у нас робоча моделька 2х цифрового 7мі сегментного дисплея, що показує всі що треба показувати в ISIS і корпус, готовий до розміщення в ARES!