Hva er BCM, og hvorfor brukes det i en Raspberry Pi

Hva Er Bcm Og Hvorfor Brukes Det I En Raspberry Pi



Mens de skriver Python-skript for Raspberry Pi-prosjekter, blir mange forvirret over BCM og BORDE PIN-nummerering. Folk har vanligvis en tendens til å forstå BOARD-nummeret, da det er en enkel justering av pinner på et Raspberry Pi-brett, men de fleste forvirrer BCM-nummeret til Raspberry Pi.

Hvis du er den som står overfor det samme problemet, vil denne artikkelen hjelpe deg med å utvikle en fullstendig forståelse av BCM i Raspberry Pi.

Hva er BCM, og hvorfor brukes det i Raspberry Pi

BCM er en forkortelse for ' Broadcom SOC-kanal ; I Raspberry Pi er det to måter å referere til Raspberry Pi-brettpinnene på: den ene er BCM og den andre er BORDE . Pinnene på lavere nivå på brettet som er definert av Broadcom-brikken er BCM-pinnene, og BCM-nummeret er forskjellig fra brett-/brikkepinnennumrene fordi det var et mindre antall pinner i de første brettene til Raspberry Pi. Etter hvert som nye tavler har lansert, blir flere pinner lagt til, og BCM-nummeret forblir det samme på grunn av at den generelle justeringen av pin-numre blir forstyrret.







Pins-konfigurasjon av Raspberry Pi Board

Bildet nedenfor viser pin-konfigurasjonen til de nyeste Raspberry Pi-brettene som har 40 pinner. Pinnenavnene nevnt i fargede rektangler er BCM-nummer av pinner og tallene nevnt inne i sirkler representere STYREnummer av pinner.





For å lette brukerne støtter Raspberry Pi både bruken av BCM og BORDE tall. Brukere må bare referere til dem i koden før de koder pinnene.





For å referere til tallene som finnes i sirkler (1,2,3,4,...) den GPIO.BOARD konfigurasjonen vil bli brukt i Python-skriptet:

GPIO.BOARD

Mens, for å referere til pinnene inni fargede rektangler (GPIO10, GPIO11, GPIO12,...) den GPIO.BCM benyttes:



GPIO.BCM

Hvordan bruke BCM i Python-skript i Raspberry Pi?

La oss forstå dette med et eksempel, hvis jeg må bruke pin 11 på kortet (GPIO17, BCM), for å veksle mellom en LED, vil jeg bruke den i Python-koden som angitt nedenfor:

importer RPi.GPIO som GPIO
import tid

GPIO.settmodus ( GPIO.BCM )

GPIO.oppsett ( 17 , GPIO.OUT )

til Jeg i område ( femten ) :
GPIO.utgang ( 17 , GPIO.HØY )
tid.søvn ( 2 )
GPIO.utgang ( 17 , GPIO.LOW )
tid.søvn ( 2 )

I koden for å stille inn pin-modus har jeg definert BCM pin-konfigurasjonen i starten, hvoretter jeg har brukt GPIO17 pin i stedet for 11 (BOARD-nummer).

Krets for Python-kode

Maskinvarekretsen for koden ovenfor er vist i bildet nedenfor, der jeg har uthevet GPIO 17 pin (BCM).

LED-lampen vil blinke 15 ganger med 2 sekunders forsinkelse mellom hver av og på.

Konklusjon

BCM er en Broadcom-kanal på Raspberry Pi, som brukes til å konfigurere Raspberry Pi-pinner ved å bruke Broadcom-kanalnumrene. De BCM antall pinner er forskjellig fra BOARD-nummeret. Disse tallene brukes under programmering av GPIO-pinnene, brukeren må definere GPIO.settmodus i begynnelsen. Deretter kan pinnene brukes tilsvarende i koden.