@ElektrodaBot Który pin jest najlepszy do podłączenia czujnika i2c BME280 do modułu CBU
Wstępna ocena dostępnych informacji - "CBU" to moduł Wi-Fi + BLE firmy Tuya oparty na układzie BK7231N SoC. Oficjalny arkusz danych CBU wymienia GPIO, które są wyprowadzone na kastelowane pady modułu, ale nie wyznacza żadnych dedykowanych pinów I²C. I²C może być zaimplementowane na pinach ogólnego przeznaczenia. W szczególności TX2/RX2 (P0/P1) są używane jako log/boot UART i należy ich unikać w przypadku okablowania aplikacji. ( developer.tuya.com ) - Przewodnik Tuya "Okablowanie serii CB" pokazuje typowe grupy GPIO widoczne na CBU (P24/P26, P7/P8, P6/P26, P14/P16, itp.), które są odpowiednimi parami dla bit-banged lub programowego I²C. ( developer.tuya.com ) - Układ Bosch BME280 obsługuje I²C przy napięciu logicznym 3,3 V i ma dwa możliwe adresy I²C (0x76 lub 0x77). Płyty Breakout często zawierają pull-upy i czasami regulator/level-shifter, ale sam układ scalony jest urządzeniem 1,71-3,6 V. ( bosch-sensortec.com )
Bezpośrednia odpowiedź na pytanie - Najlepsza, mało ryzykowna para pinów w module CBU dla I²C BME280: - SCL → P24 - SDA → P26 Powody: oba są zwykłymi GPIO (z obsługą PWM, bez roli bootowania/konsoli), sąsiadują ze sobą na krawędzi CBU, tworząc krótkie, schludne okablowanie w pobliżu 3V3/GND, i są szeroko stosowane dla I²C w projektach BK7231N. ( developer.tuya.com )
- Dobre alternatywy (jeśli P24/P26 są już używane w urządzeniu): - P7 ↔ P8 (para) - P14 ↔ P16 (para, pierwotnie piny SPI, ale użyteczne jako GPIO) - P6 ↔ P26 (para mieszana pokazana w instrukcji okablowania Tuya) Unikaj używania TX2/RX2 (P0/P1), ponieważ są to logi/boot UART modułu. ( developer.tuya.com )
Szczegółowa analiza problemu - Dlaczego P24/P26? - Neutralność elektryczna: P24 i P26 są wejściami/wyjściami ogólnego przeznaczenia z możliwością PWM i bez specjalnych ról związanych z bootowaniem. Są bezpieczne dla sygnałów magistrali, takich jak I²C. ( developer.tuya.com ) - Wygoda układu: Na mapie pinów CBU znajdują się one obok pinów zasilania (GND pad 13 i 3V3 pad 14), co skraca obszar pętli I²C i ułatwia trasowanie i odciążanie. Krótsze przebiegi zmniejszają pojemność magistrali i poprawiają integralność sygnału. ( developer.tuya.com ) - Dlaczego unikać P0/P1 (TX2/RX2)? - Arkusz danych wyraźnie określa TX2 jako "port dziennika wydruku", a te piny są powszechnie używane podczas uruchamiania i debugowania. Używanie ich do I²C może powodować konflikt z komunikatami rozruchowymi lub przepływami pracy flashowania. ( developer.tuya.com ) - Korzystanie z alternatywnych par: - P7/P8 i P14/P16 są również czystymi, ogólnymi GPIO (P14/P16 obsługują SPI, ale można je zmienić). Są one wymienione jako dostępne "grupy" w przewodniku okablowania Tuya serii CB, dlatego wiele projektów społeczności łączy je w pary dla magistrali. ( developer.tuya.com ) - Interfejs elektryczny do BME280: - Zasilanie czujnika 3.3 V podczas łączenia z CBU (BK7231N I/O ma 3,3 V). Sam układ scalony BME280 określa napięcie VDD 1,71-3,6 V i VDDIO 1,2-3,6 V; wiele płytek breakout akceptuje 3-5 V ze względu na wbudowaną regulację, ale 3,3 V jest najbezpieczniejszym wspólnym mianownikiem z CBU. ( bosch-sensortec.com ) - Podciąganie I²C: Jeśli w twoim układzie BME280 ich brakuje, dodaj podciąganie 2,2-4,7 kΩ z SDA/SCL do 3,3 V. Renomowane przewodniki i biblioteki BME280 zalecają te wartości. ( github.com ) - Adresowanie: domyślnie 0x76 lub 0x77 w zależności od dostawcy płyty; SDO związane nisko wybiera 0x76, związane wysoko wybiera 0x77. Potwierdź za pomocą skanowania I²C. ( learn.adafruit.com )
Praktyczne wskazówki - Okablowanie (zalecane piny): - CBU 3V3 → BME280 VCC - CBU GND → BME280 GND - CBU P24 → BME280 SCL - CBU P26 → BME280 SDA - Przewody powinny być krótkie (≤20-30 cm). Jeśli konieczne jest użycie dłuższych przewodów, należy obniżyć taktowanie I²C (np. 100 kHz) i/lub użyć silniejszych podciągaczy (≈2,2 kΩ). ( github.com ) - Przykłady oprogramowania układowego: - OpenBeken: - Przypisywanie ról w Web UI: ustaw P24 = I2C_SCL, P26 = I2C_SDA; Save/Reboot. - Konsola: i2c_scan → sprawdź, czy wykryto 0x76/0x77; następnie startDriver BME280. - (OpenBeken udostępnia polecenie i2c_scan; typowy przepływ pracy jest zgodny z dokumentacją i praktyką OBK) ( elektroda.com ) - TuyaOS (tworzenie niestandardowych aplikacji): użyj dowolnych dwóch GPIO, które kontrolujesz dla programowej implementacji I²C; unikaj pinów UART/log. Przy wyborze i inicjalizacji pinów należy odwołać się do tabeli pinów CBU. ( developer.tuya.com )
Lista kontrolna rozwiązywania problemów - Nie znaleziono urządzenia: - Potwierdź 3,3 V na BME280 VCC i wspólnej masie. - Uruchom skanowanie I²C, aby zobaczyć adres; jeśli sterownik oczekuje 0x77, ale na płycie jest 0x76, ustaw go jawnie. ( learn.adafruit.com ) - Dodaj/weryfikuj podciągnięcia na SDA/SCL do 3,3 V (2,2-4,7 kΩ). ( github.com ) - Wypróbuj inną parę pinów (np. P7/P8), jeśli pierwsza para jest zajęta w urządzeniu. ( developer.tuya.com ) - Sporadyczne odczyty/problemy z długością przewodów: - Zmniejsz prędkość do 100 kHz i utrzymuj krótkie przewody; sprawdź solidne uziemienie i czyste połączenia lutowane. ( github.com )
Krótkie podsumowanie - Użyj P24 (SCL) i P26 (SDA) na CBU dla I²C BME280 - czyste, sąsiadujące i bezkonfliktowe z bootowaniem/konsolą. Alternatywy: P7/P8 lub P14/P16. Unikać TX2/RX2 (P0/P1). Zasilanie 3,3 V, zapewnienie podciągania i ustawienie prawidłowego adresu I²C (0x76/0x77). ( developer.tuya.com )
Pytania do Ciebie - Jaki firmware jest zainstalowany na CBU (TuyaOS, OpenBeken, LibreTiny/ESPHome)? - Czy jest to goły moduł CBU na własnej płytce drukowanej, czy wewnątrz gotowego produktu Tuya (niektóre piny mogą być już używane)? - Jeśli znajduje się wewnątrz produktu, czy możesz udostępnić zdjęcie lub powiedzieć nam, które szpilki są wolne? Mogę zaproponować najbezpieczniejszą parę.
Referencje - Arkusz danych modułu Tuya CBU (mapa GPIO i uwagi dotyczące funkcji, w tym TX2 jako port logowania). ( developer.tuya.com ) - Wskazówki dotyczące okablowania serii Tuya CB dla grup GPIO CBU (zalecane pary pinów). ( developer.tuya.com ) - Strona produktu Bosch BME280 (napięcia, interfejs). ( bosch-sensortec.com ) - Wyprowadzenia Adafruit BME280 i wybór adresu (0x76/0x77). ( learn.adafruit.com ) - Wskazówki dotyczące okablowania / podciągania BME280 używane przez popularną bibliotekę Arduino. ( github.com )
Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot. Zastrzeżenie: Niektóre odpowiedzi udzielone przez ElektrodaBota mogą być niedokładne. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi ElektrodaBota powinny być zweryfikowane przez użytkownika. OpenAI może monitorować i zapisywać informacje wprowadzane po wywołaniu ElektrodaBota.
Tworzę pierwsze na świecie oprogramowanie open source przeznaczone dla platform BK7231, XR809, BL602, W600, W800, LN882H, ECR, TRS, RTL, jak również ESP8266 i ESP32 używanych w różnych urządzeniach IoT, pozwalające uwolnić je od serwerów producenta, od śledzenia, dowolnie modyfikować i sparować z Home Assistant.
Dodatkowo publikuję różnorodne materiały, często tutoriale i praktyczne demonstracje.
Jeśli podoba Ci się moja twórczość i w czymś Ci pomogłem, to rozważ wsparcie mnie tutaj: https://www.paypal.com/paypalme/openshwprojects Mój Github: https://github.com/openshwprojects Mój tutorial PIC18F SDCC: https://www.elektroda.pl/rtvforum/topic3635522.html Pracuję na stacji hot air SUGON 8630 Pro od Katemedia
Witam, Dziękuję bardzo. Dzięki Waszemu forum udało mi się uruchomić kilka przełączników dotykowych z modułem CBU i działają one w Home Assistant po dodaniu do nich czujnika temperatury DS18B20. Do programowania użyłem programatora FTDI i programu ltchiptool pod Windows 10. Niestety nie mogę sobie poradzić z przełącznikiem dotykowym z modułem VB3S, dla którego również założyłem nowy temat.
Witam, Dziękuję bardzo. Dzięki Waszemu forum udało mi się uruchomić kilka przełączników dotykowych z modułem CBU i działają one w Home Assistant po dodaniu do nich czujnika temperatury DS18B20. Do programowania użyłem programatora FTDI i programu ltchiptool pod Windows 10. Niestety nie mogę sobie poradzić z przełącznikiem dotykowym z modułem VB3S, dla którego również założyłem nowy temat.