- konstrukcja oparta na sprzętowym liczniku scalonym typu S-35770,
- wejście zliczające aktywowane zboczem narastającym,
- sprzętowe wejście resetowania licznika,
- interfejs I²C do odczytu zawartości licznika i obsługi rejestru użytkownika,
- zasilanie: 1,5...5,5 V/300 μA (maks.)
Moduł bazuje na układzie 24-bitowego licznika z interfejsem I²C typu S-35770 firmy Ablic, którego budowę pokazano na rysunku 1.
Schemat nakładki zaprezentowano na rysunku 2. Układ zasilany jest napięciem z zakresu 1,5...5,5 V, pobór prądu podczas aktywnej transmisji nie przekracza 300 μA (w spoczynku wynosi poniżej 0,01 μA). Zasilanie i magistrala I²C doprowadzone zostały do złącza oznaczonego I²C. Zliczane impulsy doprowadzone są do złącza CKI, pojemność licznika to 16777215 impulsów (0xFFFFFF, rozdzielczość 24-bitowa). Zmiana stanu licznika jest aktywowana narastającym zboczem sygnału CKI, po osiągnięciu wartości 0xFFFFFF rejestr ulega skasowaniu i zliczanie rozpoczyna się od wartości 0x000000. Układ ma aktywowane stanem niskim wejście RST, służące do jego sprzętowego zerowania; sygnał ten kasuje tylko zawartość licznika, nie ma wpływu na komunikację I²C. Ponadto dostępny jest sygnał przepełnienia OVC (wyprowadzenie LOOP), zmieniający stan na przeciwny po każdej zmianie wartości zliczonych impulsów z 0xFFFFFF na 0x000000. Sygnał OVC po resecie układu ustawia się na 0. Umożliwia on kaskadowe łączenie wielu modułów w celu uzyskania większej pojemności. Do złącza CKI doprowadzone jest też zasilanie, co ułatwia podłączenie zewnętrznych przetworników wymagających zasilania lub polaryzacji styku impulsatora. Sygnały RST, OVC wraz z zasilaniem oraz I²C dostępne są na złączu CNT.
Układ wykazuje wrażliwość na ładunki statyczne, należy więc zachować odpowiednią ostrożność.
Układ zmontowany został na dwustronnej płytce drukowanej zgodnej z Grove. Rozmieszczenie elementów zobrazowano na rysunkach 3a i 3b. Sposób montażu nie wymaga opisu. Zmontowany moduł zaprezentowano na fotografii 1.
Moduł nie wymaga uruchamiania. Układ S-35770 dostępny jest na magistrali I²C pod adresem 0x32. Licznik ma dwie grupy rejestrów 24-bitowych (3×8 bitów): pierwsza to rejestr licznikowy, w którym zliczane są impulsy, druga to uniwersalny rejestr użytkownika, którego trzy najmłodsze bity – ustawione na 010 – używane są do programowego kasowania stanu licznika. Jeżeli korzystamy z rejestrów użytkownika, należy pamiętać, aby najmłodsze 3 bity ustawić w pozostałych przypadkach na 111.
Sekwencję odczytu rejestrów licznika pokazano na rysunku 4, a sekwencję zapisu zaprezentowano na rysunku 5.
Należy pamiętać, że zapis musi odbywać się zawsze w pakiecie 3 bajtów, w przeciwnym razie układ może działać nieprawidłowo. Sekwencja odczytu z rejestrów użytkownika widoczna jest na rysunku 6. Podczas aktywnej transmisji I²C zliczanie impulsów ulega zablokowaniu, aby zapobiec zmianie stanu licznika podczas odczytu.
Szybkiego sprawdzenia działania układu można dokonać przy użyciu Arduino i biblioteki ABLIC_S35770_Demo, dołączonej do materiałów dodatkowych. Szkic komunikuje się z układem S-35770 poprzez I²C oraz dwa wyprowadzenia cyfrowe: na jednym generowany jest reset licznika, na drugim – testowo – impulsy do zliczania. Po zmianie wyprowadzeń w konfiguracji:
ABLIC_S35770 myABLIC_S35770(11, 10)
gdzie: 11 – pin sygnału RST, 10 – pin sygnału CKI, możemy przetestować komunikację i cykle zliczania. Jeżeli wszystko działa poprawnie, moduł może zostać zastosowany we własnej aplikacji.
Adam Tatuś, EP
- R1, R2: 100 kΩ (SMD 0603, 1%)
- C1: 100 nF
- C2: 2,2 μF
- U1: S-35770E01I (TMSOP8)
- CKI: złącze śrubowe DG 3-pin. 3,5 mm (DG381-3.5-3)
- CNT: listwa SIP6
- I²C: złącze Grove proste (110990030)