Cześć,
pojawił się u mnie bug. Początkowo myślałem, że to problem z jakimś lutami ale wychodzi, że chyba nie.
Mam płytkę na której są: Wemos D1 mini, 2xMCP, do tego wyprowadzone piny pod ds18b20, dimmery i i2c.
MCP, ds18b20 oraz sht3.x działają bez problemów natomiast po podłączeniu BMP zaczyna się dyskoteka świetlna. Przekaźniki klikają losowo, dimmery (niektóre) rozjaśniają się i ściemniają (tak jakby przycisk od ich włączania był cały czas wciśnięty). Po zauważeniu problemu poprawiłem wszystkie luty, sprawdziłem czy nie ma zwarcia - problem dalej występuje. Przepiąłem BMP na drugą identyczną płytkę oczywiście z innymi egzemplarzami wemosa i MCP i problem jest ten sam. Poniżej projekt płytki i jej wygląd w rzeczywistości.
BMP280 + MCP23017 - bug
-
LukiSpajder
- Posts: 1548
- Joined: Tue Aug 18, 2020 2:22 pm
- Has thanked: 25 times
- Been thanked: 34 times
Nie wiem jakie długie masz przewody do BMP ale gdy wszystko podpiąłem na krótko przy płytce działało . Natomiast po zainstalowaniu w docelowym miejscu gdzie BMP był podpięty na dłuższym kablu takie miałem objawy jak opisujesz . Skróciłem przewód i zaczęło działać poprawnie .
-
wojtas567
- Posts: 2334
- Joined: Sun Apr 03, 2016 7:16 pm
- Location: Olsztyn
Możesz spróbować dać ekranowany przewód i zobaczyć czy coś zmieni.
Pozdrawiam
Wojtek
Wojtek
-
jamsjamsen
- Posts: 72
- Joined: Sat Jan 28, 2017 11:08 am
- Location: 0xE952
I2C nie lubi pojemność w kablach, już przy 400pF zaczyna się problem i gdy narastanie zbocza w przebiegu jest dłuższe niż 1000ns przy taktowaniu lini 100kHz to zaczynają się cyrki na magistrali I2C, ja poradziłem sobie kiedyś w innym projekcie ze zmianą rezystorów podciągających SDA i SCL.....zmieniłem te 4,7k na 1k i pomogło...najlepiej sprawdzać przebieg na oscyloskopie i oczywiście nie przekroczyć prądu danego pinu GPIO.
Byłem na Supla Offline Party 2023 & 2024 ;
-
YoMan
- Posts: 3521
- Joined: Thu Apr 30, 2020 5:18 pm
- Location: Częstochowa
- Has thanked: 3 times
- Been thanked: 3 times
Może faktycznie tutaj leży przyczyną. Przewod ma ok 6-7m, jest to skretka ekranowana cat.7 ale .... ekranu nie uziemiłem.
@jamsjamsen nawet nie wiedziałem że sda i scl należy podciągać
więc są bez żadnych pullupow. Nie mam niestety oscylatora, podpowiesz jaka droga pójść, żeby to wyeliminować? Zacząć od 4,7k na każdą linie?
@jamsjamsen nawet nie wiedziałem że sda i scl należy podciągać
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
________________________________________
Wziąłem udział w SOP2023 & SOP2024
-
jamsjamsen
- Posts: 72
- Joined: Sat Jan 28, 2017 11:08 am
- Location: 0xE952
co do samego pullup to wemos powinien mieć jakieś na płytce(ok. 10k), bez tego I2C wogóle by nie ruszyło
.
a co do rezystorów podciągających(4,7k) przy 7 m kablu to stanowczo za dużo, dobrze jest zmierzyć pojemność żył i jak będzie ok 600pF to zacząłbym od 1kOhm, gdzie jeden kilo przy 3,3V wymusza prąd 3,3mA, a esp8266 może mieć max 12mA na pin.
ps: ja przy podobnej dł. przewodów skrętki cat.7 przy Arduino dałem 470ohm i dopiero przebiegi na sda i scl wyglądały w miare prostokątnie na 10k miałem straszny kształt „piły”, a co do ekranowania przewodów to nie wiem czy to wiele pomoże.
a co do rezystorów podciągających(4,7k) przy 7 m kablu to stanowczo za dużo, dobrze jest zmierzyć pojemność żył i jak będzie ok 600pF to zacząłbym od 1kOhm, gdzie jeden kilo przy 3,3V wymusza prąd 3,3mA, a esp8266 może mieć max 12mA na pin.
ps: ja przy podobnej dł. przewodów skrętki cat.7 przy Arduino dałem 470ohm i dopiero przebiegi na sda i scl wyglądały w miare prostokątnie na 10k miałem straszny kształt „piły”, a co do ekranowania przewodów to nie wiem czy to wiele pomoże.
Last edited by jamsjamsen on Sat Apr 30, 2022 6:35 pm, edited 1 time in total.
Byłem na Supla Offline Party 2023 & 2024 ;
-
YoMan
- Posts: 3521
- Joined: Thu Apr 30, 2020 5:18 pm
- Location: Częstochowa
- Has thanked: 3 times
- Been thanked: 3 times
nie chcę zapeszać ale .... dałem po jednym rezystorze 1k na scl i sda i na razie od kilku godzin działa. Niestety nie miałem czym zmierzyć pojemności żył i tym bardziej brak dostępu do oscylatora więc pokierowałem się Twoimi wskazaniami. Jeżeli coś będzie się działo to jeszcze trochę zejdę z rezystorami. Sprawdziłem długość przewodów jeszcze raz i jest dokładnie jest 8m.
Dam znać po dłuższym czasie
Dam znać po dłuższym czasie
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
________________________________________
Wziąłem udział w SOP2023 & SOP2024
-
jamsjamsen
- Posts: 72
- Joined: Sat Jan 28, 2017 11:08 am
- Location: 0xE952
To fajnie,że coś ruszyło. Tak jeszcze na marginesie zalecałbym przewody z I2C nie mieszać z kablami z 230V układać jak najdalej, przepięcia przy załączniu np. oświetlenia lub innych obwodów, potrafią też „wykrzaczyć” układ i robi się choinka na MCP 23017;)
pozdro
JJ
pozdro
JJ
Byłem na Supla Offline Party 2023 & 2024 ;
-
YoMan
- Posts: 3521
- Joined: Thu Apr 30, 2020 5:18 pm
- Location: Częstochowa
- Has thanked: 3 times
- Been thanked: 3 times
Niestety wiem, niestety za późnojamsjamsen wrote: Sat Apr 30, 2022 6:46 pm To fajnie,że coś ruszyło. Tak jeszcze na marginesie zalecałbym przewody z I2C nie mieszać z kablami z 230V układać jak najdalej, przepięcia przy załączniu np. oświetlenia lub innych obwodów, potrafią też „wykrzaczyć” układ i robi się choinka na MCP 23017;)
pozdro
JJ
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
________________________________________
Wziąłem udział w SOP2023 & SOP2024
-
elmaya
- Posts: 1485
- Joined: Wed Jun 27, 2018 5:48 pm
- Location: El Saucejo - Sevilla
Resistors lower than 1.2kohm should not be used for i2c with 3.3vdc.jamsjamsen wrote: Sat Apr 30, 2022 1:26 pm co do samego pullup to wemos powinien mieć jakieś na płytce(ok. 10k), bez tego I2C wogóle by nie ruszyło.
a co do rezystorów podciągających(4,7k) przy 7 m kablu to stanowczo za dużo, dobrze jest zmierzyć pojemność żył i jak będzie ok 600pF to zacząłbym od 1kOhm, gdzie jeden kilo przy 3,3V wymusza prąd 3,3mA, a esp8266 może mieć max 12mA na pin.
ps: ja przy podobnej dł. przewodów skrętki cat.7 przy Arduino dałem 470ohm i dopiero przebiegi na sda i scl wyglądały w miare prostokątnie na 10k miałem straszny kształt „piły”, a co do ekranowania przewodów to nie wiem czy to wiele pomoże.
The maximum output current of most i2c devices is 3mA.
Although the ESP8266 can handle more intensity, the connected devices will not be able to.
In no way would I use values less than 1kohm.
