Arduino Polska Forum

Pełna wersja: i2C - czy można zmniejszyć prędkość transmisji
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witajcie,

Gdzie i jak można zmniejszyć softwarowo prędkość transmisji w  sterowaniu wyświetlaczem po i2C . Czasami zdarzają się zakłócenia na 30 cm odcinku pomiędzy kontrolerem Atmega328 i wyświetlaczem z HD44780.  Pomyślałem że zamiast walczyć z zakłóceniami SDA SCL można by zastosować zmniejszenie prędkości transmisji. Jest to wykonalne ? Jeśli tak to gdzie mogę to zmienić .
Korzystam z bibloteki  "LiquidCrystal_I2C.h" .

pozdrawiam Adam.
Witam,
Może spróbuj zastosować rezystory pociągające dla SCL i SDA.
Pozdrawiam,
Tomek
Witaj Tomek,

Już zastosowałem te rezystory. Poprawiło działanie układu ale czasami zdarza się "krzaczenie" wyświetlacza. Jutro jeszcze sprbóbuje z diodami na linii SDA SCL  i z ekranowanym kablem do transmisji i2C. Jeśli to nie pomoże to zostaje tylko  spróbować zmniejszyć prędkość transmisji. Pozdrawiam Adam
Witam,
30 cm to krótkie połączenie. Ja przy takiej długości przewodów nie miałem nigdy problemów.
Co do zmiany częstotliwości to takowej zmiany możesz dokonać funkcją setClock() , która jest metodą w bibliotece wire.h. Sama biblioteka LiquidCristal_I2C.h na to nie pozwala.
Pozdrawiam,
Tomek.
Witam,

Przyczyną resetowania się uP było wadliwe rozwiązanie w chińskich tanich keep relayach z optoizolacją. Okazało się że mają wspólne masy czyli optoizolacji nie było.  Po przerobieniu modułu objawy resetowania i zakłóceń I2C ustąpiły. Wszystko zaczęło działać jak należy. Także zamykam temat.  

Pozdrawiam, Adam