Я работаю зимним стажером в компании по робототехнике. Моя работа - помогать ведущему разработчику встраиваемых систем ... во всем, в чем он нуждается.
Около недели назад мне вручили плату NXP с LPC2148. Хотя мне нравилась большая вычислительная мощность (по сравнению с ATmega32, над которыми я работал), я обнаружил что-то очень странное в контроллере на базе ARM7. Если вы посмотрите на распиновку здесь
Вы заметите, что контакты порта просто повсюду. В серии AVR все расположено аккуратно, все контакты портов вместе. Почему это не так в LPC21xx? Я не могу найти никакой логики вообще, они не упорядочены по номеру контакта или по функциональности (как все контакты JTAG вместе). Кажется, дизайнеры просто сложили булавки в случайной форме.
Может ли кто-нибудь объяснить, пожалуйста, причину этого?
Ответы:
Это, безусловно, будет следствием того, как микросхема устроена внутри, в сочетании с тем фактом, что в приложениях микроконтроллеров довольно редко требуются блоки последовательных выводов ввода-вывода для создания широких шин и т. Д., Поэтому группирование не является высоким приоритетом и не стоит тратить дополнительные силиконовые площади на. Конечно, эта логика несколько ломается на деталях с внешними интерфейсами шины, делая компоновку, особенно с QFP, чем-то вроде кошмара, но многопользовательские пользователи, вероятно, все равно будут использовать BGA для экономии места - я всегда думал, что 208QFP выглядят немного нелепо .. !
источник
Есть много причин, почему распиновки такие, какие они есть.
Сначала проще всего взяться за контакты питания / заземления. Усовершенствованные микросхемы организуют свои выводы питания / заземления, чтобы минимизировать индуктивность и уменьшить «площадь контура» сигналов плюс путь возврата сигнала. Это улучшит качество сигнала и снизит уровень электромагнитных помех. Самое худшее, что вы можете сделать для власти / земли, это то, что было сделано на оригинальных деталях серии 74xxx с питанием в одном углу и заземлением в другом. У Xilinx есть белая бумага на их "редком шевроне", которая интересна. Если вы выполняете поиск на их веб-сайте, у них есть много других статей и презентаций, в которых говорится о реальных измеренных результатах и прочем. Другие компании сделали подобные вещи без всякой шумихи и документации.
Для MCU, где большинство выводов настраиваются пользователем, на самом деле нет хорошего или плохого способа сделать распиновку (исключая питание / заземление). Почти гарантировано, что что бы они ни делали, это будет неправильно. Это очень похоже на то, как мы покупаем платье для жены - несмотря ни на что, это будет неправильный размер, стиль, цвет, подгонка и т. Д. Вы можете компенсировать это либо с помощью программного обеспечения, используя разные контакты GPIO, либо с помощью креативной платы. маршрутизация или нетрадиционная маршрутизация на печатной плате (просто добавление дополнительных слоев).
Другая возможность состоит в том, что распиновка были оптимизирована для маршрутизации PCB на минимальных уровнях, но вы не видите , что. Например, процессоры, которые требуют подключения к определенному чипсету (или ОЗУ), часто имеют свои распиновки, чтобы упростить интерфейс / маршрутизацию. Это характерно для таких вещей, как процессоры Intel с чипсетами Intel. Это единственный способ получить два шариковых BGA 800+ для соединения вместе на 4 или 6-слойной печатной плате, заполненной другими плоскостями питания / заземления. В этих случаях часто появляются примечания к приложениям, которые объясняют, как выполнять маршрутизацию.
И третья возможность заключается в том, что это так просто, как «это так и получилось». Это похоже на подход «что бы мы ни делали, это будет неправильно», поэтому они просто делают то, что было проще или дешевле. Здесь нет настоящей магии или тайн. В прошлом были популярны микросхемы, но люди жаловались на распиновку, поэтому спустя годы вышла бы другая версия этой части, которая была бы функционально такой же, но с перемещенными штырьками для облегчения маршрутизации на печатной плате.
Неважно, что, в конце концов, «это то, что есть», и мы просто имеем дело с этим. Честно говоря, это не вызывает особых проблем, и мы настолько привыкли к этому, что это нас не беспокоит (сильно).
источник
Распиновка микросхем действительно определяется расположением схемы на чипе внутри упаковки.
Разработчики компоновки микросхем имеют различные соображения, но вряд ли назначение внешних выводов будет сильно отличаться от расположения контактных площадок.
Одним из соображений будет распределение энергии вокруг чипа, а это означает, что VDD (или VCC) и земля могут появиться в неожиданных местах.
Для этого всегда есть веская причина. Поверьте мне, разработчики микросхем не делают ничего произвольно.
источник
Если вы посмотрите внимательно, вы увидите, что они в порядке, но не сгруппированы вместе. Вероятно, все сводится к тому, насколько просто изготовить чип.
источник
Это связано с местами, где данный сигнал подходит достаточно близко к краю матрицы, чтобы сделать там прокладку для него. Это определяет порядок контактов. Иногда несколько сигналов можно переключать, но их расположение в логическом порядке может увеличить размер кристалла, что означает дополнительные затраты.
источник
Микросхемы могут иметь слой перераспределения, который позволит сопоставить любой контакт с любым местоположением, но это только увеличит стоимость голого кристалла примерно на 5-10%.
Каждый производитель выбирает один из способов:
1) Дизайн чипа с фиксированными выходными контактами (немного больше матрицы => дороже)
2) Есть случайные булавки (дешевле)
3) иметь 1 дополнительный слой (немного дороже в производстве)
источник
Причина в том, что расположение контактов в логическом порядке находится далеко в списке приоритетов компании по производству микросхем. Большинство дизайнеров, которые им небезразличны (как правило, не включают в себя увлеченных людей-роботов), будут использовать пакет САПР, который имеет распиновку в какой-то библиотеке, так что им тоже все равно. Таким образом, другие факторы, такие как эффективная компоновка кристалла, являются более важными.
Обратите внимание, что для некоторых производителей микросхем это важно:
Я помню, лет 30 назад я пытался сделать одностороннюю компьютерную плату Z80. Я переправил большинство линий, но эти глупые выводы шины данных сделали это невозможным.
источник