Какво е BCM и защо се използва в Raspberry Pi

Kakvo E Bcm I Zaso Se Izpolzva V Raspberry Pi



Докато пишат скриптове на Python за проекти на Raspberry Pi, много хора се объркват относно BCM и ДЪСКА щифтово номериране. Хората обикновено са склонни да разбират номера на BOARD, тъй като това е просто подравняване на щифтове на Raspberry Pi платка, но повечето хора бъркат BCM номера на Raspberry Pi.

Ако вие сте този, който е изправен пред същия проблем, тогава тази статия ще ви помогне да развиете пълно разбиране на BCM в Raspberry Pi.

Какво е BCM и защо се използва в Raspberry Pi

BCM е съкращение за „ Broadcom SOC канал ; В Raspberry Pi има два начина за обозначаване на щифтовете на дъската на Raspberry Pi: единият е BCM а другото е ДЪСКА . Изводите от по-ниско ниво на платката, които се дефинират от чипа на Broadcom, са BCM изводите и номерът на BCM е различен от номерата на изводите на платката/чипа, тъй като в първоначалните платки на Raspberry Pi имаше по-малък брой изводи. С пускането на нови платки се добавят повече щифтове и BCM номерът остава същият, поради което цялостното подравняване на номерата на щифтовете се нарушава.







Конфигурация на щифтове на Raspberry Pi Board

Изображението по-долу показва конфигурацията на щифтовете на най-новите платки Raspberry Pi, която има 40 щифта. Имената на пинове, споменати в цветни правоъгълници са BCM номер на щифтовете и номерата, споменати вътре в кръгове представляват номер на БОРДА от карфици.





За улеснение на потребителите, Raspberry Pi поддържа както използването на BCM и ДЪСКА числа. Потребителите просто трябва да се позоват на тях в кода, преди да кодират щифтовете.





За да се обърнете към числата, присъстващи вътре в кръгове (1,2,3,4,...) the GPIO.ПЛАТА конфигурация ще се използва в скрипта на Python:

GPIO.ПЛАТА

Като има предвид, че се отнася до щифтовете вътре цветни правоъгълници (GPIO10, GPIO11, GPIO12,…) на GPIO.BCM се използва:



GPIO.BCM

Как да използвате BCM в Python скриптове в Raspberry Pi?

Нека разберем това с пример, ако трябва да използвам пин 11 на платката (GPIO17, BCM), за да превключвам светодиод, тогава ще го използвам в кода на Python, както е посочено по-долу:

импортирайте RPi.GPIO като GPIO
импортиране време

GPIO.setmode ( GPIO.BCM )

GPIO.настройка ( 17 , GPIO.OUT )

за i в диапазон ( петнадесет ) :
GPIO.изход ( 17 , GPIO.HIGH )
време.сън ( 2 )
GPIO.изход ( 17 , GPIO.НИСКО )
време.сън ( 2 )

В кода за настройка на режима на пин дефинирах конфигурацията на щифта на BCM в началото, след което използвах пин GPIO17 вместо 11 (номер на BOARD).

Схема за код на Python

Хардуерната верига за горния код е показана на изображението по-долу, където съм маркирал GPIO 17 пина (BCM).

Светодиодът ще мига 15 пъти с 2 секунди закъснение между всяко включено и изключено състояние.

Заключение

BCM е канал на Broadcom на Raspberry Pi, който се използва за конфигуриране на пинове на Raspberry Pi чрез използване на номерата на каналите на Broadcom. The BCM броят на щифтовете е различен от номера на ДЪСКА. Тези числа се използват при програмиране на GPIO щифтовете, потребителят трябва да ги дефинира GPIO.setmode в началото. След което щифтовете могат да се използват съответно в кода.