Vad är BCM och varför används det i en Raspberry Pi

Vad Ar Bcm Och Varfor Anvands Det I En Raspberry Pi



Medan de skriver Python-skript för Raspberry Pi-projekt blir många förvirrade över det BCM och STYRELSE pinnumrering. Människor brukar vanligtvis förstå BOARD-numret eftersom det är en enkel justering av stift på ett Raspberry Pi-kort, men de flesta förväxlar BCM-numret för Raspberry Pi.

Om du är den som står inför samma problem, kommer den här artikeln att hjälpa dig att utveckla en fullständig förståelse av BCM i Raspberry Pi.

Vad är BCM och varför används det i Raspberry Pi

BCM är en förkortning för ' Broadcom SOC-kanal ; I Raspberry Pi finns det två sätt att referera till Raspberry Pi-brädans stift: det ena är BCM och den andra är STYRELSE . De lägre nivåstiften på kortet som definieras av Broadcom-chippet är BCM-stiften, och BCM-numret skiljer sig från kortets/chip-stiftnumren eftersom det fanns ett mindre antal stift i Raspberry Pis initiala kort. När nya kort har lanserats läggs fler pins till, och BCM-numret förblir detsamma, vilket gör att den övergripande anpassningen av pin-nummer störs.







Pins-konfiguration av Raspberry Pi Board

Bilden nedan visar stiftkonfigurationen för de senaste Raspberry Pi-korten som har 40 stift. Pinnamnen som nämns i färgade rektanglar är de BCM-nummer av stift och siffrorna som nämns inuti cirklar representera STYRELSEnummer av stift.





För att underlätta för användarna stöder Raspberry Pi både användningen av BCM och STYRELSE tal. Användare måste bara referera till dem i koden innan de kodar stiften.





För att hänvisa till siffrorna som finns inuti cirklar (1,2,3,4,...) den GPIO.BOARD konfiguration kommer att användas i Python-skriptet:

GPIO.BOARD

För att hänvisa till stiften inuti färgade rektanglar (GPIO10, GPIO11, GPIO12,...) den GPIO.BCM är använd:



GPIO.BCM

Hur man använder BCM i Python-skript i Raspberry Pi?

Låt oss förstå detta med ett exempel, om jag måste använda stift 11 på kortet (GPIO17, BCM), för att växla en lysdiod så kommer jag att använda den i Python-koden som anges nedan:

importera RPi.GPIO som GPIO
importera tid

GPIO.setmode ( GPIO.BCM )

GPIO.setup ( 17 , GPIO.OUT )

för i i räckvidd ( femton ) :
GPIO.utgång ( 17 , GPIO.HÖG )
tid.sömn ( 2 )
GPIO.utgång ( 17 , GPIO.LOW )
tid.sömn ( 2 )

I koden för att ställa in pin-läget har jag definierat BCM pin-konfigurationen i början, varefter jag har använt GPIO17 pin istället för 11 (BOARD-nummer).

Krets för Python-kod

Hårdvarukretsen för ovanstående kod visas i bilden nedan, där jag har markerat GPIO 17 pin (BCM).

Lysdioden blinkar 15 gånger med 2 sekunders fördröjning mellan varje på och av.

Slutsats

BCM är en Broadcom-kanal på Raspberry Pi, som används för att konfigurera Raspberry Pi-stift med hjälp av Broadcom-kanalnumren. De BCM antalet stift skiljer sig från BOARD-numret. Dessa nummer används vid programmering av GPIO-stiften, användaren måste definiera GPIO.setmode i början. Därefter kan stiften användas i enlighet med koden.