Здравствуйте. Нашёл ошибочку экспорта библиотеки в PCAD. В прикреплении к сообщению архив с файлами библиотеки. Исходная библиотека ext_brd.SchLib. Делаю команду Save As, выбираю тип файла пикад, сохраняю, получаются файлы непосредственно библиотеки ext_brd.lia и лог ext_brd.log. Далее пытаюсь в пикадовской утилите Library Executive выполнить конвертирование из *.lia в *.lib, т.е. из текстового формата в бинарный. Выдаётся ошибка и генерируется файл EXT_BRD.ERR с содержимым:
Код
P-CAD ASCII File Open: EXT_BRD.ERR
======================================================================
Error (line 7005): Pin '4' has not been defined.
Total errors: 1
Total warnings: 0
Получается, что выдаёт ошибку на элементе VS1011E. Точнее после такой конструкции:
Код
(compDef "VS1011E"
(originalName "VS1011E")
(compHeader
(sourceLibrary "")
(compType Normal)
(numPins 48)
(numParts 3)
(composition Heterogeneous)
(alts (ieeeAlt False) (deMorganAlt False) )
(refDesPrefix "U")
)
(attachedSymbol (partNum 1) (altType Normal) (symbolName "VS1011e_1_N") )
(attachedSymbol (partNum 2) (altType Normal) (symbolName "VS1011e_1_N") )
(attachedSymbol (partNum 3) (altType Normal) (symbolName "VS1011e_1_N") )
(attachedPattern (patternNum 1) (patternName "TQFP-7X7-48")
(numPads 48)
(padPinMap
(padNum 4) (compPinRef "4")
(padNum 6) (compPinRef "6")
(padNum 14) (compPinRef "14")
(padNum 16) (compPinRef "16")
(padNum 19) (compPinRef "19")
(padNum 20) (compPinRef "20")
(padNum 21) (compPinRef "21")
(padNum 22) (compPinRef "22")
(padNum 37) (compPinRef "37")
(padNum 38) (compPinRef "38")
(padNum 40) (compPinRef "40")
(padNum 41) (compPinRef "41")
(padNum 43) (compPinRef "43")
(padNum 45) (compPinRef "45")
(padNum 47) (compPinRef "47")
(padNum 44) (compPinRef "44")
(padNum 12) (compPinRef "12")
(padNum 11) (compPinRef "11")
(padNum 7) (compPinRef "7")
(padNum 48) (compPinRef "48")
(padNum 36) (compPinRef "36")
(padNum 35) (compPinRef "35")
(padNum 31) (compPinRef "31")
(padNum 5) (compPinRef "5")
(padNum 27) (compPinRef "27")
(padNum 26) (compPinRef "26")
(padNum 2) (compPinRef "2")
(padNum 1) (compPinRef "1")
(padNum 25) (compPinRef "25")
(padNum 24) (compPinRef "24")
(padNum 15) (compPinRef "15")
(padNum 3) (compPinRef "3")
(padNum 39) (compPinRef "39")
(padNum 28) (compPinRef "28")
(padNum 8) (compPinRef "8")
(padNum 9) (compPinRef "9")
(padNum 10) (compPinRef "10")
(padNum 13) (compPinRef "13")
(padNum 17) (compPinRef "17")
(padNum 18) (compPinRef "18")
(padNum 23) (compPinRef "23")
(padNum 29) (compPinRef "29")
(padNum 30) (compPinRef "30")
(padNum 32) (compPinRef "32")
(padNum 34) (compPinRef "34")
(padNum 33) (compPinRef "33")
(padNum 42) (compPinRef "42")
(padNum 46) (compPinRef "46")
)
)
)
Я начал сравнивать эту конструкцию с такими же другими элементами в этой же библиотеке. "Для чистоты эксперимента" возьмём тоже компонент из нескольких частей, гетерогенный. Вот, например, такой (строка 6697):
Код
(compDef "ADM3222ARU"
(originalName "ADM3222ARU")
(compHeader
(sourceLibrary "")
(compType Normal)
(numPins 20)
(numParts 2)
(composition Heterogeneous)
(alts (ieeeAlt False) (deMorganAlt False) )
(refDesPrefix "U")
)
(compPin "20" (pinName "~SD") (partNum -1) (symPinNum 0) (gateEq 0) (pinEq 0) (pinType Input) )
(compPin "3" (pinName "V+") (partNum 1) (symPinNum 1) (gateEq 0) (pinEq 0) (pinType Power) )
(compPin "13" (pinName "T1IN") (partNum 1) (symPinNum 2) (gateEq 0) (pinEq 0) (pinType Input) )
(compPin "19" (pinName "+3.3V") (partNum 1) (symPinNum 3) (gateEq 0) (pinEq 0) (pinType Power) )
(compPin "18" (pinName "GND") (partNum 1) (symPinNum 4) (gateEq 0) (pinEq 0) (pinType Power) )
(compPin "7" (pinName "V-") (partNum 1) (symPinNum 5) (gateEq 0) (pinEq 0) (pinType Power) )
(compPin "12" (pinName "T2IN") (partNum 1) (symPinNum 6) (gateEq 0) (pinEq 0) (pinType Input) )
(compPin "8" (pinName "T2OUT") (partNum 1) (symPinNum 7) (gateEq 0) (pinEq 0) (pinType Output) )
(compPin "17" (pinName "T1OUT") (partNum 1) (symPinNum 8) (gateEq 0) (pinEq 0) (pinType Output) )
(compPin "1" (pinName "~EN") (partNum 2) (symPinNum 1) (gateEq 0) (pinEq 0) (pinType Input) )
(compPin "16" (pinName "R1IN") (partNum 2) (symPinNum 2) (gateEq 0) (pinEq 0) (pinType Input) )
(compPin "4" (pinName "C1-") (partNum 2) (symPinNum 3) (gateEq 0) (pinEq 0) (pinType Passive) )
(compPin "6" (pinName "C2-") (partNum 2) (symPinNum 4) (gateEq 0) (pinEq 0) (pinType Passive) )
(compPin "11" (pinName "NC") (partNum 2) (symPinNum 5) (gateEq 0) (pinEq 0) (pinType Passive) )
(compPin "2" (pinName "C1+") (partNum 2) (symPinNum 6) (gateEq 0) (pinEq 0) (pinType Passive) )
(compPin "5" (pinName "C2+") (partNum 2) (symPinNum 7) (gateEq 0) (pinEq 0) (pinType Passive) )
(compPin "14" (pinName "NC") (partNum 2) (symPinNum 8) (gateEq 0) (pinEq 0) (pinType Passive) )
(compPin "15" (pinName "R1OUT") (partNum 2) (symPinNum 9) (gateEq 0) (pinEq 0) (pinType Output) )
(compPin "9" (pinName "R2IN") (partNum 2) (symPinNum 10) (gateEq 0) (pinEq 0) (pinType Input) )
(compPin "10" (pinName "R2OUT") (partNum 2) (symPinNum 11) (gateEq 0) (pinEq 0) (pinType Output) )
(attachedSymbol (partNum 1) (altType Normal) (symbolName "ADM3222ARU_1_N") )
(attachedSymbol (partNum 2) (altType Normal) (symbolName "ADM3222ARU_2_N") )
(attachedPattern (patternNum 1) (patternName "TSOP65P640X110-20N")
(numPads 20)
(padPinMap
(padNum 1) (compPinRef "1")
(padNum 16) (compPinRef "16")
(padNum 4) (compPinRef "4")
(padNum 6) (compPinRef "6")
(padNum 11) (compPinRef "11")
(padNum 2) (compPinRef "2")
(padNum 5) (compPinRef "5")
(padNum 14) (compPinRef "14")
(padNum 15) (compPinRef "15")
(padNum 9) (compPinRef "9")
(padNum 10) (compPinRef "10")
(padNum 3) (compPinRef "3")
(padNum 13) (compPinRef "13")
(padNum 19) (compPinRef "19")
(padNum 18) (compPinRef "18")
(padNum 7) (compPinRef "7")
(padNum 12) (compPinRef "12")
(padNum 8) (compPinRef "8")
(padNum 17) (compPinRef "17")
(padNum 20) (compPinRef "20")
)
)
)
Я заметил такие отличия:
1. В элементе VS1011E полностью отсутствует блок из конструкций типа compPin:
Код
(compPin "20" (pinName "~SD") (partNum -1) (symPinNum 0) (gateEq 0) (pinEq 0) (pinType Input) )
...
(compPin "10" (pinName "R2OUT") (partNum 2) (symPinNum 11) (gateEq 0) (pinEq 0) (pinType Output) )
2. В элементе ADM3222ARU содержится ссылка на разные символы каждого Part:
Код
(attachedSymbol (partNum 1) (altType Normal) (symbolName "ADM3222ARU_1_N") )
(attachedSymbol (partNum 2) (altType Normal) (symbolName "ADM3222ARU_2_N") )
(attachedPattern (patternNum 1) (patternName "TSOP65P640X110-20N")
А в элементе VS1011E ссылка на один и тот же символ:
Код
(attachedSymbol (partNum 1) (altType Normal) (symbolName "VS1011e_1_N") )
(attachedSymbol (partNum 2) (altType Normal) (symbolName "VS1011e_1_N") )
(attachedSymbol (partNum 3) (altType Normal) (symbolName "VS1011e_1_N") )
Разумеется, в одном и том же символе содержатся не все выводы, на что транслятор Library Executive и ругается.
Кроме того, я проанализировал файл ext_brd.log, где для элемента ADM3222ARU со строки 46 идут такие сообщения:
Код
Warning : Symbol name [ADM3222ARU], mode [Normal], part [1] changed to [ADM3222ARU_1_N]
Warning : Symbol name [ADM3222ARU], mode [Normal], part [2] changed to [ADM3222ARU_2_N]
Information : Exporting symbol definition(s) for component [ADM3222ARU]
а для элемента VS1011E со строки 59 такие сообщения:
Код
Warning : Symbol name [VS1011e], mode [Normal], part [1] changed to [VS1011e_1_N]
Information : Exporting symbol definition(s) for component [VS1011e]
Получается, что на элементе VS1011E альтиум "схалявил" :) Вместо 3х разных символов для разных part он сделал один символ, остальные делать поленился. И поленился вставлять блок из конструкций типа compPin
...
А ещё идеологическая недоработка: можно отдельно экспортировать в пикад библиотеку *.SchLib и отдельно *.PcbLib. В результате и там, и там получается пикадовская библиотека *.lia, однако в первой отсутствуют паттерны, а во второй - символы... А "сращивать" такие "полубиблиотеки" в одну библиотеку компонентов, в которой содержатся и символы, и паттерны, и цельные компоненты - пикадовские инструменты не умеют... В результате штатными средствами ничего полезного (что сразу можно применить) экспортировать не удастся. Грубо говоря, экспорт "полубиблиотеками" бесполезен, им невозможно воспользоваться.
Зная себе цену, нужно ещё и пользоваться спросом...