Tartalomjegyzék:

Málna PI Több I2C eszköz: 3 lépés
Málna PI Több I2C eszköz: 3 lépés

Videó: Málna PI Több I2C eszköz: 3 lépés

Videó: Málna PI Több I2C eszköz: 3 lépés
Videó: MJC Stream: Видишь енота? А он есть! Главное об ML и компьютерном зрении 2024, Július
Anonim
Raspberry PI több I2C eszköz
Raspberry PI több I2C eszköz
Raspberry PI több I2C eszköz
Raspberry PI több I2C eszköz

Csalódott, mert nem használhatja ugyanazon I2C eszközök többszörösét a projektben. Nem kell lassú multiplexereket használni. A legújabb raspbian kernel támogatja több I2C busz létrehozását GPIO tűk segítségével. Ez a megoldás szupergyors.

1. lépés: Néhány shell parancs

Néhány shell parancs
Néhány shell parancs

Csatlakoztassa az egyik i2c -eszközt, amíg a málna pi -je van, indítsa el a málna -pi -t és futtassa

sudo i2cdetect -y 1

Látni fog egy táblázatot, mint a mellékelt ábrán. Van egy BMP280 hőmérséklet- és légnyomás -érzékelőm. Az i2c cím a táblázat szerint 0x76. Jegyezze fel ezt a címet.

Tegye ezt az összes i2c eszközön.

2. lépés: Első eset: Az I2c eszközök azonos címmel rendelkeznek

Első eset: Az I2c eszközök azonos címmel rendelkeznek
Első eset: Az I2c eszközök azonos címmel rendelkeznek

Mindig ez volt a problémás eset. Egy i2c busz több eszközt is képes kezelni, de azoknak eltérő i2c címmel kell rendelkezniük. Néhány i2c eszköz rendelkezik jumperrel más i2c címek beállításához, de soknak nincs. Ebben az esetben használhat i2c multiplexert (hardver) az i2c SDA (adatok) és az SCL (óra) forgatásához, vagy létrehozhat további vagy több i2c buszt.

Létrehozok két kiegészítő buszt, a 3 -as és 4 -es buszt

Nyissa meg a cli -t és futtassa

cd /boot

sudo nano config.txt

Adja hozzá a következő kódsort, előnyösen abban a részben, ahol az spi és az i2c engedélyezve van.

dtoverlay = i2c-gpio, busz = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24

Ez a vonal egy kiegészítő i2c buszt (4 -es buszt) hoz létre a GPIO 23 -on SDA -ként és a GPIO 24 -et SCL -ként (a GPIO 23 és 24 alapértelmezett)

Adja hozzá a következő sort is az i2c busz 3 létrehozásához

dtoverlay = i2c-gpio, busz = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27

A GPIO 17 lesz az SDA, a GPIO 27 pedig az SCL az i2c 4 buszhoz.

A kilépéshez nyomja meg az X vezérlőgombot.

Megjegyzés a buszok számozásával és sorrendjével kapcsolatban:

Soha ne használja a 0 -as és a 2 -es buszt, hanem a táblán lévő egyéb dolgokra, például eprom kalapokra stb

A 2019 áprilisi raspbian kiadáshoz:

Mindig a legmagasabb busszal (ebben az esetben a 4 -es busszal) kell kezdenie a config.txt fájlban, és haladnia kell a legalacsonyabb buszig (3. busz).

A legalacsonyabb busznak mindig a 3 -as busznak kell lennie

Ha 5 extra buszra van szüksége, akkor a buszoknak bi, 7, 6, 5, 4, 3 nagyságrendűeknek kell lenniük

Ez a buszrendeléssel kapcsolatos probléma nem állt fenn, amikor ezt az utasítást eredetileg megírták. Úgy tűnik, hogy változások történtek a kernelben.

Kapcsolja ki, kapcsolja ki a PI -t. Csatlakoztassa i2c eszközeit a 4 -es buszhoz (SDA a GPIO 23 -hoz és az SCL a GPIO 24 -hez), a másikat pedig az i2c 3 -as buszhoz (SDA a GPIO 17 -hez és az SCL a GPIO 27 -hez).

Kapcsolja be a pi -t.

Fuss:

sudo i2cdetect -l (L kisbetű)

Most látni fogja, hogy a 3. és 4. i2c busz is szerepel a listában. Futtassa még:

sudo i2cdetect -y 3

sudo i2cdetect -y 4

Most már használhatja az érzékelőt a programozási nyelvén. Ne felejtse el megadni a helyes i2c buszokat.

Az Attach egy példa a népszerű BMP280 hőmérséklet- és nyomásérzékelőre. Egy multiplexer sem tud ilyen gyorsan leolvasni 2 BMP280 -at.

Példa 2 Sensirion SDP 810 érzékelőre is. Ismét sokkal gyorsabban működik, mint a korábban használt multiplexer

Létrehoztam python kódot, hogy két új BMP388 -at olvashassak az adafruitból.

A jövőben más érzékelőket is hozzáadhatok a https://github.com/JJSlabbert/Raspberry_PI_i2C_conficts webhelyhez

3. lépés: 2. eset: Különböző I2c címek

Egyszerű. Az i2c egy busz. A busz célja, hogy több eszközzel kommunikáljon. Csatlakoztassa az eszközöket párhuzamosan ugyanahhoz az i2c buszhoz. Használhatja az első buszt.

Fuss:

sudo i2cdetect -y 1

Látni fogja a felsorolt eszközöket.

Ajánlott: