За что отвечают пины на процессоре

Обновлено: 04.07.2024

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

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

Продолжу развивать тему о встроенном софте для небольших микроконтроллеров в устройствах для safety critical систем.

На этот раз попробую предложить способ работы с конкретными ножками микроконтроллера, используя обертку над регистрами, которую я описал в прошлой статье Безопасный доступ к полям регистров на С++ без ущерба эффективности (на примере CortexM)

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

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

Введение

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

На ранних стадиях преподавания я рассказывал студентов про CMSIS и автоматические системы первоначальной настройки микроконтроллера (типа Cube), но через некоторое время понял:

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

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

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

Порт — это средство общения микроконтроллера с внешним миром.

Порт может работать как цифровой вход и цифровой выход, некоторые порты могут работать в аналоговом режиме, т.е. на них можно подавать аналоговый сигнал, который затем будет поступать на входы АЦП, а таже функционировать в альтернативном режиме (это когда порт работает в режиме какой-нибудь периферии, скажем UART, SPI или USB). Для упрощения аналоговый и альтернативные режимы рассматривать не будем. Рассмотрим только два режима цифровой вход и выход:

  • В режиме цифрового выхода на порт можно вывести 0 или 1,
    0 — соответствует низкому уровню напряжения (земле);
    1 — высокому уровню (питанию).
  • В режиме цифрового входа порт считывает уровень напряжения на ножке.
    0 — соответствует низкому значению;
    1 — высокому.

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

Давайте ограничимся простой абстракцией порта у которого есть методы Set() — установка 1, Reset() — установка 0, Get() — чтение состояния порта, SetInput() — установка в режим входа, SetOutput() — установка в режим выхода. Ради экономии текста, опустим метод Reset() .

Можно описать Port следующим классом:

drawing

Или, используя обертку над регистрами из прошлой статьи, кодом:

Кому интересно, как сделан атомарный доступ см ниже:

Атомарный доступ с помощью инструкций LDREX и CLREX
Команда LDREX загружает значение по указанному адресу в регистр и взводит специальный флаг процессора, сигнализирующий об эксклюзивном доступе к памяти.
STREX — проверяет не был-ли нарушен эксклюзивный доступ к памяти, если нет, то записывает значение из входного регистра по указанному адресу и сбрасывает флаг эксклюзивного доступа. При этом в выходном регистре будет записан ноль. Если инструкция STREX запишет 0 в выходной регистр, это будет означать гарантию того, что никакие другие процессы в системе не получили доступ к области памяти между LDREX и STREX, иначе STREX ничего не запишет в память и в выходной регистре будет записана 1. Это значит, что значение в памяти могло изменится (а могло и нет, могло просто произойти прерывание) и нам надо снова перечитать его из памяти модифицировать и снова попытаться его сохранить. Естественно, чем меньше кода между LDREX и STREX, тем меньше вероятность, что там произойдёт прерывание и больше шансов обновить значение с первого раза.

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

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

Итак, конкретный Pin должен иметь связь с портом, номер пина и Get() и Set() методы. Эти два метода актуальны для любого микроконтроллера. Так же как, скорее всего, для любого микроконтроллера актуальны методы настройки Pin на вход или выход. А вот перевод в альтернативный режим или в аналоговый не всегда поддерживается микроконтроллерами, поэтому, чтобы не зависеть от микроконтроллеров не будем добавлять эту возможность, ниже я поясню, этот момент. Наша абстракция Pin для любого микроконтроллера будет выглядеть следующим образом:

drawing

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

Сразу же добавили частичку статической проверки: пинов на порту у нас 16, поэтому пользователю уже не позволено передавать значение больше 15. Внимательный читатель заметит, что не у всех микроконтроллеров 15 пинов на одном порту. Да, можно этот параметр задавать в парметре шаблона, а можно просто константой. Здесь, я хотел показать, что у нас уже есть возможность запретить пользователю сделать неправильные вещи на уровне типа. По сути мы объявили тип Pin, который не может принимать значение номера Pina больше 15.

Использовать класс можно так:

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

Немного о настройке аппаратной части микроконтроллера

Пользователь Vadimatorikda в статье Пять лет использования C++ под проекты для микроконтроллеров в продакшене поделился минусами использования С++ для своих проектов. В том числе описал и проблемы с которыми встречался я. С моей точки зрения он сделал очень правильные вывод:

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

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

Пример таких настроек (система тактирования, порты, SPI для драйвера e-paper):

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

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

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

Расширенный класс для Pin

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

И у нас должна быть возможность сделать так, чтобы у Pinа, настроенного на вход не было возможности вызвать метод Set() , и наоборот для Pinа, настроенного на выход, не было даже намека на метод Get() .

Пины же, которые могут работать в обоих режимах, должны быть конфигурируемы. Для этого можно ввести интерфейсы:

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

C помощью SFINAE можно определить набор методов для Pin, имеющих разные интерфейсы, чтобы не загружать сильно код покажу только 3 метода:

Сделав такой класс, можем посмотреть в спецификацию настройки периферии, в ней может быть прописано, что то типа такого:

Порт Режим Возможность настройки
GPIOA.5 Output Да
GPIOC.3 Output Нет
GPIOC.13 Input Нет
GPIOC.12 Input Да
GPIOC.11 Input/Output Да
  • пин GPIOA.5 используется для светодиода, должен работать в режиме выхода и может быть настроен только на режим выхода во время работы.
    То в код мы переведем это так, как тип, принимающий только один порт GPIOA.5 и имеющий у себя только два метода для установки состояния Pinа и его конфигурирования: Set() SetOutput() :
  • пин GPIOC.3 используется для светодиода, должен работать в режиме выхода, возможности настройки у него нет.
    Для программиста это означает, что настройка будет происходить в функции __low_level_init через регистры, т.е. программист будет иметь возможность только устанавливать состояние порта через метод Set() . Поэтому конфигурация Pina будет выполнена следующим образом:
  • пин GPIOC.13 используется для кнопки и может работать только в режиме чтения.
  • пин GPIOC.12 для другой кнопки настроен на вход, но может еще и сам себя в этот режим конфигурировать, то:
  • Ну и на порте GPIOC.11 находится пин, который может работать в любом режиме:

Сконфигурировав так пины, мы позволим пользователю (программисту) делать только то, что утверждено спецификацией:

Т.е. вся идея конфигурирования заключается в том, что программист смотрит спецификацию, ищет настройку пина и переписывает её в конфигурацию Pin , задавая соответствующий тип, а затем на уровне бизнес логики использует только те функции типа Pin , которые позволены в соответствии со спецификацией. Если Pin , настроен как PinReadable , то уж извините ни перенастроить его, ни установить в него из уровня приложении будет невозможно.

Быстродействие

Быстродействие здесь точно такое же как и у Си и у ассемблерного кода, все методы сделаны принудительно inline, поэтому вызов функции, например Set() даже в режиме без оптимизации преобразуется в простой вызов установки бита, например:

полностью идентично строке:

ну или на более привычном CMSIS варианте

В принципе это вся идея, но тут меня посетила мысль, а что, если мне одновременно нужно установить (или режим поменять или сбросить) сразу несколько Pinов, находящихся на разных портах?

Набор Pinов

В качестве эксперимента, я взял свою плату, на ней 4 светодиода, и они как раз находятся на разных портах: GPIOA.5 , GPIOC.5 , GPIOC.8 , GPIOC.9 ;
Первое что приходит в голову, это вот такой код:

Вроде бы нормально, но, во-первых много кода, если Pinов будет 10, то придется 10 раз писать одно и то же — нехорошо. Поэтому я сделал класс PinsPack:

После этого можно будет написать проще, оно тоже развернется в те же 4 строчки:

Поэтому во вторых, такой код не оптимальный, ведь по сути мы можем сделать все установки в 2 строчки:

Распиновка разъемов блока питания: какая линия за что отвечает

Подключение проводов блока питания при сборке ПК — одна из самых серьезных задач, с которой сталкиваются начинающие пользователи. Все слышали фразу «с электричеством шутки плохи», и нужно понимать, что в случае неправильного подключения проводов можно запросто повредить дорогие комплектующие. Чтобы этого не случилось, нужно знать распиновку разъемов БП, максимальную нагрузку на каждый разъем и положение ключей, которые не дают подключить провода неправильно. В этой статье вы найдете всю информацию на эту тему.

Стандарты блоков питания для ПК и их разъемов развиваются уже почти 40 лет — со времен выхода первых компьютеров IBM PC. За это время сменилось несколько стандартов AT и ATX. Казалось бы, все возможные разъемы уже придуманы и ничего нового не требуется, но осенью этого года ожидается выход видеокарт Nvidia GeForce RTX 3000-й серии, который принесет с собой новый, 12-контактный разъем питания. Производители уже стали добавлять в комплекты проводов новых БП коннектор 12-Pin Micro-Fit 3.0. Будет неудивительно, если этот разъем питания дополнит новые стандарты ATX.


Перед тем, как перейти к описанию и распиновке всех разъемов в современном БП, хотелось бы напомнить, что основные напряжения, которые нам встретятся, это +3.3 В, +5 В и +12 В. Сейчас основное напряжение, которое требуется и процессору, и видеокарте — это +12 В. В свою очередь, +5 В нужно накопителям, а +3.3 В используется все реже.

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


Разъем Molex

Начнем с самого древнего разъема, который почти без изменений дошел до наших времен, появившись у первых «персоналок». Это всем известный 4-контактный разъем, называемый Molex.



Сегодня сфера применения этого разъема сузилась до питания корпусных вентиляторов, передних панелей корпусов ПК, разветвителей и переходников питания видеокарт и накопителей. Например, переходников питания видеокарты «Molex — PCI-E 6 pin». Несмотря на то, что разъем выдает до 11 А на контакт, а значит, может дать видеокарте, в теории, 132 ватта мощности, использовать его стоит крайне осторожно.

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

Если вам обязательно требуется такой переходник, выбирайте модель с двумя разъемами Molex.


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

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

24-контактный разъем питания материнской платы

Этот разъем появился в спецификациях ATX12V 2.0 в 2004 году и заменил устаревший 20-контактный разъем. Он может обеспечить довольно серьезные мощности для питания процессора, видеокарты и материнской платы: по линии +3.3 В — 145.2 Вт, по линии +5 В — 275 Вт и 264 Вт по линии +12 В (при использовании контактов Molex Plus HCS).

Примечание. Контакты Molex сертифицированы на ток 6 А. Molex HCS — до 9 А. А Molex Plus HCS — до 11 А.



Разъемы питания процессора

Энергопотребление процессоров неуклонно росло последние 20 лет, что потребовало дополнительных разъемов питания для них. И в спецификациях ATX12V был введен дополнительный 4-контактный разъем питания процессора +12 В.




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


Разъем питания 3.5" дисководов



Еще один разъем, уже практически не встречающийся на новых БП. Ранее использовался для питания дисководов 3.5" и некоторых карт расширения.

Разъем питания SATA



Стандартный разъем для питания HDD, DVD и 2.5" SSD-приводов. Надежный и удобный разъем, воткнуть который другой стороной не получится из-за расположения специальных выступов. Ток, потребляемый HDD и SSD, довольно небольшой и беспокоиться о нагреве таких разъемов не стоит.

Разъемы дополнительного питания видеокарт

В начале нулевых годов резко выросло энергопотребление видеокарт, что потребовало для них специальных разъемов питания, принятых в спецификациях ATX12V 2.x.

Спецификация PCI Express x16 Graphics 150W-ATX Specification 1.0 была принята рабочей группой PCI-SIG в 2004 году. Она представила 6-контактный разъем, который может давать видеокарте 75 Вт мощности. И еще 75 Вт берутся со слота PCI-E x16. Получившиеся в сумме 150 ватт достаточны для питания видеокарт среднего уровня, например, GeForce GTX 1650 SUPER.




Производители видеокарт обычно стараются разгрузить питание по слоту PCI-E x16 и обеспечить запас питания для разгона, поэтому видеокарты с потреблением 120 ватт и выше, например, GeForce GTX 1660 SUPER, все чаще оснащаются восьмипиновым разъемом питания.

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

Выводы

Как вы могли заметить, все разъемы на современных БП разработаны так, чтобы исключить неправильное подключение. Также они обеспечивают избыточную надежность по нагрузке питания, что достигается увеличением числа контактов.

Но при сборке ПК не помешает помнить распиновки всех разъемов и максимальную силу тока, которую может выдержать разъем. Если пренебречь этими знаниями, можно рано или поздно повредить комплектующие. С подобным в период «крипто-лихорадки» 2017-2018 года столкнулись майнеры, у которых массово горели дешевые переходники питания видеокарт «Molex — PCI-E 6 pin».

Процессорный разъём сокет 775, также называемый LGA 775 или Socket T — разъём на материнских платах для установки процессоров Intel. Разъём LGA 775 представляет собой разъём с подпружиненными или мягкими контактами, к которым с помощью специального держателя с захватом и рычага прижимается процессор, не имеющий штырьковых контактов.

Распиновка сокета LGA 775 показана на фото:

Описание контактов сокета LGA 775 для процессоров Intel смотрите в инструкции на странице 46-55, в таблице 4-1 (список упорядочен по названию сигнала) или на странице 56-65, в таблице 4-2 (список упорядочен по номеру контакта). Описание сигналов смотрите в этой же инструкции ниже, на странице 66-74 в таблице 4-3.

Распиновка сокета процессоров Intel LGA 1156

Процессорный разъём сокет 1156, также называемый LGA 1156, или Сокет H1 (Socket 1156 / Socket H1 / Socket LGA 1156), представляет собой гнездо выполненное по технологии LGA (Land Grid Array) и предназначено для процессоров Intel Core i3, Core i5, Core i7, а также Xeon 300 серии.

Гнездо поддерживает двухканальный контроллер памяти DDR3 SDRAM, прямой мультимедийный интерфейс, работающий на скорости 2,5 GT/s, и интерфейс PCI Express. Сокет H1 поддерживает процессоры с частотами от 1,86 ГГц до 3,46 ГГц.

Размер сокета LGA 1156 с независимым механизмом загрузки (Independent Loading Mechanism - ILM) составляет в дюймах 3,08" x 2,01" (7,825 см x 5,1 см). Гнездо имеет 1156 контактов, расположенных в виде сетки 40 х 40 контактов с пустым местом в центре 24 х 16, и с 60 пустыми местами без контактов, расположенными в основном по углам и краям гнезда. Гнездо LGA 1156 имеет меньшее расстояние между контактами чем гнездо LGA 775, это позволяет гнезду LGA 1156 иметь на 50% больше контактов без увеличения размера сокета.

Распиновка сокета процессоров Intel LGA 1155

Процессорный сокет 1155, также называемый LGA 1155, или Сокет H2 (Socket 1155 / Socket H2 / Socket LGA 1155), является сокетом, который заменил предшествующий сокет 1156. Этот сокет поддерживает процессоры Intel на ядрах Sandy Bridge и Ivy Bridge.

Размер сокета без механизма зажима процессора составляет в дюймах 1,67" x 1,67" (4,25 см x 4,25 см). Размер сокета (гнездо) процессора H2 имеет 1155 контактов, расположенных в виде сетки 40 х 40 контактов с пустым местом в центре 24 х 16, и с 61 пустыми местами без контактов, расположенными в основном по углам и краям гнезда. Визуально, контакты выглядят как два L-образных участка, противоположные друг другу. Размер сокета 1155 рассчитано минимум на 20 операций установки и удаления процессора.

Распиновка сокета процессоров Intel LGA 1150

Процессорный разъём LGA 1150, также называемый Socket H3, разработан в качестве замены предшествующему разъёму LGA 1155 (Socket H2). Разъём Socket H3 выполнен по технологии LGA (Land Grid Array) и предназначен для процессоров Intel микроархитектуры Haswell и позже для его преемника Broadwell. Разъём Socket H3 представляет собой разъём с подпружиненными или мягкими контактами, к которым прижимается процессор контактами на своей нижней части.

Монтажные отверстия для систем охлаждения на сокетах LGA 1156, LGA 1155, LGA 1150 и LGA 1151 полностью идентичны, и имеют полную совместимость и идентичный порядок монтажа систем охлаждения для этих сокетов.

Описание контактов сокета LGA 1150 для процессоров Intel микроархитектуры Haswell и его преемника Broadwell смотрите в инструкции на странице 115-107, в таблице 62.

Описание контактов сокета можно найти в файле Excel socket_1150_pinout.xlsx или же на следующем фото:

Процессорный разъём LGA 1150 в 2015 году был заменён на LGA 1151 — разъём для процессоров компании Intel, который поддерживает процессоры архитектур Skylake и Kaby Lake.

Распиновка сокета процессоров Intel LGA 1151

Процессорный разъём LGA 1151, также называемый Socket H4 — разъём для процессоров компании Intel, который поддерживает процессоры архитектуры Skylake, Kaby Lake и позже Coffee Lake и Coffee Lake Refresh. Разъём Socket H4 разработан в качестве замены разъема LGA 1150 (известного как Socket H3) и имеет 1151 подпружиненный контакт для соприкосновения с контактными площадками процессора.

Материнские платы с разъёмом LGA 1151 обычно поддерживают только два канала оперативной памяти стандарта DDR4. Некоторые материнские платы на LGA 1151 (для процессоров шестого поколения архитектуры Skylake) поддерживают только память стандартов DDR3 или DDR3L.

Крепление системы охлаждения LGA 1151 совместимо с сокетами LGA 1155 и LGA 1150.

Раcпиновка сокета процессора Intel LGA 1151 (SkyLake, Kaby Lake) 6-ой и 7-ой серии на материнских платах с чипсетами Intel 100-й и 200-й серий:

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

Вольтаж и цветовая маркировка кабелей

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

  • 0 В (земля, общий провод) – черный;
  • +5 вольт – красный;
  • -5 вольт – белый;
  • +12 вольт – желтый;
  • +3.3 вольта – оранжевый;
  • -12 вольт – синий.

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

Виды разъемов для питания компонентов ПК

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

  • ATX 20 (20+4, 24) – для энергоснабжения материнской платы;
  • коннектор 4 или 8 пин – для питания процессора;
  • Molex – для питания многих периферийных устройств;
  • SATA power – для питания жестких или твердотельных дисков;
  • PCI Expess – для запитки видеокарт.

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

Для материнской платы (ATX 20, 24 pin)

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

Распиновка разъемов блока питания компьютера по цветам и напряжению

Часть каналов являются сигнальными и служат для управления блоком питания:

  • вывод 8 - Power OK (PWR_OK, PWR_good) – сигнал на материнскую плату «питание включено»;
  • вывод 16 -Power ON – сигнал от материнской платы, разрешение на подачу напряжения, в режиме ожидания на нем +5 вольт (подтянуто резистором), в режиме разрешения – 0 вольт (на материнской плате соединяется с общим проводом);
  • вывод 13 дополнительный коричневый провод - Sense – обратная связь для автоматической регулировки напряжения.

Также надо отдельно отметить напряжение Stand by на фиолетовом проводе (вывод 9). Оно предназначено для питания внутренней схемы БП и одновременно служит в качестве дежурного напряжения для запуска компьютера.

В 20-контактном разъеме отсутствует секция из 4-х крайних выводов – пары 11-12 и 23-24. В новом, 24-контактном коннекторе, эта секция может быть выполнена съемной.

Распиновка разъемов блока питания компьютера по цветам и напряжению

Для процессора

Производительность процессоров в последние десятилетия неуклонно растет. Растет и их энергопотребление. Питаются процессоры от преобразователей напряжения (VRM), установленных на материнской плате. Около двух десятилетий назад произошел массовый переход запитки VRM с напряжения +5 вольт на уровень +12 вольт. Связано это с тем, что для передачи одинаковой мощности при большем напряжении требуется меньший ток. VRM получают электроэнергию по отдельному кабелю с разъемом, состоящим из 4 пинов. Два контакта предназначены для напряжения+12 вольт (желтый провод) и два – земля (провод в черной изоляции).

Распиновка разъемов блока питания компьютера по цветам и напряжению

Гнезда на разъеме и пины на плате расположены в два ряда по назначению. Два вывода выполняют функцию ключа – их форма отличается от остальных, поэтому ошибочное подключение невозможно.

Распиновка разъемов блока питания компьютера по цветам и напряжению

Распиновка разъемов блока питания компьютера по цветам и напряжению

В остальном от предыдущего варианта принципиальных отличий нет. Коннектор содержит два ряда гнезд - +12 вольт и 0 вольт, только по 4 в ряд.

Распиновка разъемов блока питания компьютера по цветам и напряжению

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

Для видеокарты (PCI Express)

Видеокарты предыдущих поколений, имеющие невысокую производительность, и современные модели бюджетного класса питаются от разъема PCIe х 16, к которому они подключаются. Напряжение на этот терминал поступает от материнской платы, которая, в свою очередь, запитывается от БП через 24(20)-контактный коннектор. Этого хватает для передачи 75 ватт.

Распиновка разъемов блока питания компьютера по цветам и напряжению

Современным производительным картам этого недостаточно, поэтому для них предусмотрен дополнительный вход питания PCI Express. Изначально он представлял собой коннектор на 6 контактов и позволял обеспечить дополнительное энергоснабжение мощностью 75 ватт. Очень скоро этой пропускной способности стало недостаточно, и последующие стандарты ATX пополнил разъем на 8 контактов и на 120 ватт.

Распиновка разъемов блока питания компьютера по цветам и напряжению

Распиновка разъемов блока питания компьютера по цветам и напряжению

Для самых современных видеокарт производители применяют коннекторы с двенадцатью контактами, но они пока широкого распространения не получили.

Для жестких дисков и прочих устройств (SATA, MOLEX)

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

Распиновка разъемов блока питания компьютера по цветам и напряжению

Втычные элементы расположены в один ряд. Разъем также имеет ключ, исключающий неверное соединение. Два внутренних пина предназначены для земляных проводов (черных). К крайним подключаются проводники с напряжением +5 вольт и +12 вольт. Каждый контакт рассчитан на ток в 11 ампер, что позволяет передать по пятивольтовому каналу 55 ватт, а по двенадцативольтовому – 132 ватта. Распиновка коннектора Молекс показана на рисунке.

Распиновка разъемов блока питания компьютера по цветам и напряжению

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

В связи с возросшей популярностью стандарта SATA, разъемы Molex вытесняются коннекторами питания SATA, имеющими 15 выходов. На каждое напряжение задействовано 3 пина, что позволяет передавать большую мощность, не увеличивая сечение проводников и сохраняя гибкость кабеля. Группы напряжений разделены группами нулевых проводов (по 3 проводника). Распиновка разъема – в таблице.

Номер контактаЦвет проводаУровень напряжения, В
1Оранжевый+3,3
2Оранжевый+3,3
3Оранжевый+3,3
4Черный0 В
5Черный0 В
6Черный0 В
7Красный+5
8Красный+5
9Красный+5
10Черный0 В
11Черный0 В
12Черный0 В
13Желтый+12
14Желтый+12
15Желтый+12

Стандарт SATA предполагает подключение устройств двумя разъемами – для питания и для передачи данных. Их путать не следует.

Распиновка разъемов блока питания компьютера по цветам и напряжению

Какие могут понадобиться переходники

При модернизации компьютера или при изначальной сборке может получиться так, что у блока питания отсутствуют необходимые разъемы для подключения периферийных устройств, и подобрать БП со всеми необходимыми коннекторами не удается. В этом случае выручат переходники с одних типов соединительных терминалов на другие. Так, если вместо устаревшего жесткого диска с питанием посредством разъема Молекс устанавливается новое устройство, выполненное по стандарту SATA, потребуется жгут с двумя коннекторами: с одной стороны Molex, с другой - SATA-Power.

Распиновка разъемов блока питания компьютера по цветам и напряжению

Если у БП имеются незадействованные разъемы SATA, их можно использовать для питания производительных видеокарт. Для этого понадобится соответствующий переходник.

Распиновка разъемов блока питания компьютера по цветам и напряжению

Если на материнской плате предусмотрен разъем для питания VRM (процессора) на 8 контактов, а в БП коннектор рассчитан на 4 (и наоборот), также можно приобрести специальный переходной жгут. Но его можно не покупать – эти разъемы полностью совместимы, и прекрасно подходят друг к другу без переходных кабелей.

Если на блоке питания разъем для материнской платы содержит 20 пинов, а на блоке питания – 24 (и наоборот), то тут также поможет жгут с двумя разъемами.

Распиновка разъемов блока питания компьютера по цветам и напряжению

Это основные переходные кабели. В процессе сборки компьютера могут понадобиться и другие переходники. Все они имеются в продаже.

Вывод и тематические видео

Многообразие разъемов, применяемых в системе питания ПК, с одной стороны создает определенную растерянность у неопытных пользователей, решивших собрать новый компьютер или модернизировать старый. С другой стороны, это удобно – меньше возможностей что-то неверно подключить. Несколько облегчит жизнь введение стандарта ATX12VO, предусматривающий питание всех устройств только от 12 вольт. В любом случае, сведения, приведенные в обзоре, будут полезны.

Типы разъемов для процессора: Разъем от 5 до BGA

У вашего компьютерного процессора есть дом: розетка. Сокет процессора упоминается редко, потому что он не помогает и не снижает производительность. Скорее, он обеспечивает стандартизированную форму для конкретного поколения процессоров.

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

Итак, что такое сокеты процессора, и почему они важны?

Что такое сокет процессора?

Разъёмы процессорных разъемов: сокет 5 для BGA computersocket1

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

Современные компьютеры размещают сокет процессора на материнской плате. (Вот краткое руководство по всем деталям на материнской плате деталям материнской деталям материнской .) В прошлом существовали и другие конфигурации сокетов ЦП, в том числе процессоры со слотовым креплением, которые вы вставляете, как современная карта PCI. Сегодня, однако, вы помещаете свой процессор в гнездо на материнской плате и защищаете его, используя какую-то защелку.

Разъемам для процессоров уже несколько десятилетий Знаменитый первый процессор Intel, Intel 386, использовал 132-контактный разъем PGA (я сейчас объясню эту аббревиатуру). В оригинальном процессоре Intel Pentium использовался Socket 4, а затем Socket 5.

Сокеты процессора не являются вездесущими. Различия между разъемами ЦП, разработанными Intel и AMD, связаны с различиями в конфигурации выводов ЦП между двумя производителями процессоров.

Почему существуют разные процессорные разъемы?

В отличие от легкой розетки, дизайн сокета процессора часто меняется. Почему?

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

Это последнее утверждение не всегда было правдой, ум. Еще на заре вычислительной техники, если вам посчастливилось приобрести высокопроизводительную материнскую плату Socket 7, вы могли бы использовать Intel Pentium, AMD K6, K6-2 или K6-3, Cyrix 6 × 86, IDT Winchip или Rise Technology mP6. И хотя существуют двухпроцессорные материнские платы, не существует таких, которые одновременно способствуют AMD и Intel.

Какой тип процессорных сокетов существует?


За прошедшие годы появилось и исчезло много типов процессорных разъемов. На данный момент актуальными являются только три: LGA, PGA и BGA.

LGA и PGA

LGA и PGA можно понимать как противоположности. «Массив сетки земли» (LGA) состоит из гнезда с выводами, на которые вы устанавливаете процессор. PGA («массив решеток»), напротив, размещает контакты на процессоре, который затем вставляется в гнездо с соответствующим образом расположенными отверстиями.

В современную компьютерную эпоху процессоры Intel используют сокеты LGA, а процессоры AMD — PGA. Однако есть и заметные исключения из этого правила. Например, чудовищный AMD Threadripper использует Socket TR4 (сокращение от Threadripper 4) — сокет LGA. TR4 — это только второй сокет LGA от AMD. Ранее процессоры Intel, такие как Pentium, Pentium 2 и Pentium 3, использовали разъем PGA.

Существует также гнездо BGA, которое обозначает «решетчатую решетку». Технология BGA постоянно подключает процессор к материнской плате во время производства, делая невозможным обновление. Разъем BGA и материнская плата потенциально могут стоить дешевле, но эквивалентов между потребительскими продуктами BGA и LGA и PGA очень мало.

Кроме того, BGA технически не является сокетом, потому что это постоянная функция материнской платы. (Вы можете легко заменить процессор LGA или PGA.) Разъемы BGA по-прежнему заслуживают упоминания, поскольку они выполняют ту же функцию.

Несколько лет назад ходили слухи, что Intel собирается отключить сокет LGA. Сокеты Intel LGA будут постепенно сокращаться после процессоров Intel Haswell 4- го поколения. Такого не было, и Intel до сих пор разрабатывает процессоры для сокетов LGA.

Тем не менее, с увеличением аппаратного обеспечения системы на кристалле (Intel), Intel расширила использование своего гнезда BGA. Аналогичным образом, ARM, Broadcom, Qualcomm, Nvidia и другие производители SoC сильно зависят от BGA.

Имеет ли значение тип сокета процессора?

Процессор, использующий определенный тип сокета, подойдет для любой материнской платы с этим сокетом, верно? Неправильно!

Типы сокетов, такие как LGA, являются категорией, а не конкретной моделью. Есть много вариантов сокетов, основанных на базовой спецификации.

Intel дает своим сокетам LGA имя, основанное на количестве контактов. Например, LGA1155 имеет 1155 отдельных штырьков. Процессор, созданный для этого конкретного типа сокета, будет работать только с этим сокетом. Иногда цифры невероятно похожи, например, LGA1155 и LGA1156, но вы не можете заставить их войти в противоположную розетку. Один вариант сокета Intel может охватывать несколько поколений процессоров.

AMD использует немного другой подход. Он маркирует свои гнезда широкими именами, такими как AM3 или FM1. Совместимость по-прежнему строго соблюдается, хотя AMD иногда обновляет сокет, сохраняя совместимость. Вы можете найти обновленную розетку AMD с символом «+», такую ​​как AM2 + и AM3 +.

Сократятся ли процессорные сокеты?

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

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

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

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

Читайте также: