Strona 1 z 1

Przełączanie trybów w oparciu o Brown-Out

: wtorek 31 mar 2015, 14:31
autor: Gites
Cześć,
Trochę się ostatnio bawię sterownikiem Nanjg 105C. Zaimplementowałem detekcję klików w oparciu o Brown-Out. Niby wszystko działa ale nie podoba mi się, że do poprawnego działania, przerwy w zasilaniu muszą być "super-krótkie" - takie na poziomie drżenia ręki (0.1s ?). Próbowałem zarówno dla BOD = 1.8V jak i 2.7V. Przy tym ostatnim ustawieniu jest odrobinę lepiej, tzn. udaje mi się przełączyć tryb powiedzmy raz na pięć prób. Nie jest to to czego oczekiwałbym i szczerze powiedziawszy nie wiem jak to można usprawnić bez fizycznych przeróbek, żeby było bardziej przyjazne użytkownikowi.
Pozdrawiam,
Gites

edit: "tał" dla układu złożonego z C1 i szeregowo połączonych R1 i R2 wynosi tylko 2.4 ms. Przy 2 * tał czyli ~5 ms można uznać, napięcie na ATtiny jest tak niskie że dane w sekcji .noinit przepadły. Nie jestem pewien czy standardowy użytkownik będzie w stanie zrobić "klika" o długości rzędu pojedynczych milisekund.

: wtorek 31 mar 2015, 16:17
autor: Pyra
Witam
Trudno coś doradzić bez bliższej znajomości programu. Wystarczy idea...

Pozdrawiam

: wtorek 31 mar 2015, 17:00
autor: Gites
Nie bazuję na żadnym konkretnym firmware tylko stworzyłem prosty szablon, w którym:
- zegar to 4.8 MHz (CKSEL=01) ze startem 6 CK + 14 CK (SUT=00)
- CKDIV8 = 1 (czyli jest wyłączony)
- PB1 jest wyjściem PWM,
- reszta pinów jest wejściami z pull-upem (nie używam ADC na tym etapie),
- cała konfiguracja odbywa się w sekcji .init3 (to działa, bo Watchdog działa, Timer działa, mam PWM na wyjściu)

Jedyne co mi przychodzi do głowy to kombinowanie z opóźnieniami startu (bity SUT) ale nie jestem pewien czy tędy droga. W sumie weryfikacja zajmie chwilę.

: wtorek 31 mar 2015, 18:03
autor: Pyra
Witam
Ja robiłem próby na standardzie, czyli 9,6MHz, timer na dwa kanały. Pamięć zachowuje zawartość około 0,5s, takie wolne kliknięcia.
Oczywiście próby przeprowadzane na driverku.

Pozdrawiam