MarekSz napisał(a):
Wierz mi, analizowałem noty sterowników wyświetlaczy SSD1306
Ale tu nie chodzi tylko o noty. Chodzi też o znajomość np. magistrali komunikacyjnej, bo w tym akurat przypadku diabeł tkwi właśnie w samej idei działania I2C, w sensie że układy nie powinny wystawiać napięcia a tylko zwalniać linię by ta poprzez pullupy wróciła do poziomu wysokiego, tu akurat myfriendy tą właściwość wykorzystali by w opisie wyświetlacza napisać, że może pracować 3,3 - 5V.
Tak więc ja nie pisałem posta wyżej, jako zarzut, że nie czytałeś noty. Chciałem zwrócić uwagę, że trzeba dobrze poznać wszystkie aspekty poszczególnych klocków (właśnie nie tylko notę ale właśnie rzeczy dla niektórych oczywiste, a dla innych nie, takie jak założenia magistrali komunikacyjnej, schemat - tu często rozrysowany samemu), a niestety i to nie gwarantuje sukcesu, bo czasem pan chińczyk będzie miał radosną wenę twórcza zupełnie odklejoną od rzeczywistości (jak np arduino nano, gdzie np na płytce wyprowadzają napięcie 3,3V niby do wykorzystania, a jest to napięcie "pożyczone" ze scalaka konwertera USB-UART, które ma znikomą wydajność prądową, a które de fakto twórca ów scalaka wyprowadził z niego tylko do podłączenia kondensatora filtrującego, a nie jako napięcie do wykorzystania).
MarekSz napisał(a):
W tym przypadku, nawet jeśli nasz projekt pracuje na 5V i ma własne pull'upy podpięte do +5V, to nie skrzywdzimy tego wyświetlacza po bezpośrednim podłączeniu do I2C w MCU.
Zapomniałeś o jednej rzeczy: jeśli projekt będzie pracować na 5V i będzie miał własne pulup-y, to wyświetlacz który będzie mieć diody na wyjściach SCL i SDA niestety nie będzie działać, bo niby jak poprzez diody ma wymusić stan niski na liniach podciągniętych do 5V po drugiej stronie, skoro dioda jest zaporowo! A przecież wyświetlacz musi wystawić sygnał ACK po zaadresowaniu przez uC.