Próbuję obsługiwać ten wyświetlacz LCD I2C za pomocą mikrokontrolera ATxmega16A4U .
Oba urządzenia są wymienione na liście pracujące z częstotliwościami zegara I2C do 400 kHz. Oba urządzenia są jedynymi urządzeniami na magistrali I2C.
Jednak opracowanie obliczeń dla granic rezystora podciągającego daje pewne dość dziwne wartości.
Obliczanie minimalnej wartości rezystora pullup I2C:
Patrząc na karty danych uC, na stronie 92 podano maksymalną pojemność wejściową pinów wynoszącą 10pF.
Jednak w przypadku LCD ma on na stronie 8 coś o nazwie Capacitive load represent by each bus line
oznaczonej jako Cb i jest wymieniony przy maksymalnej wartości 400pF. Zakładam, że powinienem po prostu dodać tę wartość do pojemności wejściowej 10pF uC, ale wydaje się to naprawdę wysokie, a obliczenia są niepewne.
Na przykład, kiedy próbuję obliczyć maksymalną wartość rezystora podciągającego dla zegara 400 kHz:
Czy źle interpretuję arkusz danych LCD? Oczywiście maksymalna dopuszczalna wartość rezystora podciągającego nie może być mniejsza niż minimalna dopuszczalna wartość.
podobnie, jeśli założę maksymalną pojemność magistrali netto 400 pF, otrzymam:
wciąż poniżej maksymalnej dopuszczalnej wartości.
Twoje obliczenia mają sens. Podobne obliczenia znajdują się w tej notatce aplikacji TI (sekcja 4.1) . Zauważ, że używają V cc = 1,8 V do obliczania R min .
Można sobie wyobrazić, że C b to maksymalna pojemność magistrali, z którą LCD może współpracować, a nie pojemność, którą LCD dodaje do magistrali. Możesz przetestować pojemność wejść I 2 C, mierząc ich stałą RC. Zapewniłoby to kontrolę rozsądku rzędu wielkości.
źródło