Hvad er BCM, og hvorfor bruges det i en Raspberry Pi

Hvad Er Bcm Og Hvorfor Bruges Det I En Raspberry Pi



Mens de skriver Python-scripts til Raspberry Pi-projekter, bliver mange mennesker forvirrede over BCM og BESTYRELSE pin-nummerering. Folk har normalt en tendens til at forstå BOARD-nummeret, da det er en simpel justering af stifter på et Raspberry Pi-kort, men de fleste mennesker forveksler BCM-nummeret på Raspberry Pi.

Hvis du er den, der står over for det samme problem, så vil denne artikel hjælpe dig med at udvikle en komplet forståelse af BCM i Raspberry Pi.

Hvad er BCM, og hvorfor bruges det i Raspberry Pi

BCM er en forkortelse for ' Broadcom SOC-kanal ; I Raspberry Pi er der to måder at henvise til Raspberry Pi-kortstifterne på: den ene er BCM og den anden er BESTYRELSE . Benene på lavere niveau på brættet, der er defineret af Broadcom-chippen, er BCM-benene, og BCM-nummeret er forskelligt fra brættets/chip-pin-numrene, fordi der i de indledende boards af Raspberry Pi var et mindre antal stifter. Efterhånden som nye tavler er lanceret, tilføjes flere pins, og BCM-nummeret forbliver det samme, på grund af hvilket den overordnede justering af pin-numre bliver forstyrret.







Pins-konfiguration af Raspberry Pi Board

Billedet nedenfor viser pin-konfigurationen af ​​de seneste Raspberry Pi-kort, som har 40 ben. Pinnavnene nævnt i farvede rektangler er BCM nummer af stifter og numrene nævnt inde i cirkler repræsentere BÆRET nummer af stifter.





For at lette brugerne understøtter Raspberry Pi både brugen af BCM og BESTYRELSE tal. Brugere skal blot henvise til dem i koden, før de koder stifterne.





For at henvise til de tal, der findes inde i cirkler (1,2,3,4,...) den GPIO.BOARD konfiguration vil blive brugt inde i Python-scriptet:

GPIO.BOARD

Der henviser til, at henvise til stifterne indeni farvede rektangler (GPIO10, GPIO11, GPIO12,...) den GPIO.BCM anvendes:



GPIO.BCM

Hvordan bruger man BCM i Python-scripts i Raspberry Pi?

Lad os forstå dette med et eksempel, hvis jeg skal bruge pin 11 på kortet (GPIO17, BCM), for at skifte en LED, så vil jeg bruge det i Python-koden som angivet nedenfor:

import RPi.GPIO som GPIO
importere tid

GPIO.setmode ( GPIO.BCM )

GPIO.setup ( 17 , GPIO.OUT )

til jeg i rækkevidde ( femten ) :
GPIO.output ( 17 , GPIO.HØJ )
tid.søvn ( 2 )
GPIO.output ( 17 , GPIO.LOW )
tid.søvn ( 2 )

I koden til at indstille pin mode har jeg defineret BCM pin konfigurationen i starten, hvorefter jeg har brugt GPIO17 pin i stedet for 11 (BOARD nummer).

Kreds til Python-kode

Hardwarekredsløbet for ovenstående kode er vist på billedet nedenfor, hvor jeg har fremhævet GPIO 17 pin (BCM).

LED'en vil blinke 15 gange med 2 sekunders forsinkelse mellem hver tændt og slukket tilstand.

Konklusion

BCM er en Broadcom-kanal på Raspberry Pi, som bruges til at konfigurere Raspberry Pi-stifter ved at bruge Broadcom-kanalnumrene. Det BCM antallet af stifter er forskelligt fra BOARD-nummeret. Disse numre bruges under programmering af GPIO-benene, brugeren skal definere GPIO.setmode ved begyndelsen. Hvorefter stifterne kan bruges i overensstemmelse hermed i koden.